单片机自动打铃系统设计毕业论文.doc

上传人:laozhun 文档编号:3936650 上传时间:2023-03-28 格式:DOC 页数:42 大小:1.68MB
返回 下载 相关 举报
单片机自动打铃系统设计毕业论文.doc_第1页
第1页 / 共42页
单片机自动打铃系统设计毕业论文.doc_第2页
第2页 / 共42页
单片机自动打铃系统设计毕业论文.doc_第3页
第3页 / 共42页
单片机自动打铃系统设计毕业论文.doc_第4页
第4页 / 共42页
单片机自动打铃系统设计毕业论文.doc_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《单片机自动打铃系统设计毕业论文.doc》由会员分享,可在线阅读,更多相关《单片机自动打铃系统设计毕业论文.doc(42页珍藏版)》请在三一办公上搜索。

1、毕业设计论文自动打铃系统设计 系 电子信息工程系 专业 电子信息工程 姓名 班级 学号 0801133103 指导教师 职称 实验师 设计时间 2010.11.222011.1.8 目录摘要- 3 -关键词- 3 -引言- 4 -第一章 设计方案论证- 5 -1.1 设计要求- 5 -1.2 设计方案选择- 5 -1.2.1 方案一:数字电路设计的自动打铃系统- 5 -1.2.2 方案二:基于单片机的自动打铃系统设计- 6 -1.2.3 方案确定- 6 -1.3 基本方案- 6 -1.3.1 设计课题简要概述- 6 -1.3.2 系统软硬件划分- 6 -1.3.3 单片机选型- 7 -1.4

2、总体设计框图- 7 -第二章 硬件电路设计- 8 -2.1 基本原理概述- 8 -2.2 主要原件参数及功能简介- 8 -2.2.1 主控器AT89C51- 8 -2.2.2 时钟电路DS1302- 9 -2.3 单元电路的设计- 10 -2.3.1显示电路设计- 10 -2.3.2 键盘接口电路设计- 11 -2.3.3 响铃电路设计- 12 -2.4 总体运行进程- 12 -第三章 软件电路设计及流程图- 13 -3.1 基本原理概述- 13 -3.1.1 中断服务程序设计- 13 -3.1.2 显示程序设计和按键判断与按键处理程序设计- 13 -3.2 流程图- 14 -3.2.1 系统

3、主程序流程图- 14 -3.2.2 系统定时中断流程图- 15 -第四章 系统程序设计- 16 -4.1 程序设计概要- 16 -4.2 源程序清单- 17 -第五章 自动打铃硬件原理图- 37 -第六章 毕业设计总结- 38 -致谢- 39 -参考文献- 40 -摘要自动打铃系统,是以一片8位单片机为核心的实时时钟及控制系统。我们知道单片机的外接石英晶体振荡器能提供稳定、准确的基准频率,并经12分频后向内部定时器提供实时基准频率信号,设定定时器工作在中断方式下,连续对此频率信号进行分频计数,便可得秒信号,再对秒信号进行计数便可得到分、时等实时时钟信息。如果石英晶体振荡器的频率信号为6MHZ,

4、设定定时器定时工作方式1下,定时器为3CBOH,则定时器每100ms产生1次中断,在定时器的中断定时处理程序中,每10次中断,则向秒计数器加1,秒计数器计数到60则向分计数器进位(并建立分进位标志),分计数器计数到60,则向时计数器进位,如此周而复始的连续计数,便可获得时、分、秒的信号,建立一个实时时钟。接下来便可以进行定时处理和打铃输出,当主程序检测到有分进位标志时,便开始比较当前时间(小时与分、存放在RAM中)与信息时间表上的作息时间(小时与分,存放在ROM)是否相同,如有相同者,则进行报时处理并控制打铃,如有不相同则返回主程序,如此便实现了报时控制的要求。关键词单片机;时间设置电路;计时

