




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机课程设计报告组人员: 学 号: 专业班级: 指导老师: 学 院: 30摘要时间就是金钱,时间就是生命。在当今竞争激烈的社会中,信息的竞争占据着十分重要的地位。现在的竞争就是信息的竞争,要想在信息战争中取得胜利,就必须打赢时间战。在现代竞争中,时间已经成为取胜的关键。所以,有时间观念的人才能在竞争中取得胜利。因此,看时间也就成为了人们时刻要做的事。在很早时期人们所用的还是比较单一功能的手表。这种手表只能看时间而不能看日期、又不具备闹铃等功能,而且看起来也不够直观,给一些小孩和老人带来了不便。随着科技的发展,电子技术也在不断的向前飞速发展。本设计是简单定时闹钟系统,不仅能实现系统要求的功能:(1)能显示时时-分分,(2)能设定和修改定时时间,(3)定时时间到后能发出报警声;而且还有附加功能,即还能设定和修改当前所显示的时间。本设计采用单片机AT89S52作为核心元件,12MHZ晶振,由P0口输出所要显示的字形段码,由P2口输出字位信号。在其基础上扩展外围芯片与电路,附加时钟电路及LED电路。LED采用共阴极接法,低电平有效选中相应的LED。通过这次设计让我更深入了解单片机基本电路、如何控制和定时器和中断编程的基本方法,从而锻炼了我学习、设计和开发软、硬件的能力。关键词: 定时闹钟 单片机 AT89S52 LED目录1 概述3 1.1课程设计的目的和意义3 1.2设计要求32 系统总体方案及硬件设计4 2.1总体设计方案4 2.2.1 主控模块的选择42.2.2 显示模块的设计42.2.3 控制按键的选择52.3各功能模块52.3.1 AT89S52552.3.2数码管显示电路82.3.3本设计输入输出电路102.3.4最小系统设计112.3.5时钟电路的设计133软件设计14 3.1系统软件设计说明14 3.2 LED的编程思想14 3.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全部采用Flash ROM,它能于3V的超低压工作,与MCS-51系列单片机完全兼容,但是其不具备ISP在线编程技术, 需把程序编写好以后再放到编程器中烧写,才可以进行硬件电路的调试,倘若程序编写出现问题,调试电路就比较麻烦,而且其芯片内存也只有4KB。方案三: 基于前两种方案的比较,考虑到AT89S52,该芯片内部既有Flash ROM,又与MCS-51兼容,而且ISP在线编程技术适用于AT89S52芯片,这样既降低了成本也无需反复插拔芯片,可避免损坏芯片;而且他的性能稳定且内存达8KB。综观上述三种方案的论证与比较,我们采用AT89S52作为主控模块芯片。2.2.2 显示模块的设计方案一:LCD数码管液晶显示,由单片机驱动.它主要用来显示大量数据、文字、图形,能够显示的位数多,显示得清晰多样、美观,但同时液晶显示器的编写程序复杂,价格昂贵,从而降低了整个系统的性价比,故不采用此种方案。方案二: 点阵显示,是由八行八列的发光二极管集成在一块电路上组成,主要用来显示汉字,同时也能显示数字和少量图象,但它的焊接较麻烦,价格高,鉴于所设计的题目要求它不切实际。所以排除此方案。方案三: LED数码管静态显示,电路容易理解且驱动的程序简单,多片七段译码器驱动显示,这不仅增加了成本,还需要占用单片机多个I/O口,也给电路的焊接带来一定的困难,因此不选用这种方案作为显示模块。方案四:采用LED数码管动态扫描显示,价格低廉,不仅减少了对I/O口的浪费,而且能够同时驱动多个数码管。其驱动程序容易编写和理解。经过四种方案的比较,排除了前三种方案之后,最后选择方案四:LED数码管动态扫描显示。2.2.3 控制按键的选择方案一: 选取阵列式按键,减少了I/O口的使用,且扫描MN个按键只需占用M+N个I/O口即可实现,但给编程带来了一定的困难,虽然节省了很多的口线,降低了成本,但在此设计中所用的按键要尽量少,因此排除此方案。方案二: 独立式按键,每个按键实现一个功能,易于控制且编写程序简单,容易理解,虽然会占用一定的单片机I/O口资源,但是题目中要求使用的按键要尽量少。 通过以上两种方案比较,采用方案二。2.2.4总体方案经过方案论证与比较,选择AT89S52作为主控,采用独立式按键控制,LED数码管动态扫描显示。2.3各功能模块2.3.1 AT89S52 主要性能 与MCS-51单片机产品兼容 、8K字节在系统可编程Flash存储器、 1000次擦写周期、 全静态操作:0Hz33Hz 、 三级加密程序存储器 、 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 字节在系统可编程 Flash AT89S52 P0 口: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.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) 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.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INTO(外中断0)P3.3 INT1(外中断1)P3.4 TO(定时/计数器0)P3.5 T1(定时/计数器1)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)此外,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、2F的段码如表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单元开始执行程序,并初始化一些专用寄存器为复位状态值,受影响的专用寄存器如下表所示。 复位寄存器状态表寄存器状态寄存器状态PC000HTC0N00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0P3FFHSCON00HIPXXX00000HSBUF不确定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.2 LED的编程思想本设计使用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单片机课程设计指导书 皮大能 北京理工大学出版社2012.728051单片机实践与应用 吴金戎清华大学出版社 2003.83单片机技术基础教程与实践 夏路易电子工业出版社2008.14单片机原理及应用张毅刚 高等教育出版社 2012.115基于Proteus的单片机系统设计与仿真实例 蒋辉平 机械工业出版社2007.6.余发山主编,单片机原理及应用技术,中国矿业大学出版社2003.12附件1: 源程序代码ORG 0000H LJMP MAIN ORG 000BH LJMP TIME ;主程序部分: ORG 0100H MAIN:MOV SP,#50H MOV 20H,#00H ;秒钟BIN MOV 21H,#00H ;分钟BIN MOV 22H,#00H ;小时BIN MOV 23H,#01H MOV 24H,#01H MOV 25H,#00H MOV 30H,#00H MOV 31H,#00H MOV 32H,#00H MOV 33H,#00H MOV 34H,#00H MOV 35H,#00H MOV 36H,#01H MOV 37H,#00H MOV 38H,#01H MOV 39H,#00H MOV TMOD,#01H ;16位计数器 MOV TH0,#03CH ;赋计数初值 MOV TL0,#0B0H MOV IE,#10000111B SETB TR0 ;T0启动计数 MOV R2,#14H MOV P2,#0FFH LOOP: LCALL TIMEPRO LCALL DISPLAY1 JB P1.1,M1 LCALL SETTIME ;调用设定时间程序 LJMP LOOP M1:JB P1.2,M2 LCALL SETATIME ;调用设定时间程序 LJMP LOOP M2:JB P1.4,M4 LCALL LOOKATIME ;调用设定闹钟时间程序 M4:LJMP LOOP DELAY:MOV R4,#030H ;延时时间 DL00:MOV R5,#0FFH DL11:MOV R6,#9H DL12:DJNZ R6,DL12 DJNZ R5,DL11 DJNZ R4,DL00 RET ;设定时间程序: SETTIME: L0:LCALL DISPLAY1 ;调用时间允许程序 MM1: JB P1.2,L1 MOV C,P1.2 JC MM1 LCALL DELAY1 ;调用延时 JC MM1 MSTOP1: MOV C,P1.2 JNC MSTOP1 ;判断P1.2是否释放?释放则继续 LCALL DELAY1 ;调用延时 MOV C,P1.2 JNC MSTOP1 INC 22H ;小时增加1 MOV A,22H CJNE A,#18H,GO12 ;判断小时是否到24时?未到继续循环 MOV 22H,#00H ;小时复位 MOV 34H,#00H MOV 35H,#00H LJMP L0 L1:JB P1.3,L2 MOV C,P1.3 JC L1 LCALL DELAY1 ;延时 JC L1MSTOP2: MOV C,P1.3 JNC MSTOP2 ;判断P1.3是否释放?释放则继续 LCALL DELAY1 ;调用延时 MOV C,P1.3 JNC MSTOP2 INC 21H ;分钟增加一 MOV A,21H CJNE A,#3CH,GO11 MOV 21H,#00H ;分钟复位 MOV 32H,#00H MOV 33H,#00H LJMP L0 GO11:MOV B,#0AH ;将A中的内容分成高低两部分 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.4,L0 MOV C,P1.4 JC L2 LCALL DELAY1 ;调用延时 MOV C,P1.4 JC L2STOP1: MOV C,P1.4 ;判断按键P1.4是否释放? JNC STOP1 LCALL DELAY1 ;调用延时 MOV C,P1.4 JNC STOP1 LJMP LOOP;设置闹钟时间 SETATIME:LCALL DISPLAY2 ;调用时间运行 N0:LCALL DISPLAY2 MM2: JB P1.3,N1 ;判断P1.3是否按下? MOV C,P1.3 JC MM2 LCALL DELAY1 JC MM2MSTOP3: MOV C,P1.3 ;判断P1.3是否释放? JNC MSTOP3 LCALL DELAY1 MOV C,P1.3 JNC MSTOP3 INC 24H ;设定小时增加1 MOV A,24H CJNE A,#24,GO22 MOV 24H,#00H ;时钟复位 MOV 38H,#00H MOV 39H,#00H LJMP N0 N1:JB P1.1,N2 ;判断P1.1是否按下? MOV C,P1.1 JC N1 LCALL DELAY1 JC N1MSTOP4: MOV C,P1.1 ;判断P1.1是否释放? JNC MSTOP4 LCALL DELAY1 MOV C,P1.1 JNC MSTOP4 INC 23H ;设定闹钟分钟增加1 MOV A,23H CJNE A,#60,GO21 ;判断A是否到60分? MOV 23H,#00H ;分钟复位 MOV 36H,#00H MOV 37H,#00H LJMP N0 GO21:MOV B,#0AH ;将A中的内容分成高低两部分 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.4 ,N0 ;判断P1.4是否按下? MOV C,P1.4 JC N2 LCALL DELAY1 MOV C,P1.4 JC N2STOP2: MOV C,P1.4 ;判断P1.4是否释放? JNC STOP2 LCALL DELAY1 MOV C,P1.4 JNC STOP2 LJMP LOOP TIMEPRO: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.4, X1 ;判断P1.4是否按下? LCALL DELAY CLR 25H.0 LJMP DISPLAY1 BZ: CLR P3.7 ;喇叭响应程序 MOV R7,#250 ;响应延时时间 T2: MOV R6,#124 T3: DJNZ R6,T3 DJNZ R7,T2 SETB P3.7 RET LOOKATIME:LCALL DISPLAY2 ;调用时间运行程序 MM: JB P1.4,LOOKATIME ;判断按键P1.4是否按下 MOV C,P1.4 JC MM LCALL DELAY1 MOV C,P1.4 JC MMSTOP3: MOV C,P1.4 JNC STOP3 LCALL DELAY1 MOV C,P1.4 JNC STOP3 LJMP L
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 私人办公室出租合同范本
- 离婚房屋过户子女协议书
- 渝中区恒温配送合同范本
- 材料外加工产品合同范本
- 深井钻机出售合同协议书
- 破产安置协议书模板模板
- 美术班教师聘用合同范本
- 聘用安全协议书合同范本
- 自制水泥砖销售合同范本
- 玩具厂代理加工合同范本
- 水处理过滤器产品营销计划书
- (高清版)JTGT 3331-2024 采空区公路设计与施工技术规范
- “守住钱袋子 护好幸福家”防范和打击非法集资宣传
- JJG 692-2010无创自动测量血压计
- 中国铁路发展史题库-中国铁路发展史试题及答案
- 公安案件办理培训课件模板
- 护理非计划拔管应急预案
- 中医康养策划方案
- 访谈记录范文格式
- 记账代理服务方案
- CNC(法兰克)对刀方法图示
评论
0/150
提交评论