定稿定时控制器._第1页
定稿定时控制器._第2页
定稿定时控制器._第3页
定稿定时控制器._第4页
定稿定时控制器._第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、第一章定时控制器的系统设计 本设计运用单片机的控制功能,以 AT89S52单片机为核心,设计一个定时控制器, 来实现一定功能。女口:随时修改定时时间,定时时间到时,蜂鸣器发出声音直流电机停 止转动。 1. 1设计要求 1 )以AT89系列单片机为核心器件,组成一个定时器系统。 2 )系统显示器由8位数字数码管组成。按上下各4位排列,上面4位LED数码管 显示当前时间。下面4位LED数码管显示定时时间。 3)够随时对当前时间进行修正调整。 4) 能够随时输入、修改定时时间,定时时间的范围:00: 01 59: 59. 5)定时时间按输入后边便进入定时状态,通过继电器触电接通外部电器电源。 6)定

2、时时间到,贝U切断外部电器电源,并发出声音报警信号。 7)报警信号的声音为断续形式,最长不超过 1mi n。 1. 2设计思路 根据设计要求,初步确定设计方案如下: 1)选择DS1307芯片作为系统的时钟/日历,当前时间从DS1907芯片中读出。其中 SDA接 P1.0 弓I脚。 2) 系统显示采用8为LED数码管。LED数码管的段码输入有P0产生、位码输入由 P2产生。 3) 时间调整与定时时间的输入通过接入键盘电路实现。设计4个按键,分别定义为: SET键(时间调整设置键):其功能是当该键按下时,进入时间调整功能。 ALM键(定时时间设置键):其功能是当该键按下时,进入定时时间输入功能。

3、+1键:其功能是当该键按下时,被调整位加一。 RET键:其功能是当该键按下时,指向下一个要调整的位。 4)按键的接入方式: SET键:通过P3 口 INT0引脚接入,中断工作方式。 ALM:通过P3 口 INT1引脚接入,中断工作方式。 +1键:通过P3 口 P3.0引脚接入,查询工作方式。 RET键:通过P3 口 P3.1引脚接入,查询工作方式。 5)报警声响用蜂鸣器产生,蜂鸣器接入 P1 口的P1.6脚。 6)外部电器电源的通断用一个继电器来完成这个功能, 继电器触点的断开与接通, 通过P1 口的P1.7脚控制。 7)单片机的选择 8031单片机,价格低廉,但片内无 ROM使用时需在片外接

4、EPROM AT89C1051单片机,功耗低,性能高,片内含有Flash存储器,但相对来说, 价格较高。 AT89S51单片机,功耗低,时钟频率高,价格低廉,在此设计中选用AT89S51 单片机。 第二章定时控制器系统硬件设计 2.1时钟与复位电路的设计 1. 时钟电路的设计 在单片机的的XI、X2两个引脚间接一只晶振和两个电容就构成了单片机的时钟电 路。电路中,两个电容器对振荡频率有微调作用,通常的取值范围在30 10PF;石英 晶体选择12MHZ 2. 复位电路的设计 单片机的RST引脚为主机提供了一个外部复位信号输入端。复位信号有高电平有 效,有效的持续时间应为2个机器周期以上。复位后单

5、片机内各部件恢复到初始状态, 单片机从ROM勺0000H开始执行程序。 单片机的复位方式有上电复位和手动复位两种,本设计选用上电和手动的组合电 路。阻容器件的选择:R仁200Q、R2=1、C3=22U。RET按键可以选择复位按键也可 以选择轻触开关 +5 R1 spst 1 C3 2 2uF 1 0K RK C1 30pf 二 1 2MHZ C2 3 0pF I 1 40 2 39 3 38 4 37 5 36 6 35 7 34 8 33 9 32 1 0 31 1 1 30 12 29 1 3 28 1 4 27 1 5 26 1 6 25 1 7 24 1 8 23 4 Q 20 21

