arduino用时钟中断方式的4位数码管动态显示

本文介绍了如何使用arduino的时钟中断来实现4位数码管的动态扫描显示,以保证显示频率大于25帧/秒,避免抖动。通过设置定时器中断间隔为5ms,程序详细展示了如何连接和编程控制4位共阴数码管,允许在主循环中使用delay函数而不会影响显示效果。
摘要由CSDN通过智能技术生成

    一般我们在arduino开发板上显示数字,通常采用多位数码管进行显示,而多位数码管实际是采用“动态扫描显示”的方法进行显示,即依次显示第1位数码管、第2位数码管、第3位数码管、第4位数码管……此方法是利用人眼的视觉残留,当扫描显示的频率大于25帧/秒,我们看到的就是每个数码管同时都在显示。目前大多数arduino的样本程序都是在主循环中不断地进行循环显示,但这样的做法有一个很大问题。如果主循环中的一次循环需要运行较长时间(超过40ms),那显示频率就会低于25帧/秒,从而看到的显示是抖动的,甚至内容是跳跃的。

    为保证显示频率大于25帧/秒,我们可以采用arduino的时钟中断来进行“动态扫描显示”。首先要设置合适的时钟中断间隔,每次中断显示一位数码管,以及25帧/秒的最低显示要求,中断时间间隔必须小于10ms(1000ms/4/25),为提高显示质量,本程序采用了中断间隔为5ms。

    本次实验采用arduino UNO,所用的4位数码管型号为共阴3641AS,下面是该管的引脚图:

    (我图片上传了半个小时也未完成,请各位自行上网查找该管引脚图吧)

   为接线方便,依次将3641AS的1到12引脚接到arduino的D2到D13,实际接线图如下:

    (我图片上传了半个小时也未完成,各位只要将3641AS的1到12引脚接到arduino UNO的D2到D13这12个IO口即可)

    完整程序(该程序经过测试)如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值