《毕业设计基于89C52单片机的电子时钟设计.doc》由会员分享,可在线阅读,更多相关《毕业设计基于89C52单片机的电子时钟设计.doc(28页珍藏版)》请在三一办公上搜索。
1、东华理工大学长江学院毕业设计题 目 基于89C52单片机的电子时钟设计 英文题目 Electronic Clock Design Based on 89C52 学生姓名 陈志仁 学 号 09325202 专 业 电子信息工程 系 别 机械与电子工程系 指导教师 黄河 职 称 讲 师 二零一三年六月摘 要至今,微处理器的发展已有40多年的历史,起初由美国Intel公司首推的4为微处理器Intel4004,实现将单片处理器和运算器等元件集成在一片电路芯片上。此后微处理器的迅猛发展,微处理器内集成的元件也越来越多,其中包括增加了存储器、I/O接口电路、定时/计数器、串行通信口、中断控制、系统总线以及
2、系统时钟等,大大加强了微处理器的性能,并针对特定的领域制作出最大效率的微处理器。不同功能的微处理器称为微控制器,也被我们简称为单片机。本文主要介绍以单片机AT89C52为核心的电子时钟显示,数码管为显示器件,此电子时钟显示具有年月日等基本时间显示,以及秒表计时处理、闹钟定时、蜂鸣、温度的设计。单片机通过对时钟、温度等数据处理后传送至LCD显示输出,也可通过按键对时间进行调节。通过单片机外围接口的扩展实现温度采集等功能。关键词:电子时钟;AT89C52;计时;温度ABSTRACTThis project mainly introduces that the electronic clock wh
3、ich based on microcontroller AT89C52 display.LCD1602 Liquid crystal display devicess electronic clock display has the date and time display.Stopwatch timing processing, alarm clock timing and the design of buzzer, temperature.SCM through the clock, temperature and other data processing and transmits
4、 signals to the LCD display output, also by adjusting button for time.Through the expansion of single-chip peripheral interface to achieve temperature acquisition functions.Key words: electronic clock;AT89C52;timing ;temperature第一章 绪 论1.1 电子时钟设计的背景 随着微电子技术的迅猛发展,电子产品技术也得到了很大的提高,单片机技术也同样水涨船高。单片机是把一个计算
5、机系统集成到一个芯片上,它的产生是近代计算机技术发展史上一个重要的里程碑,它标志这计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。以单片机为核心的智能化产品将计算机技术、信息处理技术和电子测量与控制技术结合在一起,把智能赋予各种机械装置,对传统的产品结构和应用方式产生了本质性的变革。由于其微小的体积和低成本的投入已普遍涉及现代人类生活中所用的电子和机械产品中,其中手机、电话、计算器、家用电器、电子玩具、电脑以及鼠标等电脑配件中都集成有至少1部单片机。1.2电子时钟设计的意义从古时的日晷、沙漏计时到近代的机械计时,再延续到现代的通过数字电路实现计时,其定时的准确性和精度都不是非常的理想
6、,随着单片机的体积小、易控制、功能强、价格低廉、稳定可靠、集成度高等优点,注定了它的广泛普及。在智能家居、工业控制、通信、航天等领域有着极大的作用。电子时钟集成的单片机,极大的提高了电子时钟显示的准确性和快捷性,最大化的方便了人们。此外由于单片机的精确性大到工业过程中的大型控制系统,小到早已遍及全世界的儿童玩具和智能家居控制,无时无刻的影响和方便人类的生活。同样的因为单片机的功能强、体积小、质量轻、灵活好用、性价比高等优良的性能,使得它可以更好地融入到更多更全面的系统中,可以构成许多功能不同的微电子产品。根据这种实际情况,设计了只采用一个单片机制作的多功能电子时钟,具备了最基本的时间日期显示功
7、能,定时闹铃功能和温度显示功能,以及秒表功能,还可以针对家电等电气产品的自动控制对其进行相应的扩展,同样可以避免操作繁琐的控制器而产生的失误,准确实现“一对多”的控制;温度传感器的添加,使得此电子时钟可以准确,快捷的进行温度显示,为人们的生活工作提供的极大的便利。对此设计还可以进一步的扩展利用,也可在此设计添加湿度传感器,进而实时进行湿度的显示。1.3电子时钟设计的应用 电子钟已成为人们日常生活中不可或缺的生活品,广泛是车站、码头、剧场、办公室等的公共设施,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便、
8、性价比高等优点可以构成许多功能不同的微电子产品。它还用于计时、自动报时及自动控制等领域。 第二章 电子时钟的硬件设计2.1 单片机的选择 单片微型计算机简称为单片机,是典型的嵌入式微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:存储器、中央处理器(CPU)和I/O接口电路等。因此,单片机只需要配合适当的软件及外部设备,便可成为一个单片机控制系统。 单片机经历SCM、MCU、SoC三大阶段的发展,使得单片机具有了多功能、高性能、低电压、低价格、低功耗、大存储容量、强I/O功能及较好的兼容性等优点。1、多功能 单片机中尽可能地把诸多模块都集成在一块芯片上,使得单片机可
9、以实现的功能更加繁多。其中把ADC、DAC以及多路模拟开关和采样/保持器乃至LED等显示驱动器集成在单片机芯片中,也就是外围器件的内置化。2、高性能 为了提高执行速度和执行效率,单片机开始使用RISC结构、流水线和DSP的设计技术,使单片机的性能有了显著的提高。 由于系统资源和系统复杂程度的增加,开始使用高级语言来开发单片机的程序。使用高级语言明显降低开发难度以及缩短了开发的周期,软件的可读性和可移植性也得到了大大的提升,便于改进和扩充功能。3、低电压和低功耗 因单片机使用的场合空间有限,对其体积的要求严格,这也决定了单片机具有低电压和低功耗的特性非常重要。目前单片机制造工艺普遍应用CHMOS
10、工艺,其中HMOS工艺为互补金属氧化物具有高速度、高密度的特点,再加上CMOS工艺具备了低功耗的优良特性。由于CHMOS工艺的大量采用,很多单片机可以在更低的电压下工作(1.2V或0.9V),功耗已经降低到uA级。这些特性使得单片机系统可以在更小电源的支持下工作更长的时间。目前,国内生产单片机的种类繁多,在此,我们采用为89C52单片机为主控制器。89C52内置8位中央处理器、256字节内部数据存储器RAM、8k片内部程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。此外,89C52还可工作于低功耗模式,可通
11、过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。89C52具有PDIP(40pin)和PLCC(44pin)两种封装形式。2.2 单片机的基本简介单片机有两种基本结构:一种是在通用微型计算机中广泛采用的,数据存储器和程序存储器共用一个存储器空间的结构,称为“冯诺依曼”(Von Neumann)结构。另一种称为“哈佛”(Harvard)结构是将数据存储器和程序存储器完全分开,采用不同的访问指令进行访问,目前的单片机多采用“哈佛”结构。2.2.1 89C52单片机主要功能特性 标准MC
12、S-51内核和指令系统 片内8kROM(可扩充64kB外部存储器) 32个双向I/O口 256x8bit内部RAM(可扩充64kB外部存储器) 3个16位可编程定时/计数器 时钟频率3.5-12/24/33MHz 向上或向下定时计数器 改进型快速编程脉冲算法 6个中断源 5.0V工作电压 全双工串行通信口 布尔处理器帧错误侦测 4层优先级中断结构自动地址识别 兼容TTL和CMOS逻辑电平 空闲和掉电节省模式 PDIP(40)和PLCC(44)封装形式2.2.2 89C52单片机各引脚功能1 主电源引脚有VCC、VSS。 VCC(40脚):接+5V电源,为程序运行和校检时提供所需的电能。VSS(
13、20脚):为接地端。2 外界晶体引脚有XTAL1、XTAL2。XTAL1(18脚):片内它属于一个反向振荡放大器输入端,此放大器构成了片内振荡器,可以提供单片机相应的时钟控制信号。XTAL2(19脚)在单片机内部,接至上述振荡器的反向输出端。当使用内部时钟时,两引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟信号,外部时钟由XTAL1引入,XTAL2处于悬空状态。 3 控制类引脚包括RESET(即为RST/VPD)、ALE、PSEN、EA,可以提供控制信号,有些具有复用功能。RSR/ VPD(9脚):VPD是单片机内部备用电源,为单片机的上电复位和掉电保护端。振荡器工作时,在
14、此引脚加上两个机器周期的高电平将使单片机进行复位(REST)操作。复位后应使此引脚电平保持为不超过0.5V的低电平,以保证单片机正常运行。当电源端出现故障、小于低电平设定值或者掉电,此引脚可接入备用电源(VPD)以保持内部RAM中的数据不出现异常。ALE/PROG(30脚):地址锁存允许信号,以平均每机器周期两次有效的信号输出。在访问片外存储器或I/O时,用于锁存低八位地址,以实现低八位地址与数据的隔离。在不访问外部RAM和ROM时,ALE可以 1/6的振荡频率固定速率输出,可作为对外输出的时钟或用作外部定时脉冲。注意:在访问外部RAM期间,ALE脉冲会跳过两个机器周期此信号有效3次,此种状态
15、下便不适合作为时钟输出。PSEN(29脚):片外程序存储器读选通信号,低电平有效。在从片外程序存储器取指期间,在每个机器周期中,当有效时,程序存储器的内容被送上 P0口(数据总线)。EA /VPP(31脚):片外程序存储器访问允许控制信号,此控制信号低电平为有效。EA=1(高电平),选择片内程序存储器;EA=0(低电平),则程序存储器全部在片外而不管片内是否有程序存储器4 四个输入/输出引脚包括P0口、P1口、P2口和P3口。P0(39脚-32脚)8位、漏极开路的双向I/O口。当使用片外存储器时,复用作低八位地址和数据总线分时复用。P1(1脚-8脚)8位、准双向I/O 口。P2(21脚-28脚
16、)8位、准双向I/O口。当使用片外存储器时,复 用作输出高 8位地址。P3(10脚-17脚)8位、准双向I/O口,具有内部上拉电路。P3口功能表:P3口各引脚的第二功能P3口的位第二功能说明P3.0RXD串行数据接收口P3.1TXD串行数据发射口P3.2INT0外部中断0输入P3.3INT1外部中断1输入P3.4T0计数器0计数输入P3.5T1计数器1计数输入P3.6WR外部RAM写信号P3.7RD外部RAM读信号2.2.3 89C52单片机内部结构图: 第三章 电子时钟的软件设计3.1 程序总体设计主程序开始显示星期,时,分,秒是否有调 转?T0中断时分秒等进位闪烁提示日期显示及调节响铃提示
17、时间调整闹铃设置定时设置铃声测试秒表模式回主程序定时到按0键按0键闹铃到1键2键3键4键5键6键7键恢复按4键按8键按0键按0键倒计时启动并显示回主程序秒表暂停秒表清零回主程序按7键程序总体流程图: NO YES 综上电路图,本设计的设计思路为下:当连接电源后,液晶显示屏显示的是分别是时分秒、星期、年月日、温度等。并且随着LED灯每隔1秒的闪烁,走时将自动叠加一次,当闪烁第60次时分钟将自动加1。下面讲述的便是按键的各种功能模式:1 日期模式:按下1键后,显示的是年月日可以进行调节,调节状态指示灯亮。年份的调节:按下6键时调节年份的千位以及百位,一次可叠加1按下5键调节的是年份的十位和个位,同
18、样的按下一次叠加1月份的调节:4键便是调整月份的,按下一次便会叠加1,当所显示的月份到达12月时,再次叠加将会显示1月日的调整:3键就是调节月份所属的日期,每叠加一位便会加1,其中当为1、3、5、7、8、10、12时日期最高显示为31日,当为4、6、9、11时显示的最高日期便为30日,至于2月当为所属的年份为平年或者闰年时,最高显示将不同分别为28日和29日。平年和闰年的计算下面将会继续做详细的讨论。2 调时模式:按下2键时,显示的是时分秒可以进行调节,且此时的调节指示灯亮。时钟的调节:按下6键时此时可以调节的是时钟,按下一次该位也将自动加1,最高可显示23,最低显示0。分钟的调节:触动5键可
19、以进行分钟的调节,按一次分钟就加1,当显示为59时按5键,分钟的显示将变为0,此时时钟也将加1。秒的调节:按4键将会使钟清零。3 闹铃模式:3键为闹钟的调整,此时显示的是闹钟时刻的可调节,指示灯变亮。闹铃调节相对应的按键:5键,对应的是进行时钟的调整;4键对应的是分钟的调整。每按一次键时对应的位也将相应的加1。4 倒计时模式:长按4键进入倒计时模式,显示定时长度可进行相应的调节,同样的状态指示灯变亮。定时调整相对应按键:6键控制分的调节,5键控制秒的调节,4键启动定时功能,边显示倒计时。5. 按5键铃声测试,扬声器播放音乐。6. 按下7键,进入秒表模式,显示秒表走时。拨上7键,秒表暂停;按下7
20、键,秒表又继续走时。按下8键,秒表清零。0键调整状态指示灯灭,返回主程序,显示时间日期模式调整完毕后,按0键返回主程序,此时指示灯灭,显示调节好的时间7. 按下8键,数码管熄灭,时钟仍在走时,进入节能模式。拨上8键,数码管亮,恢复普通工作模式。8. 9键为闹铃启动(停止)键,按下可以选择是否要闹铃,以及在闹铃响起时,按此键可以停止闹铃。9. 10键为铃声选择开关,按下与否,可以选择两手音乐。10. 11键为闹铃重响控制开关,重响功能开启时,从闹铃随音乐结束而结束的时刻开始,或从手动按9键停止闹铃的时刻开始定时,一段时间后闹铃重响。11. 12键为闹铃重响间隔选择开关,可选两个定时长度,以便在闹
21、铃重响功能开启时,闹铃初次响后,过一段时间闹铃继续响。3.2 程序主要模块3.2.1 延时模块数码管显示动态扫描时,用到延时程序,这里使用延迟1ms的程序,此程序需要反复调用程序如下:D_1MS:MOV R7,#2D_5:MOV R2,#250DJNZ R2,$DJNZ R7,D_5RET除数码管动态扫描外,数码管的闪烁提示,以及音乐模块也用到了延时,只是延时的长短不同罢了。3.2.2中断服务程序本实验中,计数器T0,T1中断都有运用,其中T0中断为时钟定时所用,T1中断用于音乐播放。T0的定时长度为0.01s,工作于方式1,计数1次,时长1us,故计数器计数10000次,进入中断,计数初值为
22、65536-10000=55536=#0D8F0,装满定时器需要0.01s的时间,从而100次中断为一秒,一秒之后,判断是否到60秒,若不到则秒加一,然后返回,若到,则秒赋值为0,分加一,依次类推。包括日期显示的功能也是如此。另外,由于要实现倒计时功能,因此在中断程序中还要加入减一的寄存器,需要时将其进行显示。基于以上考虑,以R3为倒计时中的秒,R4为倒计时的分,当秒加1时R3减一,减到0之后,秒赋值为59,分减一,直到分为0。以下为定时中断流程图:进入T0定时中断修正,重装计数初值按7键秒表的百分之一秒位,秒位,分位,时位的进位 DEC PNUMPNUM=0,已到1秒MOV PNUM,#10
23、0重装中断计数值INC SECOND 秒位加1R3,R4所存定时长度减1分,时,日周,月,年的进位 RETI 中断返回 NO YES YES NO计数器T1工作于方式1, 当调用响铃程序时,其计数功能开启,为音乐音调不同频率的方波的形成,提供延时。其中断服务程序就是根据音调改变音乐方波输出口电平的高低,用语句 CPL实现。 中断服务程序中日历的实现较为复杂,要考虑平年,闰年,特殊的2月,每月的天数的不尽相同。具体的逻辑判断方法为:首先,要考虑年份是不是闰年,闰年的判断方法是:将年份除以100,若能整除,则将年份除以400,若还能整除,则为闰年,若不能,则为平年;若不能被100整除,则判断是否能
24、被4整除,若能,则为闰年,若不能则为平年。只有2月与平、闰年相关,因此在闰年和平年的子程序中,要判断是不是2月,若是则在相应的年中进行日期的增加,若不是则转入平时的月份。其中1、3、5、7、8、10、12月是每月31天,4、6、9、11月为每月30天。日历进位判断流程图如下:年份能否被100整除NY年份是否能被4整除年份是否能被400整除NN平年闰年YY是不是2月是不是2月Y日=28之后返回为1NNY日=29之后返回为1若月份为1、3、5、7、8、10、12月则调用31天的程序若月份为4、6、9、11则调用30天的程序本实验用8个数码管,刚好能显示年,月,日,扫描显示与时间的扫描显示类似。年比
25、较特殊,由两个寄存器存储,个位,十位为0时,表明年数能被100整除,若此时千位,百位组成两位数能被4整除,则年数被400整除,为闰年。若十位,个位组成两位数能被4整除,则年数能被4整除,为闰年。3.2.3主程序主程序主要对按键进行扫描,以及判断定时和闹铃时间是否已到,若到则调用相关程序,该段程序如下:MAIN:JNB P3.0,DATETZ ;按下0键,显示日期并可对日期进行调整JNB P3.1,ZSTZ1 ;按下1键,显示时间,并可调时JNB P3.2,NLTZZ ;按下2键,进行闹铃设置JNB P3.3,DSTZ ;按下3键,进行定时设置JNB P3.4,CESHI ;闹铃测试JNB P3
26、.6,STOPWATCHTZ ;按下6键,进入秒表方式ACALL DISP ;调用时钟显示子程序JNB P0.6,RERING ;判断是否开启闹铃重响功能RE: JNB P2.7,DSPDKQ ;判断是否开启闹铃功能,没开则去判断定时FMQPD: ;判断定时值R4,R3是否到零、闹铃时刻是否已到MOV A,HOUR;SUBB A,38H;JZ FEN ;判断小时数是否到闹铃所定时间,若到,则对分进行判断;若不到,则对定时进行判断AJMP DSPDKQFEN:MOV A,MINUTE;SUBB A,37H;JZ MIAO ;判断分是否到闹铃所定时间,若到,则对秒进行判断;若不到,则对定时进行判断
27、AJMP DSPDKQMIAO:MOV A,SECONDSUBB A,#0JZ SHENGYIN1 ;判断秒是否到闹铃所定时间,若到,则时,分,秒都到达闹铃时刻,进入响铃子程序;若不到则判断定时AJMP DSPDKQRERING: ;闹铃重响判断程序JNB F0, RE ;标志位F0为0,不进行闹铃重响设定CPL F0MOV 3CH,#1 ;定时判断标志位赋1, 定时判断功能开启JNB P0.7,M1 ;闹铃重响间隔时间选取MOV R4,#0 ;闹铃重响间隔30秒MOV R3,#30AJMP MAINM1: ;闹铃重响间隔60秒MOV R4,#1MOV R3,#0AJMP MAINDSPDKQ
28、: ;判断是否应该进行定时判断MOV A,3CH ;3CH是引入的判断因子,当其为0时,不对定时时间是否到0进行判断JNZ DSPD2 ;当3CH不是0时,跳转到定时判断程序AJMP MAINDSPD2:MOV A,R4;JZ S_PD ;R4所存定时分数为0,则转而判断R3所存定时秒数AJMP MAIN;S_PD:MOV A,R3;JNZ MAIN ;R4,R3所存参数减为0, 定时长度已到JNB P0.6,SHENGYIN2 ;闹铃重响功能开启时,跳入响铃程序AJMP TISHI ;不是闹铃重响定时,则定时时间到时,跳入提示程序AJMP MAINCESHI:ACALL RINGAJMP M
29、AINSHENGYIN1: ;调用响铃子程序 LCALL RINGAJMP MAINSHENGYIN2:SETB F0 ;闹铃重响标志位设定LCALL RING ;响铃CLR F0 ;标志位复位AJMP MAINNLTZZ: AJMP NLTZ1 ;跳入闹铃调整程序DSTZ:AJMP DSTZ1 ;跳入定时调整程序DATETZ:AJMP DATETZ1 ;跳入日期调整程序STOPWATCHTZ: AJMP STOPWATCHTZ1 ;跳入秒表程序3.2.4 显示子程序8个数码管轮流进行显示,分别显示1ms,依赖人的视觉 暂留效应,给人以数码管持续高亮的错觉。该段程序如下:DISP: ;时间显示
30、子程序JNB P3.7,OUT1 ;判断节能开关7是否按下,按下则数码管不显示,延长其寿命MOV DPTR,#LEDTABMOV A,SECOND ;显示当前时间秒位MOV B,#10DIV AB ;A存十位,B存个位MOVC A,A+DPTRMOV P1,ACLR SEC_SACALL D_1MS ;显示当前时间秒十位SETB SEC_SMOV A,BMOVC A,A+DPTRMOV P1,ACLR SEC_GACALL D_1MS ;显示当前时间秒个位SETB SEC_GMOV A,MINUTE ;显示当前时间分位MOV B,#10DIV ABMOVC A,A+DPTRMOV P1,ACL
31、R MIN_SACALL D_1MSSETB MIN_SMOV A,BMOVC A,A+DPTRMOV P1,ACLR MIN_GACALL D_1MSSETB MIN_GMOV A,HOUR ;显示当前时间时位MOV B,#10DIV ABMOV DPTR,#LEDTABMOVC A,A+DPTRMOV P1,ACLR HOU_SACALL D_1MSSETB HOU_SMOV A,BMOVC A,A+DPTRMOV P1,ACLR HOU_GACALL D_1MSSETB HOU_GMOV A,WEEK ;显示当前星期数MOVC A,A+DPTRMOV P1,ACLR Y_SACALL D
32、_1MSSETB Y_SOUT1:RET日期的显示,秒表的显示,倒计时的显示,调闹铃,调定时的显示,闪烁的显示程序与以上的的扫描相似,有的以子程序的方式出现,通过子程序调用语句ACALL调用;有点直接嵌套在相应的程序里面,顺序执行,或者用调转语句AJMP调用。3.2.5 调整程序时钟包括很多调整,如时间,日期,闹铃,秒表等,本程序,设计了相应的调整程序段,通过对应的按键,程序跳入调整模式或功能模式。在此着重分析一下闹铃重响以及定时功能的实现过程,这两个功能都灵活运用了标志位。1,定时功能运用了一个内存地址3CH为标志位,只有3CH中所存值非0时,在主程序中才判断定时是否已到。3CH值初始化为0
33、,程序开始运行时并不判断定时是否已到。当通过按键进入定时初值设置,并开始倒计时,3CH的值被赋为1,当倒计时显示到0时,进入闪烁提示,提示结束后3CH又被赋值为0,程序回到主程序后,不必判断定时是否已到。但当倒计时未完,按返回键回到主程序时,3CH的值为1,故在主程序判断未完成的定时任务,倒计时到0时调用同一个提示程序,最后仍可保证在主程序不再定时开启时去判断定时,从而节约资源。2,重闹铃的精髓也是标志位的设计,以F0为标志位,其初值为0,正常响铃时判断重响功能键,若重响功能关闭,则跳过重响设定程序;若重响功能开启,则判断标志位F0,为了更好的说明,将相关程序截取如下:/闹铃重响功能是否判断/
34、JNB P0.6,RERING/重响定时,/RERING: ;闹铃重响判断程序JNB F0, RE ;标志位F0为0,不进行闹铃重响设定CPL F0MOV 3CH,#1 ;定时判断标志位赋1, 定时判断功能开启JNB P0.7,M1 ;闹铃重响间隔时间选取MOV R4,#0 ;闹铃重响间隔30秒MOV R3,#30AJMP MAINM1: ;闹铃重响间隔60秒MOV R4,#1MOV R3,#0AJMP MAINJB P2.7,GO ;判断暂停键是否按下,未按下则响铃JNB P0.6,GO1 ; 音乐暂停键,再判断闹铃重响功能是否开启AJMP END0 GO1: ;闹铃重响功能开启处理程序JB
35、 F0,GO ;重响标志位判断,若F0为1,表明此次响铃调用为重闹铃导致,进入重闹铃环节;若F0为0则表示此次闹铃调用为正常闹铃导致,因为重闹铃功能开启,故将F0置1,以便重闹铃的实现!CPL F0 AJMP END0通过以上程序可知,闹铃初次响时,标志位F0总是0,若重响功能开启,则在初次闹铃自然结束或人为按键结束后通过CPL F0 语句,使F0置1,为重响时间间隔的设置提供条件。当F0值为1时,才能在闹铃功能关闭的情况下重闹铃,重闹铃不像正常闹铃那样,即使没有人为关闭,音乐唱完后,自动回到主程序,而是一直再响,若要关闭重闹铃,则拨动重闹铃开启开关即可。重闹铃结束后回到调用闹铃的位置,用CL
36、R F0 使标志位复位,至此一个重闹铃循环结束。又回到初次闹铃前的状态。若要重响开启重闹铃,则需再次开启重闹铃功能。以下程序段可以区别正常定时和重闹铃定时,通过若重闹铃功能选择键按下,则定时,时间到通过一直响铃来提示;若重闹铃功能关闭则定时到用闪烁来提示。我们不难发现重闹铃开关也可作为定时在主程序中判断时,不同提示方式的选择开关,我们不会影响重闹铃标志位,因为在闹铃子程序调用语句后有F0标志位的清零语句:CLR F0 JNB P0.6,SHENGYIN2 ;闹铃重响功能开启时,跳入响铃程序AJMP TISHI ;不是闹铃重响定时,则定时时间到时,跳入提示程序AJMP MAINSHENGYIN2
37、:SETB F0 ;闹铃重响标志位设定LCALL RING ;响铃CLR F0 ;标志位复位AJMP MAIN第四章 系统仿真本程序通过Keil单片机开发平台实现程序的编译,链接,生成HEX文件。程序再编译过程中可以发现错位,并及时改正,在设计时非常重要,使错误被扼杀在摇篮中。通过Keil和硬件仿真平台Proteus的联合,可以将设计效果仿真出来,根据效果,有目的的改变设计,优化程序。4.1 利用Keil软件实验过程截图:建一个工程,并设定与Proteus仿真相关的参数汇编程序,并生成HEX文件4.2.利用Proteus仿真实验过程截图:普通时间显示模式仿真图,表示:星期一 9点10分38秒日
38、期调节,显示模式仿真图,表示:2010年7月10日闹铃调节显示仿真图,表示闹铃时刻为8点整定时,倒计时显示仿真图,表示此时定时初值已经减到54秒,及还有54秒定时到。定时最大值为59分59秒。秒表显示仿真图,表示秒表已经从0记到8.28秒。秒表可计时到小时,其中小时位数字可到99,即最大计时为100小时致 谢时光冉冉,大学四年即将到达终点,回顾这近两个月的毕业设计感慨颇深,从理论到实践这段日子里可谓苦尽甘来,巩固了以前所学过的知识,掌握了许多课本以外的知识,同样也学到了同学之间的互相帮助是多么的重要。经过了这次的毕业设计让我懂得了理论与实践相结合的重要性,只有理论知识而没有实践的相结合是远远不
39、够的,只有把所学的理论知识运用到实践中才能够知道自己是否真的掌握,实践中遇到的诸多问题都是在理论中没有的,这也多亏了黄河老师的细心指导。这次毕业设计能够顺利的完成,在设计过程中遇到了许多编程问题,最后在黄河老师的辛勤指导下,终于艰难的解决了。同时,在黄河老师的身上我学得到很多实用的知识,在次我表示衷心的感谢!他对单片机领域的研究以及对本课题的见解,使我受益匪浅。黄河老师诲人不倦的工作作风和他一丝不苟的工作态度,严肃认真的治学风格给我留下很深的印象,值得我永远去向他学习,也是我们的楷模。在此,谨向导师黄河老师致以崇高的敬意和衷心的感谢!同时,对所有给过我帮助的同学再次表示衷心的感谢!Employment tribunals sort out disagreements between employers and employees.You may need to make a claim to an