5、电路;显示电路;定时打铃控制电路引言随着科技的不断发展,各种芯片都得到了很好的发展,80C51 同样如此,从开始的无人问津到现在的随处可见,红绿灯,记分牌,电子秒表,遥控器,电饭煲,电视等只要是电子产品,都会和芯片有关,其实芯片并不是什么神秘的高科技,它只是里面装了一些己编好的程序而己而这里要介绍的是用汇编语言来编程的一个系统,它能够让一个学校或企业集团实现打铃自动化,总之,一个需要时间系统的机构实现自动提醒功能。当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未有的速度被单片机智能控制系统所取代。单片机具有体积小、功

6、能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。而本文是用AT89C51单片机设计的一个自动打铃系统。第一章 设计方案论证1.1 设计要求它可以作为时钟电路来显示时间,进行设置,定时打铃。按照自顶向下设计方法划分自动打铃系统的功能。可分为:时间设置电路,计时电路,显示电路和定时打铃控制电路等。以江苏信息职业技术学院的打铃情况设计内容时间起床6:30早自习7:30-8:10第一节课8:20-9:00第二节课9:10-9:50第三节课10:00-10:40第四节课10:50-11:30第五节课13:3

7、0-14:10第六节课14:20-15:00第七节课15:20-16:00第八节课16:10-16:50晚自习19:00-20:30熄灯22:301.2 设计方案选择1.2.1 方案一:数字电路设计的自动打铃系统利用函数信号发生器来进行脉冲信号输出,利用74160N来设置十进制和六进制的进位输出。利用数码显示器来显示时间,利用或门、与门、非门、与非门、等电路元件进行组合实现打铃的控制。1.2.2 方案二:基于单片机的自动打铃系统设计单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,没产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并

8、将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将时字节清零。建立完一个实时时钟后接下来进行定时处理和打铃输出,当主程序检测到有分进位标志时,便开始比较当前时间与信息时间表上的作息时间是否相同,相同者,则进行报时处理并控制打铃,不相同则返回主程序。1.2.3 方案确定方案一的设计只能事先设定打铃时间不能完全自动打铃,且在修改打铃时间上存在一定的困难。而方案二中的设计能完全实现自动化,诠释了我们这次毕业设计的主题。并在修改打铃时间上有了很大的方便,只需修改一部分程序便能实现不同的需要。因此我选择方案二进行设计。1.3 基本方案1.3.1 设计课题简要概述自

9、动打铃装置用于工厂、学校等地的时间控制,本设计是按照学校作息时问设定的,模拟了电了钟显示时、分、秒。还根据学校的作息时间按时打铃,本系统有4 个按钮,分别用来调时、调分、秒和强制打铃及强制关铃,以保证始终与标准时间相吻合。首先设计出本系统的硬件基本框图,根据框图设计电气原理图,简要概述基本原理,按照设计技术参数设计出各部分程序。1.3.2 系统软硬件划分由于需要最小系统设计,因此,极大地介于系统的硬件成本,所有能用软件实现的功能都用软件完成,如按键的去抖,采用延时,显示部分用动态显示等,这样硬件部分的设计可以采用单片机最小系统,所谓最小系统时仅有程序存储器和时钟及复位电路的单片机系统。1.3.

10、3 单片机选型根据课题的具体内容,任务要求,计时、校时、定时、键盘显示等功能,经多方面考虑,所选系统选项用与MSC-51单片机完全兼容的AT89C51 低功耗单片机。1.4 总体设计框图图一 整体框图第二章 硬件电路设计2.1 基本原理概述本系统主要由主控模块,时钟模块,显示模块,键盘接口模块等4 部分构成。通过内部定时产生中断,从而使驱动电铃打铃。设定51 单片机工作在定时器工作方式1 ,每100ms产生一次中断,利用软件将基准100ms 单元进行累加,当定时器产生10 次中断就产生lS 信号,这是秒单元加1 。同理,对分单元和时单元计数从而产生秒,分,时的值,通过六位七段显示器进行显示。由

