定时闹钟设计_第1页
定时闹钟设计_第2页
定时闹钟设计_第3页
定时闹钟设计_第4页
定时闹钟设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

单片机课程设计报告组人员:学号:专业班级:指导老师:学院:摘要时间就是金钱,时间就是生命。在当今竞争剧烈的社会中,信息的竞争占据着十分重要的地位。现在的竞争就是信息的竞争,要想在信息战争中取得胜利,就必须打赢时间战。在现代竞争中,时间已经成为取胜的关键。所以,有时间观念的人才能在竞争中取得胜利。因此,看时间也就成为了人们时刻要做的事。在很早时期人们所用的还是比拟单一功能的手表。这种手表只能看时间而不能看日期、又不具备闹铃等功能,而且看起来也不够直观,给一些小孩和老人带来了不便。随着科技的开展,电子技术也在不断的向前飞速开展。本设计是简单定时闹钟系统,不仅能实现系统要求的功能:(1)能显示时时-分分,(2)能设定和修改定时时间,(3)定时时间到后能发出报警声;而且还有附加功能,即还能设定和修改当前所显示的时间。本设计采用单片机AT89S52作为核心元件,12MHZ晶振,由P0口输出所要显示的字形段码,由P2口输出字位信号。在其根底上扩展外围芯片与电路,附加时钟电路及LED电路。LED采用共阴极接法,低电平有效选中相应的LED。通过这次设计让我更深入了解单片机根本电路、如何控制和定时器和中断编程的根本方法,从而锻炼了我学习、设计和开发软、硬件的能力。关键词:定时闹钟单片机AT89S52LED目录1概述………………31.1课程设计的目的和意义…………………31.2设计要求……………………32系统总体方案及硬件设计………42.1总体设计方案………………42.2.1主控模块的选择…………42.2.2显示模块的设计………42.2.3控制按键的选择………52.3各功能模块…………………52.3.1AT89S525…………………52.3.2数码管显示电路…………82.3.3本设计输入输出电路……………………102.3.4最小系统设计……………112.3.5时钟电路的设计…………133软件设计……………………143.1系统软件设计说明…………143.2LED的编程思想……………143.3程序调试……………………143.4程序流程图…………………154课程设计体会…………………16参考文献……………17附1源程序代码……………………18附2系统原理图……………………271.概述1.1课程设计的目的和意义课程设计是在学完《单片机原理及接口技术》课程之后综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现,从而加深对单片机软硬知识的理解,获得初步的应用经验,为走出校门从事单片机应用的相关工作打下根底.1.2设计要求1〕能显示“时时-分分〞。2〕能设定、修改定时时间。3〕定时时间到能发出报警声或者启动继电器,从而控制电器的启停2.系统总体方案及硬件设计2.1总体设计方案本设计使用的是单片机作为核心的控制元件,使得电路的可靠性比拟高,功能也比拟强大,而且可以随时的更新系统,进行不同状态的组合。

