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

下载本文档

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

文档简介

智能定期闹钟设计

学生:XXX指导教师:XXX

内容摘要:学习和巩固单片机技术、电子技术、传感器技术及智能仪器等知识,使对

已学过日勺基础知识能有更深入的理解,并融会贯穿c学会独立思索、独立T作,培养一

定时自学能力和独立分析问题能力,以及增强系统地运用已学理论知识去处理实际问题

的能力,同步培养成良好的科学态度和严谨时设计习惯

本设计采用单片机AT89c51作为关键元件,12MHz晶振,由P0口输出所要显示的字

形段码,由P2口输出字位信号。在其基础上扩展外围芯片与电路,附加时钟电路及LED

电路。LED采用共阴极接法,低电平有效选中对应的LED。

单片机具有集成度高、功能强、通用性好、尤其是它能耗低、价格廉价、可靠性高、

抗干扰能力强和使用以便等独特的长处,因此单片机目前广泛的应用到家用电器、机电

产品、小朋友玩具、机器人、办公自动化产品等领域。为了深入口勺熟悉并掌握单片机口勺

应用及开发,认真的做好本次课程设计非常必要。

一种单片机的定期闹钟系统离不开软件和硬件,硬件是软件的依托,软件是硬件

的内核。设计硬件电路时应当先设计一种单片机的最小系统,它是单片机应用系统的设

计基础,然后在此基础上添加外围器件,如显示屏、按键等构成闹钟口勺硬件电路图。在

设计应用程序时遵照模块化的设计措施,在明确了设计方向之后按照提成的儿大模块分

别画出流程图,然后根据流程图写出程序,在每个模块编写好之后分别调试、修改、完

善。最终在主程序下调用再次调试、修改。

通过这次设计让我更深入理解单片机基本电路、怎样控制和定期器和中断编程的

基本措施,从而锻炼了我学习、设计和开发软、硬件的能力。

关键词:定期闹钟系统传感相技术智能仪潜阴极接法

Smarttimeralarmclockdesign

Abstract:Learningandconsolidationoftheknowledgeofmicrocomputer

technology,electronictechnology,sensortechnologyandintelligent

instruments,andhavplearnedthebasicstohaveamorein-depthunderstanding

andmastery.Learntothinkindependently,workindependently,develop

self-learningabilityandindependentanalysisofcapacityandenhancingthe

systemtheabilitytousetheoreticalknowledgetosolvepracticalproblems,

whilecultivatingagoodscientificattitudeandarigorousdesignhabits.

ThisdesignusesAT89C51microcontrollerasthecorecomponent,12MHZ

crystal,shapedsegmentcodetobedisplayedbythePOportoutputsignalfrom

theP2portoutputword.Expansiononthebasisoftheperipheralchipsand

circuits,additionalclockcircuitandtheLEDcircuit.LEDcommoncathode

connection,active-lowselecttheappropriateLED.

Microcontrollers,highintegration,functionality,versatility,itslow

energyconsumption,cheap,highreliability,stronganti-interferenceability

andeaseofuseandotheruniqueadvantages,sothemicrocontrollerisnowwidely

appliedtohouseholdappliances,electricalandmechanicalproducts,children's

toys,robots,officeautomationproductsandotherfields.Inordertofurther

familiarwithandmasterMCUapplicationanddevelopmentofverynecessaryto

dothecoursedesign.

Asingle-chiptimingalarmsystemcannotbeseparatedfromthesoftware

andhardware,hardware,software,relyingonsoftwareisthecoreofthehardware.

3软件设计......................................

3.1主程序流程图.............................

3.2定期中断子程序流程图.....................

3.3程序设计.................................

4系统的仿真与调试..............................

4.1PROTEUS软件仿真...........................

4.2系统的调试................................

5_结束语........................................

附录1:源程序代码...............................

附录2:系统原理图...............................

参照文献........................................

基于智能定期闹钟系统设计

序言

学习和巩固单片机技术、电子技术、传感器技术及智能仪器等知识,使对己学过日勺

基础知识能有更深入日勺理解,并融会贯穿。学会独立思索、独立工作,培养一定日勺自学

能力和独立分析问题能力,以及增强系统地运用已学理论知识去处理实际问题的能力,

同步培养成良好日勺科学态度和严谨的设计习惯本设计采用单片机AT89c51作为关键元