6、RXD/P3T TXD/P3. 1 P3. 2 P3. 3 P3. 4 P3. 5 P3. 6 P3. 7 TAL1 XTAL2 GND AT89 S5 2 p1. 0 pTT p1. 2 pTT p1. 4 p1. 5 p1. 6 pTT RST PU.0 P0. 1 P0.P P0. 3 P0. 4 P0. 5 P0飞 P0. 7 Vp p ALE psEn P2. 7 P2. 6 P2. 5 P2. 4 P2. 3 P2. 2 P2. 1 P2. 0 Vcc 时钟与复位电路 2. 2 LED显示电路的设计 显示器由LED显示器、段驱动电路和位驱动电路组成。由于单片机的并行口不能直 接驱动

7、LED显示器,必须采用专用的驱动电路芯片,使之产生足够大的电流,显示器才 能正常工作,否则显示器容易损坏。 LED显示器的显示方式为静态显示和动态显示两种,因此在选择驱动器的时候先确 定工作方式。若选择动态显示,由于一位数据的显示是由段选和位选信号共同完成,因 此要同时考虑段和位的驱动能力,而且段的驱动能力决定位的驱动能力。 1. LED显示器的选择 1 2 |3 4 5 6 7 8 a b c d e f g p_ 1 1 2一3 j H1 2109 LED数码管 在本设计中,选择2个4位为一体的时钟型LED显示器,简称“ 4-LED显示器”, 其引脚如图所示,是一个共阴极 4位时钟型LED

8、显示器,其中a、b、c、d、e、f、g为 4位LED各段的公共引出端。D1、D2、D3 D4分别是每一位共阴极显示器的输出端,dp 为小数点的输出端。 2. LED段驱动芯片的选择 LED的段驱动电路由很多种,在定时控制中,可以选择具有锁存/译码功能的BCD-7 作为段驱动电路。这类芯片型号只有 74LS47 74LS48 74LS247 74LS248等,该芯片 具有锁存/译码功能。即在输入端输入要显示的 BCD码,在输出端便得到一定驱动能力 的7段显示字型码。 在定时控制设计中,选74LS48作为LED段驱动芯片。其引脚功能如上所示。图中, A B、C、D位BCD码的输入端,小写的a、b、

9、c、d、e、f、g为字型码输出端,LT为 灯测试输入端,RBI为消隐输入,RBO为消隐输出。在使用时,该芯片的输入端引脚 A、 B、C、D单片机的P0 口连接,输出端的7个引脚与LED显示器的7的段码引脚相连。 74LS48的作用是接收来自单片机BCD码型的输入信号,经过锁存、译码和放大后输出7 段字型码到LED显示器,完成BCD码到7段字型码的锁存、译码驱动的功能。 3. LED位驱动芯片的选择 常用于LED位驱动芯片由ULN2003 ULN2803本例中选用ULN2803在作为为驱动 电路,图中的IN1 IN8引脚是输入端,OUTOUT8引脚是输出端。使用时,将该芯片 的输入端引脚与P2口

10、的P2.0 P2.7引脚相连,输出端引脚OUT OUT4W当前时间LED 显示器(DISP2)的4个位码D1-D4引脚相连,引脚OUT OUT8与定时时间LED显示器 (DISP1)的4个位码D1 D4引脚相连。ULN2803的作用是接收来自单片机位输入信号, 经过反向放大后输出,送到LED显示器的位码引脚,完成对位码引脚的反向和驱动的功 IN1 IN2 IN3 IN4 IN5 IN6 IN7 IN8 GND 0UT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 Vcc ULN2803 位驱动芯片ULN2803 2. 3按键和报警电路的设计 一. 定时控制应用系统工作

