定时闹钟C51单片机课程设计_第1页
定时闹钟C51单片机课程设计_第2页
定时闹钟C51单片机课程设计_第3页
定时闹钟C51单片机课程设计_第4页
定时闹钟C51单片机课程设计_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、题目: 定时闹钟目录一、 概述111设计目的及意义112设计任务113设计系统的主要功能1二、 系统总体方案及硬件设计221系统总体方案222系统设计总框图223硬件设计2231单片机最小系统设计2232报警模块设计6233显示模块设计7234调时模块设计9三、 软件设计1031主程序流程图1032定时中断子程序流程图1133程序设计11四、 系统的仿真与调试1241 proteus软件仿真1242系统的调试11五、设计总结与体会13参考文献13附录1:源程序代码14附录2:系统原理图24一、 概述11设计目的及意义学习和巩固单片机技术、电子技术、传感器技术及智能仪器等知识,使对已学过的基础知

2、识能有更深入的理解,并融会贯通。学会独立思考、独立工作,培养一定的自学能力和独立分析问题能力,以及增强系统地运用已学理论知识去解决实际问题的能力,同时培养成良好的科学态度和严谨的设计习惯。12设计任务完成所选题目的分析与设计,达到技术性能要求。提交正式课程设计总结报告一份。本文设计的定时闹钟的核心模块采用AT89C51芯片,时、分、秒用6位LED数码管显示。在电路中通过四个按键S1、S2、S3和S4来进行定时、调时和复位,定时时间到通过蜂鸣器发出报警声。13设计系统的主要功能(1) 能显示 时时分分秒秒。(2) 能够设置定时时间、 修改定时时间。(3) 定时时间到能发出报警声。二、 系统总体方

3、案及硬件设计21系统总体方案(1) 由于LED显示器相对于其它显示器(如LCD显示器)来说其价格要便宜许多,而且亮度更高,耐温范围较广,所以采用6位数码管来显示“时时分分秒秒”。(2) 时间的定时用单片机内部时钟电路,在一定的时间内能使其误差较小,如经过一年其误差才仅有数秒。修改时间和定时用手动按键控制,报警声通过蜂鸣器发出。这样可以使得硬件电路设计较为简单,且软件设计也易于实现,并能够降低成本。(3) 核心模块采用AT89C51单片机,功能强、通用性好、价格便宜,且易于控制。加上外围器件(数码管、排阻、按键和蜂鸣器)和应用程序,便构成了相应的应用系统。22系统设计总框图数码管显示(如图1所示

4、)时钟电路和复位电路单片机 AT89 C51键盘(按钮)蜂鸣器 图1定时闹钟系统设计总框图23硬件设计231单片机最小系统设计(1) 芯片:AT89C51 因为51单片机是各单片机中最为典型和最有代表性的一种,在20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用广泛,发展很快,推广率和市场利润率较高,且适合于本设计系统中CPU内存和I/O等资源的要求,所以本设计采用AT89C51作为核心控制芯片。AT89C51是一种带4KB闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的单片机,

5、可稳定地工作于5V的电源下。其集成度高、功能强、能耗低、通用性好、价格便宜。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。其组合而成的配件产品在日常生活的使用过程中非常方便、简单且实用,深受着广大消费者的喜爱。AT89C51管脚说明如下:  :供电电压端。     :接地端。     P0口:P0口为三态双向口,能带8个TTL电路。有两种功能:第一功能是一

6、个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口为

7、一个内部带上拉电阻的8位准双向I/O口,P2口缓冲器可接收、输出4个TTL门电流。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。     P3口:P3口是一个内部带上拉电阻的准双向I/O口,可接收输出4个TTL门电流。同时为闪烁编程和编程校验接收一些控制信号。P3口的8个引脚都有各自的第二功能,可作为AT89C51的一些特殊功能口,如表1所示。 表1 P3口第二功能P3口引脚第二功能注释P3.0串行输入口P3.1串行输出口P3.2外部中断0输入P3.3外

