为什么我的数码管动态显示总是一闪一闪的?

2025-10-21 03:02:26   世界杯中国广告

社区

单片机/工控 帖子详情 为什么我的数码管动态显示总是一闪一闪的? qq_30685191 2016-05-16 08:12:13 是一个M0的单片机,其他引脚配置代码我就不放了,主程序怎么让它一直显示,又能定时?

int main()

{

LPC_GPIO2->DIR |=0XFFF;

T32B1_Init();

while(1)

{ T32B1_DelaymMs(500); //定时0.5s

counter++;

Display(counter);

}

...全文

5451 9 打赏 收藏 为什么我的数码管动态显示总是一闪一闪的? 是一个M0的单片机,其他引脚配置代码我就不放了,主程序怎么让它一直显示,又能定时? int main() { LPC_GPIO2->DIR |=0XFFF; T32B1_Init(); while(1) {T32B1_DelaymMs(500); //定时0.5s counter++; Display(counter); } 复制链接

扫一扫 分享 转发到动态 举报

写回复 配置赞助广告取 消

确 定

用AI写文章 9 条回复 切换为时间正序 请发表友善的回复… 发表回复 打赏红包 需支付: 0.00 元 取 消 确 定 niepangu 2016-06-21 打赏举报 回复 延时时间太长 ,改一下刷新的快一点吧 玉怀一捧雪 2016-06-17 打赏举报 回复

count = 0;

while(1)

{

T32B1_DelaymMs(50); //定时0.05s

counter++;

Display(counter/10);

if(count >= 90)

count = 0;

}

w1204011028 2016-05-25 打赏举报 回复 数码管动态显示时延时不宜过长。可用定时器每隔10ms刷新一次。 rushbrush 2016-05-25 打赏举报 回复 刷新率保持60 ~ 100HZ。过快过慢,都会有闪烁感。 xiexieken 2016-05-24 打赏举报 回复 你延时过长了,第一,不管你要显示什么,一般你都要以50Hz以上的频率刷新(<20ms的时间不断显示);第二,当你要显示不同的内容时,再调用函数更换内容。可以这样做:

int main()

{

int times=0;

LPC_GPIO2->DIR |=0XFFF;

T32B1_Init();

while(1)

{

T32B1_DelaymMs(20); //定时20ms

if(25<=times++) //25*20ms=0.5s

{

times=0;

counter++;

}

Display(counter);

} fly 100% 2016-05-24 打赏举报 回复 不停的刷新他 胧霖 2016-05-22 打赏举报 回复 2 就像楼上说的,可以将数码管显示放到定时器中断函数中,这样就既可以定时,又不会出现数码管闪烁,比如:

void Timer0_ISR(void) interrupt 1

{

static tmp = 0;

TH0 = (65536 - 50000) / 256;

TL0 = (65536 - 50000) / 256;

Display(counter);

tmp++;

if (10 == tmp)

{

tmp = 0;

counter++;

}

} abc138929 2016-05-19 打赏举报 回复 可以在定时的0.5s内一直让它执行显示函数 LubinLew 2016-05-17 打赏举报 回复 单片机不都自带定时器,用中断服务来定时。

延时时间太长,自然一闪一闪 数码管显示消抖 数码管的显示以及消抖实验原理以及程序的编写调试,如何实现数码管的显示原理。 数码管LED显示说明书 数码管LED显示说明书进口的数码管LED显示说明书进口的 基于89C51和C0809的AD转换,数码管显示。 初学者必学的AD转换电路以及C程序。本电路基于89C51单片机,以及经典转换模块ADC0808和数码管显示的PROTUES电路仿真图以及对应的利用延迟函数或者中断函数实现的C程序。 LED经典动态显示程序 本程序通过P0口接一片8路反向缓冲器74LS240驱动LED的段选信号,P2.0-P2.4口作LED的位选输出口,

;// 使用7406反向驱动电路作位选信号驱动口.6个LE数码管的共阴端与7406的输出端对应相连.6个数码

;// 管的7条段选线与74LS240输出对应相连.

;// 在这种显示电路中,逐位轮流点亮各个LED,每一位点亮1ms,在5ms延时后点亮下一个LED(10ms仍有闪

;// 烁现象),重复不止.这样利用人的视觉暂留,好像6个LED是同时点亮的,并不觉察有闪烁现象.

;// 本程序可通过改变前面的宏定义来选择不同的口线连接片选信号和段选信号.并且可以通过增加移位

;// 显示程序部分来扩展显示位数.也可以将加1指令改为减1指令及改变R2的初值来实现逆序循环显示. 单片机C语言源码400例.zip 1. 单个数码管显示效果

2. 按键控制单个数码管显示

3. 单个数码管指示逻辑电平

4. 8位数码管显示其中之一

5. 8位数码管静态显示其中之二

6. 8位数码管动态扫描显示

7. 8位数码管动态扫描原理演示

8. 数码管显示动态数据

9. 6-9累加

10. 79-99累加

11. 89-999累加

12. 29-9999累加

13. 30-9累减

14. 31-99累减

15. 32-999累减

16. 33-9999累减

17. 显示小数点

18. 数码管消隐

19. 数码管递加递减带消隐

20. 数码管左移

21. 数码管右移

22. 数码管右移1

23. 数码管右移2

24. 数码管循环左移

25. 数码管循环右移

26. 数码管循环右移1

27. 数码管循环右移2

28. 数码管闪炼

29. 数码管局部闪炼

30. 定时器0

31. 定时器1

32. 定时器2

单片机/工控

27,516

社区成员

28,799

社区内容

发帖 与我相关 我的任务 单片机/工控 硬件/嵌入开发 单片机/工控 复制链接

扫一扫 分享 确定 社区描述 硬件/嵌入开发 单片机/工控 社区管理员

加入社区

获取链接或二维码

近7日

近30日

至今

加载中

查看更多榜单

社区公告

暂无公告 试试用AI创作助手写篇文章吧

+ 用AI写文章

感觉整个脖子好累是什么原因
苹果怎么设置sim卡