11、于动态显示法需要数据所存等硬件,接口较复杂,考虑显示只有六位,且系统没有其他浮躁的处理程序,所有采用动态扫描LED 的显示。本系统采用四个按键,当时钟时间和设置时间一直时,驱动程序动作,进行打铃,每次打铃30S2.2 主要原件参数及功能简介2.2.1 主控器AT89C51AT89C51 公司生产的AT89C51 单片机用高性能的静态89C51 设计,由先进工艺制造,并带有非易失性FLASH 程序存储器,它是 种高性能、低功耗的8 位CMOS 微处理芯片,市场应用最多,主要特点有:有4K 的FLASH 程序存储器256 字节内部RAM电源控制模式:时钟可停止和恢复,空闲模式,掉电模式6个中断源4

12、个中断优先级4个8位I/O口全双工增强型UART2个16位定时、计数器图二 AT89C512.2.2 DS1302时钟电路DS1302(1)性能特性实时时钟可对秒,分,时等进行计数,存在高速数据暂存的31*8位RAM,最少引脚的串行I/O口;2.55.5V电压工作范围;2.5V耗电小于300nA;用于时钟或RAM数据读/写的单字节或多字节数据传送方式;简单的3线接口;可选的慢速充电的能力。DS1302时钟芯片包括实时时钟和31字节的静态RAM,它经过一个简单的串行接口与微处理器通信,实时时钟提供秒,分,时等信息,时钟运行可以采用24H,或带AM/PM的12H格式,采用三线接口与CPU进行同眇通

13、信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302有主电源/后备电源双电源引脚;1)性能特性DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:1.RSE复位,2.I/O数据线,3.SCLK 串行时钟。时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信。DS1302 工作时功耗很低,保持数据和时钟信息时功率小十1mW 。提供秒分时日日期。月年的信息,每月的天数和闰年的天数可自动调整时钟,操作可通过AM/PM 指示决定采用24 或12 小时格式。 2)管脚描述XI XZ 32.768KHz 晶振管脚GND 接地RST 复位脚I/

14、O 数据输入/输出引脚SCLK 串行时钟Vcc1,Vcc2 电源供电管脚DS1302 串行时钟芯片8 脚 DIPDS1302S 串行时钟芯片8 脚 SOIC 200milDS1302Z 串行时钟芯片8 脚 SOIC 150mil图三 DS13022.3 单元电路的设计2.3.1时钟电路设计(2)工作原理DS1302在任何数据传送时必须先初始化,把RST引脚置为高电平,然后把8位地址和命令装入移位寄存器,数据在SCLK的上升沿被输入,无论是读周期还是写周期开始8位指定40个寄存器中哪个将被访问到,在开始8个时钟周期,把命令字节装入揿位寄存器之后,另外的时钟周期在闱时操作时输出数据,在写操作时写入

15、数据,时钟脉冲的个数在单位字节下为8加8,在多字节方式下为8加字节数,最大可达248字节数。为了提高对32个地址的寻址能力,可以把时钟或RAM寄存器规定为多字节方式,在多字节方式中,读或写从地址0的位0开始,必须管按数据传送的次序电先的8个寄存器。但是当以多个字节写RAM时,为了传送数据不必写所有31字节,不管是否写了全部31字节,所写的每个字节都将传送至RAM。时钟暂停:秒寄存器的位7定义位时钟暂停位,当它为1时,DS1302停止振荡,进入低功耗的备份方式,通常在对DS1302进行写操作时,停止振荡,当它为0时时钟将开始启动。8051通过串口向DS1302写数据的程序框图如图3.2,其中,P