件,12MHZ晶振,由P0口输出所要显示的字形段码,由P2口输出字位信号。在其基础

上扩展外围芯片与电路,附加时钟电路及LED电路。

1设计目的及意义

学习和巩固单片机技术、电子技术、传感器技术及智能仪器等知识,使对已学过F句

基础知识能有更深入的理解,并融会贯穿。学会独立思索、独立工作,培养一定日勺自学

能力和独立分析问题能力,以及增强系统地运用已学理论知识去处理实际问翅的能力,

同步培养成良好口勺科学态度和严谨的设计习惯。

1.1设计任务

完毕所选题目的分析与设计,到达技术性能规定。提交正式课程设计总结汇报一份。

本文设计的定期闹钟的关键模块采用AT89C51芯片,时、分、秒用6位LED数码管

显示。在电路中通过四个按键SI、S2、S3和S4来进行定期、调时和复位,定期时间到

通过蜂鸣器发出报警声,

1.2设计系统的重要功能

▲能显示时时一分分一秒秒。

▲可以设置定期时间、修改定期时间。

▲定期时间到能发出报警

单片机日勺时钟产生措施有两种:内部时钟方式和外部时钟方式。本系统中AT89c51

单片机采用内部时钟方式。最常用的内部时钟方式是采用外接晶体和电容构成的并联谐

振回路。振荡晶体可在1.2MHz〜12MHz之间。电容值无严格规定,但电容取值对振荡频

率输出日勺稳定性、大小和振荡电路起振速度有少许影响修改时间和定期用手动按键控

制,报警声通过蜂鸣器发出。这样可以使得硬件电路设计较为简朴,且软件设计也易于

实现,并可以减少成本其集成度高、功能强、能耗低、通用性好、价格廉价,该器件采

用ATMEL高密度非易失存储溶制造技术制造。

2系统总体方案及硬件设计

2.1系统总体方案

▲由于LED显示屏相对于其他显示屏(如LCD显示屏)来说其价格要廉价许

多,并且亮度更高,耐温范围较广,因此采用6位数码管来显示“时时一分分一秒秒”.

▲时间的定期用单片机内部时钟电路,在一定日勺时间内能使其误差较小,如

通过一年其误差才仅有数秒。修改时间和定期用手动按键控制,报警声通过蜂鸣落发出。

这样可以使得硬件电路设计较为简朴,且软件设计也易于实现,并可以减少成本。

▲关键模块采用AT89C51单片机,功能强、通用性好、价格廉价,且易于控

制。加上外围器件(数码管、排阻、按键和蜂鸣濯)和应用程序,便构成了对应日勺应用

系统。

2.2系统设计总框图(如图2.2T所示)

图2.27定期闹钟系统设计总框图

2.3硬件设计

单片机最小系统设计

▲芯片:AT89C51

由于51单片机是各单片机中最为经典和最有代表性的一种,在20世纪70年代问

世以来,以其极高日勺性能价格比,受到人们的重视和关注,应用广泛,发展很快,推广

率和市场利润率较高,且适合于本设计系统中CPU内存和T/O等资源H勺规定,因此本设

计采用AT89C51作为关健控制芯片。

AT89C51是一-种带4KB闪烁可编程可擦除只读存储器(FPEROM—FlashProgrammable

andErasableReadOnlyMemory)的I单片机,可稳定地工作于5V的|电源下。其集成度

高、功能强、能耗低、通用性好、价格廉价。该器件采用ATMEL高密度非易失存储器制

造技术制造,与工业原则的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU

和闪烁存储器组合在单个芯片中,ATMEL的AT89c51是一种高效微控制器。其组合而成

的配件产品在平常生活的使用过程中非常以便、简朴且实用,深受着广大消费者的爱慕。

AT89c51管脚阐明如下:

Vic:供电电压端。

God:接地端°

POU:P0口为三态双向口,能带8个TTL电路。有两种功能:第一功能是一种8位漏

极开路型口勺双向I/O口,这时P0口可看作数据总线;第二功能是在访问外部存储器时,

分时提供低8位地址和8位双向数据总线,这时先用做地址总线再用做数据总线。在FIASH

编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被

拉高。P0口内部无上拉电阻,作为I/O口使用时,必须外接上拉电阻。

P1口:P1口是一种内部带上拉电阻的8位准双向I/O口(使用前有一种准备动作),

负载能力为4个TTL电路,在FLASH编程和校验时,P1口作为第八位地址接受。

