学校上课自动打铃系统本科生毕业论文_第1页
学校上课自动打铃系统本科生毕业论文_第2页
学校上课自动打铃系统本科生毕业论文_第3页
学校上课自动打铃系统本科生毕业论文_第4页
学校上课自动打铃系统本科生毕业论文_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

本科生毕业论文(设计)题目:学校上课自动打铃系统目录摘要〔关键词〕 1Abstract〔KEYWORDS〕 1前言 21系统设计 3设计任务 3设计要求 32方案设计 32.1控制局部 32.2时钟局部 42.3显示局部 43系统硬件电路设计 4设计思路 4各模块电路设计 53.2.1键盘电路 53.2.2电源和继电器控制电路图及说明 53.2.3DS1337时钟芯片电路图及说明 7总电路图 8存储器设置 8时钟电路 94软件设计 10I2C总路线的编程 104.1.1I2C总线工作原理 104.1.2I2C总线的数据传输 11读写操作 12程序结构图 13中断流程图 134.2.2主程序流程图 14汇编程序 155结束语 24参考文献 25致谢 26学校上课自动打铃系统摘要校园作息时间控制系统主要用于学校,对一些以24小时为周期的开关量进行自动控制。如上下课打铃等。本系统就是以上下课自动打铃为依据来设计的,分为四大方面:系统设计、方案设计、系统硬件电路设计和软件设计。主要以SPCE061A单片机作为控制核心,用DS1337C时钟芯片来计算当前时间。并通过LCD来显示当前时间和日期,以及设置打铃的数据。设置的数据用FLASH来存储,以到达掉电后数据不丧失的目的。本打铃器最多可以设置30路打铃时间,每天循环可设定双休日或单休日不打铃。掉电后时间能保持当前时间和所设置好的数据,不用每次掉电后都要设置当前时间和设置的数据。关键字SPCE061A单片机;DS1337C时钟芯片;自动打铃;自动控制电路AbstractCampusschedulecontrolsystemismainlyusedinschoolsto24hoursforsomeoftheswitchcycleautomation.Asschoolbell,suchasfighting.Morethantheschoolsystemisbasedonauto-playLingdesignedanddividedintofourmajorareas:systemdesign,programdesign,systemhardwarecircuitdesignandsoftwaredesign.Mainlysingle-chipmicrocomputerasthecontrolSPCE061AcoreDS1337Cclockchipusedtocalculatethecurrenttime.ThroughtheLCDtodisplaythecurrenttimeanddate,aswellasthedatasettofightbell.FLASHdatasetusedtostore,soastoachievethedataisnotlostafterpower-downpurposes.Lingtheplayingdevice30canbesetuptofightroadbelltime,cycleeverydaycanbesetoff-dayweekendordonotplayasinglebell.Power-downtimecanbemaintainedafterthecurrenttimeandthebestdataset,donothavetosetupeachtimeafterpower-downtimeandsetthecurrentdata.KeywordsSPCE061Asingle-chip;DS1337Cchip;Automaticclockbell;Automaticcontrolcircuit前言传统的学校播送系统都是按公共播送系统建造的,它需要人工手动控制播送系统的播放、停止等,学校现在要实现音乐铃声、自动播放等功能,实际上是在原有播送系统的根底上实现播送的自动播出,并将传统的电铃升级成音乐铃声,美妙悦耳的上下课音乐铃声,消除了传统的电铃噪声和紧张气氛,营造出轻松愉快的学习环境。整个系统的改造只需要学校增加一台多媒体电脑,安装上一套自动播出软件,假设学校已有的播送系统按功能分为几个区,再加上一个分区控制器就可实现以下功能:自动播放功能:系统可按校方设置的时间表通过自动播放软件,全自动播放播送操、眼保健操、国歌、运发动进行曲、预备音乐铃、上课音乐铃、下课音乐铃、起床号等,及新闻、英语教学节目等学校其他自选播送音乐和节目。循环功能:编排好一周的播放时间表后,全年可循环播放,而无需每周重设。设定播放标识符:可根据播放内容自行设定各类播放标识符,如上课铃、下课铃、课间操等,方便识别播放内容及播放文件的调用。播放临时播送:学校假设有临时要播放的播送内容,可随时结束自动播放状态,进入手动播放状态进行播放。无人值守:播送控制主机可实现自动开关机,每天开机后自动识别星期几,然后调用当天的播放表自动进行播放,实现无人值守。……1系统设计设计一个可设置多路打铃时间点的学校上课自动打铃系统。