16、x可以是8051单片机的任何一位I/O口,注意因为DS1302的数据发送或接收时序和8051的串行口不完全一致,因此,需要在TXD的输出端加反相器,另外,接收数据时,不能以串行口的接收方式接收,必须将串行口当作普通I/O口进行数据接收.DS1302的晶振选用32.768KHZ,电容推荐值为6PF,因为振荡频率较低,也可以不接电容, 对计时精度影响不大。8051 PX TXDRXDVcc1Vcc2 DS1302RSTSCLKI/O X2 图3.2 DS1302写数据的程序框图2.3.1显示电路设计显示部分采用普通的共阳数码管显示,采用动态扫描,以减少硬件电路,数码管分别为十时,时,十分,分,十秒

17、,秒显示,显示时采用串行口输出段码,用74LS164 来驱动数码管扫描只需7ms 。4LS164 内部位8 个D 触发器,用以实现数据的串行移位,74LS164 位TTL 单向8 位移位寄存器,可实现串行输入并行输出,CPU 位时钟输入端,可接到串行口TXD 端。每个时钟信号的上升沿加到CP 端时,移位寄存器移一位,8 个时钟脉冲过后,8 为二进制数个部移入74LS164中,MR 为复位端,当该位为低电平时,移位寄存器各位复O 。当它为高电平时时钟脉冲才起作用。图四 显示电路2.3.2 键盘接口电路设计由于键盘只有四个,采用独立式按钮,分别与8051 的P1.0, P1.1, P1.2 相连,

18、用普通按钮10K 上拉电阻,用查询法完成读健功能。图五 按键电路2.3.3 响铃电路设计响铃电路用到了蜂鸣器、三极管、1K电阻。蜂鸣器两端分别接地和三极管。三极管一段电源另一端与电阻相连并接入AT89C51的P3.7接口。图六 响铃电路2.4 总体运行进程首先实现24小时制电子钟,在8位数码管显示,显示为时分秒,实现的格式为:23-59-59。到达预定时间启动蜂鸣器开始打铃,打铃的方式分为起床、熄灯和上下课铃两种。系统使用了4个按键,3只按键用来调整时间,另一只为强制打铃按钮。通过选择键选择调整位,选中位闪烁,按增加键为选中位加1,按减少键为选中位减1。按强制打铃按钮是实现强制打铃或者强制关闭

19、打铃。第三章 软件电路设计及流程图3.1 基本原理概述主程序首先是初始化部分,主要是计时单元清零,中断初始化,堆栈指针初始化,启动定时器工作,然后是调用显示子程序。主程序的起始存储地址是0000H单元,但由于本系统用了定时器T0的中断,中断服务程序入口地址为000BH,因此从0000H单元起存放一条短调转指令AJMP,使真正的主程序从0300H单元开始存放。3.1.1 中断服务程序设计单片机内部的定时/计数器T0定时100ms,即0.1s,10次中断即为1秒,60秒为1分,60分为1小时,24小时为一天,如此循环,从而实现计时功能。编写中断服务程序关键要注意:1.现场保护,本系统中是累加器A和

20、程序状态字PSW值的保护。2.计时处理时采用的确十进制,因此时,分,秒单元加1后要进行十进制调整,即要执行DAA指令,还要注意的是时计到24就回零,分和秒计到60就回零。3.中断返回前的现场恢复。3.1.2 显示程序设计和按键判断与按键处理程序设计显示采用的是动态显示,段控和位控都经过反相器,显示的字形代码是共阳的显示代码,位控信号输出时是高电平有效,在校时时,采用的是点亮小数点信位调节器标志,哪位小数点亮表示调整的是该为的值。显示子程序的第一部分是拆字,显示缓冲区是2FH2AH;第二部分是查字型码,输出段控和位控信号,由于采用的是动态显示,所以每出输出一位的段控和位控信号要延时一定的时间,使

