单片机c51下自动打铃系统_第1页
单片机c51下自动打铃系统_第2页
单片机c51下自动打铃系统_第3页
单片机c51下自动打铃系统_第4页
单片机c51下自动打铃系统_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、 单片机课程设计课程设计(论文)题 目 名 称 基于单片机的自动打铃系统 2010年 6月 28 日26 摘 要 本次设计中的LED数码管电子时钟电路采用24小时制记时方式,本次设计采用AT89C51单片机的扩展芯片和6个PNP三极管做驱动,由三块LED数码管构成的显示系统,与传统的基于8/16位普通单片机的LED显示系统相比较,本系统在不显著地增加系统成本的情况下,可支持更多的LED数码管稳定显示。设计采用AT98C51单片机,使用5V电源供电,并且在按键的作用下可以进行调时,调分,复位功能。计时数据的更新在计算机C语言的驱动下每秒自动进行一次,但不需程序干预其输出状态。关键词:AT89C5

2、1; 数码管 ; LED 目 录引 言1第1章 设计简介及方案论述1 1.1 作息时间控制钟系统概述1 1.2 本设计任务和主要内容1第二章 系统硬件电路设计2 2.1单片机总体设计思路2 2.2各功能模块程序实现原理分析2 2.21七段式数码管驱动模块2 2.22蜂鸣器驱动模块2 2.23按钮控制模块3 2.3系统主要硬件电路5 2.31七段式数码管驱动模块的硬件设计6 2.32蜂鸣器驱动模块的硬件设计7第三章 系统软件设计8 3.1 系统软件设计的主要内容8 3.2 系统软件设计的流程图8第四章 系统调试与测试结果分析10 4.1 系统调试10 4.11硬件调试10 4.12软件调试10

3、4.13硬件软件联机10 4.2仿真结果10第五章 附录及参考文献12 5.1汇编程序清单12 5.2器材仪表34 5.3参考资料34 引 言本设计是根据我们所学习的单片机课程,按照大纲要求对我们进行的一次课程检验,是进行单片机课程训练的必要任务,也对我们掌握单片机应用有很大的帮助。掌握单片机技术是一门不可或缺的技术,对我们将来的工作以及生活和学习都有很密切的联系。近年来,随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最

4、重要的智能化的核心部件。当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未有的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效的方法就是理论与实践并重,本文用AT89C51单片机设计的一个自动打铃系统。 第一章 设计简介及方案论述1.1作息时间控制钟系统概述: 本设计是一个具有报时功能的作息时间控制钟。它利用89C51单片机的2Hz时基计时,进行年历计算

5、,并用的蜂鸣器驱动模块将它报出来;在进行时间计算,分每加一时,都与规定的作息时间比较,如果相等则进行相应的控制或动作。由七段显示驱动模块、蜂鸣器驱动模块和按钮控制模块三部分组成,四个按键用于报时及校正时间。现代机关企业,特别是学校要求对时间加以控制,要按时打铃及播放广播,以保证学习与工作的正常运行。本设计实现了这些功能,给学校及其他机关企业带来方便,整体性好,人性化强、可靠性高,实现了对时间控制的智能化。1.2本设计任务和主要内容: (1)设计任务用可编程器件为主体,设计并制作一台自动打铃系统。要求完成的作品必须固化软件,测试检查时上电即可工作,不允再用计算机下载。实现能够显示当前的时间,同时

6、能够在规定的时间点控制打铃装置打出预期的铃声。另外增设四个按钮,通过分配以实现对时间的调整,包括对时钟、分钟的增加和减少,秒钟的清零;以及强制打铃和关闭打铃。 (2)主要内容1、基本计时和显示功能(用12小时制显示)。包括上下午标志,时、分的数字显示,秒信号指示。2、能设置当前时间(含上、下午,时,分)3、能实现基本打铃功能,规定:上午6:00起床铃:打铃5秒、停2秒、再打铃5秒。下午10:30熄灯铃:打铃5秒、停2秒、再打铃5秒。铃声可用小喇叭播放,凡是用到铃声功能的均按此处理。 第二章 系统主要硬件电路设计2.1单片机总体设计思路 (1)设计能正常工作的一个单片机最小硬件系统,外围电路包括