8、部中断1输入P3.4定时/计时器0外部输入P3.5定时/计时器1外部输入P3.6外部数据存储器写信号P3.7外部数据存储器读信号   :为复位信号输入端。当振荡器复位器件时,要保持RST脚两个机器周期(24个时钟周期)以上的高电平时间。为内部的备用电源输入端。当主电源一旦发生断电或电压降到一定值时,可通过为单片机内部提供电源,以保护片内中的信息不丢失,使上电后能继续正常运行。 :为地址锁存允许信号,当访问外部存储器时,用来锁存口送出的低8位地址信号。在编程期间,用于输入编程脉冲。在平时,端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉

9、冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个脉冲。如想禁止的输出可在的8EH地址上置0。此时,只有在执行MOVX,MOVC指令时才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态禁止,置位无效。    :外部程序存储器的读选通信号。在由外部程序存储器取指期间,产生负脉冲做为外部的选通信号,每个机器周期两次有效。但在访问外部数据存储器时,不会产生有效的信号。可驱动8个门输入端。     :访问外部程序存储器控制信号。当保持低电平时,则在此期间只访问外部程序存储器(0000H-FFFFH),不

10、管是否有内部程序存储器。注意加密方式1时,将内部锁定为。当端保持高电平时,访问程序存储器有两种情况:一是访问的地址空间在0到4KB范围内,访问片内程序存储器;二是访问的地址超出4KB时,将自动执行外部程序存储器的程序。在编程期间,此引脚也用于施加12V编程电源()。:晶体振荡电路的反向器输入端。 :晶体振荡电路的反向器输出端。 (2) 时钟电路单片机的时钟产生方法有两种: 内部时钟方式和外部时钟方式。 本系统中AT89C51单片机采用内部时钟方式。最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路。振荡晶体可在1.2MHz12MHz之间。电容值无严格要求,但电容取值对振荡频率输出的稳定

11、性、大小和振荡电路起振速度有少许影响,一般可在20pF100pF之间取值。AT98C51单片机的时钟电路如图3所示。图3 AT98C51单片机的时钟电路(3) 复位电路复位是单片机的初始化操作。单片机系统在上电启动运行时,都需要先复位。其作用是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。单片机的外部复位电路有上电自动复位和按键手动复位两种。本系统中AT89C51单片机采用上电加按键手动复位电路,如图4所示。图4 AT89C51单片机的复位电路232报警模块设计为实现设计的定时闹钟系统在定时时间到时发出报警声,采用蜂鸣器作为报警发声装置。在本设计中有多种报警声可供选择

12、,可选择报警时播放音乐。报警电路设计如图5所示。图5 定时闹钟系统的报警电路233显示模块设计本系统中采用6位LED数码管显示时、分、秒,用两片74HC573分别对段码和位码进行锁存,实现动态扫描方式显示,节省单片机I/O口资源,简化硬件电路。(1) LED显示器单片机中通常使用8段LED,LED是发光二极管显示器的缩写。LED显示器由于结构简单,价格便宜,体积小,亮度高,电压低,耐温范围广,可靠性高,寿命长,响应速度快,颜色鲜艳,配置灵活,与单片机接口方便而得到广泛应用。LED显示器是由若干个发光二极管组成显示字段的显示部件,当发光二极管导通时,相应的一个点或一个笔划发光,控制不同组合的二极

13、管导通,就能显示出各种字符。LED显示器有多种形式,如:“米”字型显示器,点阵显示器和七段数码显示器等。在本系统中采用八段数码显示器。因为共阴极的LED数码管它的驱动电流是分开的,在单片机进行动态扫描的时候不会影响彼此的电流,故本系统中的6位LED数码管均用共阴极的数码管。(2) 74HC573芯片特点:三态总线驱动输出,置数全并行存取,缓冲控制输入,使能输入有改善抗扰度的滞后作用。  原理说明:74HC573的八个锁存器都是透明的D型锁存器,当使能(G)为高时,Q输出将随数据(D)输入而变。当使能为低时,输出将锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作,即老数据可以保