11、时应具备两项基本功能:一是随时输4入定时时间;二是 随时对当前时间进行修改。要实现这两种功能,可以接入按键输入电路。 1. 键盘结构的选择 在单片机组成的测控系统及智能化仪器中, 用的最多的时非编码键盘。键盘结构分 为独立式和行列式两类,而在本例中只需要4个按键,因此选择独立式键盘。如图所示, 电路由按键和4个电阻组成,按键分别命名为 SET ALM +1和 RET键,按键可以选择轻触开关,电阻选择采用5脚排电阻(4X1KQ). 2. 键盘与单片机接口的设计 在本设计中键盘直接与单片机的 P3 口相连。用P3.3、P3.2引脚通过按键SET ALM 接入两个外部中断的请求信号INT1、INTO

12、; P3.5、P3.4通过两个按键+1、RET接入输 入信号。4个按键功能设计如下: SET键功能:设置当前时间,即当当前时间由误差时,需要随时对它进行调整,使 用该键需+1键、RET键配合完成。 ALM功能:设置定时时间,即当需要进行定时服务时,可以通过该键的功能输入 定时时间,使用该键时需+1键、RET键共同完成。 +1键功能:分别对时间的值进行调整,即该键按每按下一次。对应的时间调整位 就加一。 RET1功能:确认,即对+1键调整位进行确认,按下该键时,说明被调整位的值已 确定,转去调整下一位。 二. 设计要求定时时间到时要有声音提醒信号产生,可用一只蜂鸣器来实现此功 能。电路设计如图所

13、示,蜂鸣器(HA)作为三极管VT1的集电极负载,当VT1导通时,蜂 鸣器发出声音,VT1截止蜂鸣器不发声,R4位限流电阻。 蜂鸣器电路与单片机的连接:VT1的基极接到P1 口的P1.6引脚作为输出口使用。 当P1.6=0时,VT1导通,蜂鸣器产生蜂鸣音。当 P1.6=1时,VT1截止,蜂鸣器不发声。 一 概述 PCF8563是PHILIPS公司推出的一款工业级内含IIC总线接口功能的具有极低 功耗的多功能时钟/日历芯。PCF8563的多种报警功能、定时器功能、时钟输出功能以 及中断输出功能能完成各种复杂的定时服务,甚至可为单片机提供看门狗功能、内部时 钟电路、内部振荡电路、内部低电压检测电路(

14、1.0V)以及两线制I2C总线通讯方式, 不但使外围电路及其简洁,而且也增加了芯片的可靠性。同时每次读写数据后,内嵌的 字地址寄存器会自动产生能量。当然作为时钟芯片,PCF8563亦解决了 2000年问题。 因,PCF8563是一款性价比极高的时钟芯片,它已被广泛用于电表、水表、气表、电话、 传真机、便携式仪器以及电池供电的仪器仪表等产品领域。 特性: 1 宽电压范围1.0 5.5V 复位电压标准值 Vlow=0.9V 。 2 超低功耗 典型值为0.25 A VDD=3.0V,Tamb=25 。 3 可编程时钟输出频率为 32.768KHZ 1024Hz 32Hz 1Hz 。 4四种报警功能和

15、定时器功能。 5内含复位电路 振荡器电容和掉电检测电路。 6开漏中断输出 。 7 400kHz I2C 总线(VDD=1.8 5.5V) 其从地址 读 0A3H;写 0A2H 。 二PCF8563的基本原理 PCF8563有16个 位寄存器:一个可自动增量的地址寄存器,一个内置 32.768KHz的振荡器(带有一个内部集成的电容),一个分频器(用于给实时时钟RTC 提供源时钟),一个可编程时钟输出,一个定时器,一个报警器,一个掉电检测器和 一个400KHz I2C总线接口 。 所有 16 个寄存器设计成可寻址的 , 8 位并行寄存器 但不是所有位都有用。 前 两个寄存器(内存地址00H01H)

16、用于控制寄存器和状态寄存器,内存地址02H 08H用 于时钟计数器 (秒年计数器)地址 09H0CH 用于报警寄存器( 定义报警条件), 地 址0DH控制CLKOUT管脚的输出频率, 地址0EH和0FH分别用于定时器控制寄存器 和定时器寄存器。 秒、分钟、小时、日 、月、年、分钟报警、小时报警、日报警寄存 器,编码格式为BCD,星期和星期报警寄存器不以 BCD格式编码。 当一个 RTC 寄存器被读时,所有计数器的内容被锁存,因此, 在传送条件下 , 可以禁止对时钟 / 日历芯片的错读。 1. 报警功能模式 一个或多个报警寄存器 MSB AE=Alarm Enable 报警使能位 清0时, 相应