7、设置键盘,LCD或LED的显示屏; (2)进行软件设计,利用单片机系统时钟先设计一个高精度的内部时钟系统,最小精确时间为期1秒; (3)在秒计数器的基础上设计一个24小时时钟,并设计若干定时功能; (4)设计打铃执行机构,完成自动打铃功能。2.2各功能模块程序实现原理分析 图2-1模块组成框图如图2-1所示,该模块由蜂鸣器驱动模块、蜂鸣器驱动模块和按钮控制模块三部分组成。且三部分都通过AT89C51来实现。2.21七段式数码管驱动模块 采用动态扫描方式,通过一组单片机端口驱动并联在一起的LED发光管的一端(共阴或共阳端),LED发光管的另一脚接通用I/O口,控制其亮灭。该方法能驱动较多的LED

8、,控制方式较灵活,而且节省单片机的资源。 2.22蜂鸣器驱动模块 采用压电式蜂鸣器,压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5-15V直流工作电压),多谐振荡器起振,输出1.52.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 2.23按钮控制模块四个按钮的一端分别接地,另一端接单片机一个端口的四个引脚,当某一个按钮按下的时候,其对应的引脚就由高电平变成低电平,然后通过单片机扫描读取引脚的电平来判断按钮是否按下。2.3AT89C51单片机性能介绍AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低

9、电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。引脚说明: VCC:供电电压。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P

10、0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

11、在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3

12、.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。89C51各部分引脚图如下: P1.0 1 40 Vcc P1.1 2 39 P0.0 P1.2 3 38 P0.1 P1.3 4 37 P0.2 P1.4 5 36 P0.3 P1.5 6 35 P0.4 P1.6 7 34 P0.5 P1.7 8 33 P0.6 RST/Vpd 9 32 P0.7 RXD P3.0 10 31 EA/Vpp TXD P3.1 11 30 ALE/-P INT0 P3.

13、2 12 29 PSEN INT1 P3.3 13 28 P2.7 T0 P3.4 14 27 P2.6 T1 P3.5 15 26 P2.5 WR P3.6 16 25 P2.4 RD P3.7 17 24 P2.3 X2 18 23 P2.2 X1 19 22 P2.1 GND 20 21 P2.0 图2-2 89C51引脚图 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为

14、振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。为使该模块化自动打铃系统具有更加方便和灵活性,我们对系统的硬件做了精心设计。硬件电路包括七段式数码管驱动模块、蜂鸣器驱动模块、按钮控制模块等三大模块。2.3系统主要硬件电路系统主要硬件电路作为驱动整个打铃系统的电路又分为七段数码显示电路和蜂鸣器驱动电路。由显示七段数码显示电路和蜂鸣器驱动

15、电路组成的系统硬件主要电路如下:图2-3:系统主要硬件电路该系统通过按钮控制(系统使用4只按键,3只按键用来调整时间,另一只为强制打铃按钮;调整选择键SET_KEY:P1.0通过选择键选择调整位,选中位闪烁;增加键ADD_KEY:P1.1按一次使选中位加1;减少键DEC_KEY:P1.2按一次使选中位减1;如果长按ADD_KEY或DEC_KEY,识别后则进行调时快进,此时停止闪烁)AT89C51的计时和定时,在七段数码管上显示出来(实现24小时制电子钟,8位数码管显示,显示时分秒),再通过蜂鸣器 (BEEP:P3.7)来实现打铃。 2.31七段式数码管驱动模块的硬件设计LED数码管显示器内部有

16、七个条形发光二极管和一个小圆点发光二极管组成,其结果图如下所示:comABCDEFG图2-4:七段数码显示管因而它的控制原理和发光二极管的控制原理是相同的。根据各管接线的形式,可分成共阴极型和共阳极型。其八个接口对应的字形如下表:表一:数码管字型码表显示字形dpgfedcba共阴极字型码共阳极字型码0001111110x3F0xC01000001100x060xF92010110110x5B0xA43010011110x4F0xB04011001100x660x995011011010x6D0x926011111010x7D0x827000001110x070xF88011111110x7F0

17、x809011011110x6F0x90A011101110x770x88B011111000x7C0x83C001110010x390xC6D010111100x5E0xA1E011110010x790x86F011100010x710x8E3.2.3蜂鸣器驱动模块的硬件设计本设计中的蜂鸣器驱动模块用到了蜂鸣器(SPEAKER)、三极管、100欧姆的电阻。将蜂鸣器的一段接地,另一端接三极管的发射极,三极管的基极通过100欧姆的电阻接在三极管的P3.7引脚,三极管的集电极接+5V的电源。其电路图如下图所示:图2-5:蜂鸣器驱动电路图 第三章 系统软件设计软件是该LED显示屏控制系统的重要组成部