〔1〕对各局部进行分析,理解各局部工作原理。〔2〕按照设计标准,画出系统框图和系统硬件电路图。

〔3〕完成该课题的程序设计,提交程序设计框图及程序设计清单。一、根本要求〔1〕可以实时显示当前时间。根本计时和显示功能。包括上下午标志,时、分的数字显示,秒信号指示。能设置当前时间(含上、下午,时,分)能实现根本打铃功能,规定:上午6:00起床铃:打铃5秒、停2秒、再打铃5秒。下午10:30熄灯铃:打铃5秒、停2秒、再打铃5秒。〔2〕可以用键盘设定多个预定打铃时间。〔3〕掉电后时间能与当前时间同步。〔4〕预定打铃时间点的数据掉电后不丧失。二、发挥局部〔1〕增加整点报时功能,整点时响铃5秒,要求有控制启动和关闭功能。〔2〕增加调整起床铃、熄灯铃时间的功能。〔3〕增设上午4节课的上下课打铃功能,规定如下:8:00上课,8:45下课:8:55上课,9:40下课;10:00上课,10:45下课;10:55上课,11:40下课;每次铃声5秒。〔4〕特色和创新自选。三、设计步骤〔1〕设计能正常工作的一个单片机最小硬件系统,外围电路包括设置键盘,LCD或LED的显示屏;〔2〕进行软件设计,利用单片机系统时钟先设计一个高精度的内部时钟系统,最小精确时间为期1秒;〔3〕在秒计数器的根底上设计一个24小时时钟,并设计假设干定时功能;〔4〕设计打铃执行机构,完成自动打铃功能。2方案设计本系统设计的是一个学校上课自动打铃系统,根题目的要求,设计了以下几个方案。2.1控制局部方案:我们采用的是SPCE061A单片机来实现的,此单片机内置32KFLASH,不需外接存储芯片。而且具有很强大的语音功能,如果本系统要加语音功能的话也很方便。另外,比拟方便的是该芯片内置在线仿真、编程接口,可以方便实现在线调试,这大大加快了系统的开发与调试。在这里我们并没有采用AT89S51单片机实现,原因是AT89S51单片机存储容量太小需外接存放器来存储数据。如果系统增加语音播放功能,还需外接语音芯片,对外围电路来说,比拟复杂,且软件实现也较麻烦。另外,51单片机需要用仿真器来实现软硬件调试,较为繁琐。所以我们采用的是SPCE061A单片机。2.2时钟局部方案:由于本系统要求时间精确度高,所以采用DS1337I2C时钟芯片来实现。DS1337串行实时时钟是低功耗时钟芯片,地址与数据通过I2C总线串行传送。该时钟可以通过AM/PM指标器决定工作在24小时模式或是12小时模式。精确度很高,很适合于作时钟器件。2.3显示局部方案:采用MzL05-12864LCD来实现。LCD能显示的内容很丰富,在LCD上显示多级菜单,用户通过键盘输入设定信息只要通过编程就可以显示不同的代码,而且让人看起来很直观。对于本系统的要求能够很容易的实现。3系统硬件电路设计根据题目要求系统可划分为以下几个根底模块,如图3-1:DS1337DS1337SPCE061A常开继电器键盘设定24V电源电铃I2C总路IOB0~8IOA8~12LCD显示图3-1系统方框图键盘电路六个按键分别接IOB0——IOB5S1S2S1S2S3S4S5S6KEYIOB0IOB1IOB2IOB3IOB4IOB5+5V图3-2键盘原理图电源和继电器控制电路图及说明电源主要采用LM7805和LM7824来做稳压。其中+5V用来为单片机供电,另外一路+24V用来做电铃电源。继电器采用5V的,通过单片机的IO口用来控制继电器的吸合,以到达控制电铃响或停的目的。图3-3电源原理图图3-3电源原理图DS1337时钟芯片电路图及说明DS1337C是两线的I2C总线时钟芯片,内罢晶振。VCC用3V的CR2032纽扣电池,主要是为DS1337C单独供电,目的是在单片机断电时时间还在继续跳动保持着当前时间。值得注意的是DS1337C一定要与单片机共地否那么不能读出。原理图SDASCLSDASCLDSDS1337CGNDGNDSQW/INTSQW/INTINTAINTAVVCCN.C.N.C.N.C.N.C.N.C.N.C.N.C.N.C.N.C.N.C.N.C.N.C.N.C.N.C.N.C.N.C.N.C.N.C.(b)封装图N.C.N.C.图3-4DS1337C原理图和封装图图3-5系统硬件电路图存储器设置一般的微型计算机都采用程序与数据共用一组存储器形式,而此单片机将程序与数据分别放在两组存储器内,一组称为程序存储器,另一组称为数据存储器。单片机的应用特点是为某个特定对象效劳,它的程序设计调试成功后,一般是固定不变的,因而程序(包括常数表)可以一次性地永久放到单片机内。这样不仅省去了每次开机后的程序重新装入步骤,还可以有效地防止因掉电和其它干扰而引起的程序丧失的错误。物理上,SPCE061A单片机有4个存储器空间:片内程序存储器、片外程序存储器,片内数据存储器、片外数据存储器。程序存储器程序存储器用来存放编制好的始终保存的固定程序和表格常数。程序存储器以程序计数器PC作地址指针,用16位的地址总线,地址空间为64KB。