17、的报警 条件有效 ,这样,一个报警将在每分钟至每星期范围内产生一次。 设置报警标志位 AF (控制 / 状态寄存器的 2位3) 用于产生中断 , AF 只可以用软件清除。 2. 定时器 位的倒计数器(地址0FH)由定时器控制寄存器(地址 0EH)控制,定时器控制 寄存器用于设定定时器的频率( 4096, 64, 1 ,或 1/60Hz), 以及设定定时器有效 或无效. 定时器从软件设置的 8 位二进制数倒计数, 每次倒计数结束, 定时器设置标志 位TF,定时器标志位 TF只可以用软件清除,TF用于产生一个中断(/INT), 每个倒计数周期产生一个脉冲作为中断信号。 TI/TP 控制中断产生的条

18、件,当读定 时器时,返回当前倒计数的数值。 3. CLKOUT 输出 管脚CLKOUT可以输出可编程的方波。CLKOUT频率寄存器 地址(0DH )决定 方波的频率,CLKOU可以输出32.768KHz(缺省值),1024,32,1Hz的方波CLKOUT 为开漏输管脚,上电时输出有效 无效时输出为高阻抗。 4. 复位 PCF8563包含一个片内复位电路,当振荡器停止工作时,复位电路开始工作。在 复位状态下 I2C 总线初始化, 寄存器 TF、VL、TD1、TD0、TESTC、AE 被置逻辑 ,其 它的寄存器和地址指针被清 。 5. 掉电检测器和时钟监控 PCF8563内嵌掉电检测器,当 VDD

19、低于Vlow 时,位VL Voltage Low,秒寄存器 的位7被置,用于指明可能产生不准确的时钟 日历信息,VL标志位只可以用软件清 除,当 VDD 慢速降低达到 Vlow 时,标志位 VL 被设置, 这时可能会产生中断。 6. PCF8563 内部寄存器 PCF8563共有16个寄存器,其中00H 01H为控制方式寄存器 、09H 0CH为 报警功能寄存器, 0DH 为时钟输出寄存器 0EH 和 0FH 为定时器功能寄存器, 02H 08H 为秒 年时间寄存器。 vcc 三PCF8563与单片机的接口软件及功能应用举例 按I2C总线协议规约,PCF8563有唯一的器件地址0A2H如图所示

20、为PCF8563 应用电路原理图,下面首先给出基本的接口软件然后举例说明各种功能应用 注:电容C3的取值范围为1 20pF。 1.时钟的读取和写入 (1) 读时钟:下面的程序将秒一年共七个字节的时间信息读出并放入MRD为首 址的接收缓冲区中。注意,时间读出后需进行整理(屏蔽无效位)方能得出正确的信息。 RCV8563: MOV SLA,#0A2H; 取器件地址 MOV SUBA,#02H ; 取读时间的首字节地址从秒开始读 MOV NUMBYTE,#07H ; 读七个时间信息 LCALL IRDNBYTE; 读取时间并放入接收缓冲区中 MOV A,MRD; 取秒字节 ANL A,#7FH; 屏

21、蔽无效位 MOV MRD,A MOV A, MRD+1; 取分钟字节 ANL A,#7FH; 屏蔽无效位 MOV MRD+1,A MOV A, MRD+2 .; 取小时字节 ANL A,#3FH; 屏蔽无效位 MOV MRD+2,A MOV A, MRD+3; 取天字节 ANL A,#3FH; 屏蔽无效位 MOV MRD+3,A MOV A, MRD+4; 取星期字节 ANL A,#07H; 屏蔽无效位 MOV MRD+4,A MOV A,MRD+5; 取月字节 ANL A,#1FH; 屏蔽无效位 MOV MRD+5,A RET (2) 写时钟:下面的程序将 2000 年 6 月 20 日星期

