千位,百位组成两位数能被 4整除,则年数被 400 整除,为闰年。若十位,个位组成两位数能被 4整除,则年数能被 4整除,为闰年。 B.2.3 主程序主程序主要对按键进行扫描,以及判断定时和闹铃时间是否已到,若到则调用相关程序。 B.2.4 显示子程序 8个数码管轮流进行显示,分别显示 1ms ,依赖人的视觉暂留效应,给人以数码管持续高亮的错觉。日期的显示,秒表的显示,倒计时的显示,调闹铃,调定时的显示,闪烁的显示程序与以上的的扫描相似,有的以子程序的方式出现,通过子程序调用语句年份能否被 100 整除 NY 年份是否能被 4整除年份是否能被 400 整除 N N 平年闰年 Y Y是不是 2月是不是 2月 Y 日>=28 之后返回为 1N N Y 日>=29 之后返回为 1 若月份为 1、3、5、7、8、 10、12 月则调用 31天的程序若月份为 4、6、9、 11则调用 30天的程序 ACALL 调用;有点直接嵌套在相应的程序里面,顺序执行,或者用调转语句 AJMP 调用。 C 程序调试及仿真本程序通过 Keil 单片机开发平台实现程序的编译,链接,生成 HEX 文件。通过Keil 和硬件仿真平台 Proteus 的联合,可以将设计效果仿真出来,根据效果, 有目的的改变设计,优化程序。利用 Proteus 仿真实验过程截图: 普通时间显示模式仿真图,表示:星期一 9点10分38秒五,总结本文先从整体论述了设计电子钟的大致思路,然后再采用划分模块的方法,将硬件电路划分为开关电路,显示驱动电路,以及数码管电路等,而软件部分,则依据要实现的功能,划分为:闹钟的声音程序,时间显示程序,日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等。最后将各模块集成为一个整体,合成一个多功能的电子钟。附录: 延时程序: D_1MS: MOV R7,#2 D_5: