(51单片机)第三章-数码管显示原理及应用实现-数码管

本文详细介绍了数码管的工作原理,包括静态显示(位选独立控制与段选连接)和动态显示(刷新显示)的方法,以及如何使用C语言在单片机如TX-1C上实现数码管的控制,特别强调了共阳极和共阴极编码的区别以及单片机编程中的特殊注意事项。

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

目录

3.1 数码管显示原理

3.2 数码管静态显示(位选独立控制,段选连接在一起(所有数码管显示一样))

        数码管静态显示示例:

3.3 数码管动态显示(刷新显示)

        数码管动态显示示例:

参考资料: 


3.1 数码管显示原理

                     数码管内部原理图:共阳极和共阴极编码相反

                     位选线 段选线

3.2 数码管静态显示(位选独立控制,段选连接在一起(所有数码管显示一样))

                     TX-1C单片机实验板上数码管(共阴极)与单片机的连接:

        P26连DULA控制段选,P27连WELA控制片选,P00-P07这8位既可以连接U1的Q0-Q7(段选)这8位,也可以用前6位连接U2的WE1-WE6(片选),主要在于DULA和WELA的开关。

        首先先打开片选(WELA=1,DULA=0(必须的,因为

在C51单片机中,数码管通常用于数字和字符的显示,包括0-9以及一些特殊字符。要让数码管显示"00",你需要配置好以下几个步骤: 1. **初始化**:首先,确定数码管的连接方式,是否是共阴极或共阳极,并设置相应的数据线、公共端口。比如,74HC595或CD4511等接口芯片常常用于驱动多位数码管。 2. **编写硬件描述**:使用P0~P3这样的IO口作为数码管的数据线,如果用了接口芯片,还要控制其EN信号(使能信号)。 ```c sbit D7 = P0^7; // 低位数码管D7 sbit D6 = P0^6; // 等... sbit EN = P2^0; // 接口芯片使能信号 ``` 3. **设置初始状态**:数码管默认显示的是小数点(.),所以需要将其设置为空白。如果是静态显示,可以将对应的段码设置为0;如果是动态扫描,先发送全灭的段码。 4. **显示"00"**:通过位操作,分别设置两个数码管的十位和个位。例如,"0"的段码是0x3F,"00"就是将这两个段码依次送到数据线上。 ```c unsigned char seg_0 = 0x3F; unsigned char seg_1 = 0x06; // 十位显示0,个位显示0 send_data(seg_0); // 先发送第一个数码管的段码 send_data(seg_1); ``` 5. **动态扫描显示**:如果是动态扫描模式,循环发送每个数码管的段码到数据线,同时更新显示。 ```c void display_char(char digit) { for(int i = 0; i < 8; ++i) { // 扫描8次 send_data(((digit >> (7-i)) & 1) << 4 | ((digit >> (3-i)) & 1)); // 右移并按位与,得到当前位的段码 } } display_char('0'); // 显示0 display_char('0'); // 再显示0 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值