欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:17275876       资源大小:597.65KB        全文页数:18页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    课程设计报告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


    注意事项

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

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开