本系统采用单片机AT89S52作为本设计的核心元件,利用7段共阴LED作为显示器件。接入共阴LED显示器,可显示时,分钟,单片机外围接有定时报警系统,定时时间到,扬声器发出报警声,提示预先设定时间电器的起停时间到,从而控制电器的起停。电路由以下局部组成:时钟电路、复位电路、控制电路、LED显示,报警电路,芯片选用AT89S52单片机。2.2方案比拟2.2.1主控模块的选择方案一:8031芯片内部无ROM,需要外扩程序存储器,由此造成电路焊接的困难,况且使用8031还需要另外购置其他的芯片,从而造成本钱较高,性价比低。方案二:89C51芯片内部有ROM,且片内ROM全部采用FlashROM,它能于3V的超低压工作,与MCS-51系列单片机完全兼容,但是其不具备ISP在线编程技术,需把程序编写好以后再放到编程器中烧写,才可以进行硬件电路的调试,倘假设程序编写出现问题,调试电路就比拟麻烦,而且其芯片内存也只有4KB。方案三:基于前两种方案的比拟,考虑到AT89S52,该芯片内部既有FlashROM,又与MCS-51兼容,而且ISP在线编程技术适用于AT89S52芯片,这样既降低了本钱也无需反复插拔芯片,可防止损坏芯片;而且他的性能稳定且内存达8KB。综观上述三种方案的论证与比拟,我们采用AT89S52作为主控模块芯片。2.2.2显示模块的设计方案一:LCD数码管液晶显示,由单片机驱动.它主要用来显示大量数据、文字、图形,能够显示的位数多,显示得清晰多样、美观,但同时液晶显示器的编写程序复杂,价格昂贵,从而降低了整个系统的性价比,故不采用此种方案。方案二:点阵显示,是由八行八列的发光二极管集成在一块电路上组成,主要用来显示汉字,同时也能显示数字和少量图象,但它的焊接较麻烦,价格高,鉴于所设计的题目要求它不切实际。所以排除此方案。方案三:LED数码管静态显示,电路容易理解且驱动的程序简单,多片七段译码器驱动显示,这不仅增加了本钱,还需要占用单片机多个I/O口,也给电路的焊接带来一定的困难,因此不选用这种方案作为显示模块。方案四:采用LED数码管动态扫描显示,价格低廉,不仅减少了对I/O口的浪费,而且能够同时驱动多个数码管。其驱动程序容易编写和理解。经过四种方案的比拟,排除了前三种方案之后,最后选择方案四:LED数码管动态扫描显示。2.2.3控制按键的选择方案一:选取阵列式按键,减少了I/O口的使用,且扫描M×N个按键只需占用M+N个I/O口即可实现,但给编程带来了一定的困难,虽然节省了很多的口线,降低了本钱,但在此设计中所用的按键要尽量少,因此排除此方案。方案二:独立式按键,每个按键实现一个功能,易于控制且编写程序简单,容易理解,虽然会占用一定的单片机I/O口资源,但是题目中要求使用的按键要尽量少。通过以上两种方案比拟,采用方案二。2.2.4总体方案经过方案论证与比拟,选择AT89S52作为主控,采用独立式按键控制,LED数码管动态扫描显示。2.3各功能模块2.3.1AT89S52主要性能与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。功能特性描述At89s52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程FlashAT89S52P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1〞时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1〞时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流〔IIL〕。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入〔P1.0/T2〕和时器/计数器2的触发输入〔P1.1/T2EX〕,具体如下所示。在flash编程和校验时,P1口接收低8位地址字节。引脚号第二功能P1.0T2〔定时器/计数器T2的外部计数输入〕,时钟输出P1.1T2EX〔定时器/计数器T2的捕捉/重载触发信号和方向控制〕P1.5MOSI〔在系统编程用〕P1.6MISO〔在系统编程用〕P1.7SCK〔在系统编程用〕P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1〞时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流〔IIL〕。在访问外部程序存储器或用16位地址读取外部数据存储器〔例如执行MOVX@DPTR〕时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址〔如MOVX@RI〕访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1〞时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流〔IIL〕。P3口亦作为AT89S52特殊功能〔第二功能〕使用,如下所示。在flash编程和校验时,P3口也接收一些控制信号。端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INTO(外中断0)P3.3INT1(外中断1)P3.4TO(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG——当访问外部程序存储器或数据存储器时,ALE〔地址锁存允许〕输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲〔PROG〕。如有必要,可通过对特殊功能存放器〔SFR〕区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN——程序储存允许〔PSEN〕输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令〔或数据〕时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器〔地址为0000H-FFFFH〕,EA端必须保持低电平〔接地〕。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平〔接Vcc端〕,CPU那么执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。2.3.2数码管显示电路单片机中通常使用7段LED,LED是发光二极管显示器的缩写。LED显示器由于结构简单,价格廉价,体积小,亮度高,电压低,可靠性高,寿命长,响应速度快,颜色鲜艳,配置灵活,与单片机接口方便而得到广泛应用。LED显示器是由假设干个发光二极管组成显示字段的显示部件,当发光二极管导通时,相应的一个点或一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符。LED七段数码显示器由8个发光二极管组成显示字符,根据内部发光二极管的连接形式不同,LED有共阴极和共阳极两种,本系统采用共阴极。LED显示原理中选用共阴极的LED时,所有发光二极管阴极连在一起接地,当某个发光二极管的阳极参加高电平时,对应的二极管点亮。因此要显示某字形就应使此字形的相应段的二极管点亮,实际上就是送一个用不同电平组合代表的数据字来控制LED的显示,此数据为字符的段码或称为字型码。字型码与LED显示器各段的关系为D7D6D5D4D3D2D1D0dpgfedcba表2-1dp为小数点,字符0、1、2……F的段码如表2-2所示字符段码〔共阴〕段码〔共阳〕03FHCOH106HF9H25BHA4H34FHB0H466H99H56DH92H67DH82H707HF8H87FH80H96FH90HA77H88HB7CH83HC39HC6HD5EHA1HE79H86HF71H8EH-40HBFH.80H7FH熄灭00HFFH以下图是本系统采用的共阴极LED七段数码显示器2.3.3本设计输入输出电路该系统输入电路采用的是P1口以及4个上拉电阻,其阻值为10千欧。其图如下:图2-4系统的输出电路采用的是P0口和P2口,喇叭口采用P3.7口。其电路如以下图2.3.4最小系统设计图AT89S52的最小系统单片机要正常运行,必须具备一定的硬件条件,其中最主要的就是三个根本条件:〔1〕电源正常;〔2〕时钟正常;〔3〕复位正常。AT89S52的引脚如图3-1所示。在AT89S52单片机的40个引脚中,电源引脚2根,晶振引脚2根,控制引脚4根,可编程输入输出引脚32根。(1)工作电源电源是单片机工作的动力源泉,对应的接线方法为;40脚〔VCC〕电源引脚,工作时接+5电源,20脚〔GND〕为接地线。(2)时钟电路时钟电路为单片机产生时序脉冲,单片机所有运算与控制过程都是在统一的时序脉冲的驱动下进行的,时钟电路就好比人的心脏一样重要。当采用内部时钟时,连接方法如图2-1所示,在晶振引脚XTAL1(19脚)和XTAL2(18脚)引脚之间接入一个晶振,两个引脚对地分别再接入一个电容即可产生所需的时钟信号,电容的容量一般在几十皮法,如30PF。(3)复位电路在复位引脚(9脚)持续出现24个振荡器脉冲周期(即2个机器周期)的高电平信号将使单片机复位。如图2-1所示电容C和电阻R构成了单片机上电自动复位电路。复位后,单片机从0000H单元开始执行程序,并初始化一些专用存放器为复位状态值,受影响的专用存放器如下表所示。复位存放器状态表存放器状态存放器状态PC000HTC0N00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0—P3FFHSCON00HIPXXX00000HSBUF不确定IEOXX00000HPCON0XXX0000HTMOD00H(4)控制引脚EA接法EA/VPP(31脚)为内外程序存储器选择控制引脚,当EA为低电位时单片机从外部程序存储器取指令;当EA接高电平时单片机从内部程序存储器取指令。AT89S51单片机内部有4KB可反复擦写1000次以上的程序存储器,因此要把EA接+5V高电平,让单片机运行内部的程序,这样就可以通过反复烧写来验证程序了。这就是AT89S52单片机最小化系统的连接,只要把编写好的程序烧写到单片机内部,并接上5V电源就可以正常运行了2.3.5时钟电路的设计1〕单片机时钟时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式:一种是内部时钟方式,另一种为外部时钟方式。本文用的是内部时钟方式。电路设计如以下图所示。单片机时钟AT89S52单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反向放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器3软件设计3.1系统软件设计说明该系统软件程序主要有主程序模块,定时中断效劳程序,中断等待效劳程序,键盘效劳程序,显示子程序效劳程序等六大模块组成。在AT89S52外围的一个17管脚即P3.7管口上加扬声器,通过软件与硬件的结合可实现定时报警功能。图中按键从上往下设定为S1,S2,S3,S4,S1与p1.4相连,S2与p1.3相连,S3与p1.2相连,S4与p1.1相连。当需要设定当前时间时,按一下S4键,进入时间设定状态,按一下S2,分钟加1;按一下S3,小时加1。如此反复来设定当前时间。调好时间后按S1退出当前时间设定状态;当要设定定时时间时,按下S3,进入定时时间设定状态,按一下S2,小时加1;按一下S4,分钟加1。如此反复来设定要设定的定时时间。设好后,按下S1退出定时时间设定状态。3.2LED的编程思想本设计使用LED数码管显示,LED显示器具有耗电少、本钱低、配置简单灵活、安装方便、耐震动、使用寿命长等优点,因而应用广泛。该方案控制最简单,但是只能显示有限的符号和数字,对于设计中复杂的显示功能显然不能胜任。虽然点阵液晶可以显示多种字符和图形,拥有友好的人机界面及强大的显示功能。特别适用于智能控制的可编程人性化显示。但是考虑到本设计的实际要求,使用数码管显示就足以到达要求了。七段LED由七个发光二极管按日字排开,所有发光二极管的阳极连在一起成共阳极,阴极连在一块称共阴极接法。当采用芯片驱动时不需要加限流电阻,其他情况下一般应外接限流电阻。动态显示电路有显示块,字形码封锁驱动器,字位锁存驱动器三局部组成。3.3程序调试1〕将程序输入到伟福的环境下;2〕用单步运行和断点运行方式调试程序;3〕调试T0中断效劳程序,首先在记数单元39H、3AH、3BH、3CH单元中预置数,调试秒单元向分单元进位及分单元向时单元的进位,最后将T0中断效劳程序统调通过;4〕在39H、3AH、3BH、3CH单元中预置数,调试显示程序;5〕调试主程序,使闹钟走时系统工作正常。3.4程序流程图判断闹钟时间到否程序判断闹钟时间到否程序初始化调用显示程序开始P1.1是否按下?调用时间设定程序P1.2是否按下?Y调用闹钟时间设定程序NNYYYY4.课程设计体会单片机是一门应用性很强的学科,课程设计是培养我们综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考察过程,为自己今后从事与单片机控制系统有关的工作打下了根底。虽然在做课程设计以前已经系统的把单片机课本认真的学习了一下,但是在刚拿到设计任务书时还是有点一头雾水,不知道该从哪里下手。令人欣慰的是经过一周的学习,虽然过程很艰辛,但是总算实现了定时闹钟的功能,所有的努力都很值得。这一周的大局部时间都在研究程序怎么处理,在这个过程中加深了我对汇编语言命令的应用,而且也更加了解到软硬件配套的重要性。以下是我本次单片机课程设计的几点心得与体会:

1.在设计程序之前,务必要对所学单片机课程的内容有一个系统的了解,知道单片机片内片外的内容及其功能。

2.设计程序采用什么编程语言并不是非常重要,关键要有一个清晰的思路和一个完整的软件流程图。模块化的设计思想在程序设计中的作用是十分大的,它可以为你提供一个比拟清晰的思路,并且很容易找到头绪,不至于在社以一个程序时感觉到无从下手。

3.在设计程序时,不能妄想一次就将整个程序设计好,"反复修改,不断改良"是程序设计的必经之路。程序刚开始编好时,一般情况下会存在很多错误,要不断地修改,不断的改良才能到达预期的目的,编写程序的时间并不是很长,主要是修改程序会花很多时间。

4.要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便。刚开始我在编写程序时,很不习惯于写注释,感觉很麻烦,而且没用,但是在修改的过程中我就遇到了较大的麻烦,以至于不得不重新的作了注释,以增加程序的易读性,从而使修改正程变得容易一些。总之,通过这次课程设计不仅使我稳固了本课程所学的根本知识,还使我具有了撰写科研报告的初步训练能力,我相信这些能力在我以后的工作或者是再学习中一定会起到不小的作用,一切的辛苦和艰难都是值得的。参考文献[1]单片机课程设计指导书 皮大能北京理工大学出版社 2023.7[2]8051单片机实践与应用 吴金戎 清华大学出版社 2003.8[3]单片机技术根底教程与实践夏路易 电子工业出版社2023.1[4]单片机原理及应用 张毅刚高等教育出版社2023.11[5]基于Proteus的单片机系统设计与仿真实例蒋辉平机械工业出版社2007.[6].余发山主编,单片机原理及应用技术,中国矿业大学出版社2003.12附件1:源程序代码ORG0000H LJMPMAIN ORG000BH LJMPTIME;×××××主程序局部:××××× ORG0100H MAIN:MOVSP,#50HMOV20H,#00H;秒钟BIN MOV21H,#00H;分钟BIN MOV22H,#00H;小时BIN MOV23H,#01H MOV24H,#01H MOV25H,#00H MOV30H,#00HMOV31H,#00H MOV32H,#00H MOV33H,#00H MOV34H,#00H MOV35H,#00H MOV36H,#01H MOV37H,#00H MOV38H,#01H MOV39H,#00H MOVTMOD,#01H;16位计数器 MOVTH0,#03CH;赋计数初值 MOVTL0,#0B0H MOVIE,#10000111B SETBTR0;T0启动计数MOVR2,#14HMOVP2,#0FFHLOOP:LCALLTIMEPRO LCALLDISPLAY1 JBP1.1,M1 LCALLSETTIME;调用设定时间程序 LJMPLOOPM1:JBP1.2,M2 LCALLSETATIME;调用设定时间程序 LJMPLOOP M2:JBP1.4,M4 LCALLLOOKATIME;调用设定闹钟时间程序M4:LJMPLOOPDELAY:MOVR4,#030H;延时时间DL00:MOVR5,#0FFHDL11:MOVR6,#9HDL12:DJNZR6,DL12 DJNZR5,DL11 DJNZR4,DL00 RET;×××××设定时间程序:×××××SETTIME:L0:LCALLDISPLAY1;调用时间允许程序MM1:JBP1.2,L1 MOVC,P1.2 JCMM1 LCALLDELAY1;调用延时 JCMM1MSTOP1:MOVC,P1.2 JNCMSTOP1;判断P1.2是否释放?释放那么继续 LCALLDELAY1;调用延时 MOVC,P1.2 JNCMSTOP1 INC22H;小时增加1 MOVA,22H CJNEA,#18H,GO12;判断小时是否到24时?未到继续循环 MOV22H,#00H;小时复位 MOV34H,#00HMOV35H,#00H LJMPL0 L1:JBP1.3,L2 MOVC,P1.3 JCL1 LCALLDELAY1;延时 JCL1 MSTOP2:MOVC,P1.3 JNCMSTOP2;判断P1.3是否释放?释放那么继续 LCALLDELAY1;调用延时 MOVC,P1.3 JNCMSTOP2 INC21H;分钟增加一 MOVA,21H CJNEA,#3CH,GO11 MOV21H,#00H;分钟复位 MOV32H,#00H MOV33H,#00H LJMPL0 GO11:MOVB,#0AH;将A中的内容分成上下两局部 DIVAB MOV32H,B MOV33H,A LJMPL0 GO12:MOVB,#0AH DIVAB MOV34H,B MOV35H,ALJMPL0 L2:JBP1.4,L0 MOVC,P1.4 JCL2 LCALLDELAY1;调用延时 MOVC,P1.4 JCL2 STOP1:MOVC,P1.4;判断按键P1.4是否释放? JNCSTOP1 LCALLDELAY1;调用延时 MOVC,P1.4 JNCSTOP1 LJMPLOOP ;×××××设置闹钟时间××××× SETATIME:LCALLDISPLAY2;调用时间运行 N0:LCALLDISPLAY2 MM2:JBP1.3,N1;判断P1.3是否按下? MOVC,P1.3 JCMM2 LCALLDELAY1 JCMM2 MSTOP3:MOVC,P1.3;判断P1.3是否释放?JNCMSTOP3 LCALLDELAY1 MOVC,P1.3 JNCMSTOP3 INC24H;设定小时增加1 MOVA,24H CJNEA,#24,GO22 MOV24H,#00H;时钟复位 MOV38H,#00H MOV39H,#00H LJMPN0 N1:JBP1.1,N2;判断P1.1是否按下? MOVC,P1.1 JCN1 LCALLDELAY1 JCN1 MSTOP4:MOVC,P1.1;判断P1.1是否释放? JNCMSTOP4 LCALLDELAY1 MOVC,P1.1 JNCMSTOP4 INC23H;设定闹钟分钟增加1 MOVA,23H CJNEA,#60,GO21;判断A是否到60分? MOV23H,#00H;分钟复位 MOV36H,#00H MOV37H,#00H LJMPN0 GO21:MOVB,#0AH;将A中的内容分成上下两局部 DIVAB MOV36H,B MOV37H,A LJMPN0 GO22:MOVB,#0AH DIVABMOV38H,B MOV39H,A LJMPN0 N2:JBP1.4,N0;判断P1.4是否按下? MOVC,P1.4 JCN2 LCALLDELAY1 MOVC,P1.4 JCN2 STOP2:MOVC,P1.4;判断P1.4是否释放?JNCSTOP2 LCALLDELAY1 MOVC,P1.4 JNCSTOP2 LJMPLOOP TIMEPRO:MOVA,21H MOVB,23H CJNEA,B,BK;判断分钟是否运行到设定的闹钟的分钟? MOVA,22H MOVB,24H CJNEA,B,BK;判断时钟是否运行到设定的闹钟的时钟? SETB25H.0 MOVC,25H.0 JCXX XX:LCALLTIMEOUT;调用时间闹钟响应程序 BK:RET TIMEOUT: X1:LCALLBZ;调用喇叭响应程序 LCALLDISPLAY2 CLR25H.0 JBP1.4,X1;判断P1.4是否按下? LCALLDELAY CLR25H.0 LJMPDISPLAY1 BZ:CLRP3.7;喇叭响应程序 MOVR7,#250;响应延时时间T2:MOVR6,#124 T3:DJNZR6,T3 DJNZR7,T2 SETBP3.7 RET LOOKATIME:LCALLDISPLAY2;调用时间运行程序 MM:JBP1.4,LOOKATIME;判断按键P1.4是否按下 MOVC,P1.4 JCMM LCALLDELAY1 MOVC,P1.4JCMM STOP3:MOVC,P1.4 JNCSTOP3 LCALLDELAY1 MOVC,P1.4 JNCSTOP3 LJMPLOOPDELAY1:MOVR4,#14H;时间延时 DL001:MOVR5,#0FFH DL111:DJNZR5,DL111 DJNZR4,DL001 RET ;×××××时间运行程序××××× TIME:PUSHACC;现场保护 PUSHPSW MOV TH0,#03CH;赋初值 MOV TL0,#0B0H DJNZ R2,RET0 MOV R2,#14H MOV A,20H CLRC INCA;秒钟自加1 CJNE A,#3CH,GO1;判断秒钟是否到60秒? MOV 20H,#0;到60秒复位 MOV30H,#0 MOV31H,#0 MOV A,21H INC A;分钟自加1 CJNE A,#3CH,GO2;判断分钟是否到60分? MOV21H,#0H;到60分复位

温馨提示

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

评论

0/150

提交评论