14、持,甚至当输出被关闭时,新的数据也可以置入。这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。特别适用于缓冲寄存器,I/O 通道,双向总线驱动器和工作寄存器。74HC573引脚说明:OE:3态输出使能输入(低电平有效)。D0 - D7:数据输入端。Q0 - Q7:3态锁存输出。LE:锁存使能输入。GND:接地。VCC:电源电压。74HC573的引脚图、逻辑图及真值表如下:图6    74HC573引脚图图7 74HC573逻辑图表2 74HC573真值表OELEDQ HXXZLLXNO CHANGE LHLLLHHH(

15、3) 显示电路将两片74HC573的数据输入端D0 - D7都分别与AT89C51单片机的P0.0 - P0.7和RESPACK-8排阻的 2 - 9 引脚连接,两片74HC573的锁存使能端L分别接至P2.6和P2.7,74HC573的输出端接至数码管234调时模块设计本系统要进行时间的调整和定时,因此用4个手动按键对其进行控制。键盘电路设计如图9所示。当按下时间调整键S1时,系统可进行时间调整的小时设置;当再按下S1时,可进行时间调整的分钟设置;再按下S1时,可进行时间调整的秒钟设置;再次按下S1时,系统恢复正常时间显示。当按下设置定时键S2时,系统可进行闹钟定时时间的小时设置,此时S1作

16、为报警声选择键,可通过S1选择报警声;再按下S2时,可进行定时时间的分钟设置,此时也可通过S1选择报警声;第三次按下S2时,系统恢复正常时间显示,此时S1恢复为时间调整按键。设置时间时都通过加时按键S3和减时按键S4进行控制。图9 定时闹钟系统的键盘电路三、 软件设计31主程序流程图开始初始化显示时间NS1按下?YNS2按下?调整时间NNYS1按下?S3按下?YY选择报警声加时调整NNS3按下?S4按下?YY定时加时减时调整NS4按下?Y定时减时图10主程序流程图32定时中断子程序流程图开始N1秒到?Y秒变量加1N60秒到?Y分变量加1,秒变量清零N60分到?Y时变量加1,分变量清零N24时到

17、?Y时变量清零蜂鸣器响Y定时到?N结 束图11定时中断子程序流程图33程序设计 根据程序流程图采用汇编语言进行程序设计,其中主程序可根据系统实现的功能划分为以下几个子程序模块。(程序源代码见附录1)(1) 时间调整子程序模块;(2) 闹钟时间设置子程序模块;(3) 蜂鸣器报警子程序模块;(4) 数码管显示子程序模块。四、 系统的仿真与调试41 proteus软件仿真使用WAVE软件编辑程序,在仿真设置中选择E6000/T仿真器,选择POD-51仿真头。为方便系统在proteus中进行仿真,选择了7SEG-MPX6-CC-BLUE数字显示器,并改变了一些I/O连接,然后选择80C51CPU进行汇

18、编程序编辑。经过仿真得知,通过S1、S2、S3和S4四个按键,可以对时间进行修改和闹钟的设置,定时时间到能发出报警声,系统非常完善地实现了所有要求的功能。42 系统的调试将所编程序在KEIL软件里进行编译,编译正确后生成HEX文件。 在AT89C51芯片中加载此文件后,对完成的实物作品进行调试。系统运行后,能准确的显示时间,并能通过S1、S2、S3和S4四个按键对时间进行修改和闹钟定时时间的设置,定时时间到能发出报警声。五、设计总结与体会设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新日异,

19、单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在,作为二十一世纪的大学生来说掌握单片机的开发技术是十分重要的。通过本次单片机原理及应用设计使我充分认识到了设计的重要性和必要性,本次设计使我对已学过的基础知识有了更深入的理解,学会了独立思考、独立工作以及对应用所学基本理论分析和解决实际问题的能力有了很大的提高。另外,本次设计使我的实际操作技能得到了训练, 同时也进一步培养了我严谨的科学作风。回顾起此次单片机课程设计,从选题到定稿,从理论到实践,可以说得是有苦有甜,但是从中却学到很多很多的的东西,不但巩固了以前所学过的知识,而且对单片机原理课外知识也得到了拓展。做的过程中,

