ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:597.65KB ,
资源ID:17275876      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-17275876.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(课程设计报告51单片机数字时钟.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

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

1、课程设计报告51单片机数字时钟课程设计报告-51单片机数字时钟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秒的误差。5 加上“

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

5、次从而形成秒,秒计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秒时,对“秒”清零,同时“分”加一。5 按键

9、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=2.00

10、0646-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 0000H LJMP START ORG 000BH LJMP INIT0START: MOV P0,#00H MOV P2,#0FFH MOV R0,#70H ;主程序开始 MOV R7,#0DHINIT: MOV R0,#00H INC R0 DJNZ R7,INIT MOV TMOD,#01H ;选择定时器/计数

13、器T0的方式1 MOV TL0,#0B0H ;对低位赋初值 MOV TH0,#03CH ;高位赋初值 SETB EA ;开中断 SETB ET0 SETB TR0;T0计时开始START1: LCALL SCAN LCALL KEYSCAN SJMP START1DL1MS: MOV R6,#64H ;延时1子程序,延时0.5msDL1: MOV R7,#19HDL2: DJNZ R7,DL2 DJNZ R6,DL1 RET DL20MS: ACALL SCAN ;延时20ms子程序 ACALL SCAN ACALL SCAN RET ;数码管显示程序开始 SCAN: MOV A,78H MO

14、V B,#0AH DIV AB ;时间秒的十位送给A,时间秒的个位送B MOV 71H,A ;时间秒要显示的十位 MOV 70H,B ;时间秒要显示的个位 MOV A,79H MOV B,#0AH DIV AB ;时间分的十位送给A,时间分的个位送B MOV 73H,A ;时间分要显示的十位送地址 MOV 72H,B ;时间分要显示的个位送地址 MOV A,7AH MOV B,#0AH DIV AB ;时间时的十位送给A,时间时的个位送B MOV 75H,A ;时间时显示的十位送地址 MOV 74H,B ;时间时要显示的个位送地址 MOV A,7BH MOV B,#7H DIV AB ;星期几

15、传给B MOV 76H,#10;连字符显示 MOV 77H,B;星期几显示 MOV R1,#70H MOV R5,#80H MOV R3,#08HSCAN1: MOV A,R5 ;数码管的显示程序 CPL A MOV P2,A MOV A,R1 MOV DPTR,#TAB MOVC A,A+DPTR ;对字段表取值显示 MOV P0,A LCALL DL1MS;延时程序 INC R1 MOV A,R5 RR A MOV R5,A DJNZ R3,SCAN1 MOV P2,#0FFH MOV P0,#00H RET ;09和-的字段表TAB: DB 3FH,06H,5BH,4FH,66H,6DH

16、,7DH,07H,7FH,6FH,40H;定时/计数器T0中断程序INIT0: PUSH ACC PUSH PSW CLR ET0 CLR TR0 MOV TL0,#0B0H MOV TH0,#03CH SETB TR0 INC 7CH MOV A,7CHCJNE A,#14H,OUTT0 ;50ms是否到20次,没有到就继续执行50ms的延时 MOV 7CH,#00 INC 78H MOV A,78HCJNE A,#3CH,OUTT0 ;一秒的延时是否计到60次,没有就继续执行 MOV 78H,#00 INC 79H MOV A,79H CJNE A,#3CH,OUTT0 ;一分的延时是否计

17、到60次,没有就继续执行 MOV 79H,#00 INC 7AH MOV A,7AH CJNE A,#18H,OUTT0 ;60分钟的延时是否计到24次,没有就 MOV 7AH,#00 INC 7BH MOV A,7BH CJNE A,#7H,OUTT0; 24小时的延时是否计到7次,没有就 MOV 7BH,#00HOUTT0:SETB ET0 ;启动定时器T0 POP PSW POP ACC RETI ;按键处理程序KEYSCAN:CLR EA JNB P1.0,KEYSCAN0 ;P1.0有按键按下则跳转到子程序 JNB P1.1,KEYSCAN1 ;P1.1有按键按下则跳转到子程序 JN

18、B P1.2,KEYSCAN2 ;P1.2有按键按下则跳转到子程序KEYOUT: SETB EA RETKEYSCAN0:LCALL DL20MS ;20ms的延时消抖 JB P1.0,KEYOUTWAIT0: JNB P1.0,WAIT0 ;判断按键是否松手, 松手就往下执行程序 INC 7DH MOV A,7DH MOV B,#3 DIV AB MOV 38H,B SJMP KEYOUTKEYSCAN1:LCALL DL20MS ;按键加一的程序 JB P1.1,KEYOUTWAIT1: JNB P1.1,WAIT1MOV A,38H CJNE A,#00H,KSCAN11 ;如果功能键按

19、下则对星期加一调整INC 7BH ; MOV A,7BH CJNE A,#7H,KEYOUT MOV 7BH,#00 SJMP KEYOUTMOV A,38HKSCAN11: CJNE A,#01H,KSCAN12 ;如果功能键按下则对时加一调整INC 7AH ; MOV A,7AH CJNE A,#24,KEYOUT MOV 7AH,#00 SJMP KEYOUT MOV A,38HKSCAN12: INC 79H ; MOV A,79H CJNE A,#60,KEYOUTMOV 79H,#00 SJMP KEYOUTKEYSCAN2:LCALL DL20MS ;按键减一的程序 JB P1.

20、2,KEYOUTWAIT2: JNB P1.2,WAIT2 MOV A,38H CJNE A,#00H,KSCAN21 ;如果功能键按下则对星期减一调整DEC 7BH ; MOV A,7BH CJNE A,#0FFH,KEYOUT MOV 7BH,#6 SJMP KEYOUT MOV A,38HKSCAN21: CJNE A,#01H,KSCAN22 ;如果功能键按下则对时加一调整DEC 7AH ; MOV A,7AH CJNE A,#0FFH,KEYOUT MOV 7AH,#23 SJMP KEYOUTKSCAN22: DEC 79H ; MOV A,79H CJNE A,#0FFH,L1 MOV 79H,#59L1: AJMP KEYOUTKEYSCAN3: LCALL DL20MS ;延时消抖程序JB P1.3,L1WAIT3: JNB P1.3,WAIT3 ;判断是否放开按键MOV A,78HCJNE A,#1EH,KK1MOV 78H,3BH;INC 79hAJMP KEYOUT KK1:CLR 78H AJMP KEYOUT END

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2