为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

倒计时设计——单片机课程设计-自动化

2017-10-22 29页 doc 264KB 27阅读

用户头像

is_882336

暂无简介

举报
倒计时设计——单片机课程设计-自动化倒计时设计——单片机课程设计-自动化 课程名称: 单片机原理及应用 系 部: 电气与信息工程学院 专业班级: 自动化11101 学生姓名: 曹益发 指导教师: 王南兰 完成时间: 2013年6月14日 报告成绩: 评阅意见: 评阅教师 日期 I 单片机课程设计——倒计时设计 目录 Abstract .................................................................... 2 第一章 系统方案 .........................
倒计时设计——单片机课程设计-自动化
倒计时——单片机课程设计-自动化 课程名称: 单片机原理及应用 系 部: 电气与信息工程学院 专业班级: 自动化11101 学生姓名: 曹益发 指导教师: 王南兰 完成时间: 2013年6月14日 报告成绩: 评阅意见: 评阅教师 日期 I 单片机课程设计——倒计时设计 目录 Abstract .................................................................... 2 第一章 系统 ............................................................. 3 1.1 总体方案 ............................................................ 3 1.2 方案组成 ............................................................ 3 第二章 硬件设计 ............................................................. 4 2.1 AT89C51的介绍 ....................................................... 4 2.2 复位电路 ............................................................ 4 2.3 按键电路 ............................................................ 5 2.4 显示电路 ............................................................ 5 2.5 蜂鸣器电路 .......................................................... 6 第三章 软件设计 ............................................................. 8 3.1 主程序设计 .......................................................... 8 3.1.1 倒计时模块设计 ................................................. 8 3.1.2 键盘扫描模块 ................................................... 9 3.2 时间调整子程序设计 ................................................. 10 3.3 显示子程序设计 ..................................................... 10 3.4 复位程序设计 ....................................................... 11 第四章 系统调试 ............................................................ 12 4.1 软件仿真 ........................................................... 12 4.2 硬件调试 ........................................................... 14 第五章 总结 ................................................................ 15 5.1 设计心得及体会 ..................................................... 15 参考文献 ................................................................... 16 附录 ....................................................................... 17 附录A 程序清单 ......................................................... 17 附录B 总电路图 ......................................................... 24 II 摘要 近年来随着计算机在社会领域的渗透,单片机的应用正在不断的走向深入,同时带动传统控制检测日新月异更新。在实时控制和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。 本系统由单片机系统、按键、蜂鸣器和LED数码管显示系统组成。装置利用AT89C51单片机与74LS245驱动器驱动LED数码管显示。通过按键控制设定倒计时时间,再通过中断控制系统开始倒计时。当倒计时时间到时,由P3.0口驱动蜂鸣器发声报警。为了简化电路,降低成本,采用以软件为主的的接口方法。 该系统实用、功能灵活多样,可以对计时时间进行实时控制,可以广泛的应用于各种场所的控制设备。 关键词:单片机;计时器;AT89C51;LED数码管 1 单片机课程设计——倒计时设计 Abstract Recent years, with the penetration of computers in the social sphere, SCM applications are constantly deepening, while driving rapid updating of traditional control testing. In real-time control and automatic control of microcomputer application system, the microcontroller is often used as a core component, only the microcontroller knowledge is not enough, should be based on the specific hardware architecture, as well as application-specific software features object combine to make perfect . The system consists of SCM system, buttons, buzzer and LED digital display system. Device uses AT89C51 microcontroller with 74LS245 driver to drive LED digital tube display. Through the control button to set the countdown time, and then through the interrupt control system starts the countdown. When the countdown time to time, by the P3.0 port driver buzzer alarm. To simplify, reduce costs, the use of a software-based interface methods. The system is practical, functional and flexible, can be time-time real-time control, can be widely used in various places of the control equipment. Keywords: microcontroller; timer; AT89C51; LED digital tube 2 单片机课程设计——倒计时设计 第一章 系统方案 1.1 总体方案 为了实现LED显示器的数字显示,可以采用静态显示法和动态显示法。采用动态扫描法实现LED的显示。单片机采用AT89C51系列,如果要使用电池供电的话,则可以采用LV系列的单片机。硬件系统的总体构成框架如下图2.1所示。 开关电路 单片机 延时 LED显 按键输入电路 子程序 示电路 蜂鸣器电路 图1-1 系统总体构架 框图 设计时可采用模块化程序设计方法。模块划分时应遵循下述原则: (1)每个模块应具有独立的功能,能产生一个明确的结果。 (2)模块之间的控制参数应尽量简单,数据参数应尽量少。控制参数是模块进入和推出繁荣条件及方式,数据参数是模块间信息交换方式、交换量的多少及交换的频繁程度。 (3)模块长度适中。模块语句的长度通常在20~100条较合适。米快太长时,和调试比较困难,失去了模块化程序结构的优越性;模块太短则信息交换太频繁,也不合适。 1.2 方案组成 硬件部分由复位按钮、开始/暂停按钮、时间位选择按钮、时间位调整按钮、AT89C51单片机、一个6位共阴极LED显示器、蜂鸣电路等组成。 软件部分主程序主要由系统初始化段、键盘识别、键值处理、蜂鸣器处理,以及6位共阴极LED显示器扫描显示子程序,T0中断子程序,时间调整子程序组成。 3 单片机课程设计——倒计时设计 第二章 硬件设计 2.1 AT89C51的介绍 AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes U1ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储1939XTAL1P0.0/AD038P0.1/AD137P0.2/AD21836器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容XTAL2P0.3/AD335P0.4/AD434P0.5/AD533P0.6/AD6MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器932RSTP0.7/AD7 21P2.0/A822和ISP Flash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入P2.1/A923P2.2/A102924PSENP2.3/A113025ALEP2.4/A12式控制应用系统提供高性价比的解决方案。 AT89S51具有如下特点:403126EAP2.5/A1327P2.6/A1428P2.7/A15个引脚,4k Bytes Flash片内程序存储器,128bytes的随机存取数据存储器110P1.0P3.0/RXD211P1.1P3.1/TXD312(RAM),32个外部双向输入/输出(I/O)口,4个中断优先级2层中断P1.2P3.2/INT0413P1.3P3.3/INT1514P1.4P3.4/T0615P1.5P3.5/T1嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,内部集716P1.6P3.6/WR817P1.7P3.7/RD AT89C51成看门狗计时器片内时钟振荡器。图2-1为AT89C51在proteus 中的引脚图。 图2-1 AT89C51的引脚图 2.2 复位电路 为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般微机电路正常工作需要供电电源为5V?5%,即4.75,5.25V。由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。 目前为止,单片机复位电路主要有四种类型:(1)微分型复位电路;(2)积分型复位电路;(3)比较器型复位电路;(4)看门狗型复位电路 现在详细介绍看门狗复位电路: 看门狗型复位电路主要利用CPU正常工作时,定时复位计数器,使得计数器的值不超过某一值;当CPU不能正常工作时,由于计数器不能被复位,因此其计数会超过某一值,从而产生复位脉冲,使得CPU恢复正常工作状态。典型应用的Watchdog复位电路如图2-2所示。 此复位电路的可靠性主要取决于软件设计,即将定时向复位电路发出脉冲的程序放在何处。一般设计,将此段程序放在定时器中断服务子程序中。然而,有时这种设计仍然会引起程序走飞或工作不正常。原因主要是:当程序“走飞”发生时定时器初始化以及开中断之后的话,这种“走飞”情况就有可能不能由Watchdog复位电路校正回来。因为定时器中断一真在产生,即使程序不正常,Watchdog也 4 单片机课程设计——倒计时设计 能被正常复位。为此提出定时器加预设的设计方法。即在初始化时压入堆栈一个地址,在此地址内执行的是一条关中断和一条死循环语句。在所有不被程序代码占用的地址尽可能地用子程序返回指令RET代替。这样,当程序走飞后,其进入陷阱的可能性将大大增加。而一旦进入陷阱,定时器停止工作并且关闭中断,从而使Watchdog复位电路会产生一个复位脉冲将CPU复位。 图2-2 看门狗型复位电路 2.3 按键电路 本设计的按键共有四个,包括有系统复位按钮、开始/暂停按钮、时间位选择按钮、时间位调整按钮。四个按钮分别接入P1.0、P1.1、P1.2、P1.3。 接线如图2-3所示: 图2-3 按键电路接线图 2.4 显示电路 由于本设计要求倒计时范围最大为60分钟,由LED 显示模块显示剩余时间,显示格式为 XX(分):XX(秒).X,精确到0.1s的整数倍,故采用6位共阴极LED显示器7SEG-MPX6-CC-BLUE。通常在显示上 5 单片机课程设计——倒计时设计 我们采用的方法一般包括两种:一种是静态显示,另一种是动态显示。其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多;动态显示的特点是显示稳定性没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。在本设计中根据实际情况采用的是动态显示方法。 引脚图如下图2-4所示: 图2-4 六位共阴极LED显示器引脚图 显示器采用一个六位共阴极LED显示器,来实现显示器的动态扫描,八个二极管连接一个阴极的结构,只要另一段为高电平,二极管就会发光,从而形成一段。将八段顺序排列后就成为具有一定编码的共阴显示器了。动态扫描的频率有一定的要求,频率太低,LED将出现闪烁现象。如频率太高,由于每个LED点亮的时间太短,LED的亮度太低,肉眼无法看清,所以一般均取几个ms左右为宜。显示电路如图2-5所示。 图2-5 显示电路接线图 2.5 蜂鸣器电路 设计要求倒计时时间到时要有声音提醒信号产生,可选择一只蜂鸣器来实现这一功能。选用电平式蜂鸣器。 蜂鸣器电路与单片机的接口:蜂鸣器的输入接P1.0口,另一端接地。当P1.0=1时,蜂鸣器中有电 6 单片机课程设计——倒计时设计 流通过,而产生蜂鸣声。当P1.0=0时,蜂鸣器不发声。连接图如图2-6所示。 图2-6 蜂鸣器电路接线图 7 单片机课程设计——倒计时设计 第三章 软件设计 3.1 主程序设计 (1)程序的起始地址 MCS-51系列单片机复位后,(PC)=0000H,而0003H~002BH分别为个中断源的入口地址。所以,编程也应在0000H处写一跳转指令。 当CPU接受到中断请求信号并予以响应后,CPU把当前的PC内容压入栈中进行保护,然后转入响应的中断服务程序入口处执行。一般在响应的中断服务程序入口处写一条跳转指令,并以跳转指令的目标地址作为中断服务程序的其始地址进行编程。 (2)主程序的初始化内容 主程序 所谓初始化,是对用到的单片机内部部件或拓展 设置各中断服务程序的入口地址 芯片进行初始工作状态设定。 在本例中,使用了两个中断,即T0、T1。其中: 相关寄存器清零 1.T0中断:采用T0定时中断工作方式,完成倒 计时。 设置数码管显示初始状态 2.T1中断:采用T1定时中断工作方式,完成蜂 按键扫描 鸣器报警。 (3)主程序流程图如图3-1所示。 显示按下的数字 进行倒计时 N 时间到零否 Y 报警 3.1.1 倒计时模块设计 (1)定时器T0,T1计数初值 T0计数初值为:TL0=(65536-50000)/256;TH0=(65536-50000)MOD 256 T1计数初值为:TH1=(65536-700)/256;TL1=(65536-700)MOD 256 工作方式TMOD=00000001H=01H 8 单片机课程设计——倒计时设计 (2)流程图如图3-2所示 开始倒计时 寄存器清零 设置定时器0工作方式 N 判断按键次数 3次 1次 2次 关闭定时器0 T1中断 发声提示达到最大 等待中断 值 图3-2 倒计时模块流程图 3.1.2 键盘扫描模块 扫描按键情况,并显示在数码管的分数值位。 N 按键去抖动的处理。由于机械触点的弹性作用,在 闭合及断开的瞬间均伴随有一连串的抖动,抖动时间长 短由按键的机械特性决定,一般为5~10ms。而按键稳定 调用延时子程序 闭合时间的长短则是由操作人员的按键动作决定的,一 般为零点几秒至数秒。键抖动会引起一次按键被误读多 有键闭合, 次,为了确保CPU对键的一次闭合仅做一次处理,键抖 动可用硬件和软件两种方法消除。本设计采用软件方法,Y 程序框图如图3-3所示。 确定闭合的 图3-3 按键去抖框图 9 单片机课程设计——倒计时设计 3.2 时间调整子程序设计 时间调整子程序包括两个按钮:时间位选择和时间值设定。首先时间位选择按钮选择显示器时钟的时位中的十位、个位,或则分钟的十位、个位等,选定时间位后,按下时间位调整按钮,依次+1,在0~9之间选择数值,传送到显示器显示。流程图如图3-4所示。 开始 N 时间键闭合, Y 显示器停止, 显示00:10:0 时间位选择 数值调整 显示器显示 图3-4 时间调整子程序流程图 3.3 显示子程序设计 由于该系统使用的是六位LED显示器显示倒计时,因此显示采用动态扫描显示方法,即由显示器扫描显示子程序控制显示器逐个循环从左至右依次点亮各个显示器。这样虽然在任一时刻只要一个显示器点亮,但是由于人眼具有视觉残留效应,看起来与全部显示器持续点亮效果一样。显示器扫描显示子程序显示每一位用如图3-5所示流程方法完成。 10 单片机课程设计——倒计时设计 开始 上一位 显 示 从89C51的P1口送 显示器位码 读相应位存储单元数据(中间两 位显示“——”无此步) 由读得数据查表确定段码由 89C51送相应显示器位 下一位 显 示 结束 图3-5 显示子程序流程图 开始 3.4 复位程序设计 按钮与单片机P1.0引脚相连,当每次按下该按钮后,系统将通过软件实现对倒计时器复位功能。 在主程序运行过程中,只要系统识别到与单片机P1.0引脚相连的按P1.0为0 键按下,程序则会转去执行复位程序,完成对寄存单元的清零,显示器各位的显示数寄存单元的复位,执行完毕后,返回主程序。流程图如3-6所示。 显示器复位 结束 图3-6 复位程序流程图 11 单片机课程设计——倒计时设计 第四章 系统调试 4.1 软件仿真 设置倒计时初值: 按下开始/暂停,开始倒计时: 12 单片机课程设计——倒计时设计 设置从1分钟开始倒计时,首先,按下复位键,再按下“时间位选择”,显示器显示“00.10.0”: 再按1次“时间位选择”,调至分钟的个位,再按1次“时间位调整”,将分钟个位调至为“1”。在按下“时间位选择”,调至秒钟的十位,按“时间位调整”,将秒钟的十位调至为“0”。再按下“时间位选择”调至显示器的最后一个空白位,显示情况如下图: 13 单片机课程设计——倒计时设计 当倒计时器到达“00.00.0”的时候,蜂鸣器有电流通过,信号显示变为红色,蜂鸣器报警: 4.2 硬件调试 这个电路是在老师的指导下设计的,电路的设计在理论上完全行得通,不过接线是设计中最关键的一步,我的接线原则是从全局出发,逐个模块连接调试,最后总体调试。在这个指导思想下,我的安装还算是是成功的。 逐个模块接线再调试,可以为总体调试省去很多时间,只要每个模块正常运行,几个模块通过地址总线连接之后,就不会出现太大的问了。 调试前的直观检查: 1、连线是否正确,在通电之前应先检查一下电路的连线是否正确,包括错线,少线和多线的情况。查找的方法有:按照电路图检查安装的线路,这种方法的特点是,根据电路图来确定,按一定的顺序逐一检查安装好的线路,由此,可容易查出错线和少线的情况,还有一种方法就是按照实际的线路来对照原理电路进行查线,这是一种以元件为中心进行查线的方法。把每个元件引脚的连线一次查清 ,检查每个接线处在电路图上是否存在,这种方法不但可以查出错线和少线,还容易查处多线的情况。 2、元器件安装时情况 检查元、器见引脚之间有无短路;连接处有无接触不良;二极管和电容极性等是否连接有误。电源、信号源连接是否正确。 3、电源端对地是否存在短路,在通电前,断开一根电源线,万用表检查电源对地端是否存在短路。 14 单片机课程设计——倒计时设计 第五章 总结 5.1 设计心得及体会 该倒计时器是基于定时而设计的实现计时报警的装置。由键盘扫描、动态LED显示电路、报警三大部分构成。装置利用AT89C51单片机构成电路,以实现对计时时间的控制。同时装置还用一个由电平控制的报警装置,用以实现倒计时时间到时进行声音提示。 本装置的最大特点是实时性强,可操作性好。因为采用了矩阵式键盘控制,能够随时改变倒计时时间,所以装置能够应对不同的要求而做出相应的调整,以适应不同的环境。 看事物要辩证的看。本装置也存在一些缺点值得注意。如当按键开关出现问题时,系统会出现错误,甚至误报警。如果能采用红外线控制则可避免这一问题。 一般倒计时器并不是单独使用,可以与一些需要用到定时报警的大型装置相互配合使用,实现其自身的价值。定时报警装置越来越受人们关注,从计时几秒到几个小时不等,所选用的器件个不同,功能越来越先进。所以,将单片机技术与实际结合起来,具有非常广阔的应用前景。 作为一名自动化专业的大二学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力,如何把我们所学的专业基础课理论知识运用到实践中去呢,我想做类似的课程设计就为我们提供了良好的实践平台。 我在整个设计过程中懂得了许多东西,当遇到一不了的问题,跟同伴一起商量、合作,或许能收到事半功倍的效果。不管学什么,一定要打好基础,并将其学好、学精,但空有知识也不一定就能说明什么,还得能为己所用;还有更重要的是培养了独立思考和设计的能力,树立了对知识应用的信心,相信会对今后的学习工作和生活有非常大的帮助,并且提高了自己的动手实践操作能力, 使自己充分体会到了在设计过程中的成功喜悦。虽然这个设计做的不是很完美,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益;最后,也是我感触比较深的一点,这次课程设计时为数不多的独立完成的一次,虽然过程中遇到很多困难,让自己犯愁过,彷徨过,急躁过,可当自己很快调整好心态,从跌倒的地方爬起来继续,最后取得成功,不止是成功后的喜悦,也是一次锻炼! 通过这次课程设计,明白学习是一个长期积累的过程,在以后的工作和生活中都应该不断的学习,努力提高自己的知识和综合素质,并将理论与实际相结合,理论与实际同样重要。 15 单片机课程设计——倒计时设计 参考文献 [1]、《微型计算机原理及应用》许立梓编 机械工业出版社 2002 [2]、《微型计算机接口技术及应用》刘乐善编 华中理工大学出版社 2000 、《计算机硬件技术基础试验教程》邹逢兴编 [3] 高等教育出版社 2000 [4]、《16位微型计算机原理接口及其应用》周佩玲编 中国科学技术大学出版社2000 [5]、《微型计算机原理与接口技术》吴秀清编 中国科学技术出版社 2001 [6]、《微型计算机接口技术》邓亚平编 清华大学出版社 2001 [7]、《单片机原理及及应用》王迎旭编 机械工业出版社 2001 [8]、《单片机应用程序设计技术》 周航慈 著 北京航空航天大学出版社 2002 [9]、《单片机实用技术问答》 谢宜仁 主编 人民邮电出版社 2002 16 单片机课程设计——倒计时设计 附录 附录A 程序清单 ORG 0000H AJMP MAIN ORG 000BH ;T0中断程序入口地址 AJMP T0ZD ORG 00100H MAIN:CLR TR0 ;主程序开始 CLR P3.0 ;关闭蜂鸣器 CLR 20H.0 ;开始/暂停标志位,使程序处于等待开始/暂停键按下 MOV 40H,#00H ;0.1S位查表码 MOV 41H,#00H ;秒钟个位位查表码 MOV 42H,#00H ;秒钟十位位查表码 MOV 43H,#00H ;分钟个位位查表码 MOV 44H,#06H ;分钟十位位查表码 MOV 45H,#00H ;状态显示管查表码 MOV 46H,#02H ;定时器定时次数 SETB EA ;开总中断 SETB ET0 ;开定时器T0中断 MOV TMOD,#01H ;定时器工作方式0 MOV TL0,#0B0H ;定时初值,采用50MS定时 MOV TH0,#3CH JPJC:LCALL XSCX ;显示倒计时初值60.00.0(XSCX),进入键盘检测程序 MOV P1,#0FFH ;判断复位键是否按下 JB P1.0,JC12 LCALL XDYS ;调用消抖延时程序(XDYS) JB P1.0,JC12 PP10:JNB P1.0,DP10 ;等待按键按下 AJMP MAIN ;复位键按下后转到主程序(MAIN)重新开始 17 单片机课程设计——倒计时设计 JC12:MOV P1,#0FFH ;判断设置键是否按下 JB P1.2,JC11 LCALL XDYS JB P1.2,JC11 PP12:JNB P1.2,DP12 ;调时设置键按下后转到调时子程序(TSCX) ACALL TSCX JC11:MOV P1,#0FFH ;判断开始/暂停键是否按下 JB P1.1,JPJC LCALL XDYS JB P1.1,JPJC PP11:JNB P1.1,DP11 CPL 20H.0 ;将标志位取反 JB 20H.0,KSJS ;开始/暂停标志为1则开始计数(KSJS) CLR TR0 AJMP JPJC ;继续检测键盘按键情况(JPJC) DP10:LCALL XSCX ;等待按键按下时,调用显示程序,防止显示管没显示 AJMP PP10 DP11:LCALL XSCX AJMP PP11 DP12:LCALL XSCX AJMP PP12 KSJS:SETB P2.5 ; JB P3.0,JPJC ;若蜂鸣器响,则不启动计时器 SETB TR0 ;启动计时器TO (KSJS) AJMP JPJC ;显示子程序 XSCX:MOV DPTR,#TAB ;显示子程序(XSCX) MOV A,40H MOVC A,@A+DPTR MOV P0, #0FFH ;关闭显示. MOV P2, A ;输出0.1S位的显示段码. 18 单片机课程设计——倒计时设计 CLR P0.0 ;P2.0=0 ACALL XSYS MOV DPTR,#TAB1 ; MOV A,41H MOVC A,@A+DPTR MOV P0, #0FFH ;关闭显示. MOV P2, A ;输出秒钟个位的显示码. CLR P0.1 ;P2.1=0 ACALL XSYS MOV DPTR,#TAB MOV A,42H MOVC A,@A+DPTR MOV P0, #0FFH ;关闭显示. MOV P2, A ;输出秒钟十位位的显示段码. CLR P0.2 ;P2.2=0 ACALL XSYS MOV DPTR,#TAB1 MOV A,43H MOVC A,@A+DPTR MOV P0, #0FFH ;关闭显示. MOV P2, A ;输出分钟个位的显示段码. CLR P0.3 ;P2.3=0 ACALL XSYS MOV DPTR,#TAB MOV A,44H MOVC A,@A+DPTR MOV P0, #0FFH ;关闭显示. MOV P2, A ;输出分钟十位的显示段码. CLR P0.4 ;P2.4=0 ACALL XSYS 19 单片机课程设计——倒计时设计 ZBTC:RET ; T0中断子程序 T0ZD:CLR EA ;T0中断子程序,关中断 (T0ZD) CLR ET0 CLR TR0 DJNZ 46H,TCZD MOV 46H,#02H ;当定时两次后重新给计时次数赋值为2 MOV R0,#40H ;减1计数,R0为40H CJNE @R0,#01H,R040 INC R0 ;R0为41H CJNE @R0,#00H,DEC1 INC R0 ;R0为42H CJNE @R0,#00H,DEC1 INC R0 ;R0为43H CJNE @R0,#00H,DEC1 INC R0 ;R0为44H CJNE @R0,#00H,DEC1 AJMP JYFH R040:CJNE @R0,#00H,DEC1 ;R0为40H INC R0 ;R0为41H CJNE @R0,#00H,R041 INC R0 ;R0为42H CJNE @R0,#00H,R042 INC R0 ;R0为43H CJNE @R0,#00H,R043 INC R0 ;R0为44H CJNE @R0,#00H,R044 AJMP ZJFH R041:MOV 40H,#09H DEC 41H 20 单片机课程设计——倒计时设计 AJMP TCZD R042:MOV 40H,#09H MOV 41H,#09H DEC 42H AJMP TCZD R043:MOV 40H,#09H MOV 41H,#09H MOV 42H,#05H DEC 43H AJMP TCZD R044:MOV 40H,#09H MOV 41H,#09H MOV 42H,#05H MOV 43H,#09H DEC 44H AJMP TCZD DEC1:DEC 40H TCZD:MOV TH0,#3CH ;退出中断子程序 MOV TL0,#0B0H SETB EA SETB ET0 SETB TR0 AJMP ZZFH JYFH:DEC 40H ZJFH:SETB P3.0 ;启动蜂鸣器 ZZFH:RETI ;时间调整子程序 TSCX:CLR TR0 ;调时子程序(TSCX) CLR 20H.0 ;使时间调整时处于暂停状态 21 单片机课程设计——倒计时设计 MOV 40H,#00H MOV 41H,#00H MOV 42H,#01H MOV 43H,#00H MOV 44H,#00H MOV R0,#44H JCTZ:ACALL XSCX ;先调用显示程序,扫描时间调整键 MOV P1,#0FFH JB P1.3,NEXT ;+1键盘没有按下 ACALL XDYS ;键盘按下,消抖延时 JB P1.3,NEXT DEN0:JNB P1.3,DEN1 ;等待按键释放 AJMP JYCX ;+1键按下后,跳转到+1程序 NEXT:MOV P1,#0FFH JB P1.2,JCTZ ACALL XDYS ;键盘按下,消抖延时 JB P1.2,JCTZ DEN2:JNB P1.2,DEN3 ;等待按键释放 MOV A,44H CJNE A,#06H,DEC4 ;设置键再次按下,将调整指针指向下一位 AJMP TCTS DEC4:DEC R0 CJNE R0,#3FH,JCTZ ;若R0为3FH则退出调时程序 AJMP TCTS ;若@R0不为#06H,但R0为#3FH,则跳出调时程序 JYCX:CJNE R0,#44H,XIA1 ;加1调时部分 CJNE @R0,#06H,INCR ;调整分钟十位 AJMP SET0 XIA1:CJNE R0,#43H,XIA2 AJMP TZ09 ;调整分钟个位 XIA2:CJNE R0,#42H,XIA3 22 单片机课程设计——倒计时设计 CJNE @R0,#05H,INCR ;调整秒钟十位 AJMP SET0 XIA3:CJNE R0,#41H,XIA4 AJMP TZ09 ;调整秒钟个位 XIA4:CJNE R0,#40H,TCTS TZ09:CJNE @R0,#09H,INCR ;调整0.1秒位 SET0:MOV @R0,#00H AJMP JCTZ INCR:INC @R0 AJMP JCTZ DEN1:ACALL XSCX AJMP DEN0 DEN3:ACALL XSCX AJMP DEN2 TCTS:MOV TH0,#3CH ;退出调时程序 MOV TL0,#0B0H MOV 45H,#00H ;将状态显示码更改为D(等待状态) RET XDYS:ACALL XSCX ;消抖延时程序,延时10ms(2*5ms) ACALL XSCX ;采用调用显示子程序延时以改善LED显示效果 RET XSYS:MOV 55H,#20 ;显示延时程序,延时1ms DEL2:MOV 56H,#25 DEL1:DJNZ 56H,DEL1 DJNZ 55H,DEL2 RET TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH TAB1:DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH END 23 单片机课程设计——倒计时设计 附录B 总电路图 24
/
本文档为【倒计时设计——单片机课程设计-自动化】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索