1.1、什么是动态数码管
(1)数码管还是原来的数码管(共阳极或共阴极均可);动态数码管有两端:COM端和段码端
(2)段码一侧还是接一个单片机端口
(3)COM(共极)接单片机一个IO口,多个联排数码管的COM共同接一个IO端口
分析对比静态和动态数码管,发现本质区别是:静态数码管中只要给了段码数码管就一定工作(显示只取决于段码端),动态数码管中段码端给了段码值后还需要COM端配合才能点亮数码管。
1.2、动态数码管如何工作
(1)在某一特定时间段中,联排数码管中只有一个数码管在工作,其他均在休息(不工作)
(2)COM端选择哪个数码管工作,段码端输出这个数码管要显式的数字的段码;延时;COM端选择下一个数码管工作,同时段码端改输出这个数码管要显示的数字的段码;延时;COM端选择下一个数码管工作······
(3)快速切换工作的数码管,则人看到的是所有的数码管都在亮(其实亮度是比静态驱动低的)。
(4)动态数码管利用了人眼的视觉暂留
第一,宏观上所有的数码管都是同时亮的,所以人以为所有数码管同时工作,所以多个数码管可以合在一起来显示(譬如显示12345678)
第二,微观上数码管是依次亮的,我们可以给不同的数码管送不同的段码,所以不同的数码管可以显示不同的数字。所以相当于8个数码管的显示是独立的。
1.3、8个联排数码管一起显示520.1314
#include void delay(void) { unsigned char i, j; for(i = 0; i < 20; i++) for(j = 0; j < 10; j++); } void main(void) { unsigned char shumaguan[8] = {0x7f, 0xbf, 0xdf, 0xef, 0xf7, 0xfb, 0xfd,0xfe}; //依次选择数码管1-8 unsigned char duanxuan[8] = {0x6d, 0x5b, 0x3f, 0x80, 0x06, 0x4f, 0x06, 0x66}; //依次显示520.1314 while(1) { unsigned char i = 0; for(i = 0; i<8; i++) { P2 = shumaguan[i]; P0 = duanxuan[i]; delay(); P0 = 0x0; } } }
上一篇:51---数码管
下一篇:51例程---闪烁灯
设计资源 培训 开发板 精华推荐
- 使用 ams AG 的 AS1312-BTDT-33 的参考设计
- 使用 NXP Semiconductors 的 TDA8559 的参考设计
- SnaillPI_v3x
- 0.8 至 3.3V DC 至 DC 单输出笔记本电源
- FEBFOD8333,基于 FOD8333 输入 LED 驱动、2.5A 输出电流、具有去饱和检测、隔离故障检测和有源米勒钳位的 IGBT 驱动光耦合器的评估板
- DS70099B,用于 dsPIC30F 高性能数字信号控制器的 dsPICDEM 1.1 开发板
- 使用 NXP Semiconductors 的 TDA8932BT 的参考设计
- 飞思卡尔TC264主控扩展板
- LOBSTER-3D打印主板-八轴拓展板
- LT1170HVCQ、5V/5A 正电流升压降压转换器的典型应用