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例程---闪烁灯
- 10月中国动力电池装车量同比增长51%
- 8位单片机体系的直接软件构架(C51系列)
- WINCE6.0+S3C2451环境搭建过程遇到的一些问题
- 要用STM32实现什么?为什么使用STM32而不是8051?
- STM32F051C4引脚图、封装及参数定义
- UM5100系列语音合成芯片特点及电路
- 语音合成芯片VP-1410连512K及EPROM电路
- 基于Kinetis MK60N512和MAX5556的立体声音频接口设计
- Nordic nRF9151:面向大规模物联网市场的小型、低功耗蜂窝物联网解决方案已投入生产并上市
- AS5147U/AS5247U-用于高速电机的新型位置传感器