20、开始的确遇到了不少困难的问题,比如说芯片管脚不熟悉怎么放置等,同时在这过程中也发现了自己的许多不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。 通过单片机设计之后,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我们还学会了如何去培养创新精神和严谨的科学作风,从而不断地战胜自己,超越自己。更重要的是,我在这一设计过程中,学会了坚持不懈,绝不放弃。参考文献1张毅刚.单片机原理及应用.北京:高等教育出版社,20032王幸之.单片机应用系统电磁干扰与抗干扰技术.北京:北京航空航天大学出版社,20063何立民.单片机应用技术大全.北京:北京航空航天大学出版社,19944张

21、毅刚.单片机原理及接口技术.哈尔滨:哈尔滨工业大学出版社,19905谭浩强.单片机课程设计.北京:清华大学出版社,19896余锡纯.单片机原理与接口技术.西安:电子科技大学出版社,20037Mak.S, Radford. D.Design considerations for implementation of large scale automatic meter reading systems.Power Delivery, IEEE Tra

22、nsactions on,Volume 10,  Issue 1,  Jan. 1995 附录1:源程序代码1、 汇编语言程序:;* 引脚及变量定义 * S1 BIT P3.2 ;按键1 S2 BIT P3.3 ;按键2 S3 BIT P3.4 ;按键3 S4 BIT P3.5 ;按键4SPEAKER BIT P2.0 ;蜂鸣器 DULA BIT P2.6 ;段选锁存器锁存端 WELA BIT P2.7 ;位选锁存器锁存端 HOUR1 EQU 20H ;小时 MIN1 EQU 21H ;分钟 SEC1 E

23、QU 22H ;秒钟 HOUR2 EQU 23H ;小时定时变量 MIN2 EQU 24H ;分钟定时变量 A1 EQU 25H ;显示变量 B1 EQU 26H C1 EQU 27H D1 EQU 28H E1 EQU 29H F1 EQU 30H A2 EQU 31H B2 EQU 32H C2 EQU 33H D2 EQU 34H NUM1 EQU 35H ;按键计数变量1 NUM2 EQU 36H ;按键计数变量2 COUNT EQU 37H ;计时变量 ORG 0000H LJMP MAIN ORG 000BH LJMP TIME;* MAIN PROGRAM * ORG 1000H

24、MAIN: MOV SP,#50HSTART: MOV HOUR1,#00H ;初始化时间变量 MOV MIN1,#00H MOV SEC1,#00H MOV HOUR2,#01H ;初始化定时变量 MOV MIN2,#01H MOV COUNT,#00H ;初始化计时变量 MOV NUM1,#00H ;初始化按键计数变量 MOV NUM2,#00H MOV TMOD,#01H ;16位计数器 MOV TH0,#0D8H ;赋初值 MOV TL0,#0EFH SETB ET0 ;中断允许 SETB EA SETB TR0 ;启动T0LOOP: MOV A,NUM2 JNZ LOOP1 ;A不为

25、0时转移 LCALL DISPLAY1 ;显示当前时间 LCALL KEYTIME ;调用时间调整子程序 LCALL SETTIME ;调用定时设置子程序 LJMP LOOPLOOP1: LCALL DISPLAY2 ;显示定时时间 LCALL KEYTIME ;调用时间调整子程序 LCALL SETTIME ;调用定时设置子程序 LJMP LOOP ;* SETTIME PROGRAM *SETTIME: ;定时设置子程序LL1: JB S2,LL3 ;P3.3=1时转移 LCALL DELAY5 ;延时5MSMSTOP1: JB S2,LL3 ;P3.3=1时转移 MOV C,S2JNC

26、MSTOP1 ;P3.3=0时转移 INC NUM2 ;按键计数变量加1 MOV A,NUM2 CJNE A,#1,LL2 ;判断按键计数是否为1 CLR TR0 ;定时器中断关闭LL2: CJNE A,#3,LL ;判断按键计数是否为3 MOV NUM2,#0 ;按键计数变量清0 SETB TR0 ;定时器中断打开LL: LCALL DISPLAY2 ;显示定时时间LL3: MOV A,NUM2 JZ LL5 ;A为0时转移 JB S3,KK2 ;P3.4=1时转移 LCALL DELAY5 ;延时5MSKK1:JB S3,KK2 ;P3.4=1时转移 MOV C,S3 JNC KK1 ;P

