基于单片机的数字钟.doc_第1页
基于单片机的数字钟.doc_第2页
基于单片机的数字钟.doc_第3页
基于单片机的数字钟.doc_第4页
基于单片机的数字钟.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

毕业(论文)设计基于单片机的数字钟院 系: 机电系 专 业: 电子信息工程技术 指导老师: 郭江涛 姓 名: 张莉 班 级: 08电信二 学 号: 0804110243 撰写日期: 2011年4月18日 商丘职业技术学院毕业(论文)设计任务书题目:基于单片机的数字时钟姓 名张莉学 号0804110243班 级08电信二班(论文)设计选题的来源、目的与意义:将所学内容与实际问题相结合,实现动手能力,巩固所学知识点(论文)设计的主要内容:本设计主要是利用AT89C51单片机设计24小时制数字钟,数字钟同时带有时间调整、闹铃、整点报时等功能。进度计划(进度时间、主要工作内容):三月初开始论文的准备,打算于4月末完成主要参考文献:1王沫楠.2007.单片机原理及应用.北京:中国计量出版社2于珍珠,赵娜,赵刚等.2007.基于51单片机的温度测量系统.单片机开发与应用.23(1-2):146-1483王沫楠.2007.单片机原理及应用.北京:中国计量出版社4李朝青.2008.单片机原理及接口技术(第3版).北京:北京航空航天大学出版社(论文)设计工作起讫日期: 2011 年 3 月 15日至 2011年 4月 28日指导教师(签名)专业教研主任(签名)摘 要 本设计主要是利用AT89C51单片机设计24小时制数字钟,数字钟同时带有时间调整、闹铃、整点报时等功能。利用汇编语言编写程序,通过proteus软件进行仿真验证设计。设计中还用到了外部晶振、四位、两位LED数码管作为时钟数字显示,外接两个按键作为调整。按下B2进入相应功能的调整,按下第一次为调整时钟的时,按下第二次为调整时钟的分,按下第三次为调整时钟的秒,按下第四次为设定闹钟的时,按下第五次为设定闹钟的分,这时会停止计时,显示屏只会显示相应调整的项,其它项熄灭,调整完后再按B2跳回正常计时。经过一系列的测试验证,设计能满足各项要求,经过长时间的运行测试程序都能正常地运行,没出现错误。可应在实际中应用,能满足日常时间显示的需要。关键字:24小时,数字钟,单片机,设计 ABSTRACT This design mainly using AT89C51 microcontroller design 24-hour digital clock, digital clock with time to adjust at the same time, alarm, hourly chime functions. Use of assembly language programming, by proteus simulation software design. Design also uses an external crystal, four, two LED digital tube, as the clock figures, the two keys as the external adjustment. Press the corresponding function into the adjustment B2 press for the first time to adjust the clock, press to adjust the clock for the second time points, press the third time for the adjustment of the clocks seconds, press the fourth time to set the alarm clock , press the fifth time to set the alarm points, then would stop the timer, adjust the display will show the items, other items off, jump back to the normal adjustment time after then B2. After a series of testing and certification, designed to meet the requirements, after a long run test program can run normally, no errors. Can be applied in practice, to meet the daily needs of the time display.Keyword 24 hours,A digital clock, SCM,Design.KEYWORDS:24 hours, a digital clock, microcontroller, design目 录 1、设计目的12、设计功能、要求13、硬件设计13.1、原理图设计13.2、器件清单23.3、各元器件作用说明23.4、工作过程说明24、软件设计24.1、设计思路24.2、工作原理图34.3、流程图34.4、程序清单55、仿真结果95.1、仿真环境说明95.2、程序编译结果95.3、软件仿真结果96、设计总结127、参考文献128、附件:电路图131、设计目的利用单片机设计一个数字时钟,加深对单片机的熟悉程度,把学习到的理论知识应用到实际中,把单片机的知识系统地联系起来,增强动手能力,为以后的设计、工作做准备。也是对这学期单片机的学习的一次检验。2、设计功能、要求数字钟要求能24小时制时间显示,可随时进行时间校对调整,整点报时以及闹钟功能。原理图设计要求符合项目的工作原理,接线要正确.图中所使用的元器件要合理选择,电阻,电容等器件要求标出相关参数,并通过绘图软件打印出原理图。原理图设计中简要说明设计目的,原理图中所使用的元器件功能在图中的作用,各器件的工作过程及顺序。程序设计中对程序总体功能及结构进行说明,对各子模块的功能以及各子模块之间的关系作较详细的说明画出工作原理图,流程图并给出程序清单。3、 硬件设计3.1、原理图设计原理图的设计比较简单,只需要有一个接好晶振的AT89C51单片机、LED显示屏、按键、蜂鸣器以及一些电阻就可以了。用P1口作为显示数字输出,P2.0P2.7口作为动态显示片选信号,P0.0作为声音信号输出,P3.2、P3.3接外中断信号,用于调整。蜂鸣器需要用三极管放大,接一5V电源发声。图1.电路原理图3.2、器件清单器件名称数值、型号数量原理图中标号电阻10k3R2-R4电容10uF1C1电容30pF2C2, C3单片机AT89C511U1三极管BSX201Q1蜂鸣器1LS18路电阻3001RN1晶振1CRYSTAL按键2B1,B2LED显示屏4位1D1LED显示屏2位1D23.3、各元器件作用说明电容C2, C3以及晶振CRYSTAL用来为单片机提供外部晶振。电阻R3、R4以及三极管Q1用于放大P0口的输出,提供给蜂鸣器足够大的信号电流。蜂鸣器用于整点报时、闹钟的声音信号输出。显示屏D1用于显示时和分;D2用于显示秒。按键B2用来设定调整功能,按下第一次为调整时钟的时,按下第二次为调整时钟的分,按下第三次为调整时钟的秒,按下第四次为设定闹钟的时,按下第五次为设定闹钟的分。按键B1用来调整,每按下一次为加一操作。3.4、工作过程说明正常显示:单片机中装入程序后,接通电源即显示屏显示0000 00,开始计时,D2显示屏每1秒加1,加到60分加1,D2显示回零,继续从0开始计时,分加到60时加1,时加到24回零,继续按规则计时。整点报时响铃一次,闹钟响铃两次。调整:按下B2进入相应功能的调整,按下第一次为调整时钟的时,按下第二次为调整时钟的分,按下第三次为调整时钟的秒,按下第四次为设定闹钟的时,按下第五次为设定闹钟的分,这时会停止计时,显示屏只会显示相应调整的项,其它项熄灭,调整完后再按B2跳回正常计时。4、 软件设计4.1、设计思路 主程序执行时钟的显示,利用动态显示,先显示时,然后分、秒,每一位中间隔着相应的延时,时分秒的数值分别用三个寄存器存储,主程序只需直接显示寄存器里内容即可。计时子程序由内部定时器中断程序完成,定时器定时50ms,每50ms中断一次,中断20次后即够一秒,存储秒的寄存器加1,加够60秒分加1,分加够60时加1,一直计算下去,实现24小时的计时。调整程序由两个外中断子程序配合完成,外中断1子程序用于设定调整的内容,以区分调整时钟的时、分、秒,以及设定闹钟的时、分。外中断0子程序用于对相应的调整项进行加1操作。整点报时功能只要在每次时钟的时加1的时候输出一声铃声就可以了,闹钟功能即要在每次计时的时候判断时钟的时、分时候与闹钟设定的时、分相同,若相同即响铃两声,不同即继续执行。程序的各部分以及一些功能在程序清单上也有标注。4.2、工作原理图定时器中断计时外中断程序调整主程序显示时钟 图2.工作原理图4.3、流程图开始 是 R4=4? 否 显示闹钟时 显示时钟时 显示闹钟分 显示时钟分 显示闹钟时显示时钟秒 显示时钟时图3.主程序流程图 中断响应 中断响应 否 否 是 R4=0? R4=6? R4加1 R4回0 否 是 是 R3减到0? 是 中断返回 秒加1 否 是 秒加到60? 图4.外中断1子程序流程图中断响应 是 分加1 否 秒回0 R4=1? 否 是 R0(时)加1 分加到60? 否 是 时加1 R4=2? 是 R1(分)加1 分回0 否 否 否 时加到24? R4=3? 是 是 R2(秒)加1 时回0 否 中断返回 R4=4? 是 R5(闹钟时)加1 图3.定时器中断0子程序流程图 否 R4=4? 是 R6(闹钟分)加1 中断返回 图4.外中断0子程序流程图4.4、程序清单 ORG 0000H AJMP MAIN ORG 0003H AJMP S0 ORG 000BH AJMP TIMER ORG 0013H AJMP S1 ORG 0030HMAIN: MOV R0,#00 ;存储时 MOV R1,#00 ;存储分 MOV R2,#00 ;存储秒 MOV R3,#20 ;中断定时50MS,2050定时一秒 MOV R4,#00 ;用于存储外中断1控制信号 MOV R5,#00 ;存储闹钟时 MOV R6,#00 ;存储闹钟分 MOV R7,#00 MOV DPTR,#TAB SETB IT1 ;设定外中断为边沿中断 SETB IT0 MOV IP,#05H ;外中断0、1优先级高,定时器低 MOV IE,#87H MOV TMOD,#01H ;模式1 MOV TH0,#3CH ;15536 50MS MOV TL0,#0B0H SETB TR0;= 主程序=DIS: CJNE R4,#04,NEXT ;大于等于4即转去显示闹钟调节NEXT: JNC DIS3 MOV A,R4 ;用于调闹钟时单独显示时 JZ D1 CJNE R4,#01,DIS1D1: MOV A,R0 ;显示时 MOV B,#10 DIV AB MOVC A,A+DPTR MOV P2,#80H MOV P1,A ACALL DELAY MOV A,B MOVC A,A+DPTR MOV P2,#40H MOV P1,A ACALL DELAYDIS1: MOV A,R4 ;用于调闹钟时单独显示分 JZ D2 CJNE R4,#02,DIS2D2: MOV A,R1 ;显示分 MOV B,#10 DIV AB MOVC A,A+DPTR MOV P2,#20H MOV P1,A ACALL DELAY MOV A,B MOVC A,A+DPTR MOV P2,#10H MOV P1,A ACALL DELAY DIS2: MOV A,R4 ;用于调闹钟时单独显示秒 JZ D3 CJNE R4,#03,DISD3: MOV A,R2 ;显示秒 MOV B,#10 DIV AB MOVC A,A+DPTR MOV P2,#08H MOV P1,A ACALL DELAY MOV A,B MOVC A,A+DPTR MOV P2,#04H MOV P1,A ACALL DELAY CJNE R7,#00,A1 ;判断闹钟信号是否满足 AJMP DIS3A1: MOV A,#0FFH ;闹钟响两声 MOV 60H,#02A2: MOV 61H,#50HA3: CPL A MOV P0,A ACALL DELAY DJNZ 61H,A3 DJNZ 60H,A2 DEC R7 ;闹钟响两次 AJMP DISDIS3: CJNE R4,#04,DIS4 MOV A,R5 ;显示闹钟时 MOV B,#10 DIV AB MOVC A,A+DPTR MOV P2,#80H MOV P1,A ACALL DELAY MOV A,B MOVC A,A+DPTR MOV P2,#40H MOV P1,A ACALL DELAY AJMP DISDIS4: CJNE R4,#05,DIS5 ;如果用DIS编译时出现out of range错误,转到DIS5跳转 MOV A,R6 ;显示闹钟分 MOV B,#10 DIV AB MOVC A,A+DPTR MOV P2,#20H MOV P1,A ACALL DELAY MOV A,B MOVC A,A+DPTR MOV P2,#10H MOV P1,A ACALL DELAYDIS5: AJMP DIS;=定时器0中断服务程序,时间计数,24小时=TIMER: PUSH ACC CJNE R4,#04,N1 ;调整时钟停止计时(R4=1、2、3时不计)N1: JNC N2 CJNE R4,#00,REN2: DJNZ R3,RE ;20次定时计完即一秒,重新赋值 MOV R3,#20 INC R2 ;秒加一 CJNE R2,#60,RE ;判断秒到60否 MOV R2,#00 INC R1 ;分加一 MOV A,R5 ;闹钟定时判断,响应 ADD A,R6 JZ NEXT1 ;为0时忽略(即无设定) MOV 16H,R5 ;判断时 MOV A,R0 CJNE A,16H,NEXT1 MOV 15H,R6 ;判断分 MOV A,R1 CJNE A,15H,NEXT1 MOV R7,#02 ;用R7控制主程序闹钟响应NEXT1: CJNE R1,#60,RE ;判断分到60否 INC R0 ;时加一 MOV R1,#00 MOV A,#0FFH ;整点报时,响一声 MOV R7,#50HA4: CPL A MOV P0,A ACALL DELAY DJNZ R7,A4 CJNE R0,#24,RE ;判断时到24否 MOV R0,#00 AJMP RE;=中断1处理,识别调整时间时、分、秒以及闹钟时、分=S1: INC R4 CJNE R4,#06,RE1 MOV R4,#00 AJMP RE1S0: CJNE R4,#01,F1 ;调整时 INC R0 CJNE R0,#24,RE1 MOV R0,#00 AJMP RE1F1: CJNE R4,#02,F2 ;调整分 INC R1 CJNE R1,#60,RE1 MOV R1,#00 AJMP RE1F2: CJNE R4,#03,F3 ;调整秒 INC R2 CJNE R2,#60,RE1 MOV R2,#00 AJMP RE1F3: CJNE R4,#04,F4 ;调整闹钟时 INC R5 CJNE R5,#24,RE1 MOV R5,#00 AJMP RE1F4: CJNE R4,#05,RE1 ;调整闹钟分 INC R6 CJNE R6,#60,RE1 MOV R6,#00 AJMP RE1RE: MOV TH0,#3CH ;15536 50MS MOV TL0,#0B0H POP ACCRE1: RETI DELAY: MOV 21H,#5 ;延时DL1: MOV 20H,#123DL2: DJNZ 20H,DL2 DJNZ 21H,DL1 RETTAB: DB 0C0H,0F9H,0A4H,0B0H,099H,092H ;共阳显示器 DB 082H,0F8H,080H,090H,088H,083H DB 0C6H,0A1H,086H,08EH,0BFH,0FFH END6、 设计总结 本设计是一项比较大的“工程”,之前都没有做过这么复杂的设计,可能是对单片机的兴趣比较大,做起来只是感觉繁琐,难度就感觉不是

温馨提示

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

评论

0/150

提交评论