21、LED显示器显示的字符时稳定的。按键判断程序有编写时应注意按键的去抖动,该系统采用的是延时去抖动的方法,延时是通过调用子程序来实现的,每个按键按下后都要等待释放后再返回。按键处理程序中的按键式校时的,所以进入按键处理程序后就关闭定时中断,对于动能键注意设置显示标志。3.2 流程图3.2.1 系统主程序流程图3.2.2 系统定时中断流程图第四章 系统程序设计4.1 程序设计概要程序名称:51 单片机自动扫铃机控制系统说明:实现24 小时制电子钟,8 位数码管显示,显示时分秒显示格式:23-59-59(小时十位如果为0 则不显示)。到预定时问启动蜂鸣器模拟打铃,蜂鸣器BEEP: P3.7。打铃方式

22、分起床、熄幻铃和上、下课铃两种。系统使用4 只按键,3 只按键用来调整时间,另一只为闹钟按钮即定时扫铃。键SET_KFY: PI.0;通过选择键选择调整位,选中位闪烁。增加键ADD_KEY:PI.1;按一次使选中位加1。减少键DEC_KEY: PI.2;按一次使选中位位。1如果长按ADD_KEY 或DEC_KEY,识别后则进行调时快进,此时停止闪烁。如果选中位是秒,则按增加键或减少键都是将秒清零。定时扫铃键DALING_KEY: P1.3;用来强制打铃或强制关闭铃声PO 口输出数码管段选信号,P2 口输出数码管位选信号。晶振12M4.2 源程序清单根据以上流程图思想,现设计系统程序思路描写如下

23、系统的主程序如下所示:BEEP EQU P3.7 ;定义蜂l 鸣器(电铃)控制信号输出口ORG 0000H ;程序入日地址LJMP STARTORG 000BH ;定时器0中断入日地址LJMP TIMER_OORG 0300H/ * * * * 程序开始,初始化* * * * /START :SETB BEEP ;关闭蜂鸣器(电铃)SETB 48H ;使用一个bit 位用于调时闪烁标志SETB 47H ;使用一个bit 位用十产生脉冲用十调时快进时基CLR 45H ;关闭响铃方式标志MOV RI,#0 调整选择键功能标志:0正常走时、1 调时、2 调分、3 调秒MOV 20H,#00H;用于控

24、制秒基准时钟源的产生MOV 21H,#00H;清零秒寄存器MOV 22H,#00H;清零分寄存器MOV 23H,#00H;清零时寄存器MOV 24H,#00H;用于控制调时闪烁的基准时钟的产生MOV IP, #02H; IP,IE 初始化MOV IE, #82HMOV TMOD, #olH;设定定时器01 作方式1MOV THO, #3CHMOV TLO, #oBoH;赋定时初值,定时50msSETB TRO;启动定时器0MOV SP, #4OH;重设堆栈指针/ * * * * 主程序* * * * /MAIN :CJNE R1, #00H, MAINl;是否为正常走时状态LCALL BIJI

25、AO1;调用起床、熄灯打铃比较子程序LCALL BIJIAO2;调用上、下课少打铃比较子程序LCALL DALING ;调用响铃方式执行子程序MAIN1 :LCALL DlSPLAY;调用显示子程序LCALL KEY_SCAN;调用按键检测子程序JZ MAIN;无键按下则返回重新循环LCALL SET_KEY;调用选择键处理子程序JB 46H, MAIN ;如果已进行长按调招(调时快进),则不再执行下面的单步调整LCALL ADD_KEY;调用增加键处理子程序LCALL DEC_KEY; 躺用减少键处理子程序LCALL DALING_KEY;处理强制打铃/强制关闭铃声键LJMP MAIN;重新

26、循环程序结束(主程序中引用到的字程序如下)/ * * * * 定时中断服务程序* * * * * /TIMER_O: PUCH ACC PUCH PSW;保护现场MOV THO,#3CHMOV TLO, #0B0H;重新赋定时初值CPL 47H;产生脉冲用于调时快进时基INC 24HMOV A, 24HCJNEA, #l0, ADD_TIME;产0.5秒基准时钟,用于调时闪烁CPL 48H;取反调时闪烁标志位MOV 24IJ, #00HADD_TIME:INC 20HMOV A,20HCJNEA, #20, RETI1;产生l秒基准时钟MOV 20H, #O0H;一秒钟时间到,清零20HMOV