27、3.4=0时转移 MOV A,NUM2 CJNE A,#1,MM1 ;判断按键计数是否为1INC HOUR2 ;小时定时变量加1 MOV A,HOUR2 CJNE A,#24,MM1 ;判断小时定时变量是否为24 MOV HOUR2,#0 ;小时定时变量为24则复位0 LCALL DISPLAY2 ;显示定时时间MM1:LCALL DISPLAY2 ;显示定时时间 MOV A,NUM2 CJNE A,#2,KK2 ;判断按键计数是否为2 INC MIN2 ;分钟定时变量加1MOV A,MIN2 CJNE A,#60,KK2 ;分钟定时变量是否为60 MOV MIN2,#0 ;分钟定时变量为60

28、则复位0 LCALL DISPLAY2 ;显示定时时间KK2:LCALL DISPLAY2 ;显示定时时间JB S4,LL5 ;P3.5=1时转移 LCALL DELAY5 ;延时5MSKK3:JB S4,LL5 ;P3.5=1时转移 MOV C,S4 JNC KK3 ;P3.5=0时转移 MOV A,NUM2 CJNE A,#1,MM2 ;判断按键计数是否为1 DEC HOUR2 ;小时定时变量减1 MOV A,HOUR2 CJNE A,#0,MM2 MOV HOUR2,#24 LCALL DISPLAY2 ;显示定时时间MM2:LCALL DISPLAY2 ;显示定时时间 MOV A,NU

29、M2 CJNE A,#2,LL5 ;判断按键计数是否为2DEC MIN2MOV A,MIN2 ;分钟定时变量减1CJNE A,#0,LL5MOV MIN2,#60LL5: LCALL DISPLAY2 ;显示定时时间RET ;* KEYTIME PROGRAM *KEYTIME: ;时间调整子程序L1: JB S2,L3 ;P3.2=1时转移 LCALL DELAY5 ;延时5MSMSTOP2: JB S2,L3 ;P3.2=1时转移 MOV C,S2 JNC MSTOP2 ;P3.2=0时转移 INC NUM1 MOV A,NUM1 CJNE A,#1,L2 ;判断按键计数是否为1 CLR

30、TR0 ;定时器中断关闭L2: CJNE A,#4,L3 ;判断按键计数是否为4MOV NUM1,#0 SETB TR0 ;定时器中断打开L3: MOV A,NUM1 JNZ FF ;A不为0时转移 LJMP L5FF: JB S3,K2 ;P3.4=1时转移 LCALL DELAY5 ;延时5MSK1: JB S3,K2 ;P3.4=1时转移 MOV C,S3 JNC K1 ;P3.4=0时转移 MOV A,NUM1 CJNE A,#1,M1 ;判断按键计数是否为1 INC HOUR1 ;小时设置加1 MOV A,HOUR1 CJNE A,#24,M1 MOV HOUR1,#0 LCALL

31、DISPLAY1 ;显示调整时间M1: LCALL DISPLAY1 ;显示调整时间 MOV A,NUM1CJNE A,#2,M2 ;判断按键计数是否为2INC MIN1 ;分钟设置加1MOV A,MIN1CJNE A,#60,M2MOV MIN1,#0LCALL DISPLAY1 ;显示调整时间M2:LCALL DISPLAY1 ;显示调整时间MOV A,NUM1CJNE A,#3,K2 ;判断按键计数是否为3INC SEC1MOV A,SEC1CJNE A,#60,K2MOV SEC1,#0LCALL DISPLAY1 ;显示调整时间K2:LCALL DISPLAY1 ;显示调整时间JB

