07-数码管显示

本文详细讲解了共阳4位数码管的工作原理,通过框架式编程实现数码管的控制,包括设置位选、段选,利用595数据分配并实现多位数码管的动态显示。涵盖了从硬件配置到软件编程的全过程,涉及亮度控制、数组管理和超时模拟,适合初学者和进阶者学习数码管应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数码管显示

1. 硬件基础

共阳4位数码管工作原理

image-20210826093555201

举例:第一位显示3

将第1位位选端接高电平,其余位选端接低电平;第1位数码管需要显示的段选端接低电平,不需要显示的段选端接高电平

所有数码管的相同段选端都接在一起,但因为二极管单向导电性,阳极流向阴极,故不需要显示的数码管不会显示。

2. 软件编程

框架式编程结构搭建

创建数码管服务.c并添加

image-20210818162749373

all.h包含

image-20210818163115082

打标签

image-20210818163159020

.c包含all.h

image-20210818163215915

数码管显示

  1. 创建数码管显示函数

image-20210818163804797

外部声明

image-20210818163822699

主函数调用

595数据分配函数改为数码管数据分配函数

image-20210818163908078

将原先HC595显示内容移入数码管显示函数内

此时实现在某位数码管上显示1位任意字符

  1. 创建数组保存显示字码

使用LED段位码取模软件,注意595输出管脚和数码管管脚相对应

image-20210818165317179

image-20210818165401932

采用数组形式在某位数码管上显示1位任意字符,保存空间为code

image-20210818165850816

测试:在两位数码管上显示两个数字,亮度一致

image-20210818170604498

image-20210818170625230

  1. 为显示在哪一位创建数组

image-20210818171139313

  1. 8位数码管轮流显示

image-20210818180239075

count++循环显示

亮度控制:取余操作

  1. 数码管显示缓存数组

8个数码管分别需要显示什么值直接给数组赋值即可

image-20210818183748624

  1. 计数变量降低显示间隔

image-20210827095220972

数码管显示轮流高速刷新,但数组不需要频繁赋值去修改数据

注:

image-20210827100445131

程序模拟超时等待

数码管8位轮流显示需要一定时间,在人眼反应之前主函数可以去执行其他服务

### 关于74LS07芯片用于数码管显示电路的设计 #### 一、概述 74LS07属于低电平有效的开集输出缓冲器,在驱动LED或七段数码管这类负载时,能够提供足够的电流并实现逻辑电平转换。当应用于数码管显示电路中时,可以起到增强信号强度以及保护前级电路的作用。 #### 二、具体应用实例 为了构建基于74LS07数码管显示电路,通常会将其连接到译码器(如74LS47D)之后来控制共阴极型七段显示器。由于74LS07具备六个独立通道,因此非常适合用来处理多位数的显示需求[^1]。 ```c // 假设使用C语言模拟硬件连线情况下的初始化设置过程 void setup_74ls07_display(void){ // 配置GPIO口为推挽输出模式以匹配74LS07输入端要求 GPIO_InitTypeDef GPIO_InitStruct; __HAL_RCC_GPIOA_CLK_ENABLE(); HAL_GPIO_WritePin(GPIOA, GPIO_PIN_All, RESET); GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1| ... ;//对应74LS07各引脚 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; // 推挽输出 GPIO_InitStruct.Pull = GPIO_NOPULL; // 不带上下拉电阻 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; // 设置速度等级 HAL_GPIO_Init(GPIOA,&GPIO_InitStruct); } ``` 需要注意的是,因为74LS07是开漏结构,所以在实际接线过程中还需要在外围加上上拉电阻以便获得合适的高电平电压值;另外考虑到功耗因素,建议选用适当阻值(比如1kΩ~10kΩ之间) 的限流电阻串联至每个发光段位上来防止过载损坏元件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值