电子时钟课程设计_第1页
电子时钟课程设计_第2页
电子时钟课程设计_第3页
电子时钟课程设计_第4页
电子时钟课程设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

数字电子时钟一、设计要求和目的 1.设计要求(1)单片机复位以后,自动进入计时状态,起始于00时00分00秒。(2)设计键盘调整时完成时间的设定,并有设置闹钟的功能。(3)用定时器实现计时功能。(4)设置按键,如S0,S1,S2,S3,S4.按下S0进入调试状态,S1设置准确时间,按第一次小时,第二次分钟,第三次秒钟。S3设置闹钟。2.设计目的(1)通过本次课程设计加深对单片机课程的全面认识复习、了解和掌握。 (2)掌握定时器、外部中断的设置和编程原理。 (3)通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。(4)学会画单片机程序设计流程图。(5)能够熟练的用proteus或者Multisim仿真软件的使用。(6)巩固和加深对电子学理论知识的理解和掌握,为以后专业设计、课程设计及毕业设计准备必要的工艺知识和操作技能二、总方案设计本次设计时钟电路使用了AT89S52单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的时、分、秒用一扬声器来进行定时提醒同时使用单片机语言程序来控制整个时钟显示使得编程变得更容易,这样通过四个模块、键盘、芯片、扬声器、显示屏即可满足设计要求。此设计原理框图如图2-1所示,此电路包括以下四个部分,单片机,按键,复位,晶振闹铃电路及显示电路。图2-1设计原理框图各部分功能实现(1)单片机发送的信号通过程序控制最终在数码管上显示出来。(2)单片机通过输出各种电脉冲信号来驱动控制各部分正常工作。(3)为使时钟走时与标准时间一致,校时电路是必不可少的,键盘用来校码管上显示的时间。(4)单片机通过控制闹铃电路来完成 定时闹钟的功能。三、硬件设计3.1显示电路 本次设计选用的是六位数码管的动态显示驱动。通过单片机对数码管位选通COM端电路的控制,只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的COM端,是各个数码管轮流受控显示,这就是动态驱动。动态显示可以大幅度地降低硬件成本和电源的功耗。动态显示方式设计上如果处理不当,易造成亮度低,闪烁问题。因此合理的设计既要保护驱动电路易实现,又要保证显示后的数据稳定,无闪烁。 电路中共阴极数码管的段码a、b、c、d、e、f、g、dp分别与单片机的P20 P27依次相连,控制数码管中显示的字型;6个数码管的位选通信号由6个非门控制,分别接到单片机的P10P15端口上。程序中通过P10P15输出高低电平控制数码管的显示和关闭,高电平时对应数码管显示,显示内容由P20 P27输出的段码控制。要将实时时钟值送到6个共阴极数码管中显示,这可通过调用编写的显示子程序来实现,实现过程是:先将(时、分、秒)3个记时值按个位和十位拆开成6个数字,然后查(09)段码表,再将段码分别送到显示缓冲区(片内数据存储30H35H设定为显示缓冲区, 用于存放段码)中去,最调用显示子程序送到6个共阴极数码管中显示。部分电路图如下:图3-132时钟电路时钟是单片机的心脏,单片机个功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍的工作。因此,时钟频率直接影响到单片机的运行速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式:一种是内部时钟方式,另一种为外部时钟方式。本次设计用的是内部时钟方式。电路图如下:图3-2单片机内部有一个用于构成振荡器的高增益反向放大器,该反向放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2 。这两个引脚跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器。32按键调时电路 按键的开关状态通过一定的电路转换为高、低电平状态。按键闭合过程在相应的I/O端口形成一个负脉冲。为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。本次设计采用的是独立式按键,直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生相互影响。当需要计时暂停又或者计时的数值与实际的时间不同时,就可以通过按按键调节校准时间,本电路可以进行小时和分钟的加减极具人性化;按键与单片机连接的一端是由上拉电阻构成的高电平,然后通过按键,将另一端接到地(低电平)当按下按键,按键将单片机的一端强制为低低电平,然后按键恢复,又恢复高电位,这就单片机接收到一个负脉冲。电路图如下:图3-334蜂鸣报时电路使用蜂鸣器来实现报时,蜂鸣器的原理就是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声。 该电路有P0.7口外接20欧,2.2K电阻,三极管以及蜂鸣器组成。当P0.7输出高电平时,三极管截止,没有电流流过线圈,蜂鸣器不发声;当P0.7输出低电平时,三极管导通,有电流流过线圈,蜂鸣器发出声音。电路图如下: 图3-4四、软件设计4.1、软件程序内容本设计的软件程序包括主程序、定时中断程序、蜂鸣报时程序、时钟显示子程序、延时子程序等。另外,由于电路中有四个按键,用来调整时、分的加减。下图是总程序流程图。图4-1 4.2、中断程序图4-2中断定时用来判断按键是否按下,然后做出反应调时还是调分。具体首先判断是否按下,然后再定时,开定时器。作出相应输出,最后中断返回。按键处理是可以调试,如果检测到分按键的加按下,分就加1,如果检测到时按键的加按时1。图4-24.3、 显示程序设计显示程序在程序中期着非常重要的作用,它是数码管能否正确显示的保证,此程序首先是初始化,赋值为零点。然后还有建立存储单元将要显示的数值放入其中,再将这些数分出来,最后送入与数码管连接的口。4.4、整点报时程序设计每到了整点就让蜂鸣器响,此程序是先判断是否是整点,如果到了整点,则判断是,则执行相应的命令。部分程序如下: baoshi: CJNE R4,#1,tiaoshi CLR baojing ;开启蜂鸣器 MOV A,miao1 CJNE A,#2,tiaoshi ;报时2秒 SETB baojing ;关闭蜂鸣器 MOV R4,#0五、系统调试软件调试的调试一般可以重点放在分模块调试上,统调试最后一个环节。软件调试可以采取离线调试和在线调试两种方式。前者不需要硬件仿真器,可借助于软件仿真器即可;后者一般需要仿真系统的支持。在本次电路调试中也遇到了些问题,比如电路模块之间或者接线之间的干扰,导致在计数时数码管上显示的数并不如预期的变化,有时候是每计数到11秒时,本该到12秒的时候,秒十位也跟着变化了,变成22秒,在调整小部分接线之后,这个问题也解决了,计数器正常工作。本次设计中,选用Keil软件来调试程序通过的单步或跟踪调试,使程序逐渐满足要求。仿真部分采用protus7.5软件,打开protus7.5软件后,在元件中找到要用的所有元件,然后进行原理图的绘制;绘制好以后在选择Keil中已经编译好的*.hex文件,选择运行,观察结果,根据显示的结果和课题的要求在修改程序,在运行检查,直到满足要求为止。五、总结做了两周的课程设计,有很多的心得体会,有关于单片机的,也有关于模电数电等基础科目的。因为单片机已经很久没复习,刚拿到题目,不知道从哪入手,后来通过对书本的回顾,加深了对单片机的记忆。有些知识会迁移和联系模电数电。课堂教学考虑到大多数同学的需求,主要强调“基本”基本知识、基本理论、基本方法、基本技能。而这次设计正是为我们提供了一个深入学习、探索的机会,成为课堂教学的有益补充。我们正面临就业问题,这次课设给了我们一个机会去试验。单片机理论的学习是为课程的设计作准备的,但有时学习的理论也解决不了实践中的问题。实践中获得的知识能让我对单片机的知识有更好的认识和理解。虽然这次的课程设计我参考了一些文献资料,没有做到创新,但在对程序的读写过程中我明白了许多。这次课程设计的最大收获是只有把理论用到实践中我们才能真正掌握好所学知识。参考文献:1 何立明.单片机高级教程M. 北京:北京航空航天大学出版社,2000.2 李朝春.单片机原理及接口技术M. 北京:北京航空航天大学出版社,1999.3 刘迎春,林毓梁,等.MSC-51单片机原理与应用教程M. 北京:清华大学出版社,2005.4 李广弟.单片机基础(修订本)M. 北京:北京航空航天大学出版社,2001.5 胡汉才.单片机原理及接口技术M. 北京:清华大学出版社,1996.6 江力,林毓梁,等.单片机原理与应用技术M.北京:清华大学出版社,2006.附录一硬件原理图附录二 程序代码miao1 DATA 30H miao2 DATA 31Hfen1 DATA 32Hfen2 DATA 33Hshi1 DATA 34Hshi2 DATA 35Hshuju_0 DATA 36Hxian_zhi EQU P2baojing EQU P0.7xian_kai EQU P1 K1 bit p0.0K2 bit p0.1K3 bit p0.2K4 bit p0.3ORG 0000HJMP mainORG 000BHJMP dingshimain: MOV P1,#0 SETB baojing MOV R2,#0 ;R2决定是调时 还是调分 MOV R3,#0 ;R3决定K1是否按下 MOV R4,#0 ;R4用于报时控制 MOV R5,#0 ;R5为定时器17次判断 MOV DPTR,#TAB MOV miao1,#0 ;上电显示00:00:00 MOV miao2,#0 MOV fen1,#0 MOV fen2,#0 MOV shi1,#0 MOV shi2,#0 MOV TMOD,#01H ;16位定时 MOV TL0,#3CH MOV TH0,#2CH MOV IE,#82H SETB TR0 ;开定时器kaitou: MOV A,#1 ;显示程序 MOV shuju_0,A MOV R0,#35H xian_1: MOV A,R0 MOVC A,A+DPTR MOV R1,shuju_0 CJNE R1,#02H,xian_2 ORL A,#80H xian_2: CJNE R1,#08h,xian_3 ORL A,#80H xian_3: MOV xian_zhi,A MOV xian_kai,shuju_0 call DELAY MOV xian_kai,#0 MOV A,shuju_0 RL A MOV shuju_0,A DEC R0 CJNE A,#40H,xian_1 baoshi: CJNE R4,#1,tiaoshi CLR baojing ;开启蜂鸣器 MOV A,miao1 CJNE A,#2,tiaoshi ;报时2秒 SETB baojing ;关闭蜂鸣器 MOV R4,#0tiaoshi: CJNE R3,#0,tiao_1 ;R3为1的话就不检查 K1 JB K1,LL ;判断是否按下 K1 CALL DELAY CALL DELAY JB K1,LL JMP QQ LL:JMP kaitou QQ: JNB K1,QQ;判断是否抬起 CALL DELAY CALL DELAY JNB K1,QQ MOV R3,#1 tiao_1: JB K2,tiao_2 ;判断是否按下 K2 CALL DELAY CALL DELAY JB K2,tiao_2 YY: JNB K2,YY ;判断是否抬起 CALL DELAY CALL DELAY JNB K2,YY MOV R3,#1 MOV A,R2 CPL A MOV R2,A tiao_2: CJNE R2,#0,WW ;R2决定是调时 还是调分 JMP XX WW: JMP shi_tiao XX: CALL xian_fen ;分位调节 JB K3,fen_2;判断是否加1 CALL DELAY CALL DELAY JB K3,fen_2 FF: JNB K3,FF ;判断是否抬起 CALL DELAY CALL DELAY JNB K3,FF fen_1: MOV A,fen1 INC A CJNE A,#10,fen_1_1 MOV fen1,#0 MOV A,fen2 INC A CJNE A,#6,fen_1_2 MOV fen2,#0 JMP jieshu fen_1_1: MOV fen1,A JMP jieshu fen_1_2: MOV fen2,A JMP jieshu fen_2: ;判断是否减1 JB K4,KK CALL DELAY CALL DELAY JB K4,KK JMP EE KK: JMP jieshu EE: JNB K4,EE;判断是否抬起 CALL DELAY CALL DELAY JNB K4,EE MOV A,fen1 DEC A CJNE A,#0FFH,fen_2_1 MOV fen1,#9 MOV A,fen2 DEC A CJNE A,#0FFH,fen_2_2 MOV fen2,#5 JMP jieshu fen_2_1: MOV fen1,A JMP jieshu fen_2_2: MOV fen2,A JMP jieshu shi_tiao: ;时位调节 CALL xian_shi JB K3,shi_jian ;判断是否加1 CALL DELAY CALL DELAY JB K3,shi_jian GG: JNB K3,GG ;判断是否抬起 CALL DELAY CALL DELAY JNB K3,GG MOV A,shi2 CJNE A,#2,shi_1 ;shi_1表十位不是2的数处理 MOV A,shi1 INC A CJNE A,#4,shi_0 ;shi_0表没加到5 MOV shi1,#0 MOV shi2,#0 JMP jieshushi_0: MOV shi1,A JMP jieshushi_1: MOV A,shi1 INC A CJNE A,#10,shi_1_1 ;shi_1_1是表个位没加到10的 MOV shi1,#0 MOV A,shi2 INC A MOV shi2,A JMP jieshushi_1_1:MOV shi1,A JMP jieshushi_jian: JB K4,jieshu;判断是否减1 CALL DELAY CALL DELAY JB K4,jieshu DD:JNB K4,DD ;判断是否抬起 CALL DELAY CALL DELAY JNB K4,DD MOV A,shi1 DEC A CJNE A,#0FFH,shijian_1 MOV shi1,#9 MOV A,shi2 DEC A CJNE A,#0FFH,shijian_0 MOV shi1,#3 MOV shi2,#2 JMP jieshu shijian_0: MOV shi2,A JMP jieshu shijian_1: MOV shi1,Ajieshu:;调时结束判断 JB K1,NN ;判断是否按下 K1 CALL DELAY CALL DELAY JB K1,NN JMP TT NN:JMP tiaoshi TT:JNB K1,TT ;判断是否抬起 CALL DELAY CALL DELAY JNB K1,TT MOV R5,#0 MOV R3,#0 MOV R2,#0 JMP kaitou xian_fen: ;只显示分位 MOV A,fen1 MOVC A,A+DPTR MOV xian_zhi,A SETB p1.3 CALL DELAY CLR p1.3 MOV A,fen2 MOVC A,A+DPTR MOV xian_zhi,A SETB p1.2 CALL DELAY CL

温馨提示

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

评论

0/150

提交评论