18、分,在系统的软件设计中我们也才用了模块化设计,将系统的各部分功能编写成子模块的形式,这样增强了系统软件的可读性和可移植性。3.1系统软件设计的主要内容系统软件设计由三个模块编程组成:蜂鸣器打铃编程,七段显示管显示编程,按键编程。3.2主程序流程设计 主程序初始化,并打开中断,然后执行中断服务程序。实现24小时制电子钟,8位数码管显示,显示时分秒显示格式:23-59-59(小时十位如果为0则不显示) 到预定时间启动蜂鸣器模拟打铃,蜂鸣器BEEP:P3.7打铃方式分起床、熄灯铃和上、下课铃两种系统使用4只按键,3只按键用来调整时间,另一只为强制打铃按钮 调整选择键SET_KEY

19、:P1.0;通过选择键选择调整位,选中位闪烁增加键ADD_KEY:P1.1;按一次使选中位加1减少键DEC_KEY;P1.2;按一次使选中位减1,如果长按ADD_KEY或DEC_KEY,识别后则进行调时快进,此时停止闪烁。主程序流程设计图: 图3.1如图所示主程序开始初始化后,就跳转到中断服务程序,如正常走时,则往下进行打铃时间的比较,继续向下执行对打铃的判断程序;如不正常走时,则直接转到显示程序。这以后,继续执行按键的检测,若有键按下,则取值打铃;反之,则返回到中断服务程序的开始继续执行。主程序清单见附录。第四节 系统调试与测试结果分析4.1系统调试 根据系统设计方案,本系统的调试共分为三大

20、部分:硬件调试,软件调试和软硬件联调。由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试:LED驱动模块的调试,数据存储模块的调试,PC机通信模块的调试等,最后将各模块组合后进行整体测试。 4.11硬件调试对各个模块的功能进行调试,主要调试各模块能否实现指定的功能。 4.12软件调试 软件调试采用单片机仿真器WAVE6000L及微机,将编好的程序进行调试,主要是检查语法错误。 4.13硬件软件联调 将调试好的硬件和软件进行联调,主要调试系统的实现功能。4.2仿真结果 此系统的仿真效果很好,能实现设计要求和目的所规定的内容。下面是两幅仿真结果图: 图4-1 图4-2附录:5.1

21、汇编程序清单:BEEP EQU P3.7 ;定义蜂鸣器(电铃)控制信号输出口 ORG 0000H ;程序入口地址 LJMP START ORG 000BH ;定时器0中断入口地址 LJMP TIMER_0 ORG 0100H;/*程序开始,初始化*/ START: SETB BEEP ;关闭蜂鸣器(电铃) SETB 48H ;使用一个bit位用于调时闪烁标志 SETB 47H ;使用一个bit位用于产生脉冲用于调时快进时基 CLR 45H ;关闭响铃方式1标志 CLR 44H ;关闭响铃方式2标志 MOV R1,#0 ;调整选择键功能标志:0正常走时、1调时、2调分、3调秒 MOV 20H,#

22、00H ;用于控制秒基准时钟源的产生 MOV 21H,#00H ;清零秒寄存器 MOV 22H,#00H ;清零分寄存器 MOV 23H,#00H ;清零时寄存器 MOV 24H,#00H ;用于控制调时闪烁的基准时钟的产生 MOV R2,#00H ;强制打铃标志 MOV R3,#00H ;强制打铃时长标志 MOV IP,#02H ;IP,IE初始化 MOV IE,#82H MOV TMOD,#01H ;设定定时器0工作方式1 MOV TH0,#3CH MOV TL0,#0B0H ;赋定时初值,定时50ms SETB TR0 ;启动定时器0 MOV SP,#40H ;重设堆栈指针;/*主程序*

23、/ MAIN: CJNE R1,#00H,MAIN1 ;是否为正常走时状态 LCALL BIJIAO1 ;调用起床、熄灯打铃比较子程序 LCALL BIJIAO2 ;调用上、下课打铃比较子程序 LCALL DALING1 ;调用响铃方式1执行子程序 LCALL DALING2 ;调用响铃方式2执行子程序 LCALL DALING3 MAIN1: LCALL DISPLAY ;调用显示子程序 LCALL KEY_SCAN ;调用按键检测子程序 JZ MAIN ;无键按下则返回重新循环 LCALL SET_KEY ;调用选择键处理子程序 JB 46H,MAIN ;如果已进行长按调整(调时快进),则

24、不再执行下面的单步调整 LCALL ADD_KEY ;调用增加键处理子程序 LCALL DEC_KEY ;调用减少键处理子程序 LCALL DALING_KEY ;处理强制打铃/强制关闭铃声键 LJMP MAIN ;重新循环 ;/*定时中断服务程序*/ TIMER_0: PUSH ACC PUSH PSW ;保护现场 MOV TH0,#3CH MOV TL0,#0B0H ;重新赋定时初值 CPL 47H ;产生脉冲用于调时快进时基 INC 24H MOV A,24H CJNE A,#10,ADD_TIME ;产生0.5秒基准时钟,用于调时闪烁 CPL 48H ;取反调时闪烁标志位 MOV 24

