电子时钟设计_课程设计(编辑修改稿)内容摘要:

,完成刷新计时缓冲区的功能。 系统使用 6MHz 的晶振,假设定时器 0 工作在方式 1,则定时器的最大定时时间为 ,这个值远远小于 1s。 因此本系统采用定时器与软件循环相结合的定时方法。 设定时器 0工作在方式 1,每隔 50ms 溢出中断一次,则循环中断 20 次延时时间是 1s,上述过程重复 60 次为 1 分,分计时 60次为 1小时,小时计时 24 次则时间重新回到 00: 00: 00。 因定时器 0工作在方式 1,则 50ms定时对应的定时器初值为: 65536- 50ms/2us=40536=9E58H,即 TH0=9EH, TH0=58H。 但应当指出: CPU 从响应 T0 中断到完成定时器初值重装这段时间,定时器 T0 并不停止工作,而是继续计数。 因此,为了确保 T0 能准确定时 50ms,重装的定时器初值必须加以修正,修正的定时器初值必须考虑到从原定时器初值中扣除计数器多计的脉冲个数。 由于定时器计数脉冲的周期恰好和机器周期吻合,因此修正量等于 CPU 从响应中断到重装完 TL0 为止所用的机器周期数。 CPU 响应中断通常要 3~8 个机器周期。 经过测试,定时器 0 重装的计数初值设为 9E5FH~9E67H,可以满足精度要求。 另外, MCS51 单片机只有二进制加法指令,而时间是按十进制递增,因此用加法指令后必须进行二 十进制转换。 计时模块流程图如下图所示。 11 保护现场 重装定时器初值 循环次数减 1 否 满 20次。 是 秒单元加 1 否 60s到。 是 秒单元清 0,分单元加 1 否 60分到。 是 分单元清 0,时单元加 1 12 否 24小时到。 是 时单元清 0 恢复现场 返回 计时模块流程图 六、 调试结果与必要的调试说明 调试的最后 结果,按下 3个开关键分别控制时分秒的逐次增加。 在调试的过程中,一般会遇到很多不同的错误。 我觉得好的方法是在编程的时候将不同的功能的程序区分开来,这样可以在发现那个功能发生错误或故障的时候能够快速的找到功能所对应的程 13 序所处的地方。 七、 使用说明 本项设计的电子时钟,具备普通时钟的基本功能即能够显示时,分,秒。 秒钟每 60 分钟进 1,分钟每 60 时钟进 1。 并具备调时功能,其中 K1 调节秒钟, K2调节分钟(从 0开始调), K3 调节时钟。 八、 程序清单 S_SET BIT。 数字钟秒控制位 M_SET BIT。 分钟控制位 H_SET BIT。 小时控制位 SECOND EQU 30H MINUTEEQU 31H HOUR EQU 32H TCNT EQU 34H ORG 00H SJMP START ORG 0BH LJMP INT_T0 START: MOV DPTR,TABLE MOV HOUR,0。 初始化 MOV MINUTE,0 MOV SECOND,0 14 MOV TCNT,0 MOV TMOD,01H MOV TH0,(6553650000)/256。 定时 50 毫秒 MOV TL0,(6553650000)MOD 256 MOV IE,82H SETB TR0。 ****************************************************。 判断是否有控制键按下 ,是哪一个键按下 A1: LCALL DISPLAY JNB S_SET,S1 JNB M_SET,S2 JNB H_SET,S3 LJMP A1 S1: LCALL DELAY。 去抖动 JB S_SET,A1 INC SECON。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。