基于单片机的数字时钟课程设计_第1页
基于单片机的数字时钟课程设计_第2页
基于单片机的数字时钟课程设计_第3页
基于单片机的数字时钟课程设计_第4页
基于单片机的数字时钟课程设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业目 录 TOC o 1-3 h z u 第一章 选题背景 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。目前,单片机正朝着高性能和多品种

2、方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。单片机模块中最常见的是数字时钟,数字时钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。数字时钟是采用数字电路实现对时、分、秒数字显示的

3、计时装置,广泛用于个人家庭、车站、码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字时钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字时钟及扩大其应用,有着非常现实的意义。 课程设计是本课程教学中极为重要的实践性教学环节,它不但起着提高本课 程教学质量、水平和检验学生对课程内容掌握程度的作用

4、,而且还将起到从理论过渡到实践的桥梁作用。因此,必须认真组织,周密布置,积极实施,以达到下述教学目的。 1通过课程设计,使学生进一步巩固、深化和扩充在单片机原理及相关课程方面的基本知识、基本理论和基本技能,达到培养学生独立思考、分析和解决实际问题的能力。 2通过课程设计,使学生养成严谨科学、严肃认真、一丝不苟和实事求是的工作作风,达到提高学生基本素质的目的。 3.通过课程设计,让学生独立完成利用单片机实现某一实际控制系统的基本设计工作,达到培养学生综合应用所学知识和实际查阅相关设计资料的能力的目的。 4.通过课程设计,使学生熟悉设计过程,了解设计步骤,掌握设计内容,达到培养学生设计电路、实现软

5、件编程和编写设计说明书能力的目的,为学生今后从事相关方面的实际工作打下良好基础。 1.2 课程设计要求 (1)根据设计课题的技术指标和给定条件,在教师指导下,能够独立而正确地进行方案论证和设计计算,要求概念清楚、方案合理、方法正确、步骤完整;(2)要求学生掌握单片机的设计内容、方法和步骤;(3)要求会查阅有关参考资料和手册等;(4)要求学会选择有关元件和参数;(5)要求学会绘制有关电路图和设计流程图;(6)要求学会编写设计说明书。系统方案与总体结构 系统采用通用的80C51芯片,显示器为6个共阳极LED数码管,用1个BCD 7段译码器74LS47驱动数码管(74LS47的输入为BCD码,其输出

6、级为集电极开路输出,可直接驱动7段译码管,具有首尾消零等特点),用3-8译码器74LS138的输出作为动态扫描时数码管的选通信号,因为采用了上述两个芯片,所以在对数码管进行扫描显示时,只需要单片机的7条I/O线就能完成显示功能了。 选用P0.0-P0.3作为显示数据值的输出,连接在BCD 7段译码器74LS47的BCD码输入端,P0.4-P0.6作为扫描值的输出连接在3-8译码器74LS138的输入端(74LS138的A、B、C),因此,写程序时应以P0口高4位为位扫描值,低4位为显示数据值(分离BCD码)。由于LED数据管点亮时耗电量较大,因此使用了排阻作为电源驱动输出,以保证数码管的正常亮

7、度。单片机的P1.0-P1.5口分别接在S1-S6 6个按键上,以控制“时”,“分”,“秒”的调整。时间以24小时为一个周期,数字时钟钟的格式为:XX XX XX,由左向右分别为:时、分、秒。完成显示由秒加1,一直加1至59,再恢复为00;分加1,一直加1至59,再恢复00;时加1,一直加1至23,再恢复00。* 按键功能* 1.启动时,数字时钟从23:59:00 开始自动计时; 2.按键S1控制对“时”的调整,每按一次时计数值加1; 3.按键S2控制对“分”的调整,每按一次分计数值加1; 4.按键S3控制对“秒”的调整,每按一次秒计数值加1; 5.按键S4控制对“时”的调整,每按一次时计数值

8、减1; 6.按键S5控制对“分”的调整,每按一次分计数值减1; 7.按键S6控制对“秒”的调整,每按一次秒计数值减1。 4.1 数字时钟框图设计图1 数字时钟框图(2)共阴极接法。把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。每个发光二极管的阳极通过电阻与输入端相连。当阳极端输入高电平时,段发光二极管就导通点亮,而输入低电平时则不点亮。在本设计中所采用的是共阴极LED数码显示器,其引脚排列如图7所示:图7 LED数码显示器两种连接方法图4.3 数字时钟工作原理图4.3.1 数字时钟电路总图图8数字时钟电路总图 图9复位电路原理图当RST引脚高电平到时,单片机复位。RST/VPD端