25、H,#00HADD_TIME: INC 20H MOV A,20H CJNE A,#20,RETI1 ;产生1秒基准时钟 MOV 20H,#00H ;一秒钟时间到,清零20H CJNE R2,#01H,ADD_M INC R3 ADD_M: MOV A,21H ADD A,#01H DA A ;作十进制调整 MOV 21H,A CJNE A,#60H,RETI1 MOV 21H,#00H ;一分钟到 MOV A,22H ADD A,#01H DA A MOV 22H,A CJNE A,#60H,RETI1 MOV 22H,#00H ;一小时到 MOV A,23H ADD A,#01H DA A

26、 MOV 23H,A CJNE A,#24H,RETI1 MOV 23H,#00H ;到24点,清零小时 RETI1: POP PSW POP ACC ;恢复现场 RETI ;中断返回;/*显示处理*/ DISPLAY: MOV A,21H ;秒 ANL A,#0FH MOV 2FH,A ;转换出秒个位,存入2FH MOV A,21H ANL A,#0F0H SWAP A MOV 2EH,A ;转换出秒十位,存入2EH JB 46H,MIN ;如果长按按键(调时快进),则跳过闪烁处理 CJNE R1,#3,MIN ;如果R1为3,闪烁秒位待调整 JB 48H,MIN MOV 2FH,#0AH

27、;使该位为10,查表得到使该位不显示的输出 MOV 2EH,#0AHMIN: MOV A,22H ;分 ANL A,#0FH MOV 2DH,A ;转换出分个位,存入2DH MOV A,22H ANL A,#0F0H SWAP A MOV 2CH,A ;转换出分十位,存入2CH JB 46H,HOUR ;如果长按按键(调时快进),则跳过闪烁处理 CJNE R1,#2,HOUR ;如果R1为2,闪烁分位待调整 JB 48H,HOUR MOV 2DH,#0AH ;使该位为10,查表得到使该位不显示的输出 MOV 2CH,#0AHHOUR: MOV A,23H ;时 ANL A,#0FH MOV 2

28、BH,A ;转换出时个位,存入2BH MOV A,23H ANL A,#0F0H SWAP A MOV 2AH,A ;转换出时十位,存入2AH JB 46H,DISP ;如果长按按键(调时快进),则跳过闪烁处理 CJNE R1,#1,DISP ;如果R1为1,闪烁时位待调整 JB 48H,DISP MOV 2BH,#0AH ;使该位为10,查表得到使该位不显示的输出 MOV 2AH,#0AH;/*数码管动态扫描显示*/DISP: MOV DPTR,#TABLE MOV A,2FH MOVC A,A+DPTR MOV P0,A CLR P2.7 LCALL DELAY SETB P2.7 ;显示

29、秒个位 MOV A,2EH MOVC A,A+DPTR MOV P0,A CLR P2.6 LCALL DELAY SETB P2.6 ;显示秒十位 MOV A,#40H MOV P0,A CLR P2.5 LCALL DELAY SETB P2.5 ;显示“-” MOV A,2DH MOVC A,A+DPTR MOV P0,A CLR P2.4 LCALL DELAY SETB P2.4 ;显示分个位 MOV A,2CH MOVC A,A+DPTR MOV P0,A CLR P2.3 LCALL DELAY SETB P2.3 ;显示分十位 MOV A,#40H MOV P0,A CLR P

30、2.2 LCALL DELAY SETB P2.2 ;显示“-” MOV A,2BH MOVC A,A+DPTR MOV P0,A CLR P2.1 LCALL DELAY SETB P2.1 ;显示时个位 MOV DPTR,#TABLE1 ;该位使用TABLE1以消除前置0 MOV A,2AH MOVC A,A+DPTR MOV P0,A CLR P2.0 LCALL DELAY SETB P2.0 ;显示时十位 RET ;/*按键检测子程序*/ KEY_SCAN: CLR 46H ;关闭长按调整(调时快进)标志 MOV P1,#0FFH ;将P1口设置成输入状态 MOV A,P1 CPL

