历史上的今天
今天是:2025年03月31日(星期一)
2020年03月31日 | 51---动态数码管
2020-03-31 来源:eefocus
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例程---闪烁灯
史海拾趣
|
把从网上下载的T264源码移植到dm642上,过程是这样的 1、直接编译T264 的源码(包括了T264.Pjt和 T264lib.pjt)可以通过,说明程序没有问题 2.加入了DM642的视频硬件文件之后出现了很多问题,有 offset too large   ...… 查看全部问答> |
|
微软对于Wince中TCP/IP协议的定义范围~急!急!急! 我刚刚接手开发的手机邮件工作,很多东西都不明白-_-! 微软在Wince5.0 的内核发布中提到,支持TCP/IP协议,没有详细的说明,我想问一下是否包括SMTP和POP3呢?… 查看全部问答> |
|
用kei for arm 3.8a生成hex文件时358k,而开发板上的机子ROM容量是128k,怎么烧的进去? 即使是hex文件容量是120k,还是会有在烧写的时候会出现address not allowed?… 查看全部问答> |
|
不知道怎样初始化xx2799,从而可以用g2553读取键值,实现相应功能,求大神帮忙 不知道怎么弄基于msp430g2553来检测xx2799按键的程序,知道x2799有按键按下,key引脚拉低,键值存到寄存器reg_keyvaluey里,但不知道怎样初始化xx2799,从而可以用g2553读取键值,实现相应功能… 查看全部问答> |
|
CCS5编译错误,求解! 各位高手: 我才开始用TMS320F28020,使用CCS5.1;新建项目,选取型号,选取调试器,完毕后自动生成main.c,没做任何编辑直接编译;出现错误提示: program:c:\\ti\\ccsv5\\tools\\compiler\\c2000\\bin\\cl2 ...… 查看全部问答> |