P2口:P2口为一种内部带上拉电阻的8位准双向I/O口,P2口缓冲器可接受、输出4

个TIL门电流。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2

口输出地址日勺高八位。P2口在FLASH编程和校验时接受高八位地址信号和控制信号。

P3口:P3口是一种内部带上拉电阻时准双向I/O口,可接受输出4个HL门电流。同

步为闪烁编程和编程校验接受某些控制信号。P3口日勺8个引脚均有各自的I第二功能,可

作为AT89c51的I某些特殊功能口,如表-1所示°

表7P3口第二功能

P3口引脚第二功能注释

P3.0RXD串行输入口

P3.1TXD串行输出口

P3.2外部中断0输入

INTO

P3.3INTI外部中断1输入

P3.4TO定期/计时器0外部输入

P3.571定期/计时器1外部输入

P3.6WR外部数据存储器写信号

P3.7外部数据存储器读信号

RD

RSTVPP:RST为复位信号输入端。当振荡器复位器件时,要保持RST脚两个机器周期

(24个时钟周期)以上日勺高电平时间。VAP为内部RAMH勺备用电源输入端。当主电源Vcc一

旦发生断电或电压降到一定值时,可通过VCC为单片机内部RAM提供电源,以保护片内RAM

中的信息不丢失,使VCC上电后能继续正常运行。

ALOE/PROG:ALE为地址锁存容许信号,当访问外部存储器时,ALE用来锁存P0口送

出H勺低8位地址信号。在FLSH编程期间,PROG用于输入编程脉冲。在平时,ALE端以不变

日勺频率周期输出正脉冲信号,此频率为振荡器频率的11/6。因此它可用作对外部输出日勺

脉冲或用于定期目H勺。然向要注意的是:每当用作外部数据存储器时,将跳过一种ALE

脉冲。如想严禁ALE日勺输出可在SFR日勺8EH地址上置0。此时,ALE只有在执行MOVX,M0VC

指令时才起作用。此外,该引脚被略微拉高。假如微处理器在外部执行状态ALE严禁,

置位无效。

PSEN:外部程序存储器日勺读选通信号.在由外部程序存储器取指期间,PSEN产

生负脉冲做为外部ROM日勺选通信号,每个机器周期两次PSEN有效。但在访问外部数据存

储器时,不会产生有效日勺PSEN信号。PSEN可驱动8个LETTEN门输入端。

Earp:访问外部程序存储器控制信号。当EA保持低电平时,则在此期间只访问

外部程序存储器(OOOOH-FFFFH),不管与否有内部程序存储器。注意加密方式1时,EA

将内部锁定为RST。当EA端保持高电平时,CPU访问程序存储器有两种状况:一是访问时

地址空间在0到4KB范围内,CUP访问片内程序存储器;二是访问日勺地址超过4KB时,CPU

将自动执行外部程序存储器的J程序。在PLSAH编程期间,此引脚也用于施加1方编程电源

(App.)o

XTAL1:晶体振荡电路的反向器输入端。

XTAL2:晶体振荡电路的反向器输出端。

DIP封装日勺AT89c51管脚排列如图T所示。

图2.3.1-1AT89C51的管脚排列

▲时钟电路

单片机的I时钟产生措施有两种:内部时钟方式和外部时钟方式。本系统中AT89c51

单片机采用内部时钟方式。最常用的内部时钟方式是采用外接晶体和电容构成的并联谐

振回路。振荡晶体可在1.2MHz〜12MHz之间。电容值无严格规定,但电容取值对振荡频

率输出的稳定性、大小和振荡电路起振速度有少许影响,一般可在20pF〜lOOpF之间取

值。AT98C51单片机时时钟电路如图2.3.1-2所示。

图2.3.1-2AT98C51单片机日勺时钟电路

▲复位电路

复位是单片机的初始化操作。单片机系统在上电启动运行时,都需要先复位。其作

用是使CPU和系统中其他部件都处在一种确定的初始状态,并从这个状态开始工作。单

片机的外部复位电路有上电自动复位和按键手动复位两种。本系统中AT89C51单片机采

用上电加按键手动复位电路,如图-3所示。

图-3AT89C51单片机的复位电路

报警模块设计

为实现设计日勺定期闹钟系统在定期时间届时发出报警声,采用蜂鸣器作为报警发声

