课程设计报告-51单片机数字时钟.doc

上传人:s9****2 文档编号:543919981 上传时间:2024-01-18 格式:DOC 页数:14 大小:448.18KB
返回 下载 相关 举报
课程设计报告-51单片机数字时钟.doc_第1页
第1页 / 共14页
课程设计报告-51单片机数字时钟.doc_第2页
第2页 / 共14页
课程设计报告-51单片机数字时钟.doc_第3页
第3页 / 共14页
课程设计报告-51单片机数字时钟.doc_第4页
第4页 / 共14页
课程设计报告-51单片机数字时钟.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《课程设计报告-51单片机数字时钟.doc》由会员分享,可在线阅读,更多相关《课程设计报告-51单片机数字时钟.doc(14页珍藏版)》请在金锄头文库上搜索。

1、Harbin Institute of Technology课程设计说明书(论文)课程名称: 课程设计1 设计题目: 数字日历钟表的设计 院 系:电信学院通信工程专业 班 级: 设 计 者: 学 号: 指导教师: 任广辉 设计时间:2012.5.12至2012.6.10 哈尔滨工业大学哈尔滨工业大学课程设计任务书 姓 名: 院 (系):电信学院 专 业: 通信工程 班 号: 任务起至日期: 2012 年 5 月 12 日至 2012 年 6 月 10 日 课程设计题目: 数字日历钟的设计 已知技术参数和设计要求:1 数码管显示:秒、分、时(可同时显示,也可轮换显示)2 能够设置时间,“设置按键

2、”数量不限,以简单合理易用为好。3 误差:1秒天(报告中要论述分析是否满足要求)扩展(优秀必作)1 设置校准键:当数字钟显示在“整点30秒”范围时,按动“校准键”,数字钟即刻被调整到整点,消除了30秒的误差。2 加上“星期”显示(可以预置),并可以对其进行设置。 其他要求:1 按动员老师的要求、课程设计报告规范进行设计2 不允许使用时数字钟表、日历专用IC电路。3 可以使用通用器件:模拟、数字、单片机、EPLD、模块电路等。4 设计方法不限。 工作量: 工作计划安排:1. 查阅资料: 2. 方案论证3. 设计、分析、计算、模拟调试、仿真、设计原理4. 撰写报告:课程设计要求、方案论证、原理论述

3、(原理框图、原理图)、分析、计算、仿真,PCB图的设计,误差分析、总结,参考文献等5. 上交课程设计论文2012-6-11前 同组设计者及分工: 指导教师签字_ 年 月 日 教研室主任意见: 教研室主任签字_ 年 月 日*注:此任务书由课程设计指导教师填写哈尔滨工业大学课程设计说明书(论文)数字日历钟的设计1课程设计要求1. 数码管显示:秒、分、时(可同时显示,也可轮换显示)2. 能够设置时间,“设置按键”数量不限,以简单合理易用为好。3. 误差:1秒天(报告中要论述分析是否满足要求)4. 设置校准键:当数字钟显示在“整点30秒”范围时,按动“校准键”,数字钟即刻被调整到整点,消除了30秒的误

4、差。5 加上“星期”显示(可以预置),并可以对其进行设置。2方案论证1. 通过单片机内部的计数/定时器,采用软件编程来实现时钟计数,一般称为软时钟,这种方法的硬件线路简单,系统的功能一般与软件设计相关,通常用在对时间精度要求不高的场合。2. 采用时钟芯片,它的功能强大,功能部件集成在芯片内部,具有自动产生时钟等相关功能,硬件成本相对较高;软件编程简单,通常用在对时钟精度要求较高的场合。3原理论述这里采用应用广泛的80C51单片机作为时钟控制芯片,利用单片机内部的定时/计数器T0 实现软时钟的目的。首先将T0设定工作于定时方式1,对机器周期计数形成基准时间(50ms),然后使用循环的程序结构使基

5、准时间计数20次从而形成秒,秒计60次形成分,分计60形成小时,小时计到24形成一天,天计到7形成一星期,再重新循环。最后通过数码管把它们的内容在相应的位置显示出来,达到时、分、秒计时的功能。此外还要实现对时间的调整功能,80C51的P1.0、P1.1、P1.2、P1.3外接四个独立按键,当按下P1.0按键时,根据按此键次数的不同,系统分别进入调“星期”、“小时”、“分”状态的功能;当按下P1.1按键时,对显示的数码管进行加一的功能;当按下P1.2按键时,对显示的数码管进行减一的功能,达到调整星期的目的。当按下P1.3按键时,系统进入调整“秒”状态的功能,如果此时大于30秒则直接清零“秒”显示

6、的数码管,同时对“分”显示的数码管加一;如果小于等于30秒则直接清零“秒”显示的数码管。同时设置了复位按键,当电路发生故障时,按下此键,可对所有的显示数码管进行清零,达到“复位”的目的。所设计方案的流程图如下4分析4.1 硬件部分采用7SEG-MPX8-CC 八个共阴二极管显示器来显示日期和时间。通过设置功能按键来实现调整日期和整点调时的功能。电路连接使用PCB,使电路连接简洁美观。4.2 软件部分(1) “时钟”基准时间由单片机内部的定时中断T0提供,考虑因素:定时时间是“秒”的整除数,且长短适宜。最长不能超过16位定时器的最长定时时间;最短不能少于中断服务程序的执行时间。基准时间越短,越有