9、的高电平,若直接由启动瞬间产生,则为启动复位,若通过按动按钮产生高电平复位称手动复位。图中,上电时,接通电源,电容器C相当于瞬间短路,+5V加到了RST/VPD端,该高电平使8051全机复位。若运行过程中,需要程序从头执行,只需按动按钮S,则直接把+5V加到了RST/VPD端,从而复位。显然,该电路即可以上电复位,也可以手动复位,是常用复位电路之一。4. 图12 LED数码管硬件电路原理图由于电路设计得极其巧妙,许多功能都可以由硬件完成,因此软件设计就比较简单了。下面介绍软件设计的要点:主程序:首先进行初始化,设置数字时钟的计时初值为23:59:00,启动T0进行50ms定时,且允许T0中断。

10、然后检测S1-S6是否按下,当按键S1-S6按下时,转入时、分、秒计数值的调整程序,系统主程序流程图如图13所示。图13 系统主程序流程图定时器T0中断子程序:中断服务子程序的作用是进行时、分、秒的计时与显示。定时器T0用于定时,定时周期设为50ms,中断累计20次(即1s)。定时器T0中断服务程序流程图如图14所示。图14定时器T0中断服务程序流程图时、分、秒计数值调整子程序TIME:时间计数单元分别在40H(s),41H(min),42H(h)内存单元中,在计数单元中采用组合BCD码计数。TIME子程序的作用是当满1秒时,对秒计数单元进行加1操作,满60向分进位;对分计数单元进行加1操作,

11、满60向时进位;对时计数单元进行加1操作,满24清零。显示子程序VIEW:VIEW子程序的作用是分别将时间计数单元40H(s),41H(min),42H(h)中的十进制时间值(组合BCD码)转化为个位和十位(分离BCD码)存放在显示缓冲区中,显示缓冲区地址为30H-35H。其中30H-31H存放秒数据,32H-33H存放分数据,34H-35H存放时数据。由于每一个地址单元内均为分离BCD码,用BCD一个7段译码器74LS47直接进行译码,因此不需要软件方式对BCD码数据进行译码。扫描子程序SCAN:SCAN子程序的作用是把显示缓冲区中的数据依次送往显示器显示。把扫描值作为高4位,显示数据值作为

12、低4 位,输出P0口,以完成显示,因为采用了3-8译码器74LS47作为扫描输出,所以用36H单元存放扫描指针,即36H中存放的是数码管的序号,显示时,只需取出30H-35H某一地址中的数据,并从P0口的低4位输出,同时P0口的高4位作为扫描值输出,就能保证数码管的正常工作。 *主程序* ORG 0000H LJMP START ORG 000BH LJMP TT0 ORG 0050H START: MOV SP,#70H MOV 36H,#00H ;(36H)为扫描指针 MOV 40H,#00H ;秒控制 MOV 41H,#59H ;分控制 MOV 42H,#23H ;时控制 MOV 30H

13、,#00H MOV 31H,#00H ;显示秒 MOV 32H,#09H MOV 33H,#05H ;显示分 MOV 34H,#03H MOV 35H,#02H ;显示时 MOV TMOD,#01H ;定时器T0工作方式设定 MOV TL0,#0B0H ;设置定时器T0低4位初值 MOV TH0,#3CH ;设置定时器T0高4位初值 MOV IE,#82H ;闭合EA,ET0 MOV 50H,#20 ;定时1秒循环次数 SETB TR0 LOOP: JB P1.0,N2 ;S1按下时加1 CALL DE ;消除抖动 MOV A,42H ADD A,#01H DA A MOV 42H,A CJN

14、E A,#24H,N1 MOV 42H,#00HN1: JNB P1.0,$ CALL DEN2: JB P1.1,N4 ;S2按下分加1 CALL DE MOV A,41H ADD A,#01H DA A MOV 41H,A CJNE A,#60H,N3 MOV 41H,#00HN3: JNB P1.1,$ CALL DEN4: JB P1.2,N6 ;S3按下秒加1 CALL DE MOV A,40H ADD A,#01H DA A MOV 40H,A CJNE A,#60H,N5 MOV 40H,#00HN5: JNB P1.2,$ CALL DEN6: JB P1.3,N8 ;S4按下

