- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
PAGE4
PAGE9
实验六时、分、秒计时器的设计
一、实验目的
掌握数码管动态显示的基本方法;
掌握键盘按键控制的实现方法;
根据已知电路和设计要求在实验板上实现时、分、秒计时器。
二、实验内容
1、在STC89C52实验平台上实现时、分、秒时钟,4位数码管上显示分、秒或者时、分。
2、应用键盘控制时间的显示。键盘按键控制“切换时分、分秒显示”、“启动停止”、“加秒显示内容”、“加分显示内容”、“加时显示内容”。
3、根据已知电路和设计要求在PROTEUS平台仿真实现时钟系统。
三、实验原理
流程图如下所示:
开始显示单元清零T0、T1设为16位计数模式
开始
显示单元清零
T0、T1设为16位计数模式
允许T0中断
调用显示子程序
进入功能程序
按下键否?
否
是
开始
现场保护,重置初值
启动下一个50ms
50ms计数器加1
秒单元加1,50ms计数器清0,秒写入秒个位和秒十位
50ms计数器=20?
否
是
分单元加1,秒单元清0,分写入分个位和分十位
秒单元=60?
时单元加1,分单元清0,时写入时个位和时十位
分单元=60?
时单元清0
时单元=24?
中断返回
否
否
否
是
是
是
1、主程序流程图2、定时器/计数器T0中断服务程序流程图
5仿真分析
在ProteusISIS的80C51中载入程序生成的HEX文件,按开始符号运行,在数码管上观察程序运行结果,系统仿真结果如图5.1所示。
设计功能如下:
(1)、初始状态:未按键之前,上电,数码显示00-00-00。程序运行后,从秒针开始自动运行。当秒数到59后,下一秒自动变为00,分针变为01,以此类推。
(2)、调整状态:仿真运行过程中,按p0键,系统暂停,此时,继续按p0无效。第三次按p0,又开始,如此循环。
、设置状态:按下p0暂停后,按p1,则时针加一,按下p2,则时针减一;按两下p0,在按下p1,则分针加一,按下p2,则分针减一。
时间显示格式为:时分秒;
误差分析:实际程序到实验板中的电子钟显示存在一定的误差,误差来源可能为三个方面:第一,在程序运行过程中,时钟周期的不精确导致机器周期与理论值存在一定的差别;第二在中断一秒显示过程中,一些指令需要消耗一定的机器周期,使得一秒延时比实际要长;第三在键抖动的反应程度在运行中比较慢。
5.1实例仿真
总结
通过这次的课程设计我认识到我对单片机的知识学的太少了,对于书本上很多知识还不能灵活运用,都需要去巩固加强,我会在以后的学习中弥补我的不足。我也了解了80C51集成环境和PROTEUS仿真软件的使用,用此软件练习电子时钟的设计,不仅使我熟悉了软件的使用方法,而且复习了单片机编程的相关知识。在使用中,我体验到了单片机的神奇之处,也激发了我不少的兴趣,引领着我不断的探索单片机的未知世界。本次的课程设计,我也学到了一些更重要的东西,那就是如何从理论到实践的转化,怎样将所学到的知识运用于实践。大学的课堂只是在学习专业知识,而我们应当把所学的知识用到我们现实的生活中去。此次的的电子时钟设计给我奠定了一个实践基础,我会在以后的学习生活中磨练自己,使自己变得更加优秀。
在本次的设计中,特别感谢张老师和王老师的指导,在老师的讲解和指导下,我成功的解决了设计中的许多问题,也使我知道了认真的重要性。也感谢同学给我的帮助,没有他们的帮助,我一个人是无法完成的,他们让我明白了学问的真正含义。
OUTBITEQU08002H;位控制口
OUTSEGEQU08004H;段控制口
INCEQU08001H;键盘读入口
LEDBUFEQU60H;显示缓冲
HOUREQU40H
MINUTEEQU41H
SECONDEQU42H
C100USEQU43H
TICKEQU10000
T100USEQU256-50
LJMPSTART
ORG000BH
T0INT:PUSHPSW
PUSHACC
MOVA,C100US+1
JNZGOON
DECC100US
GOON:DECC100US+1
MOVA,C100US
ORLA,C100US+1
JNZEXIT
MOVC100US,#HIGH(TICK)
MOVC100US+1,#lOW(TICK)
INC
文档评论(0)