31、A ANL A,#0FH ;P1口低4位连接4个按键,只判断该4位 JZ EXIT_KEY ;无键按下则返回 LCALL DELAY ;延时去抖动 MOV A,P1 ;重新判断 CPL A ANL A,#0FH JZ EXIT_KEY ;键盘去抖动 MOV R5,A ;临时将键值存入R5 MOV R4,#00H ;用于控制调时快进速度 ;设置为00H是为了在进入长按处理前加长延时区分用户的长按与短按,防止误快进 LOOP: ;进入长按处理 LCALL DISPLAY ;使长按时显示正常 MOV A,P1 CPL A ANL A,#0FH JB 47H,LOOP1 INC R4 ;调时快进间隔时

32、间基准加1LOOP1: CJNE R1,#03H,LOOP2 ;如果调秒时长按,则不处理 LJMP LOOP3LOOP2: CJNE R4,#99H,LOOP3 MOV R4,#70H ;确认用户长按后,重新设定起始值,加快调时快进速度 SETB 46H ;长按调整(调时快进)标志 LCALL ADD_KEY LCALL DEC_KEYLOOP3: JNZ LOOP ;等待键释放 MOV A,R5 ;输出键值 RET EXIT_KEY: RET;/*延时子程序*/DELAY: MOV R7,#150 DJNZ R7,$ RET ;/*选择键处理子程序*/ SET_KEY: CJNE R5,#0

33、1H,EXIT ;选择键键值 INC R1 ;调整选择功能标志加一 SETB BEEP CJNE R1,#4,EXIT MOV R1,#0 MOV 24H,#00H ;调时闪烁基准清零 RET;/*增加键处理子程序*/ ADD_KEY: CJNE R5,#02H,EXIT ;增加键键值 CJNE R1,#01H,NEXT1 ;选择键功能标志为1,调时,否则跳出 MOV A,23H ADD A,#01H DA A MOV 23H,A CJNE A,#24H,EXIT MOV 23H,#00HNEXT1: CJNE R1,#02H,NEXT2 ;选择键功能标志为2,调分,否则跳出 MOV A,22

34、H ADD A,#01H DA A MOV 22H,A CJNE A,#60H,EXIT MOV 22H,#00HNEXT2: CJNE R1,#03H,EXIT ;选择键功能标志为3,调秒,否则跳出 MOV 21H,#00H ;如增加键按下直接清零秒 RET;/*减少键处理子程序*/ DEC_KEY: CJNE R5,#04H,EXIT ;减少键键值 CJNE R1,#01H,NEXT3 ;选择键功能标志为1,调时,否则跳出 MOV A,23H ADD A,#99H DA A MOV 23H,A CJNE A,#99H,EXIT MOV 23H,#23H NEXT3: CJNE R1,#02

35、H,NEXT4 ;选择键功能标志为2,调分,否则跳出 MOV A,22H ADD A,#99H DA A MOV 22H,A CJNE A,#99H,EXIT MOV 22H,#59HNEXT4: CJNE R1,#03H,EXIT ;选择键功能标志为3,调秒,否则跳出 MOV 21H,#00H ;如较少键按下直接清零秒 RET;/*强制响铃键处理子程序*/ DALING_KEY: CJNE R5,#08H,EXIT ;选择键键值 JNB 45H,LP1 ;判断是否正在响铃 CLR 45H RETLP1: JNB 44H,LP2 CLR 44H RETLP2: MOV R2,#01H RET;

36、/*万用返回程序*/ EXIT: RET;/*数码管字形编码表*/TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H ;字形显示编码TABLE1: DB 00H,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H ;小时位的十位数编码,该位如果为0则不显示;/*打铃时间对比程序(起床、熄灯)*/BIJIAO1: MOV A,23H CJNE A,#00H,B0 MOV A,22H CJNE A,#01H,B0 ;6:00到 SETB 45H ;开启响铃方式1 RETB0: MOV A,23H CJNE A,#2

37、2H,EXIT_1 MOV A,22H CJNE A,#30H,EXIT_1 ;22:30到 SETB 45H ;开启响铃方式1 RETEXIT_1: CLR 45H RET;/*打铃时间对比程序(上、下课)*/BIJIAO2: MOV A,23H CJNE A,#07H,B1 MOV A,22H CJNE A,#30H,B1 ;7:30 SETB 44H ;开启响铃方式2 RETB1: MOV A,23H CJNE A,#08H,B2 MOV A,22H CJNE A,#20H,B2 ;8:20 SETB 44H RETB2: MOV A,23H CJNE A,#08H,B3 MOV A,22H CJNE A,#30H,B3 ;8:30 SETB 44H RETB3: MOV A,23H CJNE A,#09H,B4 MOV A,22H CJNE A,#20H,B4 ;9:20 SETB 44H RETB4: MOV A,

温馨提示

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

评论

0/150

提交评论