7、利于提高时钟的运行精确度。基准时间定为0.05秒。(2) 用一个计数器对定时中断的次数进行计数,由基准时间为0.05秒知计数值为20即可实现 “秒”定时,同理进行“分”“时”定时,以及“星期”定时。5计算该部分主要是对51单片机内部定时中断T0的计时初值进行计算。该单片机使用的晶振为内部晶振,因此晶振频率为fosc=12MHz,机器周期为Tj=12/fosc=12/12106=1us。由上面分析可知,定时时间T=50ms定时初值为X=216-T/Tj=65536-50000=15536=3CB0H6. 仿真 6.1 数码管显示器结构“星期”、“小时”、“分”、“秒”显示单元如上图所示,上图显示

8、的时间为星期四的1点11分:43秒。对于“星期”显示,0代表星期天,1代表星期一,2代表星期二,3代表星期三,4代表星期四,5代表星期五,6代表星期六。6.2 各按键分布及功能介绍按键功能如下:1 按键1是用来选定“星期”、“小时”、“分”的调整。当不按或者按键次数是3的整数倍时,选定“星期”状态;当除以3余数为1次时,选定“小时”状态;当按除以3余数为2次时,选定“分”状态。2 按键2是对按键1选定的状态进行加一操作。3 按键3是对按键1选定的状态进行减一操作。4 按键4可以进行整点调时功能,当“秒”状态小于等于30秒时,直接对“秒”清零;当“秒”状态大于30秒时,对“秒”清零,同时“分”加

9、一。5 按键5是用来复位的,当电路发生故障时,按下此键,可以使整个电路恢复初始设置。6.3 对“星期”的调整通过调整“星期”、“小时”和“分”的状态,得到如下仿真图6.4 整点调时在16s时按下按键4,在运行12s后可以得到如下结果在35s时按下按键4,“分”加一,“秒”清零,19s后得到如下结果:7PCB图的设计8误差分析使用keil软件进行误差分析,使用debug进行调试,在计时1s处设置断点,当计数初值为3CB0H时,计时1s和计时2s的调试结果如下:计时1s调试结果计时2s调试结果由上表可知,计时1s调试结果为t1=1.000357s,计时2s调试结果t2=2.000646,t2-t1

10、=2.000646-1.000357=1.000289s,也就是1s会有T=289us的误差,可以通过调整计数初值来减小误差。单片机的机器周期Tj=1us,调整量,因而计数初值应改为3CBEH。这样,1s的误差就变为9us,一天的误差为,达到了要求。9. 总结由于大三逐渐接触专业课,但是仅仅停留在书本和考试上,而没有达到“知行合一”的地步。通过这次课程设计,使我体会到了数字电路和单片机这两门课程的重要性和实用性。而且我不仅了解了多种仿真软件以及他们的利弊,还对单片机的汇编语言程序进行了复习。 硬件部分,由于先前我们都没有操作过proteus之类的软件,所以一切从零开始,针对这次课程设计需要,查

11、询了可以用于硬件仿真的软件,有Multisim和proteus。由于Multisim的仿真性能很差,无法仿真单片机,因而选择preteus。然后通过各种渠道学习了proteus软件的基本操作、原理图的绘制修改、原件的封装以及原件集成库的创建。流程很简洁,过程很纠结。我们一步一个脚印地制作着,生怕哪个步骤出错而导致前功尽废。软件部分,由于学习过单片机这门课程,对汇编语言还是比较熟悉,但是过去编辑的程序很短,属于功能比较单一的程序。而这次课程设计的程序相对比较庞大,是一个艰巨的挑战。通过回顾51单片机的中断和定时器/计数器部分,将程序写出来了。然后就是使用keil软件进行调试,修改。最终得到了正确

12、的程序,本报告的程序绝对原创。感谢任老师的悉心指导,感谢学院给我们这次机会来做到“知行合一”。10参考文献1单片机原理与应用 宗成阁 编著2 单片机应用与仿真调试 严天峰 编著3模拟电子技术(第三版) 胡宴如 耿苏燕 编著4数字电子技术(第三版) 杨志忠 卫桦林 编著11. 程序ORG 0000HLJMP STARTORG 000BHLJMP INIT0START: MOV P0,#00HMOV P2,#0FFH MOV R0,#70H;主程序开始MOV R7,#0DHINIT:MOV R0,#00HINC R0DJNZ R7,INITMOV TMOD,#01H;选择定时器/计数器T0的方式1

13、MOV TL0,#0B0H;对低位赋初值MOV TH0,#03CH;高位赋初值SETB EA;开中断SETB ET0SETB TR0;T0计时开始START1:LCALL SCANLCALL KEYSCANSJMP START1DL1MS:MOV R6,#64H;延时1子程序,延时0.5msDL1:MOV R7,#19HDL2:DJNZ R7,DL2DJNZ R6,DL1RETDL20MS:ACALL SCAN;延时20ms子程序ACALL SCANACALL SCANRET ;数码管显示程序开始 SCAN:MOV A,78HMOV B,#0AHDIV AB ;时间秒的十位送给A,时间秒的个位送BMOV 71H,A;时间秒要显示的十位MOV 70H,B;时间秒要显示的个位MOV A,79HMOV B,#0AHDIV AB;时间分的十位送给A,时间分的个位送BMOV 73H,A;时间分要显示的十位送地址MOV 72H,B;时间分要显示的个位送地址MOV A,7AHMOV B,#0AHDIV AB;时间时的十位送

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号