装置。在本设计中有多种报警声可供选择,可选择报警时播放音乐当使能为低时,输出

将锁存在已建立H勺数据电平上。输出控制不影响锁存器廿勺内部_L作,即老数据可以保持,

甚至当输出被关闭时,新日勺数据也可以置入,对应日勺一种点或一种笔划发光,控制不一

样组合日勺二极管导通,就能显示出多种字符当使能为低时,输出将锁存在已建立日勺数据

电平上。报警电路设计如图-1所示。

显示模块设计

本系统中采用6位LED数码管显示时、分、秒,用两片74HC573分别对段码和位码进

行锁存,实现动态扫描方式显示,节省单片机I/O口资源,简化硬件电路。

▲LED显示屏

单片机中一般使用8段LED,LED是发光二极管显示屏的缩写。LED显示屏由于构造

简朴,价格廉价,体积小,亮度高,电压低,耐温范围广,可靠性高,寿命长,响应速

度快,颜色鲜艳,配置灵活,与单片机接口以便而得到广泛应用。LED显示屏是由若干

个发光二极管构成显示字段日勺显示部件,当发光二极管导通时,对应日勺一种点或一种笔

划发光,控制不一样组合的二极管导通,就能显示出多种字符。LED显示屏有多种形式,

如:“米”字型显示屏,点阵显示屏和七段数码显示屏等。在本系统中采用八段数码显

示屏。

由于共阴极H勺LED数码管它H勺驱动电流是分开的,在单片机进行动态扫描的时候不

会影响彼此日勺电流,故本系统中的6位LED数码管均用共阴极的数码管。

▲74HC573芯片

特点:三态总线驱动输出,置数全并行存取,缓冲控制输入,使能输入有改善抗扰度

日勺滞后作用.

原理阐明:74HC573%!八个锁存器都是透明日勺D型锁存器,当使能(G)为高时,Q

输出将随数据(D)输入而变。当使能为低时,输出将锁存在已建立的I数据电平上。输

出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新日勺数据

也可以置入。这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动

总线,而不需要外接口。尤其合用于缓冲寄存器,I/O通道,双向总线驱动器和工作寄

存器。

74HC573引脚阐明:

0E:3态输出使能输入(低电平有效)。

DO-D7:数据输入端。

Q0-Q7:3态锁存输出。

LE:锁存使能输入,

GND:接地。

VCC:电源电压。

74HC573的引脚图、逻辑图及真值表如下:

图-174HC573引脚图

图-274HC573逻辑图

表-174HC573真值表

0ELeDd

IIXXZ

LLXNochange

L11LL

LHHh

▲显示电路

将两片74HC573内数据输入端DO-D7都分别与AT89C51单片机的P0.0-P0.7

和RESPACK-8排阻的2-9引脚连接,两片74HC573口勺锁存使能端L分别接至P2.6和

P2.7,74HC573的输出端接至数码管,如图-3所示。

=

-

=-

=-

=-

=

=

=-

r

图-3定期闹钟系统日勺显示电路

调时模块设计

本系统要进行时间日勺调整和定期,因此用4个手动按键对其进行控制。键盘电路设

计如图9所示。当按下时间调整键S1时,系统可进行时间调整H勺小时设置;当再按下

51时,可进行时间调整日勺分钟设置;再按下S1时,可进行时间调整时秒钟设置。

3软件设计

3.1主程序流程图

图3.17主程序流程图

3.2定期中断子程序流程图

J及I1向BELnd

图3.27定期中断子程序流程图

3.3程序设计

根据程序流程图采用汇编语言进行程序设计,其中主程序可根据系统实现的功能划

分为如下几种子程序模块。(程序源代码见附录1)

▲时间调整子程序模块;

▲闹钟时间设置子程序模块;

▲蜂鸣器报警子程序模块;

▲数码管显示子程序模块。

指示灯信号LAMP2"LAMP0为独立扩展下载板上CPLD器件的第11、10、9脚,内部

己连接并已锁定,无需外接连线C

蜂鸣器报时信号SPEAK为独立扩展下载板CPLD器件的第31脚,内部已连接并已锁

定,无需外接连线。

拨码开关SW广SW7内部己连接并已锁定,无需外接连线。

数码管七个段位信号A"为独立扩展下载板上CPLD器件的第86、87、88、89、90、92、

93脚,应接数码管段位引线接线组KPL_AH,从左到右依次对应日勺A、B、C、D、E、F、G

