对时功能电子钟设计报告(编辑修改稿)内容摘要:

Y 序 序 ※附: 程序片段如下: S_SET BIT M_SET BIT H_SET BIT 保护现场 赋初值 秒值加 1 秒清 0 分加 1 分清 0 小时加 1 小时清 0 恢复现场 10 数是否到。 是否到 60秒。 是否到60 分。 是否到 24小时。 返回中断 SECOND EQU 30H MINUTEEQU 31H。 定义 MINUTE 为 31H 单元标号,分计数单元 HOUR EQU 32H。 定义 HOUR 为 32H 单元标号,时计数单元 TCNT EQU 34H。 定义 TCNT 为 34H 单元标号定时器 TO 计数 ORG 00H。 程序开始地址 SJMP START。 跳转到 START 执行 ORG 0BH。 定时器 TO 中断入口地址 LJMP INT_T0。 跳转到 INTTO 执行 START:MOV DPTR,TABLE。 指针指向 TABLE 首地址 MOV HOUR,0。 初始化秒计数单元 MOV MINUTE, 0。 初始化分计数单元 MOV SECOND,0。 初始化时计数单元 MOV TCNT,0。 初始化 T0 计数单元 MOV TMOD,01H。 工作方式 1 MOV TH0,(6553650000)/256。 定时 50 毫秒 MOV TL0,(6553650000)MOD 256 MOV IE,82H。 允许定时器 TO 中断 SETB TR0。 启动定时器 T0。 判断是否有控制键按下,是哪一个键按下 A1:LCALL DISPLAY。 跳转到 DISPLAY 执行 JNB S_SET,S1。 检查 口 电平 JNB M_SET,S2。 检查 口电平 JNB H_SET,S3。 检查 口 电平 LJMP A1。 返回 S1:LCALL DELAY。 去抖动 JB S_SET,A1。 确认 口电平 INC SECOND。 秒值加 1 MOV A,SECOND。 秒数值送入 A 比较 CJNE A,60,J0。 判断是否加到 60 秒 MOV SECOND,0。 SECOND 单元清零 LJMP K1。 转到 K1 执行 S2:LCALL DELAY。 长调用 DELAY 指令 JB M_SET,A1。 确认 口电平 K1:INC MINUTE。 分钟值加 1 MOV A,MINUTE。 分数值送入 A 比较 CJNE A,60,J1。 判断是否加到 60 分 MOV MINUTE,0。 秒单元清零 LJMP K2。 调用 K2 指令 S3:LCALL DELAY。 调用延时子程序 JB H_SET,A1。 确认。 口电平 K2:INC HOUR。 小时值加 1 MOV A,HOUR。 时数值送入 A 比较 CJNE A,24,J2。 判断是否加到 24 小时 MOV HOUR, 0。 时单元清零 MOV MINUTE, 0。 分单元清零 MOV SECOND,0。 秒单元清零 LJMP A1。 跳转到程序 A1。 等待按键抬起 J0: JB S_SET,A1。 调用 A1 指令 LCALL DISPLAY。 调用显示子程序 SJMP J0。 返回 J0 指令 J1: JB M_SET,A1。 数值比较 LCALL DISPLAY。 调用显示子程序 SJMP J1。 返回 J1 指。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。