32、S4,L5 ;P3.5=1时转移 LCALL DELAY5 ;延时5MSK3:JB S4,L5 ;P3.5=1时转移 MOV C,S4JNC K3 ;P3.5=0时转移MOV A,NUM1CJNE A,#1,M3 ;判断按键计数是否为1DEC HOUR1MOV A,HOUR1CJNE A,#0,M3MOV HOUR1,#24LCALL DISPLAY1 ;显示调整时间M3:LCALL DISPLAY1 ;显示调整时间MOV A,NUM1CJNE A,#2,M4 ;判断按键计数是否为2DEC MIN1MOV A,MIN1CJNE A,#0,M4MOV MIN1,#60LCALL DISPLAY1

33、 ;显示调整时间M4:LCALL DISPLAY1 ;显示调整时间MOV A,NUM1CJNE A,#3,L5 ;判断按键计数是否为3INC SEC1MOV A,SEC1CJNE A,#0,L5MOV SEC1,#60L5: LCALL DISPLAY1 ;显示调整时间RET ;* TIMEPRO PROGRAM *TIMEPRO: MOV R7,#50 ;蜂鸣器报警子程序 CLR SPEAKER ;启动蜂鸣器报警 LCALL DELAYN ;延时50MS SETB SPEAKER LCALL DELAYN CLR SPEAKER LCALL DELAYN SETB SPEAKER;* DIS

34、PLAY1 PROGRAM *DISPLAY1: ;显示子程序1 PUSH ACC ;保护现场 MOV A,HOUR1 ;将时间的十位和个位分别赋给显示变量 MOV B,#10 DIV AB MOV A1,A MOV B1,B MOV A,MIN1 MOV B,#10 DIV AB MOV C1,A MOV D1,B MOV A,SEC1 MOV B,#10 DIV AB MOV E1,A MOV F1,BMOV DPTR,#TABLE;指向7段编码表首地址 CLR DULA;关闭段选锁存器锁存端MOV A,A1 MOVC A,A+DPTR MOV P0,A;显示小时十位SETB DULA;打

35、开段选锁存器锁存端 CLR DULACLR WELA;关闭位选锁存器锁存端 MOV P0,#0FEH;选择第1位数码管 SETB WELA;打开位选锁存器锁存端 CLR WELA LCALL DELAY5 CLR DULA;关闭段选锁存器锁存端MOV A,B1 MOVC A,A+DPTR MOV P0,A;显示小时个位SETB DULA;打开段选锁存器锁存端 CLR DULACLR WELA;关闭位选锁存器锁存端 MOV P0,#0FDH;选择第2位数码管 SETB WELA;打开位选锁存器锁存端 CLR WELA LCALL DELAY5 CLR DULA;关闭段选锁存器锁存端MOV A,C

36、1 MOVC A,A+DPTR MOV P0,A;显示分钟十位SETB DULA;打开段选锁存器锁存端 CLR DULACLR WELA;关闭位选锁存器锁存端 MOV P0,#0FBH;选择第3位数码管 SETB WELA;打开位选锁存器锁存端 CLR WELA LCALL DELAY5 CLR DULA;关闭段选锁存器锁存端MOV A,D1 MOVC A,A+DPTR MOV P0,A;显示分钟个位SETB DULA;打开段选锁存器锁存端 CLR DULACLR WELA;关闭位选锁存器锁存端 MOV P0,#0F7H;选择第4位数码管 SETB WELA;打开位选锁存器锁存端 CLR WE

37、LA LCALL DELAY5 CLR DULA;关闭段选锁存器锁存端MOV A,E1 MOVC A,A+DPTR MOV P0,A;显示秒钟十位SETB DULA;打开段选锁存器锁存端 CLR DULACLR WELA;关闭位选锁存器锁存端 MOV P0,#0EFH;选择第5位数码管 SETB WELA;打开位选锁存器锁存端 CLR WELA LCALL DELAY5 CLR DULA;关闭段选锁存器锁存端MOV A,F1 MOVC A,A+DPTR MOV P0,A;显示秒钟个位SETB DULA;打开段选锁存器锁存端 CLR DULACLR WELA;关闭位选锁存器锁存端 MOV P0,