15、时减1 CALL DE MOV R7,34H CJNE R7,#00H,N60 MOV R6,35H CJNE R6,#00H,N61 MOV 42H,#23H JMP N7N60: MOV A,34H DEC A MOV 34H,A MOV A,35H SWAP A ADD A,34H MOV 42H,A JMP N7N61: MOV 34H,#09H MOV A,35H DEC A SWAP A ADD A,34H MOV 42H,AN7: JNB P1.3,$ CALL DEN8: JB P1.4,N10 ;S5按下分减1 CALL DE MOV R7,32H CJNE R7,#00H,

16、N80 MOV R6,33H CJNE R6,#00H,N81 MOV 41H,#59H JMP N9N80: MOV A,32H DEC A MOV 32H,A MOV A,33H SWAP A ADD A,32H MOV 41H,A JMP N9N81: MOV 32H,#09H MOV A,33H DEC A SWAP A ADD A,32H MOV 41H,AN9: JNB P1.4,$ CALL DEN10: JB P1.5,N11 ; S6按下秒减1 CALL DE MOV R7,30H CJNE R7,#00H,N100 MOV R6,31H CJNE R6,#00H,N101

17、MOV 40H,#59H JMP N11N100: MOV A,30H DEC A MOV 30H,A MOV A,31H SWAP A ADD A,30H MOV 40H,A JMP N11N101: MOV 30H,#09H MOV A,31H DEC A MOV 31H,A SWAP A ADD A,30H MOV 40H,AN11: JNB P1.5,$ CALL DE *T0中断服务子程序*TT0: MOV TH0,#3CH MOV TL0,#0B0H PUSH ACC PUSH PSW DJNZ 50H,TINT0 CALL TIME CALL VIEWTINT0: CALL SC

18、AN POP ACC POP PSW LJMP LOOP*显示扫描子程序*SCAN: MOV R0,#36HSCAN0: MOV A,R0 ADD A,#30H ;A加30H即为显示缓冲区地址 MOV R1,A MOV A,R0 SWAP A ORL A,R1 MOV P0,A ;P0高4位为扫描值,低4位为显示数据值 CALL DELAY INC R0 CJNE R0,#06H,SCAN0 MOV R0,#00H RET*时、分、秒计数值调整子程序*TIME: MOV A,40H ADD A,#01H DA A MOV 40H,A CJNE A,#60H,TTI MOV 40H,#00H M

19、OV A,41H ADD A,#01H DA A MOV 41H,A MOV A,41H CJNE A,#60H,TTI MOV 41H,#00H MOV A,42H ADD A,#01H DA A MOV 42H,A CJNE A,#24H,TTI MOV 42H,#00HTTI: RET*向显示缓冲区写数据*VIEW: MOV A,40H ;30H为显示缓冲区首地址 ANL A,#0FH MOV 30H,A MOV A,40H SWAP A ANL A,#0FH MOV 31H,A MOV A,41H ANL A,#0FH MOV 32H,A MOV A,41H SWAP A ANL A,

20、#0FH MOV 33H,A MOV A,42H ANL A,#0FH MOV 34H,A MOV A,42H SWAP A ANL A,#0FH MOV 35H,A RET*延时子程序*DELAY: MOV R7,#65 DJNZ R7,$ RETDE: MOV R4,#10 ;延时5msDE1: MOV R5,#249 DJNZ R5,$ DJNZ R4,DE1 RET END一个星期的单片机课程设计很快就结束了,在这一周当中,虽然开始有点困难,但是经过努力学习,合理地进行设计安排,我终于顺利地完成了本次单片机课程设计,同时也学到了很多东西。 在本次课程设计中,我通过动手实践操作,进一步学习和掌握了单片机原理的有关知识,特别是程序的编程方面,加深了对单片机原理及应用技术的认识,进一步巩固了对单片机知识的理解,掌握简单单片机应用系统的设计、制作的方法。在设计时根据课题要求,复习相关的知识,查询相关的资料。根据实验条件,找到适合的方案,找到需要的元器件及工具,进行实验。这次的单片机课程设计重点是通过实践操作和理论相结合,提高动手实践能力,提高科学的思维能力,更在一周的时间了解了更多的有关单片机的知

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论