22、 3 下午 3 点 (15 点)59 分 30 秒的时间写入 PCF8563 。 SEND8563: ACALL LOAD8563 ; 将时间装入发送缓冲区 (MTD) 中 MOV SLA,#0A2H ; 取器件地址 MOV SUBA,#00H ; 取写入寄存器的首字节地址 从 00H 开始写 MOV NUMBYTE,#09H ;写七个时间信息和 2 个控制命令 LCALL IWRNBYTE; 写时间 RET LOAD8563: MOV MTD,#00H ; 启动时钟 MOV MTD+1,#1FH ; 设置报警及定时器中断 , 定时器中断为脉冲形式 MOV MTD+2,#30H ; 以下分别将

23、秒至年的时间写入发送缓冲区中 MOV MTD+3,#59H MOV MTD+4,#15H MOV MTD+5,#20H MOV MTD+6,#02H MOV MTD+7,#06H MOV MTD+8,#00H RET 2. 主要功能的应用 PCF8563 是一多功能时钟芯片, 必须谨慎的使用这些功能 (其中最主要的就是正确的设 置功能参数)否则会产生意外的错误。下面给出一些可能会用到的设置程序 。 (1) 报警功能的设置 PCF8563 共有四种报警方式,分别为小时报警(每小时的同一分钟时刻报警) 、日报警 (每天的同一小时时刻报警) 月报警(每月的同一天时刻报警) 和星期报警 (每星期的 同

24、一天时刻报警)。发生报警时 AF 位变为 1 。设置报警有效的方法是将相应报警寄存 器的最高位 AE 置 0 。若同时置 AIE=1 则在 AF 置 1 的同时将在 /INT 引脚产生一个 中断(低电平有效)清除中断信号的方法是软件清AF。由此看出,AIE相当于单片机 中的中断允许控制位,而 AF 相当于中断申请标志位。 (2) 定时器功能的设置 PCF8563的定时器为倒计数定时器,当TE=1时有效,,倒计数值为OFH中的的二 进制数,当倒计数值计为0时TF位置1。若同时置TIE=1,则在TF置1的同时将 在/INT引脚产生一个中断 低电平有效。与报警中断不同的是,定时器中断信号有两种 方式

25、,由TI/TP位控制。设置TI/TP=O,中断信号和报警中断信号相同均为低电平方 式,置TF=0可清除中断信号 设置TI/TP=1则中断信号为脉冲方式 其脉冲(低电平) 宽度约为15ms,此时可不考虑TF位的影响。由此看出,TIE相当于单片机中的定时 中断允许控制位,而TF相当于定时中断申请标志位 。 注:定时器功能可以和报警功能同时有效。 2.5点驱动电路的设计 由于74LS48是BCD码7段译码器,对小数点没有驱动作用,因此需给 LED显示器 中的“:”符号设计一个驱动电路, DISP2中dp( “ : ”)的驱动电路由VT4 R11、R10组成,R11、R10分别为发射级、 基极的限流电

26、阻。VT4的基极与LED中的D2引脚连接,dp段发光二极管是VT4的集电 极负载。 DISP1中dp( “: ”)的驱动电路由VT3 R5 R6组成,R5 R6分别为发射级、基极 的限流电阻。VT3的基极与LED中的D2引脚连接,dp段发光二极管是VT3的集电极负 载。 该电路的工作原理:当VT3(VT4)的基极为低电平时,VT3(VT4)导通,dp段被点亮。 即“:”段与数码管的是第二位一起被点亮;当 VT3(VT4)的基极为高电平时,VT3(VT4) 截止,dp段熄灭。 器件:R5=R10=10 R6=R1 仁20Q VT3、VT4均为 PNPf 型三极管 9012 2.6硬件电路设计框图