38、#0DFH;选择第6位数码管 SETB WELA;打开位选锁存器锁存端 CLR WELA LCALL DELAY5POP ACC ;恢复现场 RET;* DISPLAY2 PROGRAM *DISPLAY2: ;显示子程序2 PUSH ACC ;保护现场 MOV A,HOUR2 ;将时间的十位和个位分别赋给显示变量 MOV B,#10 DIV AB MOV A2,A MOV B2,B MOV A,MIN2 MOV B,#10 DIV AB MOV C2,A MOV D2,B MOV DPTR,#TABLE;指向7段编码表首地址 CLR DULA;关闭段选锁存器锁存端MOV A,A2 MOVC

39、A,A+DPTR MOV P0,A;显示定时时间的小时十位SETB DULA;打开段选锁存器锁存端 CLR DULACLR WELA;关闭位选锁存器锁存端 MOV P0,#0FEH;选择第1位数码管 SETB WELA;打开位选锁存器锁存端 CLR WELA LCALL DELAY5 CLR DULA;关闭段选锁存器锁存端MOV A,B2 MOVC A,A+DPTR MOV P0,A;显示定时时间的小时个位SETB DULA;打开段选锁存器锁存端 CLR DULACLR WELA;关闭位选锁存器锁存端 MOV P0,#0FDH;选择第2位数码管 SETB WELA;打开位选锁存器锁存端 CLR

40、 WELA LCALL DELAY5 CLR DULA;关闭段选锁存器锁存端MOV A,C2 MOVC A,A+DPTR MOV P0,A;显示定时时间的分钟十位SETB DULA;打开段选锁存器锁存端 CLR DULACLR WELA;关闭位选锁存器锁存端 MOV P0,#0FBH;选择第3位数码管 SETB WELA;打开位选锁存器锁存端 CLR WELA LCALL DELAY5 CLR DULA;关闭段选锁存器锁存端MOV A,D2 MOVC A,A+DPTR MOV P0,A;显示定时时间的分钟个位SETB DULA;打开段选锁存器锁存端 CLR DULACLR WELA;关闭位选锁

41、存器锁存端 MOV P0,#0F7H;选择第4位数码管 SETB WELA;打开位选锁存器锁存端 CLR WELA LCALL DELAY5POP ACC ;恢复现场RET;* DELAY PROGRAM *DELAYN: ;N ms延时子程序,R7为参数NDL00: MOV R5,#05H DL11: MOV R6,#0DFHDL22: DJNZ R6,DL22 DJNZ R5,DL11 DJNZ R7,DL00 RETDELAY5: MOV R4,#14H ;5ms延时子程序DL001: MOV R5,#0FFHDL111: DJNZ R5,DL111 DJNZ R4,DL001 RET;

42、* TIME PROCESS *TIME: PUSH ACC ;定时中断子程序 PUSH PSW ;保护现场 MOV TH0,#0D8H ;初值 MOV TL0,#0EFHINC COUNT ;计时变量加1MOV A,COUNTCJNE A,#18,RET0 ;1秒到否MOV COUNT,#0INC SEC1MOV A,HOUR1 ;判断定时时间到否MOV B,HOUR2CJNE A,B,HTHTMOV A,MIN1MOV B,MIN2CJNE A,B,HTHTLCALL TIMEPRO ;调用蜂鸣器报警子程序HTHT:MOV A,SEC1CJNE A,#60,RET0 ;1分到否MOV SE

43、C1,#0INC MIN1MOV A,MIN1CJNE A,#60,RET0 ;1小时到否MOV MIN1,#0INC HOUR1MOV A,HOUR1CJNE A,#24,RET0MOV HOUR1,#0RET0: POP PSW ;恢复现场 POP ACC RETITABLE: DB 3FH,06H,5BH,4FH,66H ;七段码表 DB 6DH,7DH,07H,7FH,6FHEND附录2:系统原理图附录三 液晶显示一、 实验目的1 了解液晶工作原理2 熟悉12232F液晶的引脚功能、工作时序及工作方式3 掌握如何根据时序图编写程序的方法。二、 实验内容用实验箱上提供的12232F液晶模块,编写程序,静态显示“······

温馨提示

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

评论

0/150

提交评论