SPCE061A单片机内部设置有4KB的ROM,片外可以扩展到64KB的程序存储区,而整个程序存储器的地址空间是统一的。当引脚为高电平时,单片机正常运行,片内外统一编址。片内ROM地址范围由0000H~0FFFH共4KB;片外ROM地址从1000H~FFFFH,内外共64KB。当程序计数器PC≤0FFFH时执行片内程序,当PC≥0FFFH时,会自动转向片外程序。当引脚为低电平时,只能执行片外ROM的程序。因此,片外ROM地址从0000H~FFFFH共64KB。在使用ROM时,下面六个地址单元具有特殊专用功能:0000H单元是程序起始单元。系统复位后,PC=0000H,程序从0000H单元开始执行;0003H单元是外部中断0入口地址;000BH单元是定时器T0溢出中断入口地址;0013H单元是外部中断1入口地址;001BH单元是定时器T1溢出中断入口地址;0023H单元是串行口中断入口地址。内部数据存储器数据存储器用以存放数据或中间运行结果。其在物理上和逻辑上都分为二个地址空间:一个内部和一个外部数据存储器空间。访问内部数据存储器,用MOV指令,访问外部数据存储器用MOVX指令。1.内部RAM数据存储器

内部RAM共有128字节单元,地址由00H到7FH。(1)通用工作存放器区〔00~1FH单元〕工作存放器一共四组〔0、1、2、3组〕,每组8个存放器〔R0~R7〕,所以共32个存放器。由于每组存放器区8个存放器都记为Ro—R7,因此每次只能选择一个存放器区工作。对存放器操作最灵活且响应速度最快,一般情况下总是首先选择应用存放器,因此有效地设置4个存放器工作区可以提高现场保护能力和CPU实时响应的速度。(2)位寻址区〔20H~2FH〕内部数据存储器20H~2FH(16个单元)既可单独按位寻址,进行位操作,也可以按字节寻址。这16个字节每字节8位,共有128个位地址。位寻址区的每一位都可以视作软件触发器,由程序直接进行位处理。通常把各种程序状态标志、位控制变量设在位寻址区内。同样,位寻址区的RAM单元也可以作为一般的数据缓冲器使用。(3)用户数据缓冲区〔一般缓冲存储区〕内部RAM块中的30H-7FH构成一般缓冲存储区。2.专用存放器SPCE061A单片机内部的锁存器、定时器、串行口数据缓冲器以及各种控制存放器和状态存放器都是以专用功能存放器〔SFR〕的形式出现的,并分布在内部数据存储器内,地址空间范围为80H~FFH。时钟电路SPCE061A单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。外部振荡方式是把外部已有的时钟信号引入单片机内。这种方式适宜用来使单片机的时钟与外部信号保持同步。根本时序单位:单片机以晶体振荡器的振荡周期(或外部引入的时钟周期)为最小的时序单位,片内的各种微操作都以此周期为时序基准。振荡频率二分频后形成状态周期或称s周期,所以,1个状态周期包含有2个振荡周期。振荡频率foscl2分频后形成机器周期MC。所以,1个机器周期包含有6个状态周期或12个振荡周期。1个到4个机器周期确定一条指令的执行时间,这个时间就是指令周期。8031单片机指令系统中,各条指令的执行时间都在1个到4个机器周期之间。4种时序单位中,振荡周期和机器周期是单片机内计算其它时间值(例如,波特率、定时器的定时时间等)的根本时序单位。下面是单片机外接晶振频率12MHZ时的各种时序单位的大小:4、软件设计I2C总路线的编程I2C总线工作原理I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器〔或被控器〕,又是发送器〔或接收器〕,这取决于它所要完成的功能。CPU发出的控制信号分为地址码和控制量两局部,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别〔如比照度、亮度等〕及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。I2C总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。①开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。②结束信号:SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据。③应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。假设未收到应答信号,由判断为受控单元出现故障。通信时序图4-1。图4-1I2C总线通信时序图I2C总线的数据传输发送到SDA线上的每个字节必须为8位。每次传输可以发送的字节数量不受限制。每个字节后必须跟一个响应位首先传输的是数据的最高位〔MSB〕。如果从机要完成一些其他功能后〔例如一个内部中断效劳程序〕才能接收或发送下一个完整的数据字节,可以使时钟线SCL保持低电平迫使主机进入等待状态。当从机准备好接收下一个数据字节并释放时钟线SCL后,数据传输继续。数据传输时序图4-2。读写操作数据的传输遵循图4-3所示的格式。在起始条件〔S〕后,发送了一个从机地址。这个地址共有7位,紧接着的第8位是数据方向位〔R/W〕,‘0’表示发送〔写〕,‘1’表示请求数据〔读〕。图4-3完整的数据传输程序结构程序结构FLASH写入继电器控制时间点判断DS1337读写LCD显示键盘扫描键值处理FLASH写入继电器控制时间点判断DS1337读写LCD显示键盘扫描键值处理中断流程图返回是否符合打铃条件打铃IOSY2Hz中断是否到IS读FLASHNNY返回是否符合打铃条件打铃IOSY2Hz中断是否到IS读FLASHNNY主程序流程图是否设置结束开始设置系统时间系统初始化是否设置结束开始设置系统时间系统初始化设置打铃时间设置打铃时间是否设置结束是否设置结束FLASH写入FLASH写入是否设置结束是否设置结束 打铃打铃汇编程序