27、 根据设计要求与设计思路,硬件电路设计框图如图所示。硬件电路结构由8个部 分:按键输入电路、时钟与复位电路、蜂鸣器电路、LED显示及驱动电路,继电器电路 和时钟/日历电路组成。 硬件电路设计框图 2.7外部控制电路设计 外部电路控制采用了一个继电器 K,继电器的触点控制外部电源的通与断,触点闭 合接通电源,触点断开切断电源。三极管 VT2电阻R4直流电机。组成继电器的控制 电路。当VT2的基极为低电平时,VT2导通,继电器线圈得电,控制触点闭合;当 VT2 的基极为高电平时,继电器线圈失电,控制触点断开。从而是实现了外部直流电机的控 制目的。 第三章定时控制器系统的软件设计 3.1系统软件设计

28、方案 1. 根据设计要求,首先确定软件设计方案,即确定该软件应该完成哪些功能;其次 是为了完成这些功能需要划分多个功能模块,以及每一个程序模块的具体认为是什么。 模块的划分有很大的灵活性,但不能随意划分。划分模块必须遵循模块划分原则。 2. 采用模块化程序设计具有一下优点: 1)每个模块的程序结构简单,任务明确、易于编写、调试和修改。 2)序可读性好,对程序的修改可局部进行,其他部分保持不变,便 于功能扩充和版本升级 3)于使用频繁的子程序可建立子程序库,便于多个模块调用。 4) 于分工合作,可多个程序员同时进行程序的编写和调试工作,加快 软件研制速度。 3. 根据模块的划分原则,将该程序划分

29、 5个模块,如下所示: 主程序 数码管动态扫描模块 输 入 当 刖 疋 时 时 间 时 调 间 整 模 模 块 块 数 制 转 换 模 块 4.定时控制器程序设计的内存空间分配 地址分配 作用 60H-7FH 堆栈区 40H-47H LED段码显示缓冲区,存储显示字符的 BCD码 48H-4FH LED位码显示缓冲区,存储LED的位码信号 32H-33H 当前时间的二进制数存储单元,32H= 33H=小时 34H-35H 定时时间的二进制数存储单元,34H= 35H=秒 29H 输入键值存储单元 30H 当前调整位标志,30H=1 31H LED显示器位数存储单元 38H-3EH 读时钟数据缓

30、冲区 3.2定时控制应用系统的程序设计 321程序的设计思路 定时控制应用系统程序包括主程序、LED动态扫描、数制转换、定时时间 输入以及调整当前时间一些子程序。 1)主程序:主程序一般包括起始地址、中断服务起始地址及有关寄存器初始化和 一些子程序的调用。 2)LED动态扫描:程序设计采用TO中断工作方式完成LED的动态扫描。其功能是 从缓冲区分别取出LED显示器显示数的位码和段码分别送到 P2 口和P1 口,依次显示每 位,每位的显示时间为1ms在调整当前时间或输入定时时间时,当前调整位应具有闪 烁功能,用来提示被调整位 3) 调整当前时间和输入定时时间两个子程序组成了键盘接收子程序。 调整

31、当前时 间程序中,将时间的小时、分的个位、十位分别进行调整。小时采用 24小时制,因此 四位时间值均要进行限制。通过四个按键的相互配合来完成时间的调整。 调整的时间值 经过数制转换成二进制数把当前时间存在 32H33H单元,定时时间存在34H35H单元 3.2.2程序设计框图 22 寄存器及存储单 元清零 LED动态扫流程图 设置位码缓冲区指 主程序流程图 323程序清单 ORG 0000H IJMP MAIN ORG 000BH IJMP TIME ORG 0300H MAIN: MOV 20H,#00H MOV 21H,#00H秒初始化 MOV 22H,#00H分初始化 MOV 23H,#

