




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单位代码 学号 1201050050 分 类 号 密 级 单片机应用技术课程设计基于AT89C51单片机的定时闹钟设计 院(系)名称 专业名称 学生姓名 指导教师2015 年 月 日第 页黄河科技学院课程设计 目 录1 概述11.1 课程设计的目的和意义11.2 设计要求12 系统总体方案及硬件设计22.1 系统设计原理22.2 硬件设计22.2.1 单片机AT89C5122.2.2 显示器的选择42.2.3 控制按键的选择52.2.4 时钟电路62.2.5 喇叭:SPEAKER63 系统软件设计83.1 系统软件设计说明83.2 程序流程图93.2.1 程序主流程图93.2.2 时间设定设计93.3 程序调试103.4 仿真步骤113.5 仿真结果114 课程设计体会14参考文献15附1源程序代码16附2系统原理图29第 29 页黄河科技学院课程设计 1概述1.1课程设计的目的和意义课程设计是在学完单片机原理及接口技术课程之后综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现,从而加深对单片机,软硬知识的理解,获得初步的应用经验,使对已学过的基础知识能有更深入的理解,学会独立思考、独立思考、独立工作,以及提高对所学应用基本理论分析和解决实际问题的能力。为走出校门从事单片机应用的相关工作打下基础.1.2 设计要求1)能显示:时时分分秒秒。2)能够设定定时时间、修改定时时间。3)定时时间到能发出报警声。设计的部分分为软件及硬件,软件部分写出闹钟的工作方式以及它是如何工作的,而硬件部分是软件的载体,画出正确的电路图然后在软件的控制下能使设计的定时闹钟正常工作。2系统总体方案及硬件设计2.1系统设计原理本设计使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。本系统采用单片机AT89C51作为本设计的核心元件,利用6位共阴数码管作为显示器件。接入共阴LED显示器,可显示时,分钟,秒,单片机外围接有定时报警系统,时间的定时用时钟电路,修改时间和定时用手动按键控制,报警声通过喇叭发出。提示预先设定时间电器的起停时间到,从而控制电器的起停。电路由下列部分组成:时钟电路、复位电路、控制电路、LED显示,报警电路,芯片选用AT89C51单片机。系统框图如图 2-1所示:复位、时钟等电路按钮电路AT89C51单片机6位数码管显示电路闹铃声指示电路电源系统图2-1 系统框图2.2硬件设计2.2.1单片机AT89C51AT89C51是一个低电压,高性能CMOS型8位单片机,片内含4KB的可反复擦写的Flash只读程序存储器(ROM)和128B的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51为用户提供了许多高性价比应用场合,可灵活应用于各种控制领域。AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。主要特性:与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定1288位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度. 图2-2是单片机AT89C51的引脚图:图2-2单片机AT89C51引脚图2.2.2显示器的选择方案一:液晶显示器。如果选择此方案,将会降低系统的功耗,这样就可以用电池供电,便于携带。但液晶显示器的驱动电路复杂,使用起来有一定的难度。方案二:点阵显示,是由八行八列的发光二极管集成在一块电路上组成,主要用来显示汉字,同时也能显示数字和少量图象,但它的焊接较麻烦,价格高,鉴于所设计的题目要求它不切实际。所以排除此方案。方案三:用数码管作为显示器。数码管的驱动电路简单,使用方便,如果选择了此方案,那么在夜间看时间的时候就不需要有光源,非常方便。其缺点是功耗较大。由于数码管使用起来较为方便,在夜间看时间也很方便,因此我选择了方案三。单片机中通常使用7段LED,LED是发光二极管显示器的缩写。LED显示器由于结构简单,价格便宜,体积小,亮度高,电压低,可靠性高,寿命长,响应速度快,配置灵活,与单片机接口方便而得到广泛应用。LED显示器是由若干个发光二极管组成显示字段的显示部件,当发光二极管导通时,相应的一个点或一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符。LED显示器有多种形式,如:“米”字型显示器,点阵显示器和七段数码显示器等,在单片机系统中使用最多的是七段数码显示器。本系统利用7SEG-MPX6-CC-BLUE数字显示器,7SEG-MPX6-CC-BLUE数字显示器的1-6引脚连接AT89C51单片机 P2.0 P2.5接口,其他8个引脚分别与AT89C51单片机的P0.0 - P0.7和共阳极管RESPACK-8排阻的 2 - 9 引脚分别连接。因为共阴极的LED数码管它的驱动电流是分开的,在单片机进行动态扫描的时候不会影响彼此的电流,故该系统中的6位LED数码管均用共阴极的数码管。6位数码管的引脚图如图2-3所示:图2-3 6位数码管的引脚2.2.3控制按键的选择方案一: 选取阵列式按键,减少了I/O口的使用,且扫描MN个按键只需占用M+N个I/O口即可实现,但给编程带来了一定的困难,虽然节省了很多的口线,降低了成本,但在此设计中所用的按键要尽量少,因此排除此方案。方案二: 独立式按键,每个按键实现一个功能,易于控制且编写程序简单,容易理解,虽然会占用一定的单片机I/O口资源,但是题目中要求使用的按键要尽量少。通过以上两种方案比较,采用方案二。2.2.4时钟电路单片机的时钟产生方法有两种:内部时钟方式和外部时钟方式。本系统中AT89C51单片机采用内部时钟方式。最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路。振荡晶体可在1.2MHz12MHz之间。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小和振荡电路起振速度有少许影响,一般可在20pF100pF之间取值。AT98C51单片机的时钟电路。如图2-4所示:图2-4 时钟电路图上拉电阻:RESPACK8控制按键:BUTTON ACTIVE SPST PushButton本系统要进行时间的调整和定时,因此用4个手动按键对其进行控制。2.2.5喇叭:SPEAKER由P3.7口控制喇叭,使其定时时间到能发出报警声。如图2-5所示:图2-5 喇叭引脚图经过方案论证与比较,选择AT89C51作为主控,采用独立式按键控制,LED数码管动态扫描显示,喇叭:SPEAKER,其中AT89C51单片机采用内部时钟方式。3 系统软件设计3.1系统软件设计说明该系统软件程序主要有主程序模块,定时中断服务程序,中断等待服务程序,键盘服务程序,显示子程序服务程序等六大模块组成。在AT89C51外围的一个17管脚即P3.7管口上加喇叭器,通过软件与硬件的结合可实现定时报警功能。图中按键从上往下设定为S1,S2,S3,S4,S1与p1.0相连,S2与p1.1相连,S3与p1.2相连,S4与p1.3相连。当需要设定当前时间时,按一下S1键,进入时间设定状态,按一下S3,分钟加1;按一下S2,小时加1。如此反复来设定当前时间。调好时间后按S4退出当前时间设定状态;当要设定定时时间时,按下S2,进入定时时间设定状态,按一下S3,小时加1;按一下S1,分钟加1。如此反复来设定要设定的定时时间。设好后,按下S4退出定时时间设定状态。3.2 程序流程图3.2.1程序主流程图图3-1 程序流程图 3.2.2时间设定设计时间设定模块的设计要点是按键的去抖处理与“一键多态”的处理。即只涉及4个键完成了6位时间参数的设定。软件法去抖动的实质是软件延时,即检测到某一键状态变化后延时一段时间,再检测该按键的状态是否还保持着,如是则作为按键处理,否则,视为抖动,不予理睬。去抖中的延时时间一般参考资料多描述为10ms左右,实际应用中,应大于20ms,否则,会导致按一次作多次处理,影响程序正常执行。“一键多态”即多功能键的实现思想是,根据按键时刻的系统状态,决定按键采取何种动作,即何种功能其流程图如下图3-2所示:图3-2 时间设定流程3.3程序调试1)将程序输入到keil uvision4的环境下;2)用单步运行和断点运行方式调试程序;3)调试T0中断服务程序,首先在记数单元39H、3AH、3BH、3CH单元中预置数,调试秒单元向分单元进位及分单元向时单元的进位,最后将T0中断服务程序统调通过;4)在39H、3AH、3BH、3CH单元中预置数,调试显示程序;5)调试主程序,使闹钟走时系统工作正常。3.4仿真步骤第一步:用keil uvision4软件对程序进行编译,编译通过后,会自动生成HEX文件。第二步:在Proteus的元件库中找到AT89C51以及相应的元件,按照硬件设计中的说明把各部件连接起来组成一个定时闹钟的硬件系统。第三步:把在keil uvision4环境调试下生成的.HEX文件装入到AT89C51里,点击运行符号就可以使软硬件的配套设施在Proteus的环境下仿真实现。第四步:验证系统能否实现所要求的功能,并检验错误。3.5仿真结果通过S1、S2、S3和S4四个按键,对时间进行修改和闹钟的设置。定时时间到能发出报警声,使用keil uvision4软件编辑程序然后进行proteus进行仿真,其仿真图如下:开始仿真时,显示如图3-3所示:图3-3 仿真图(1)设定当前时间当需要设定当前时间时,按一下S1键,进入时间设定状态,按一下S3,分钟加1;按一下S2,小时加1。如此反复来设定当前时间。调好时间后按S4退出当前时间设定状态。如图3-4所示:图3-4 设定样式图如图3-5:设定当前时间是06:06:06图3-5 仿真时间设定图(2)设定定时时间当要设定定时时间时,按下S2,进入定时时间设定状态,按一下S3,小时加1;按一下S1,分钟加1。如此反复来设定要设定的定时时间。设好后,按下S4退出定时时间设定状态。如图3-6所示图:设定定时时间为06:06图3-6 设定定时时间如图3-7所示当到达时间06:06时,喇叭发出报警声。图3-7 闹钟响起图4课程设计体会 通过这次设计让我更深入了解在设计程序之前,务必要对所学单片机课程的内容有一个系统的了解,知道单片机片内片外的内容及其功能。设计程序采用什么编程语言并不是非常重要,关键要有一个清晰的思路和一个完整的软件流程图。在设计程序时,不能妄想一次就将整个程序设计好,反复修改,不断改进是程序设计的必经之路。程序刚开始编好时,一般情况下会存在很多错误,要不断地修改,不断的改进才能达到预期的目的,编写程序的时间并不是很长,主要是修改程序会花很多时间。总之,通过这次设计让我更深入了解单片机基本电路、如何控制和定时器和中断编程的基本方法,从而锻炼了我学习、设计和开发软、硬件的能力。并且使我巩固了本课程所学的基本知识,还使我具有了撰写设计报告的初步训练能力,我相信这些能力在我以后的工作或者是再学习中一定会起到不小的作用,看到自己几周的小成果,感觉一切的辛苦和艰难都是值得的。参考文献1.张毅刚,单片机原理及应用,高等教育出版社.2014.2.皮大熊.单片机课程设计指导书.北京理工大学出版社.2010.3.吴金戌.8051单片机实践与应用.清华大学出版社.2003.4.楼然苗.51系列单片机设计实例.北京航空航天出版社.2004.5.黄仁欣.单片机原理及应用技术.清华大学出版社.2005.6.赵晓安. MCS-51单片机原理及应用.天津大学出版社.2001.3.7.凌玉华,单片机原理及应用系统设计,中南大学出版社.2006.8.胡汉才,单片机原理及应用,清华大学出版社 .2004.9.徐江海.单片机实用教程.机械工业出版社.2007.附1源程序代码 ORG 0000H LJMP MAIN ORG 000BH LJMP TIME ORG 0100H MAIN:MOV SP,#50H MOV 20H,#00H ;时间 BIN SECOND MOV 21H,#00H ; BIN MINUTE MOV 22H,#00H ; BIN HOUR MOV 23H,#01H ;闹铃 BIN MINUTE MOV 24H,#01H ; BIN HOUR MOV 25H,#00H ;定义一个标志位 MOV 30H,#00H ;时间 BCD SECOND MOV 31H,#00H ; MOV 32H,#00H ; BCD MINUTE MOV 33H,#00H ; MOV 34H,#00H ; BCD HOUR MOV 35H,#00H ; MOV 36H,#01H ;闹铃 BCD MINUTE MOV 37H,#00H ; MOV 38H,#01H ; BCD HOUR MOV 39H,#00H ; MOV TMOD,#01H ;16位计数器 T0,方式1 MOV TH0,#03CH ;赋初值 MOV TL0,#0B0H MOV IE,#10000111B ;开中断 T0,EA=1 SETB TR0 ;T0启动计数 MOV R2,#14H ;计数器 MOV P2,#0FFH LOOP:LCALL TIMEPRO ; 调用现在时间与闹铃时间比较程序 LCALL DISPLAY1 ; 调用现在时间显示子程序 JB P1.0,M1 ; 判断按键是否按下 LCALL XIAOZHEN1 ; 调用消抖程序 MOV C,25H.0 JC A1 A1:CLR 25H.0 LCALL SETTIME ; 调用设置现在时间子程序 LJMP LOOP M1:JB P1.1,M2 LCALL XIAOZHEN2 MOV C,25H.0 JC A2 A2:CLR 25H.0 LCALL SETATIME ; 调用设置闹钟的程序 LJMP LOOP M2:JB P1.3,M3 A3:LCALL XIAOZHEN3 MOV C,25H.0 JC A4 A4:CLR 25H.0 M3:LJMP LOOPSETTIME: L0:LCALL DISPLAY1 JB P1.1,L1 LCALL XIAOZHEN4 MOV C,25H.0 JC A5 A5:CLR 25H.0 INC 22H MOV A,22H CJNE A,#18H,GO12 MOV 22H,#00H MOV 34H,#00H MOV 35H,#00H LJMP L0 L1:JB P1.2,L2 LCALL XIAOZHEN5 MOV C,25H.0 JC A6 A6:CLR 25H.0 INC 21H MOV A,21H CJNE A,#3CH,GO11 MOV 21H,#00H MOV 32H,#00H MOV 33H,#00H LJMP L0 GO11:MOV B,#0AH DIV AB MOV 32H,B MOV 33H,A LJMP L0 GO12:MOV B,#0AH DIV AB MOV 34H,B MOV 35H,A LJMP L0 L2:JB P1.3,L0 LCALL XIAOZHEN3 MOV C,25H.0 JC AX AX:CLR 25H.0 RETSETATIME:LCALL DISPLAY2 ;调用闹钟设置,闹铃响时的显示程序 N0:LCALL DISPLAY2 JB P1.2,N1 LCALL XIAOZHEN6 MOV C,25H.0 JC A7 A7:CLR 25H.0 INC 24H MOV A,24H CJNE A,#24,GO22 MOV 24H,#00H MOV 38H,#00H MOV 39H,#00H LJMP N0 N1:JB P1.0,N2 LCALL XIAOZHEN7 MOV C,25H.0 JC A8 A8:CLR 25H.0 INC 23H MOV A,23H CJNE A,#60,GO21 MOV 23H,#00H MOV 36H,#00H MOV 37H,#00H LJMP N0 GO21:MOV B,#0AH DIV AB MOV 36H,B MOV 37H,A LJMP N0 GO22:MOV B,#0AH DIV AB MOV 38H,B MOV 39H,A LJMP N0 N2:JB P1.3,N0 LCALL XIAOZHEN3 MOV C,25H.0 JC A9 A9:CLR 25H.0 RETTIMEPRO:MOV A,21H MOV B,23H CJNE A,B,BK MOV A,22H MOV B,24H CJNE A,B,BK SETB 25H.0 MOV C,25H.0 JC XX XX:LCALL TIMEOUT BK:RET TIMEOUT: X1:LCALL BZ LCALL DISPLAY2 CLR 25H.0 JB P1.3, X1 RET BZ:CLR P3.7 MOV R7,#250 T2:MOV R6,#124 T3:DJNZ R6,T3 DJNZ R7,T2 SETB P3.7 JB P1.3,XY LCALL XIAOZHEN3 MOV C,25H.0 JC XY1 XY:RET XY1:LJMP LOOPXIAOZHEN1:LCALL DISPLAY1 JB P1.0,XIAOZHEN1 MOV C,P1.0 JC XIAOZHEN1 LCALL DELAY MOV C,P1.0 JC XIAOZHEN1 STOP1:MOV C,P1.0 JNC STOP1 LCALL DELAY MOV C,P1.0 JNC STOP1 SETB 25H.0 RET XIAOZHEN2:LCALL DISPLAY2 JB P1.1,XIAOZHEN2 MOV C,P1.1 JC XIAOZHEN2 LCALL DELAY MOV C,P1.1 JC XIAOZHEN2 STOP2:MOV C,P1.1 JNC STOP2 LCALL DELAY MOV C,P1.1 JNC STOP2 SETB 25H.0 RET XIAOZHEN3:LCALL DISPLAY1 JB P1.3,XIAOZHEN3 MOV C,P1.3 JC XIAOZHEN3 LCALL DELAY MOV C,P1.3 JC XIAOZHEN3 STOP3:MOV C,P1.3 JNC STOP3 LCALL DELAY MOV C,P1.3 JNC STOP3 SETB 25H.0 RET XIAOZHEN4:LCALL DISPLAY1 JB P1.1,XIAOZHEN4 MOV C,P1.1 JC XIAOZHEN4 LCALL DELAY MOV C,P1.1 JC XIAOZHEN4 STOP4:MOV C,P1.1 JNC STOP4 LCALL DELAY MOV C,P1.1 JNC STOP4 SETB 25H.0 RET XIAOZHEN5:LCALL DISPLAY1 JB P1.2,XIAOZHEN5 MOV C,P1.2 JC XIAOZHEN5 LCALL DELAY MOV C,P1.2 JC XIAOZHEN5 STOP5:MOV C,P1.2 JNC STOP5 LCALL DELAY MOV C,P1.2 JNC STOP5 SETB 25H.0 RET XIAOZHEN6:LCALL DISPLAY2 JB P1.2,XIAOZHEN6 MOV C,P1.2 JC XIAOZHEN6 LCALL DELAY MOV C,P1.2 JC XIAOZHEN6 STOP6:MOV C,P1.2 JNC STOP6 LCALL DELAY MOV C,P1.2 JNC STOP6 SETB 25H.0 RET XIAOZHEN7:LCALL DISPLAY2 JB P1.0,XIAOZHEN7 MOV C,P1.0 JC XIAOZHEN7 LCALL DELAY MOV C,P1.0 JC XIAOZHEN7 STOP7:MOV C,P1.0 JNC STOP7 LCALL DELAY MOV C,P1.0 JNC STOP7 SETB 25H.0 RETDELAY:MOV R4,#14H DL00:MOV R5,#0FFH DL11:DJNZ R5,DL11 DJNZ R4,DL00 RETTIME:PUSH ACC PUSH PSW MOV TH0,#03CH MOV TL0,#0B0H DJNZ R
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乐理初级考试题及答案
- 课件显示全屏快捷键
- 课件时间显示问题
- 冷却筛分工培训考核试卷及答案
- 酒类分级考试题及答案
- 2025年教师招聘之《幼儿教师招聘》通关试题库及答案详解(历年真题)
- 教师招聘之《幼儿教师招聘》通关考试题库附参考答案详解(研优卷)
- 甘油水处理工质量管控考核试卷及答案
- 金箔制作工突发故障应对考核试卷及答案
- 采购员设备调试考核试卷及答案
- 米粉及杂粮类制品课件
- 楔形平板产生的等厚干涉
- 骨髓腔穿刺在急诊急救中的应用课件
- 机械动力学PPT完整全套教学课件
- 年产2.03万吨高端精细化学品及5G新材料项目环评报告书
- 群众文化副高答辩问题及答案
- GB/T 41972-2022铸铁件铸造缺陷分类及命名
- 主编-孙晓岭组织行为学-课件
- 中医刮痧法诊疗操作评分标准
- 《师范生教师职业能力证书》样式及说明
- 学校体育学(第三版)ppt全套教学课件
评论
0/150
提交评论