;定义蜂鸣器〔电铃〕控制信号输出口

ORG0000H

;程序入口地址

LJMPSTART

ORG000BH

;定时器0中断入口地址

LJMPTIMER_0

ORG0300H/*****程序开始,初始化*****/

START:

SETBBEEP

;关闭蜂鸣器〔电铃〕

SETB48H

;使用一个bit位用于调时闪烁标志

SETB47H

;使用一个bit位用于产生脉冲用于调时快进时基

CLR

45H

;关闭响铃方式1标志

CLR

44H

;关闭响铃方式2标志

MOVR1,#0

;调整选择键功能标志:0正常走时、1调时、2调分、3调秒

MOV20H,#00H

;用于控制秒基准时钟源的产生

MOV21H,#00H

;清零秒存放器

MOV22H,#00H

;清零分存放器

MOV23H,#00H

;清零时存放器

MOV24H,#00H

;用于控制调时闪烁的基准时钟的产生

MOVIP,#02H

;IP,IE初始化

MOVIE,#82H

MOVTMOD,#01H

;设定定时器0工作方式1

MOVTH0,#3CH

MOVTL0,#0B0H

;赋定时初值,定时50ms

SETBTR0

;启动定时器0

MOVSP,#40H

;重设堆栈指针/*****主程序*****/

MAIN:

CJNER1,#00H,MAIN1

;是否为正常走时状态

LCALLBIJIAO1

;调用起床、熄灯打铃比拟子程序

LCALLBIJIAO2

;调用上、下课打铃比拟子程序

LCALLDALING1

;调用响铃方式1执行子程序

LCALLDALING2

;调用响铃方式2执行子程序MAIN1:

LCALLDISPLAY

;调用显示子程序

LCALLKEY_SCAN

;调用按键检测子程序

JZMAIN

;无键按下那么返回重新循环

LCALLSET_KEY

;调用选择键处理子程序

JB46H,MAIN

