电子时钟设计报告.doc_第1页
电子时钟设计报告.doc_第2页
电子时钟设计报告.doc_第3页
电子时钟设计报告.doc_第4页
电子时钟设计报告.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

单片机系统设计课程设计总结报告设 计 人 员: * 学 号: * 系 别: 电 子 系 班 级: * 同组人员姓名: * 指 导 老 师: *单片机电子时钟设计报告摘要:单片机,电子时钟的时间控制现实更改以及闹钟。单片机具有集成度高、功能强、通用好、特别是它能耗低、价格便宜、可靠性高、抗干扰能力强和使用方便等独特的优点,所以 单片机现在广泛的应用到家用电器、机电产品、儿童玩具、机器人、办公自动化产品等领域。 本设计是简单定时闹钟系统,不仅能实现系统要求的功能:(1)能显示时时-分分-秒秒,(2)能设定和修改定时时间,(3)定时时间到后能发出报警声;而且还有附加功能,即还能设定和修改当前所显示的时间,采用单片机AT89C51作为核心元件,12MHZ晶振,由P0口输出所要显示的字形段码,由P2口输出字位信号。在其基础上扩展外围芯片与电路,附加时钟电路及LCD电路。LCD采用共阴极接法,低电平有效选中相应的LCD。通过它可以进一步学习与掌握单片机原理与使用方法。关键词:单片机;AT89C52; 电子时钟一、 整体设计:1. 基本任务本课程设计的基本任务是利用89s51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入、蜂鸣报警等知识,设计一款单片机和简单外控制的电子时钟。使学生掌握电子时钟的设计调试方法,掌握单片机应用系统设计的思路和方法,掌握单片机应用系统设计的思路和基本方法。2. 设计整体框图 89S52单片机3个按键蜂鸣器电源电路LCD1602图1整体设计思路:单片机开机时,自动读取ds1302的时间初始化时分秒。之后由单片机的定时器产生基准时间信号开始计时。功能简介:本设计具有时钟和闹铃功能,在掉电情况下能完成时钟的正常运行。六个数码管显示时钟的时、分、秒。1602液晶第一行显示时钟的年、月、日,第二行显示提示操作。四个按键用来完成时钟和闹铃的调节设置,按键1为功能选择键,可分别进入调节时钟的时和分、闹铃的时和分、1602的年、月、日、星期。按键2和按键3分别为数字加一和减一键。按键4为退出功能键。蜂鸣器用来做闹钟报时用。如图1框图设计。3. 设计基本要求(1)基本要求实现功能:若使用4位数码管,系统开机显示四个闪烁的“8”,前两位数码管用于小时(24小时制)的调整和显示,后两位数码管用于分钟的调整和显示,第3位数码管的小数点闪烁作为秒的指示使用,闪烁一下表示1秒,60秒后分钟数码管加1显示,60分后小时数码管加1显示;若使用6位数码管,系统开机显示六个闪烁的“8”,前两位数码管用于小时(24小时制)的调整和显示,中间两位数码管用于分钟的调整和显示,后两位数码管用于秒的调整和显示,时钟每走1秒,秒数码管加1显示,60秒后分钟数码管加1显示,60分后小时数码管加1显示。电子时钟走时的调整由键盘输入完成。键盘输入还可以控制电子时钟的启动和停止。设计89S52单片机最小系统。掌握使用Protel 99se绘制原理图和布板的过程、方法和技巧。掌握单片机开发软件(Keil C51或Wave)的使用和调试。编写并调试单片机定时及其中断程序,以实现电子时钟的功能。设计八段数码管显示电路并编写驱程,输入并调试拆字程序和数码显示程序。掌握硬件和软件联合调试的方法。完成系统硬件电路的设计和制作。完成系统程序的设计。完成整个系统的设计、调试和制作。二、各功能硬件电路设计1.单片机最小系统89sc52:图2如图2,左边部分由上而下为电源电路(为整体电路提供电源)、晶振、复位电路,右上为插口。单片机系统工作原理说明:利用定时器T0定时,每隔50ms产生一次中断,中断20次(1s)后秒单元加1;秒单元second满60后向分单元进位,分单元加1;当分单元minute满60后时单元hour加1。2.lcd1602显示电路:图31602显示:用于显示时间及操作提示。4. 键盘电路:图4 键盘电路:键盘用于对时间的调整。按键s1为功能键,s2为加一键,s3为减一键,s4为确定键。其中s1,s2,s3采用查询方法,s4为外部中断1。5. 蜂鸣器电路:图5蜂鸣器电路:用于时间的报警。当时间为整点时发出声音报警。单片机端口输出的方波经放大滤波后,驱动蜂鸣器发声。三、 整体设计流程图Main函数主流程图LCD1602程序初始化开始报时整点扫描键盘 Y 定时器T0模式1初始化 判断功能键按下次数 NDS1302的时间数据初始化(年、月、日)按下次数判断对数据显示的调节 DS1302年月日数据的读取。 LCD1602程序初始化结束 时间的输入 图6子流程图蜂鸣器电路流程图报时(蜂鸣器响)时间(时、分、秒)是否到达整点 Y N返回(计时继续)四、电路板调试心得 1pcb图布线pcb图布线布局不合理跳线过多,通过反复修改以及分析各元件的合理位置修改了一种合理的布线方法2腐蚀铜板过程中出现了部分线路脱落我们及时取出铜板清洗后用黑色笔将脱落部分描黑,再放入腐蚀液中。3电路板焊接将电路板焊好后用万用表进行检测,发现有几处断路经过差错发现是连接单片机的P3.0引脚和一处电容引脚有虚焊,于是将这两处进行了补焊。、4.程序下载不进单片机中经调试中我们发现是端口没有设好最终经过努力我们完成了作品,通过这次做板过程我发现我的焊接技术还有待提高,同时对Protel、Keil等软件的掌握程度也需加深。实物图如图五、总结首先通过这5天的课程设计,我觉得我的动手能力有了很大提高,从原来实验时不动手或少动手到现在独立完成了电路板制作和检测调试工作,收获非常大。而且通过设计硬件电路,我对这些芯片,器件的原理和功能有了更加深入的了解,同时这激发了我的学习兴趣。在我们设计制作过程中,我们遇到了一些问题,比如在设计pcb板的过程中,在腐蚀液腐蚀过程中因为油纸翻印质量的问题,导致一些线路丢失,焊接的不完美,软件测试不成功等问题。经过调试检验,最终做出本次符合条件的实物作品。这次课程设计同时也发现了我所存在的问题,如平时不注重动手能力的培养学习不懂得理论结合实际等。在今后学习过程中我会努力培养自己的动手能力,专心学好专业知识同时将理论与实际相结合起来。附录:程序内容:ORG 0000H ;程序执行开始地址LJMP START ;跳到标号START执行ORG 0003H ;外中断0中断程序入口RETI ;外中断0中断返回ORG 000BH ;定时器T0中断程序入口LJMP INTT0 ;跳至INTTO执行ORG 0013H ;外中断1中断程序入口RETI ;外中断1中断返回ORG 001BH ;定时器T1中断程序入口LJMP INTT1 ;跳至INTT1执行ORG 0023H ;串行中断程序入口地址RETI ;串行中断程序返回主程序开始; START: MOV R0,#70H ;清70H-7AH共11个内存单元MOV R7,#0BH ;CLEARDISP: MOV R0,#00H ;INC R0 ;DJNZ R7,CLEARDISP ;MOV 20H,#00H ;清20H(标志用)MOV 7AH,#0AH ;放入熄灭符数据MOV TMOD,#11H ;设T0、T1为16位定时器MOV TL0,#0B0H ;50MS定时初值(T0计时用)MOV TH0,#3CH ;50MS定时初值MOV TL1,#0B0H ;50MS定时初值(T1闪烁定时用)MOV TH1,#3CH ;50MS定时初值SETB EA ;总中断开放SETB ET0 ;允许T0中断SETB TR0 ;开启T0定时器MOV R4,#14H ;1秒定时用初值(50MS20)START1: LCALL DISPLAY ;调用显示子程序JNB P3.7,SETMM1 ;P3.7口为0时转时间调整程序SJMP START1 ;P3.7口为1时跳回START1SETMM1: LJMP SETMM ;转到时间调整程序SETMM ; 1秒计时程序 ;INTT0: PUSH ACC ;累加器入栈保护PUSH PSW ;状态字入栈保护CLR ET0 ;关T0中断允许CLR TR0 ;关闭定时器T0MOV A,#0B7H ;中断响应时间同步修正ADD A,TL0 ;低8位初值修正MOV TL0,A ;重装初值(低8位修正值) MOV A,#3CH ;高8位初值修正ADDC A,TH0 ;MOV TH0,A ;重装初值(高8位修正值) SETB TR0 ;开启定时器T0DJNZ R4, OUTT0 ;20次中断未到中断退出ADDSS: MOV R4,#14H ;20次中断到(1秒)重赋初值MOV R0,#71H ;指向秒计时单元(71H-72H)ACALL ADD1 ;调用加1程序(加1秒操作)MOV A,R3 ;秒数据放入A(R3为2位十进制数组合)CLR C ;清进位标志CJNE A,#60H,ADDMM ;ADDMM: JC OUTT0 ;小于60秒时中断退出ACALL CLR0 ;大于或等于60秒时对秒计时单元清0 MOV R0,#77H ;指向分计时单元(76H-77H)ACALL ADD1 ;分计时单元加1分钟MOV A,R3 ;分数据放入ACLR C ;清进位标志 CJNE A,#60H,ADDHH ;ADDHH: JC OUTT0 ;小于60分时中断退出ACALL CLR0 ;大于或等于60分时分计时单元清0 MOV R0,#79H ;指向小时计时单元(78H-79H)ACALL ADD1 ;小时计时单元加1小时 MOV A,R3 ;时数据放入ACLR C ;清进位标志CJNE A,#24H,HOUR ;HOUR: JC OUTT0 ;小于24小时中断退出ACALL CLR0 ;大于或等于24小时小时计时单元清0OUTT0: MOV 72H,76H ;中断退出时将分、时计时单元数据移MOV 73H,77H ;入对应显示单元MOV 74H,78H ;MOV 75H,79H ;POP PSW ;恢复状态字(出栈)POP ACC ;恢复累加器SETB ET0 ;开放T0中断 RETI ;中断返回 ; 闪动调时 程 序 ; ;T1中断服务程序,用作时间调整时调整单元闪烁指示INTT1: PUSH ACC ;中断现场保护PUSH PSW ;MOV TL1, #0B0H ;装定时器T1定时初值 MOV TH1, #3CH ;DJNZ R2,INTT1OUT ;0.3秒未到退出中断(50MS中断6次) MOV R2,#06H ;重装0.3秒定时用初值CPL 02H ;0.3秒定时到对闪烁标志取反 JB 02H,FLASH1 ;02H位为1时显示单元熄灭 MOV 72H,76H ;02H位为0时正常显示MOV 73H,77H ;MOV 74H,78H ;MOV 75H,79H ;INTT1OUT: POP PSW ;恢复现场POP ACC ;RETI ;中断退出FLASH1: JB 01H,FLASH2 ;01H位为1时,转小时熄灭控制MOV 72H,7AH ;01H位为0时,熄灭符数据放入分MOV 73H,7AH ;显示单元(72H-73H),将不显示分数据MOV 74H,78H ;MOV 75H,79H ;AJMP INTT1OUT ;转中断退出FLASH2: MOV 72H,76H ;01H位为1时,熄灭符数据放入小时MOV 73H,77H ;显示单元(74H-75H),小时数据将不显示 MOV 74H,7AH ;MOV 75H,7AH ;AJMP INTT1OUT ;转中断退出 ; 加1子 程 序 ;ADD1: MOV A,R0 ;取当前计时单元数据到ADEC R0 ;指向前一地址SWAP A ;A中数据高四位与低四位交换ORL A,R0 ;前一地址中数据放入A中低四位 ADD A,#01H ;A加1操作DA A ;十进制调整MOV R3,A ;移入R3寄存器ANL A,#0FH ;高四位变0MOV R0,A ;放回前一地址单元MOV A,R3 ;取回R3中暂存数据INC R0 ;指向当前地址单元SWAP A ;A中数据高四位与低四位交换ANL A,#0FH ;高四位变0MOV R0,A ;数据放入当削地址单元中 RET ;子程序返回 ; 清零程序 ;对计时单元复零用CLR0: CLR A ;清累加器MOV R0,A ;清当前地址单元DEC R0 ;指向前一地址MOV R0,A ;前一地址单元清0RET ;子程序返回 ; 时钟调整程序 ;当调时按键按下时进入此程序SETMM: CLR ET0 ;关定时器T0中断CLR TR0 ;关闭定时器T0LCALL DL1S ;调用1秒延时程序JB P3.7,CLOSEDIS ;键按下时间小于1秒,关闭显示(省电) MOV R2,#06H ;进入调时状态,赋闪烁定时初值 SETB ET1 ;允许T1中断SETB TR1 ;开启定时器T1SET2: JNB P3.7,SET1 ;P3.7口为0(键未释放),等待SETB 00H ;键释放,分调整闪烁标志置1SET4: JB P3.7,SET3 ;等待键按下LCALL DL05S ;有键按下,延时0.5秒JNB P3.7,SETHH ;按下时间大于0.5秒转调小时状态MOV R0,#77H ;按下时间小于0.5秒加1分钟操作LCALL ADD1 ;调用加1子程序MOV A,R3 ;取调整单元数据CLR C ;清进位标志CJNE A,#60H,HHH ;调整单元数据与60比较HHH: JC SET4 ;调整单元数据小于60转SET4循环LCALL CLR0 ;调整单元数据大于或等于60时清0CLR C ;清进位标志AJMP SET4 ;跳转到SET4循环CLOSEDIS:SETB ET0 ;省电(LED不显示)状态。开T0中断SETB TR0 ;开启T0定时器(开时钟)CLOSE: JB P3.7,CLOSE ;无按键按下,等待。LCALL DISPLAY ;有键按下,调显示子程序延时削抖JB P3.7,CLOSE ;是干扰返回CLOSE等待WAITH: JNB P3.7,WAITH ;等待键释放LJMP START1 ;返回主程序(LED数据显示亮)SETHH: CLR 00H ;分闪烁标志清除(进入调小时状态)SETHH1: JNB P3.7,SET5 ;等待键释放SETB 01H ;小时调整标志置1SET6: JB P3.7,SET7 ;等待按键按下LCALL DL05S ;有键按下延时0.5秒JNB P3.7,SETOUT ;按下时间大于0.5秒退出时间调整MOV R0,#79H ;按下时间小于0.5秒加1小时操作LCALL ADD1 ;调加1子程序MOV A,R3 ;CLR C ;CJNE A,#24H,HOUU ;计时单元数据与24比较HOUU: JC SET6 ;小于24转SET6循环LCALL CLR0 ;大于或等于24时清0操作AJMP SET6 ;跳转到SET6循环SETOUT: JNB P3.7,SETOUT1 ;调时退出程序。等待键释放LCALL DISPLAY ;延时削抖JNB P3.7,SETOUT ;是抖动,返回SETOUT再等待CLR 01H ;清调小时标志CLR 00H ;清调分标志CLR 02H ;清闪烁标志CLR TR1 ;关闭定时器T1CLR ET1 ;关定时器T1中断SETB TR0 ;开启定时器T0SETB ET0 ;开定时器T0中断(计时开始)LJMP START1 ;跳回主程序SET1: LCALL DISPLAY ;键释放等待时调用显示程序(调分)AJMP SET2 ;防止键按下时无时钟显示SET3: LCALL DISPLAY ;等待调分按键时时钟显示用AJMP SET4SET5: LCALL DISPLAY ;键释放等待时调用显示程序(调小时)AJMP SETHH1 ;防止键按下时无时钟显示SET7: LCALL DISPLAY ;等待调小时按键时时钟显示用AJMP SET6SETOUT1: LCALL DISPLAY ;退出时钟调整时键释放等待AJMP SETOUT ;防止键按下时无时钟显示 ; 显示程序 ; DISPLAY: MOV R1,#70H ;指向显示数据首址MOV R5,#0FEH ;扫描控制字初值PLAY: MOV A,R5 ;扫描字放入AMOV P3,A ;从P3口输出MOV A,R1 ;取显示数据到AMOV

温馨提示

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

评论

0/150

提交评论