27、 A ,21HADD A,#01HDA A ;做十进制调整MOV 21H, ACJNEA, #60H, RETIlMOV 21H,#00H;一分钟到MOV A,22HADD A,#01HDA AMOV 22H,ACJNE A,#60H,RETI1MOV 22H,#00H;一小时到MOV A,23HADD A,#01HDA AMOV 23H,ACJNE A,#24H,RETI1MOV 23H,#00H;到24点,清零小时RETI1:POP PSWPOP ACC;恢复现场RET1;中断返回/ * * * * 显示处理* * * * /DISPLAY:MOV A,#21H;秒ANL A,#0FHMO

28、V 2FH,A;转换出秒个位,存入2FHMOV A,21HANL A, #OFOHSWAP AMOV 2EH, A;转换出秒十位,存入2EHJB 46H, MIN;如果长按按键(调时快进),则跳过闪烁处理CJNE R1, #3, MIN;如果R1为3,闪烁秒位待调整JB 48H,MINMOV ZFH, #OAH;使该位为10 ,查表得到使该位不显示的输出MOV 2EH,#0AHMIN:MOV A,#22H;分ANL A,#0FHMOV 2DH,A;转换出分个位,存入2DHMOV A,22HANL A, #OFOHSWAP AMOV 2CH, A;转换出分十位,存入2CHJB 46H, HOUR

29、;如果长按按键(调时快进),则跳过闪烁处理CJNE R1, #2, HOUR;如果R1为2,闪烁秒位待调整JB 48H,HOURMOV ZDH, #OAH;使该位为10 ,查表得到使该位不显示的输出MOV 2CH,#0AHHOUR:MOV A,#23H;时ANL A,#0FHMOV 2BH,A;转换出时个位,存入2BHMOV A,23HANLA, #OFOHSWAP AMOV 2AH, A;转换出时十位,存入2AHJB 46H, DISP;如果长按按键(调时快进),则跳过闪烁处理CJNE R1, #1, DISP;如果R1为1,闪烁秒位待调整JB 48H,DISPMOV ZBH, #OAH;使

30、该位为10 ,查表得到使该位不显示的输出MOV 2AH,#0AH/ * * * * 数码管动态扫描显示* * * * /DISP:MOV DPTR,#TABLEMOV A,2FHMOVC A,A+DPTRMOV P0,ACLR P2.7LCALL DELAYSETB P2.7;显示秒个位MOV A,2EHMOVC A,A+DPTRMOV P0,ACLR P2.6LCALL DELAYSETB P2.6;显示秒十位MOV A,#0BFHMOV P0,ACLR P2.5LCALL DELAYSETB P2.5;显示“-”MOV A,2DHMOVC A,A+DPTRMOV P0,ACLR P2.4L

31、CALL DELAYSETB P2.4;显示分个位MOV A,2CHMOVC A,A+DPTRMOV P0,ACLR P2.3LCALL DELAYSETB P2.3;显示分十位MOV A,#0BFHMOV P0,ACLR P2.2LCALL DELAYSETB P2.2;显示“-”MOV A,2BHMOVC A,A+DPTRMOV P0,ACLR P2.1LCALL DELAYSETB P2.1;显示时个位MOV DPTR,#TABLE1;该位使用TABLE1以消除前置0MOV A,2AHMOVC A,A+DPTRMOV P0,ACLR P2.0LCALL DELAYSETB P2.0;显示

32、时十位RET/ * * * * 按键检测子程序* * * * /KEY_SCAN :CLR 46H;关闭长按调整(调时快进)标志MOV P1, #OFFH;将P1口设置成输入状态MOV A,P1CPL AANLA, #OFH;P1口低4位连接4个按键,只判断该4位JZ FXIT_KFY;无键按下则返回LCALL DELAY;延时去抖动MOV A, P1;重新判断CPL AANL A,#OFHJZ EXIT_KEY;键盘去抖动MOV R5, A;临时将键值存入R5MOV R4, #0OH;用于控制调时快进速度;设置为OOH 是为了在进入长按处理前加长延时区分用户的长按与短按,防止误快进LOOP:

33、 ;进入长按处理LCALL DISPLAY;使长按时显示正常MOV A, PlCPL AANLA, #OFHJB 47H, LOOP1INC R4;调时快进间隔时间基准加lLOOP1:CJNE R1, #03H, LOOP2;如果调秒时长按,则不处理LJMP LOOP3LOOP2:CJNE R4, #99H, LOOP3MOV R4, #7OH;确认用户长按后,重新设定起始值,加快调时快进速度SETB 46H;长按调整 调时快进)标志LCALL ADD KEYLCALL DEC KEYLOOP3:JNZ LOOP;等待键释放MOV A, R5;输出键值RETEXIT_KEY;RET/ * *

34、* * 延时子程序* * * * /DELAY:MOV R7, #150DJNZ R7, $RET/ * * * * 选择键处理子程序* * * * /SET_KEY:CJNE R5,#01H,EXIT;选择键键值INC R1;调整选择功能标识加一SETB BEEPCJNE R1,#4,EXITMOV R1,#0MOV 24H,#00H;调时闪烁基准清零RET/ * * * * 增加键处理子程序* * * * /ADD_KEY:CJNE R5, #02H, EXIT;增加键键值CJNE R1,#01H, NEXT1;选择键功能标志为l,调时,否则跳出MOV A,23HADD A,#01HDA

35、AMOV 23H,ACJNE A,#24H,EXITMOV 23H,#00HNEXT1:CJNE R1,#02H, NEXT2;选择键功能标志为2,调分,否则跳出MOV A,22HADD A,#01HDA AMOV 22H,ACJNE A,#260H,EXITMOV 22H,#00HNEXT2:CJNE R1,#03H, EXIT;选择键功能标志为3,调秒,否则跳出MOV 21H, #00H;如增加键按下一自接清零秒RET/ * * * * 减少键处理子程序* * * * /DEC KEY:CJNE R5,#04H, EXIT;减少键键值CJNE R1, #01H, NEXT3;选择键功能标志

36、为l,调时,古则跳出MOV A, 23HADD A, #99HDA AMOV 23H, ACJNE A, #99H ,EXITMOV 23H, #23HNEXT3:CJNE R1,#02H,NEXT4;选择键功能标志为2 ,调分,否则跳出MOV A,22HADD A,#99HDA AMOV 22H,ACJNE A,#99H,EXITMOV 22H,#59HNEXT4:CJNE R1,#03H,EXIT;选择键功能标志为3,条秒,否则跳出MOV 21H,#00H;如较少键按下直接清零秒RET/ * * * * 强制响铃键处理子程序* * * * /DALING_KEY:CJNE R5,#08H,

37、EXIT;选择键键值CPL BEEPRET/ * * * * 万用返回程序* * * * /EXIT:RET/ * * * * 数码管字形编码表* * * * /TABLE:DB OCOH, OFGH, OA4H, OBOH, 99H, 92H, 82H, OFSH, 80H, 90H, OFFH;字型显示编码TABLE1:DB OFFH, OFGH, OA4H, OBOH, 99H, 92H, 82H, OFSH, 80H, 90H, OFFH;小时位的十位数编码,该位如果为0则不显示/ * * * * 打铃时间对比程序(起床、熄灯)* * * * * /BIJIA01:MOV A,23HC