;如果已进行长按调整(调时快进〕,那么不再执行下面的单步调整

LCALLADD_KEY

;调用增加键处理子程序

LCALLDEC_KEY

;调用减少键处理子程序

LCALLDALING_KEY

;处理强制打铃/强制关闭铃声键

LJMPMAIN

;重新循环

/*****定时中断效劳程序*****/TIMER_0:

PUSHACC

PUSHPSW

;保护现场

MOVTH0,#3CH

MOVTL0,#0B0H

;重新赋定时初值

CPL47H

;产生脉冲用于调时快进时基

INC24H

MOVA,24H

CJNEA,#10,ADD_TIME

;产生0.5秒基准时钟,用于调时闪烁

CPL48H

;取反调时闪烁标志位

MOV24H,#00HADD_TIME:

INC20H

MOVA,20H

CJNEA,#20,RETI1

;产生1秒基准时钟

MOV20H,#00H

;一秒钟时间到,清零20H

MOVA,21H

ADDA,#01H

DAA

;作十进制调整

MOV21H,A

CJNEA,#60H,RETI1

MOV21H,#00H

;一分钟到

MOVA,22H

ADDA,#01H

DAA

MOV22H,A

CJNEA,#60H,RETI1

MOV22H,#00H

;一小时到

MOVA,23H

ADDA,#01H

DAA

MOV23H,A

CJNEA,#24H,RETI1

MOV23H,#00H

;到24点,清零小时

RETI1:

POPPSW

POPACC

;恢复现场

RETI

;中断返回/*****显示处理*****/DISPLAY:

MOVA,21H

;秒

ANLA,#0FH

MOV2FH,A

;转换出秒个位,存入2FH

MOVA,21H

ANLA,#0F0H

SWAPA

MOV2EH,A

;转换出秒十位,存入2EH

JB46H,MIN

;如果长按按键〔调时快进〕,那么跳过闪烁处理

CJNER1,#3,MIN

;如果R1为3,闪烁秒位待调整

JB48H,MIN

MOV2FH,#0AH

;使该位为10,查表得到使该位不显示的输出

MOV2EH,#0AHMIN:

MOVA,22H

;分

ANLA,#0FH

MOV2DH,A

;转换出分个位,存入2DH

MOVA,22H

ANLA,#0F0H

SWAPA

MOV2CH,A

;转换出分十位,存入2CH

JB46H,HOUR

;如果长按按键〔调时快进〕,那么跳过闪烁处理

CJNER1,#2,HOUR

;如果R1为2,闪烁分位待调整

JB48H,HOUR

MOV2DH,#0AH

;使该位为10,查表得到使该位不显示的输出

MOV2CH,#0AHHOUR:

MOVA,23H

;时

ANLA,#0FH

MOV2BH,A

;转换出时个位,存入2BH

MOVA,23H

ANLA,#0F0H

SWAPA

MOV2AH,A

;转换出时十位,存入2AH

JB46H,DISP

;如果长按按键〔调时快进〕,那么跳过闪烁处理

CJNER1,#1,DISP

;如果R1为1,闪烁时位待调整

JB48H,DISP

MOV2BH,#0AH

;使该位为10,查表得到使该位不显示的输出

MOV2AH,#0AH/*****数码管动态扫描显示*****/DISP:

MOVDPTR,#TABLEMOVA,2FH

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

;显示秒个位

MOVA,2EH

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

;显示秒十位

MOVA,#0BFH

MOVP0,A

LCALLDELAY

;显示“-〞

MOVA,2DH

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

;显示分个位

MOVA,2CH

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

;显示分十位

MOVA,#0BFH

MOVP0,A

LCALLDELAY

;显示“-〞

MOVA,2BH

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

;显示时个位

MOVDPTR,#TABLE1

;该位使用TABLE1以消除前置0

MOVA,2AH

MOVCA,@A+DPTR

MOVP0,A

LCALLDELAY

;显示时十位

RET

/*****按键检测子程序*****/KEY_SCAN:

CLR46H

;关闭长按调整〔调时快进〕标志

MOVP1,#0FFH

;将P1口设置成输入状态

MOVA,P1

CPLA

ANLA,#0FH

;P1口低4位连接4个按键,只判断该4位

JZEXIT_KEY

;无键按下那么返回

LCALLDELAY

;延时去抖动

MOVA,P1

;重新判断

CPLA

ANLA,#0FH

JZEXIT_KEY

;键盘去抖动

MOVR5,A

;临时将键值存入R5

MOVR4,#00H

;用于控制调时快进速度

;设置为00H是为了在进入长按处理前加长延时区分,用户的长按与短按,防止误快进

LOOP:

;进入长按处理

LCALLDISPLAY

;使长按时显示正常

MOVA,P1

CPLA

ANLA,#0FH

JB47H,LOOP1

INCR4

;调时快进间隔时间基准加1LOOP1:

CJNER1,#03H,LOOP2

;如果调秒时长按,那么不处理

LJMPLOOP3LOOP2:

CJNER4,#99H,LOOP3

MOVR4,#70H

;确认用户长按后,重新设定起始值,加快调时快进速度

SETB46H

;长按调整〔调时快进〕标志

LCALLADD_KEY

LCALLDEC_KEYLOOP3:

JNZLOOP

;等待键释放

MOVA,R5

;输出键值

RET

EXIT_KEY:RET/*****延时子程序*****/DELAY:

MOVR7,#150

DJNZR7,$

RET

/*****选择键处理子程序*****/SET_KEY:

CJNER5,#01H,EXIT;选择键键值

INCR1

;调整选择功能标志加一

SETBBEEP

CJNER1,#4,EXIT

MOVR1,#0

MOV24H,#00H

;调时闪烁基准清零

RET/*****增加键处理子程序*****/ADD_KEY:

CJNER5,#02H,EXIT

;增加键键值

CJNER1,#01H,NEXT1

;选择键功能标志为1,调时,否那么跳出

MOVA,23H

ADDA,#01H

DAA

MOV23H,A

CJNEA,#24H,EXIT

MOV23H,#00HNEXT1:

CJNER1,#02H,NEXT2

;选择键功能标志为2,调分,否那么跳出

MOVA,22H

ADDA,#01H

DAA

MOV22H,A

CJNEA,#60H,EXIT

MOV22H,#00HNEXT2:

CJNER1,#03H,EXIT

;选择键功能标志为3,调秒,否那么跳出

MOV21H,#00H

;如增加键按下直接清零秒

RET/*****减少键处理子程序*****/DEC_KEY:

CJNER5,#04H,EXIT

;减少键键值

CJNER1,#01H,NEXT3

;选择键功能标志为1,调时,否那么跳出

MOVA,23H

ADDA,#99H

DAA

MOV23H,A

CJNEA,#99H,EXIT

MOV23H,#23H

NEXT3:

CJNER1,#02H,NEXT4

;选择键功能标志为2,调分,否那么跳出

MOVA,22H

ADDA,#99H

DAA

MOV22H,A

CJNEA,#99H,EXIT

MOV22H,#59HNEXT4:

CJNER1,#03H,EXIT

;选择键功能标志为3,调秒,否那么跳出

MOV21H,#00H

;如较少键按下直接清零秒

RET/*****强制响铃键处理子程序*****/DALING_KEY:

CJNER5,#08H,EXIT

;选择键键值

CPLBEEP

RET/*****万用返回程序*****/

EXIT:

RET/*****数码管字形编码表*****/TABLE:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH;字形显示编码TABLE1:

DB0FFH,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH;小时位的十位数编码,该位如果为0那么不显示/*****打铃时间比照程序〔起床、熄灯〕*****/BIJIAO1:

MOVA,23H

CJNEA,#06H,B0

MOVA,22H

CJNEA,#00H,B0

;6:00到

SETB45H

;开启响铃方式1

RETB0:

MOVA,23H

CJNEA,#22H,EXIT_1

MOVA,22H

CJNEA,#30H,EXIT_1

;22:30到

SETB45H

;开启响铃方式1

RETEXIT_1:

CLR45H

RET/*****打铃时间比照程序〔上、下课〕*****/BIJIAO2:

MOVA,23H

CJNEA,#07H,B1

MOVA,22H

CJNEA,#30H,B1

;7:30

SETB44H

;开启响铃方式2

RETB1:

MOVA,23H

CJNEA,#08H,B2

MOVA,22H

CJNEA,#20H,B2

;8:20

SETB44H

RETB2:

MOVA,23H

CJNEA,#08H,B3

MOVA,22H

CJNEA,#30H,B3

;8:30

SETB44H

RETB3:

MOVA,23H

CJNEA,#09H,B4

MOVA,22H

CJNEA,#20H,B4

;9:20

SETB44H

RETB4:

MOVA,23H

CJNEA,#09H,B5

MOVA,22H

CJNEA,#40H,B5

;9:40

SETB44H

RETB5:

MOVA,23H

CJNEA,#10H,B6

MOVA,22H

CJNEA,#30H,B6

;10:30

SETB44H

RETB6:

MOVA,23H

CJNEA,#10H,B7

MOVA,22H

CJNEA,#40H,B7

;10:40

SETB44H

RETB7:

MOVA,23H

CJNEA,#11H,EXIT_2

MOVA,22H

CJNEA,#30H,EXIT_2

温馨提示

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

评论

0/150

提交评论