32、00H定时秒初始化 MOV 24H,#00H ;定时分初始化 MOV R1,#00H ;寄存器初始化 MOV R4,#00H MOV R5,#00H MOV R7,#00H MOV IP,#02H ;IP,IE 初始化 MOV IE,#82H MOV TMOD,#01H设定定时器工作方式? MOV TL0,#0B0H MOV TH0,#3CH setb tr0 MOV SP,#40H ;重设堆栈指针 NEXT:LCALL DISP调用显示子程序? LCALL fmq0 ; 调用检测定时时间子程序 NEXT1:LCALL KEY ;调用按键检测子程序 JZ NEXT ; LCALL ANKEY调

33、用按键处理子程序 SJMP NEXT ;重新循环 NOP NOP NOP fmq0: MOV A,R5 JZ fmp LCALL fmq1 fmq: MOV A,R7 JZ ret2 LCALL fmq1 fmq1: MOV A,R5 MOV B,R1 CJNE A,B,ret2 LJMP fmq2 fmq2: MOV A,R7 MOV B,R4 CJNE A,B,ret2 LJMP fmq3 fmq3: CLR ea ; 关中断 CLR P2.6 ; 蜂鸣器发声 NEXT2: LCALL disp LJMP NEXT2 ret2:ret TIME: PUSH ACC ; 保护现场 PUSH

34、PSW MOV TL0,#0B4H ;赋定时初值 MOV TH0,#3CH INC 20H ; MOV A,20H CJNE A,#20,RETI1 MOV 20H,#00H ;一秒钟时间到 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 RETI1: POP PSW ;恢复现场 POP ACC RETI ; 中断返回 ? NOP DISP: MOV R1,21

35、H MOV R4,22H MOV R5,23H MOV R7,24H MOV A,21H ;处理秒 21H ANL A,#0FH MOV 2FH,A MOV A,21H ANL A,#0F0H SWAP A MOV 2EH,A MOV A,22H ;处理分钟 22H ANL A,#0FH MOV 2DH,A MOV A,22H ANL A,#0F0H SWAP A MOV 2CH,A MOV A,23H处理定时秒23h ANL A,#0fH MOV 2BH,A MOV A,23H ANL A,#0f0H SWAP A MOV 2AH,A MOV A,24H处理定时分24h ANL A,#0fH

36、 MOV 29H,A MOV A,24H ANL A,#0f0H SWAP A MOV 28H,A MOV R0,#2FH ;显示偏移量 MOV R3,#08H MOV A,#80H LOOP1: MOV B,A ; MOV P1,a MOV A,R0 MOV P0,A ; 送显示 MOV R2,#80H ;延时 DJNZ R2,$ DEC R0 MOV A,B Rr A DJNZ R3,LOOP1 ;循环显示 RET KEY: MOV P2,#0FFH ; MOV A,P2 CPL A ANL A,#20H JZ RETX ; 无键按下则返回 LCALL DISP ; LCALL DISP

37、MOV A,P2 CPL A ANL A,#20H JZ RETX ; 键盘去抖动。 MOV R6,A ;将键值存入 R6。 LOOP2: LCALL DISP ; MOV A,P3 CPL A ANL A,#20H JNZ LOOP2 ;等待键释放 MOV A,R6 RETX: RET NOP NOP ANKEY: CLR EA ;关中断 MOV 25H,#01H LX: JNB P3.2,L1; 调用+1 子程序 JNB P3.3,l2 ; 调用定时 +1 子程序 JNB P3.4,L3 ; 调用确认键 JNB P2.5,L4; 调用转移键 L5: LCALL DISP LCALL DIS

38、P LJMP LX L1: LCALL DISP ; MOV A,P3 CPL A ANL A,#04H JNZ L1 ; 等待键释放 JB 25H.0,L11 JB 25H.1,L12 LJMP L5 l2: LCALL DISP MOV A,P3 CPL A ANL A,#08H JNZ l2; 等待键释放 JB 25H.0,l21 JB 25H.1,l22 LJMP l5 L3: LCALL DISP ; MOV A,P3 CPL A ANL A,#10H JNZ L3 ; 等待键释放 SETB EA RET L4: LCALL DISP ; MOV A,P2 CPL A ANL A,#20H

温馨提示

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

评论

0/150

提交评论