历史上的今天
今天是:2024年10月27日(星期日)
2021年10月27日 | #51单片机#数码管静态与动态显示
2021-10-27 来源:eefocus
数码管的静态显示与动态显示
学习数码管的静态与动态显示,首先要清楚,同一个时刻,单片机只能使能一个数码管。
动态显示:轮流点亮数码管,利用人眼的视觉暂留现象,造成多个数码管被点亮的视觉体验。
静态显示:可理解为非动态显示,即不会轮番点亮数码管。在多个数码管的显示中,静态显示的意义不大。
记住:100Hz无闪烁!!!
只要刷新频率大于100Hz,即刷新时间小于10ms,就可以做到无闪烁,这也是动态扫描的硬性指标。
静态显示的演示代码:
#include //数码管静态显示 unsigned char code LedChar[10]={//数码管显示的数字0~9 0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90}; unsigned char cnt = 0; unsigned char sec = 0; sbit DigitalTube = P1^0;; void main() { //点亮数码管 DigitalTube = 0; //设置定时器 TMOD = 0X01; TH0 = 0XB8; TL0 = 0X00; TR0 = 1; while(1) { P0 = LedChar[sec]; if(TF0 == 1) { TF0 = 0; TH0 = 0XB8; TL0 = 0X00; cnt++; if(cnt>=50) { cnt = 0; sec++; if(sec>=10) { sec = 0; } } } } } 动态显示的演示代码 #include //数码管动态显示 unsigned char code LedChar[10]={//数码管显示的数字0~9 0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90}; unsigned char flag ; sbit DigitalTube1 = P1^0; sbit DigitalTube2 = P1^1; void main() { TMOD = 0X01; TH0 = 0Xe7b8; TL0 = 0X0000; TR0 = 1; flag = 0; while(1) { if(flag == 0) { DigitalTube1 = 0; DigitalTube2 = 1; P0 = LedChar[1]; } else if(flag == 1) { DigitalTube1 = 1; DigitalTube2 = 0; P0 = LedChar[2]; } if(TF0 == 1) { TF0 = 0; TH0 = 0Xe7b8; TL0 = 0X0000; flag = !flag; } } } 动态显示效果图:
史海拾趣
|
1、输入端与输出端的边线应避免相邻平行, 以免产生反射干扰。必要时应加地线隔离;两相邻层的布线要互相垂直,平行容易产生寄生耦合。 2、地线>电源线>信号线,通常信号线宽为:8mil~12mil;电源线为50mil~100mil。对数字电路 ...… 查看全部问答> |
|
EVC中是不是不支持settimer的SLIDER_TIMER参数?? EVC中是不是不支持settimer的SLIDER_TIMER参数?? mSliderTimer = SetTimer(SLIDER_TIMER, 100, NULL); 报错是:error C2065: \'SLIDER_TIMER\' : undeclared identifier… 查看全部问答> |
|
晚上回家测试波形是否正确, 软仿好向没问题了!整个算法一次耗时,4.125us,在10KHz的PWM时占用CPU资源4.125%,硬件是可能更长一点儿,晚上在报告.执行的算法: 模拟的角度发生器, 电压变化自补尝 &nbs ...… 查看全部问答> |
|
报名参与:『ADI实验室电路DIY大赛』正式启动!https://bbs.eeworld.com.cn/thread-293726-1-1.html ADI实验室电路品种繁多,涉及面很广,如何选择合适的DIY项目可能是件容易令人困扰的事,但深究起来,其实可玩性是很大的,从今天开始,我将陆续 ...… 查看全部问答> |
|
大家帮看看为什么DeviceIoControl访问OID_802_11_BSSID_LIST老是失败 如题,下面一段程序中,DeviceIoControl访问OID_802_11_BSSID_LIST老是失败(见下面红色),也就是说bResult一直等于0;为什么?请教牛人!!!可能的问题出现在哪?为什么第二个DeviceIoControl失败?#include \"stdafx.h\"#include <windows.h ...… 查看全部问答> |




