【摘要】:在中断处理子程序中,除了重新设置初值外,通过变量t确定是否到达1s。图6-5 分、秒数码管显示下面,我们在上述程序的基础上再增加2个按钮,用以设置分和秒的初值。在主程序中,增加外部中断的设置:完整的程序请读者自己完成,并进行编译、加载和仿真运行,图6-6所示为仿真显示用按钮调节分、秒数码管显示。
以上我们学习了定时器的原理,并实现了1s定时功能。与外部中断相比,多了工作方式设置和定时器初值计算设置。定时/计数的中断编号是1和3。
下面,我们就将定时计数功能用到数码管显示中来。其实,就是把自动加数的时间间隔改为1s,就是1s数字加1。这样,就需要在程序中加上定时器设置和中断处理子程序,原理图还是本章第2节的电路不变。我们在这个电路基础上显示时间的变化,前2位表示分钟,后2位表示秒。从0分0秒开始计时,逢60进1,每秒变化一次。程序如下:
这个程序的主程序在一开始设置了定时器的设置,在无限循环中只有显示4位数码管的工作,所以,程序很简洁,数码管的显示也没有抖动、闪烁现象。在中断处理子程序中,除了重新设置初值外,通过变量t确定是否到达1s。到t=20时,即1s时间到,先给秒位加1,若秒位到达60,则清零秒变量,并给分位加1,同样,分位到达60也要清零。最后,分离4位数字,放入数组供输出,分、秒数码管显示如图6-5所示。
图6-5 分、秒数码管显示
下面,我们在上述程序的基础上再增加2个按钮,用以设置分和秒的初值。利用前面外部中断的方法,当按钮1按下,就增加分的数。当按钮2按下,就增加秒的数。(www.xing528.com)
按钮1接到P3.2/INT0引脚,按钮2接到P3.2/INT1引脚,另一端接地。因为,这两个引脚是系统规定的外部中断引脚外部中断0和外部中断1。
在主程序中,增加外部中断的设置:
完整的程序请读者自己完成,并进行编译、加载和仿真运行,图6-6所示为仿真显示用按钮调节分、秒数码管显示。
图6-6 用按钮调节分、秒数码管显示
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。