引线插孔。

数码管段位译码控制信号SSO、SSI、SS2为犯立扩展下载板上CPLD器件的)第68、

69、70脚,为数码管日勺位选扫描信号,分别接信号接线组DS「8A(T)的SSO、SSI、SS2

引线插孔(即在电源引线插孔组GND孔处)。复位信号-RESET为独立扩展下载板上CPLD

器件的第71脚,应接“多功能复用按键F1-F12”信号接线组“F1」2(D”附件下12

时任意一种插孔。

按下S1时,系统恢夏正常时间显示。当按下设置定期键S2时,系统可进行闹钟定

期时间的小时设置,此时S1作为报警声选择键,可通过S1选择报警声;再按卜S2时,

可进行定期时间的分钟设置,此时也可通过S1选择报警声;第三次按下S2时,系统恢

复正常时间显示,此时S1恢复为时间调整按键。设置时间时都通过加时按键S3和减时

按键S4进行控制。

定期闹钟系统的键盘电路

4系统的仿真与调试

4.1proteus软件仿真

使用WAVE软件编辑程序,在仿真设置中选择E6000/T仿真器,选择POD-51仿真头。

为以便系统在proteus中进行仿真,选择了7SEG-MPX6-CC-BLUE数字显示屏,并变化了

某些I/O连接,如图4.1-1所示,然后选择80C51CPU进行汇编程序编辑。通过仿真得

知,通过SI、S2、S3和S4四个按键,可以对时间进行修改和闹钟的设置,定期时间到

能发出报警声,系统非常完善地实现了所有规定的功能。

8

5

8

POQADO8

POJ'ADI3

XI^2'AW8

CRYSTALXTAL2PO.a*AD38

2“a5

K»S'AD6

POGAM

P07'AD7-E

P2AAS

P2.1.A9

P22AW

P^3'A11U3

ALEP24A128

工EAP25A135

P?GA148

P27,A158

3

P3ED

P31.TXD806

P3.21NT05

P331MH.2-

±•34E

?PSSO1

P3.WR

P37而

74HC573

SPEAKER

图4.1-1系统日勺proteus仿真图

4.2系统日勺调试

将所编程序在KEIL软件里进行编译,编译对的后生成HEX文献。在AT89C51芯片

中加载此文献后,对完丰的实物作品进行调试。系统运行后,能精确H勺显示时间,并能

通过SI、S2、S3和S4四个按键对时间进行修改和闹钟定期时间的设置,定期时间到能

发出报警声。

5结束语

设计是培养学生综合运用所学知识,发现、提出、分析和处理实际问题,锻炼实践

能力的重要环节,是对学生实际工作能力的详细训练和考察过程。伴随科学技术发展日勺

日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无

处不在,作为二十一世纪的大学生来说掌握单片机的开发技术是十分重要丛J,

通过本次单片机原理及应用设计使我充足认识到了设计的重要性和必要性,本次设

计使我对已学过口勺基础知识有了更深入的理解,学会了独立思索、独立工作以及对应用

所学基本理论分析和处理实际问题的能力有了很大的提高。此外,本次设计使我H勺实际

操作技能得到了训练,同步也深入培养了我严谨的科学作风。

回忆起本次单片机课程设计,从选题到定稿,从理论到实践,可以说得是有苦有甜,

不过从中却学到诸多诸多的H勺东西,不仅巩固了此前所学过的知识,并且对单片机原理

课外知识也得到了拓展,做的过程中,开始确实碰到了不少困难的问题,例如说芯片管

脚不熟悉怎么放置等,同步在这过程中也发现了自己H勺许多局限性之处,对比前所学过

的知识理解得不够深刻,掌握得不够牢固。

通过单片机设计之后,我不仅加深了对单片机理论的理解,将理论很好地应用到实

际当中去,并且我们还学会了怎样去培养创新精神和严谨的科学作风,从而不停地战胜

自己,超越自更重要的是,我在这一设计过程中,学会了坚持不懈,绝不放弃。

在本次设计中我碰到了无数H勺困难和障碍,都在同学和老师H勺协助下度过了。尤其

要强烈感谢我的毕业设计指导老师XX老师,他对我进行了无私日勺指导和协助不厌其烦

日勺协助进行毕业设计修改和改善。XX老师严谨的治学态度、渊博日勺学术知识、诲人不倦

H勺敬业精神以及宽容日勺待人风范使我获益颇多°在此向协助和指导我日勺XX老师表达最

衷心日勺感谢!

附录1源程序代码

汇编语言程序:

;************弓I脚及变量定义***************

S1BITP3.2;按键1

S2BITP3.3;按键2

S3BITP3.4;按键3

S4BITP3.5;按键4

SPEAKERBITP2.0;蜂鸣器

DULABITP2.6;段选锁存器锁存端

WELABITP2.7;位选锁存器锁存端

HOURIEQU20H;小时

MINIEQU2111;分钟

SEC1EQU22H;秒钟

HOUR2EQU23H;小时定期变量

MIN2EQU2411;分钟定期变量

AlEQU2511;显示变量

BlEQU2611

ClEQU2711

DIEQU28H

ElEQU29H

FlEQU30H

A2EQU31H

B2EQU32H

C2EQU33H

D2EQU34H

NUM1EQU35H;按键计数变量1

NUM2EQU36H;按键计数变量2

COUNTEQU37H;计时变量

ORGOOOOH

LJMPMAIN

ORGOOOBH

LJMPTIME

;************MAINPROGRAM***************

ORG1OOOH

MAIN:MOVSP,#50H

START:MOVHOURI,#OOH;初始化时间变量

MOVMIN1,#OCH

MOVSEC1,#OOH

MOVHOUR2,#01H;初始化定期变量

MOVMIN2,#01H

MOVCOUNT,#OOH;初始化计时变量

MOVNUM1,#OOH;初始化按键计数变量

MOVNUM2,#0011

MOVTMOD,#01H;16位计数错

MOVTHO,#0D8H;赋初值

MOVTLO,#OEFH

SETBETO;中断容许

SETBEA

SETBTRO;启动TO

LOOP:MOVA,NUM2

JNZL00P1;A不为0时转移

LCALLDISPLAY1;显示目前时间

LCALLKEYTIME;调用时间调整子程序

LCALLSETTIME;调用定期设置子程序

LJMPLOOP

LOOP1:LCALLDISPLAY2;显不定期时间

LCALLKEYTIME;调用时间调整子程序

LCALLSETTIME;调用定期设置子程序

LJMPLOOP

;************SETTIMEPROGRAM***************

SETTIME:;定期设置子程序

LL1:JBS2,LL3;P3.3=1时转移

LCALLDELAYS;延时5Ms

MST0P1:JBS2,LL3;P3.3=1时转移

MOVC,S2

JNCMSTOP1;P3.3=0时转移

INCNUM2;按键计数变量加1

MOVA,NUM2

CJNEA,#1,LL2;判断按键计数与否为1

CLRTRO;定期器中断关闭

LL2:CJNEA,#3,LL;判断按键计数与否为3

MOVNUM2,#0;按键计数变量清0

SETBTRO;定期器中断打开

LL:LCALLDISPLAY2;显示定期时间

LL3:MOVA,NUM2

JZLL5■为0时转移

JBS3,KK2;P3.4=1时转移

LCALLDELAY5;延时5Ms

KK1:JBS3,KK2;P3.4=1时转移

MOVC,S3

JNCKK1;P3.4=0时转移

MOVA,NUM2

CJNEA,#1,MM1;判断按键计数与否为1

INCH0UR2;小时定期变量加1

MOVA,HOUR2

CJNEA,#24,MM1;判断小时定期变量与否为24

MOVH0UR2,#0;小时定期变量为24则复位0

LCALI,DTSPLAY2;显示定期时间

MM1:LCALLDISPLAY2;显示定期时间

MOVA,NUM2

CJNEA,#2,KK2;判断按键计数与否为2

INCMIN2;分钟定期变量加1

MOVA,MIN2

CJNEA,#60,KK2;分钟定期变量与否为60

MOVMIN2,#0;分钟定期变量为60则复位0

LCALLDISPLAY2;显示定期时间

KK2:LCALLDISPLAY2;显示定期时间

JBS4,LL5;P3.5二1时转移

LCALLDELAYS;延时5Ms

KK3:JBS4,LL5;P3.5二1时转移

MOVC,S4

JNCKK3;P3.5二0时转移

MOVA,NUM2

CJNEA,#1,MM2;判断按键计数与否为1

DECHOUR2:小时定期变量减1

MOVA,H0UR2

CJNEA,#0,MM2

MOVH0UR2,#24

LCALLDISPLAY2;显示定期时间

MM2:LCALLDISPLAY2;显示定期时间

MOVA,NUM2

CJNEA,#2,LL5;判断按键计数与否为2

DECMIN2

MOVA,MIN2;分钟定期变量减1

CJNEA,#0,LL5

MOVMIN2,#60

LL5:LCALLDISPLAY2;显示定期时间

RET

;************KEYTIMEPROGRAM*1*

KEYTIME:;时间调整子程序

LI:JBS2,L3;P3.2二1时转移

LCALLDELAY5;延时5Ms

MST0P2:JBS2,L3;P3.2二1时转移

MOVC,S2

JNCMST0P2;P3.2二0时转移

INCNUM1

MOVA,NUM1

CJNEA,#1,L2:判断按键计数与否为1

CLRTRO;定期器中断关闭

L2:CJNEA,#4,L3;判断按键计数与否为4

MOVNUM1,#0

SETBTRO;定期滞中断打开

L3:MOVA,NUM1

JN7FF:A不为。时转移

LJMPL5

FF:JBS3,K2;P3.4二1时转移

LCALLDELAY5;延时5Ms

KI:JBS3,K2;P3.4=1时转移

MOVC,S3

JNCKI;P3.4=0时转移

MOVA,NUM1

CJNEA,#1,M1;判断按键计数与否为1

INCHOURI;小时设置加1

MOVA,HOURI

CJNEA,#24,Ml

MOVHOURI,#C

LCALLDTSPLAY1;显示调整时间

Ml:LCALLDISPLAY1;显示调整时间

MOVA,NUM1

CJNEA,#2,M2;判断按键计数与否为2

TNCMINI;分钟设置加1

MOVA,MINI

CJNEA,#60,M2

MOVMIN1,#O

LCALLDISPLAYl;显示调整时间

M2:LCALLDISPLAYl;显示调整时间

MOVA,NIJM1

CJNEA,#3,K2;判断按键计数与否为3

INCSEC1

MOVA,SEC1

CJNEA,#60,K2

MOVSEC1,#O

LCALLDISPLAYl;显示调整时间

K2:LCALLDISPLAYl;显示调整时间

JBS4,L5;P3.5二1时转移

LCALLDELAY5;延时5Ms

K3:JBS4,L5;P3.5=1时转移

MOVC,S4

JNCK3;P3.5二0时转移

MOVA,NUM1

CJNEA,#1,M3;判断按键计数与否为1

DECHOURI

MOVA,HOURI

CJNEA,#0,M3

MOVHOURI,#24

LCALLDISPLAYl;显示调整时间

M3:LCALLDISPLAYl;显示调整时间

MOVA,NUM1

CJNEA,#2,M4;判断按键计数与否为2

DECMINI

MOVA,MINI

CJNEA,#0,M4

MOVMINI,#60

LCALLDISPLAYl;显示调整时间

M4:LCALLDISPLAYl;显示调整时间

MOVA,NUM1

CJNEA,#3,L5;判断按键计数与否为3

INCSEC1

MOVA,SEC1

CJNEA,#0,L5

MOVSEC1,#60

L5:LCALLDISPLAYl;显示调整时间

RET

;************TIMEPROPROGRAM***************

TIMEPRO:MOVR7,#50;蜂鸣器报警子程序

CLRSPEAKER;启动蜂鸣器报警

LCALLDELAYN;延时50Ms

SETBSPEAKER

LCALLDELAYN

CLRSPEAKER

LCALLDELAYN

SETBSPEAKER

;************DISPLAY1PROGRAM***************

DISPLAY1:;显示子程序1

PUSHACC;保护现场

MOVA,HOURI;将时间的十位和个位分别赋给显示变量

MOVB,#10

DIVAB

MOVAl,A

MOVB1,B

MOVA,MINI

MOVB,#10

DIVAB

MOVCl,A

MOVD1,B

MOVA,SEC1

MOVB,#10

DIVAB

MOVEl,A

MOVF1,B

MOVDPTR,STABLE;指向7段编码表首地址

CLRDULA;关闭段选锁存器锁存端

MOVA,Al

MOVCA,©A+DPTR

MOVPO,A;显示小时十位

SETBDULA;打开段选锁存器锁存端

CLRDULA

CLRWELA;关闭位选锁存器锁存端

MOVPO,#OFEH;选择第1位数码管

SETBWELA;打开位选锁存器锁存端

CLRWELA

LCALLDELAY5

CLRDULA;关闭段选锁存器锁存端

MOVA,Bl

MOVCA,©A+DPTR

MOVPO,A;显示小时个位

SETBDULA;打开段选锁存器锁存端

CLRDULA

CLRWELA;关闭位选锁存器锁存端

MOVPO,#OFDH;选择第2位数码管

SETBWELA;打开位选锁存器锁存端

CLRWELA

LCALLDELAY5

CLRDULA;关闭段选锁存器锁存端

MOVA,Cl

MOVCA,©A+DPTR

MOVPO,A;显示分钟十位

SETBDULA;打开段选锁存器锁存端

CLRDULA

CLRWELA;关闭位选锁存器锁存端

MOVPO,#OFBH;选择第3位数码管

SETBWELA;打开位选锁存器锁存端

CLRWELA

LCALLDELAYS

CLRDULA;关闭段选锁存器锁存端

MOVA,DI

MOVCA,©A+DPTR

MOVPO,A;显示分钟个位

SETBDULA;打开段选锁存器锁存端

CLRDULA

CLRWELA;关闭位选锁存器锁存端

MOVEO,#O1'71I;选择第4位数码管

SETBWELA;打开位选锁存器锁存端

CLRWELA

LCALLDELAY5

CLRDULA;关闭段选锁存器锁存端

MOVA,El

MOVCA,©A+DPTR

MOVPO,A;显示秒钟十位

SETBDULA;打开段选锁存器锁存端

CLRDULA

CLRWELA;关闭位选锁存器锁存端

MOVPO,#OEFH;选择第5位数码管

SETBWELA;打开位选锁存器锁存端

CLRWELA

LCALLDELAY5

CLRDULA;关闭段选锁存器锁存端

MOVA,Fl

MOVCA,©A+DPTR

MOVPO,A;显示秒钟个位

SETBDULA;打开段选锁存器锁存端

CLRDULA

CLRWELA;关闭位选锁存器锁存端

MOVPO,#ODFH;选择第6位数码管

SETBWELA;打开位选锁存器锁存端

CLRWELA

I.CALI.DELAY5

POPACC;恢复现场

RET

;************DISPLAY2PROGRAM***************

DISPLAY2:;显示子程序2

PUSHACC;保护现场

MOVA,HOUR2;将时间口勺十位和个位分别赋给显示变量

MOVB,#10

DIVAB

MOVA2,A

MOVB2,B

MOVA,MIN2

MOVB,#10

DIVAB

MOVC2,A

MOVD2,B

MOVDPTR,#TABLE;指向7段编码表首地址

CLRDULA;关闭段选锁存器锁存端

MOVA,A2

MOVCA,©A+DPTR

MOVPO.A;显示定期时间的小时十位

SETBDULA;打开段选锁存器锁存端

CLRDULA

CLRWELA;关闭位选锁存器锁存端

MOVPO,#OFEH;选择第1位数码管

SETBWELA;打开位选锁存器锁存端

CLRWELA

LCALLDELAY5

CLRDULA;关闭段选锁存器锁存端

MOVA,B2

MOVCA,©A+DPTR

MOVPO,A;显示定期时间的I小时个位

SETBDULA:打开段诜锁存器锁存端

CLRDULA

CLRWELA;关闭位选锁存器锁存端

MOVPO,#OFDH;选择第2位数码管

SETBWELA;打开位选锁存器锁存端

CLRWELA

LCALLDELAY5

CLRDULA;关闭段选锁存器锁存端

MOVA,C2

MOVCA,©A+DPTR

MOVP0,A;显示定期时间的分钟十位

SETBDULA;打开段选锁存器锁存端

CLRDULA

CLRWELA;关闭位选锁存器锁存端

MOVPO,#OFBH;选择第3位数码管

SETBWELA;打开位选锁存器锁存端

CLRWELA

LCALLDELAY5

CLRDULA;关闭段选锁存器锁存端

MOVA,D2

MOVCA,©A+DPTR

MOVPO,A;显示定期时间时分钟个位

SETBDULA;打开段选锁存器锁存端

CLRDULA

CLRWELA;关闭位选锁存器锁存端

MOVPO,#OF7H;选择第4位数码管

SETBW

温馨提示

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

评论

0/150

提交评论