38、JNE A,#06H,B0MOV A,22HCJNE A,#30H,B0;6:30到SETB 45H;开启响铃方式1RETBO: MOV A, 23HCJNEA, #22H, EXIT_1MOV A, 22HCJNE A, #30H, EXIT_l;22:30到SETB 45H;开启响铃方式lRETEXIT_1:CLR 45HRET/ * * * * 打铃时间对比程序(上、下课)* * * * /BIJIAO2:MOVA, 23HCJNE A, #07H, B1MOV A,22HCJNE A,#30H,B1;7:30SETB 44H:开启响铃方式2RETB1: MOV A, 23HCJNE A

39、, #08H, B2MOV A, 22HCJNE A,#10H,B2;8:10SETB 44HRETB2: MOV A, 23HCJNE A, #08H, B3MOV A, 22HCJNE A,#20H,B3;8:20SETB 44HRETB3: MOV A, 23HCJNE A, #09H, B4MOV A, 22HCJNE A,#00H,B4;9:00SETB 44HRETB4: MOV A, 23HCJNE A, #09H, B5MOV A, 22HCJNE A,#10H,B5;9:10SETB 44HRETB5: MOV A, 23HCJNE A, #09H, B6MOV A, 22H

40、CJNE A,#50H,B6;9:50SETB 44HRETB6: MOV A, 23HCJNE A, #10H, B7MOV A, 22HCJNE A,#00H,B6;10:00SETB 44HRETB7: MOV A, 23HCJNE A, #10H, B8MOV A, 22HCJNE A,#40H,B8;10:40SETB 44HRETB8: MOV A, 23HCJNE A, #10H, B9MOV A, 22HCJNE A, #50H, B9; 10:50SETB 44HRETB9: MOV A, 23HCJNE A, #11H, B10MOV A, 22HCJNE A, #30H,

41、 B10; 11:30SETB 44HRETB10: MOV A, 23HCJNE A, #13H, B11MOV A, 22HCJNE A, #30H, B11; 13:30SETB 44HRETB11: MOV A, 23HCJNE A, #14H, B12MOV A, 22HCJNE A, #10H, B12; 14:10SETB 44HRETB12: MOV A, 23HCJNE A, #14H, B13MOV A, 22HCJNE A, #20H, B13; 14:20SETB 44HRETB13: MOV A, 23HCJNE A, #15H, B14MOV A, 22HCJNE

42、A, #00H, B14; 15:00SETB 44HRETB14: MOV A, 23HCJNE A, #15H, B15MOV A, 22HCJNE A, #20H, B15; 15:20SETB 44HRETB15: MOV A, 23HCJNE A, #16H, B16MOV A, 22HCJNE A, #00H, B16; 16:00SETB 44HRETB16: MOV A, 23HCJNE A, #16H, B17MOV A, 22HCJNE A, #04H, B17; 16:10SETB 44HRETB17: MOV A, 23HCJNE A, #16H, B18MOV A,

43、22HCJNE A, #50H, B18; 16:50SETB 44HRETB18: MOV A, 23HCJNE A, #19H, B19MOV A, 22HCJNE A, #00H, B19; 19:00SETB 44HRETB19: MOV A, 23HCJNE A, #20H, EXIT_2MOV A, 22HCJNE A, #30H, EXIT_2; 20:30SETB 44HRETEXIT_2:CLR 44HRET/ * * * * 响铃方式l 程序(响5 秒停2 秒再响5 秒)* * * * /DALING1;JNB 45H, EXIT_DALINGMOV A, 21H;响铃起始

44、时间由秒实时控制CJNE A, #00H, L1CLR BEEPL1:MOV A, 21HCJNE A, #05H, L2SETB BEEPL2:CJNE A, #07H, L3CLR BEEPRETL3:CJNE A,#12H, EXIT_DALINGSETB BEEPRET/ * * * * 响铃方式2 程序(响5 秒)* * * * /DALINGZ:JNB 44H,EXIT_DALINGMOV A,51H;响铃起始时间由秒实时控制CJNE A,#00H,L4CLR BEEPL4:MOV A,21HCJNE A,#05H,EXIT_DALINGSETB BEEPRETEXIT_DALING:RETEND

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号