多功能数字钟设计.doc

上传人:文库蛋蛋多 文档编号:4141514 上传时间:2023-04-07 格式:DOC 页数:27 大小:567KB
返回 下载 相关 举报
多功能数字钟设计.doc_第1页
第1页 / 共27页
多功能数字钟设计.doc_第2页
第2页 / 共27页
多功能数字钟设计.doc_第3页
第3页 / 共27页
多功能数字钟设计.doc_第4页
第4页 / 共27页
多功能数字钟设计.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《多功能数字钟设计.doc》由会员分享,可在线阅读,更多相关《多功能数字钟设计.doc(27页珍藏版)》请在三一办公上搜索。

1、设计(论文)题目:多功能数字钟目 录摘要4关键词5第一章 绪论51.1 课程设计目的及意义51.2课程设计任务及要求51.2.1设计任务51.2.2 设计要求51.3 任务分析51.3.1 显示方案51.3.2 复位方案61.4课题分析71.4.1 晶体振荡器电路81.4.2 复位电路81.4.3 显示驱动电路91.4.4 LED动态显示91.4.5 键盘接口电路设计10第二章 硬件介绍102.1 单片机组成112.2 单片机的发展史112.3经典系列单片机型号及其性能表122.4 51系列单片机内部结构122.5 AT89C51简介132.5.1简介132.5.2 AT89C51芯片132.

2、5.3 AT89C51单片机内部结构152.6 LED显示器及键盘162.6.1 LED显示方式162.6.2 N位LED显示器172.7 键盘172.8 蜂鸣器182.9 多功能数字时钟原理图18第三章 软件设计193.1原理框图203.2 程序21第四章 制作调试254.1 制作254.2 调试254.2.1 硬件调试254.2.2 软件调试25第五章 设计总结26参 考 文 献26附录 元器件清单28多功能数字钟摘要 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提

3、高,产品更新换代的节奏也越来越快。钟表由机械向数字的快速发展给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,已得到广泛的使用。数字钟的设计方法有许多种,例如,可用中小规模集成电路组成电子钟;也可以利用专用的电子钟芯片配以显示电路及其所

4、需要的外围电路组成电子钟;还可以利用单片机来实现电子钟等等。这些方法都各有其特点,其中利用单片机实现的电子钟具有编程灵活,并便于功能的扩展。以AT89C51为主芯片制作多功能数字钟的方案中,时钟信号主要由AT89C51单片机的定时器/计数器来提供,对时间进行设置和进行闹铃设置主要用到单片机的外部中断。外部控制电路及显示电路都用到了他的I/O口,在该次设计中,我们主要运用AT89C51单片机定时器/计数器、中断源及中断系统以及AT89C51的I/O口的特性,设计出的电子钟采用24小时制计时,其中添加了整点报时和闹铃提示功能。关键词: 数字钟 AT89C52 单片机第一章 绪论1.1 课程设计目的

5、及意义(1)了解AT89S52单片机的基本原理(2)掌握单片机各端口的作用功能及编程方法(3)掌握子程序的调用,以及中断、定时/计数器的使用(4)全面融汇单片机知识,总结单片机的综合运用设计方法(5)练习定义按键,学会键盘的使用1.2 课程设计任务及要求1.2.1 设计任务:(1)数字钟具有显示时、分、秒功能,时取二十四进制,分秒取六十进制(2)具校时功能,能对时、分、秒单独校准(3)具备闹钟功能1.2.2 设计要求:(1)列出设计中,所涉及到的元器件清单以及参数要求,(2)作出电路原理图或仿真电路,(3)进行装配调试,发现问题,并尝试解决,(4)总结课题报告,设计与制作全过程,附上有关资料和

6、图纸,总结心得体会1.3 任务分析1.3.1显示方案该系统要求完成计时、基于上述原因,提出两种方案 方案一:LED动态显示LED动态显示的优点:用较少的端口,可以扩展多位LED显示器。缺点: 过多的占用CPU的时间。方案二:LED静态显示。LED静态显示的优点:不占用CPU的时间。缺点:占用过多的输出端口。如图1.1 图1.1综上所述,由于本设计需要用到6个七段数码管,故选择方案一1.3.2复位方案 方案一 手动复位电路: 按键电平复位是通过使复位端经电阻与VCC接通而实现的。如图1.2图 1.2方案二上电复位在对单片机系统提供电源的瞬间,在RST引脚上保持两个连续机器周期的高电平 利用了RC

7、充电的原理;如图1.3图1.3方案三:上电复位+手动复位结合上述两种方案的如图1.4 图1.4综上所述,我们选择方案三;它具备了方案一与方案二的优点,系统加电时复位与程序运行中手动复位,在9引脚上有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位1.4 课题分析数字钟其实就是一个计数电路,一个对标准频率(1HZ)进行的计数电路。时钟计数的起始时间不能够与标准时间一致,所以校时电路必不可少。而标准的1HZ时间信号必须准确稳定。所以时钟通常采用石英晶体振荡器电路。1.4.1 晶体振荡器电路 如图a,晶体振荡器电路给数字钟提供一个频率稳定准确的32768z的脉冲,可保证数字钟

8、的走时准确及稳定。不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路。图a 晶体振荡电路1.4.2 复位电路 如图b图b 复位电路本系统采用手动复位+上电复位电路,主要结合两者的优点设计的,在系统上电的同时以及在单片机运行过程中,目的及时处理程序跑偏,以及外界对程序的干扰,造成显示结果有误等情况,随时对系统进行复位处理,主要在RET引脚上保持两个机器周期的高电平,系统复位,使的程序计数器和特殊功能寄存器SFR全部清零,PC指向0000H;常用的复位电路如图b 1.4.3 显示驱动电路 如图c图c 显示驱动电路本设计的显示采用动态显示方式需要六位,在下图仅画出两位为代表,由于每位显示

9、器只有部分时间点亮,因此看上去亮度有所下降,为了达到与持续点亮一样的亮度效果,必须加大显示器的驱动电流,采用三极管做为驱动电流(PNP型;型号:8050)由单片机P2.0P2.5端口控制着时分秒显示,通过软件每隔500us点亮一次,即P2.0P2.5为低电平时,方可点亮。1.4.4 LED动态显示如图d,工作原理:逐个地循环点亮各位显示器,也就是说在任一时刻只有1位显示器在显示它利用了人眼的视觉残留效应,给人感觉到与全部显示器持续点亮的效果一样。一般地,每秒循环扫描不低于50次,动态显示:占用资源少,动态控制节省了驱动芯片的成本,节省了电。 图d 动态显示1.4.5 键盘接口电路设计 如图e图

10、e本设计采用的键盘接口是独立式,是要实现对时间的校验与时间的调整S2校秒按键, S3校分按键,S4校时按键第二章 硬件介绍2.1 单片机组成单片机是把中央处理器(CPU)、存储器、定时器和I/O端口电路等一些计算机的主要功能部件集成在一块电路芯片上的微型计算机,单片机的内部结构如图f所示。图f单片机的内部结构2.2 单片机的发展史单片机从出现至今,经历了四个发展阶段。(1)低性能单片机阶段:以 Intel公司的MCS48单片机为代表,采用了单片机结构,内部资源包含8位CPU、定时/计数器。并行I/O端口。RAM和ROM等,主要用于工业领域。(2)高性能单片机阶段:Intel公司的MCS51单片

11、机为代表,单片机带有串行口、位处理功能和16位地址线,寻址范围达到64KB,具有丰富的指令系统和完善的总线结构,功能单元的SFR(特殊功能寄存器)集中管理,应用范围涉及到各个领域,并得到一断改进和发展。(3)16位单片机阶段:以及Intel公司的MCS51单片机为代表,内部集成了测控系统的模数转换器(ADC)、程序运行监视器(WDT)、脉宽调制器(PWM)和高速I/O端口等,各项性能均有较大提高。由于结构相对复杂,在简单系统中应用较少。(4)全面发展阶段:如今单片机已成为各控制领域中普遍采用的智能化控制工具,小到玩具。家电行业,大到车载、舰船电子系统,遍及计量测试、工业过程控制、机械电子、金融

12、电子、商业电子、办工自动化、军事领域、工业机器人和航空航天领域。从高速、大寻址范围、强运算能力和多机通信能力通用型单片机,到小型廉价型、外围系统集成的专用型单片机,单片机的发展进入了百花齐放的时代,为用户的选择提供了空间。2.3 经典系列单片机型号及其性能表型号CPUROMRAM定时器/计数器I/O口中断源 80518031AH8位无128B2*16位3258051AH8位4KB128B2*16位3258051BH8位4KB128B2*16位3258751AH8位4KB EPROM128B2*16位3258751BH8位4KB EPROM128B2*16位3252.4 51系列单片机内部结构内

13、部结构如图g所示:图g 单片机内部结构图(1)中央处理器(CPU)中央处理器是单片机的核心,完成运算和控制功能,MCS51的CPU能处理8位二进制数或代码。(2)内部数据存储器(内部RAM)MCS51单片机中共有256个RAM单元供用户使用(后128单元被专用寄存器占用),用于存放可读写的数据,简称内部RAM。(3)内部程序存储器(内部ROM) MCS51单片机中共有容量为4KB的ROM,用于存放程序、原始数据或表格,简称内部ROM。(4)定时器/计数器MCS51单片机中共有两个16位的定时器/计数器,实现定时或计数功能,并以定时或计数的结果对单片机进行控制。(5)并行I/O口MCS51单片机

14、共有4个8位的I/O口(P0、P1、P2和P3),实现数据的并行输入/输出。(6)串行口 MCS51单片机有一个全双工的串行口,实现单片机和其他设备之间的串行数据传送。(7)中断控制系统MCS51单片机的中断功能较强,有5个中断源(外部中断两个,定时/计数器、中断两个,串行中断一个),全部中断分为高级和低级两个优先级别。(8)时钟电路MCS51单片机内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列,系统的晶振频率一般为6MHz或12MHz。2.5 AT89C51简介2.5.1 简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS 8位

15、微处理器。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。2.5.2 AT89C51芯片图如下图h图hVCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写

16、1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作

17、为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特

18、殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周

19、期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内

20、部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。 振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。2.5.3 AT89C51单片机内部结构图i所示

21、:图i AT89C51单片机内部结构如上图,AT89C51单片机主要由下面几个部分组成:1个8位中央处理单元(CPU)、片内Falsh 存储器、片内RAM。4个8位的双向可寻址I/O端口、1个全双工UART(通用异步接收发送器)的串行接口、2个16位的定时器/计数器、多个优先级的嵌套中断结构,以及一个片内振荡器和时钟电路。(4)AT89C51单片机的存储器组织在物理结构上,所有的ATMEL Flash单片机与MCS51单片机一样,都将程序存储器和数据存储器分为不同的存储空间。AT89C51单片机的程序存储器和数据存储器分为不同的逻辑空间,使得可用8位地址来访问内部数据存储器,可提高8位CPU的

22、存储处理速度.也可通过数据指针寄存器(DPTR)来产生16位外部数据存储器地址. 程序存储器为Flash存储器,在实际应用中,是当作ROM来使用的,即只可读不可写,主要用于存放编好的程序和表格常数.AT89C51单片机可寻址的程序存储器总空间为64KB(0000HFFFFH)。外部程序存储器的读选通脉冲为PSEN(程序存储器读选通信号)。数据存储器在物理上和逻辑上都分为两个地址空间:一个内部数据存储器空间和一个外部数据存储空间。外部数据存储器的寻址空间可达64KB(0000HFFFFH)。访问外部数据存储器时,CPU发出读RD和写WR信号。如果将RD和PSEN两个信号加到一个与门的输入端,然后

23、用与门的输出作为外部程序数据存储器的读选通脉冲。这样就可以将外部程序存储器空间和外部数据存储器空间合并在一起。2.6 LED显示器及键盘2.6.1 LED显示方式有共阴极和共阳极两种。在本实验中采用共阳极数码管。 (1)字形码表的产生以共阳极为例,LED七段数码管的每一段接高电平时亮,不同的组合可以显示不同的数字,有一定的对应关系。具体的对应关系如下:af b g e c d 0gfedcba10000001gfedcba11110012gfedcba01001003gfedcba01100004gfedcba00110015gfedcba00100106gfedcba00000107gfed

24、cba11110008gfedcba00000009gfedcba0010000(2)显示方式: 静态显示 在静态显示方式下,每一位显示器的字段控制线是独立的。当显示某一字时,该位的各字段线和字位线的电平不变,也就是各字段的亮灭状态不变。静态显示方式下LED显示器的电路连接方法是:每位LED的字位控制线门共阴极点或共阳极点连在一起,接地或接 5V;由于显示的是整数,所以小数点那位可以不接,所以其字段控制线 (ag)分别接到一个7位口。动态显示 1)利用人眼的视觉暂留效应,通过位选分时显示不同的数码管,这样可以看到正常的显示。调用延时子程序循环显示各路水压值, 使能清楚的看到八路水压的大小。2)

25、本实验采用共阴极数码管,动态循环显示各路水压值,并在设置上下限时显示上下限的大小。显示数码与共阳极断码的对应关系: 0 1 2 3 4 5 6 7 8 940H 79H24H 30H 19H 12H 02H 78H 00H 10H静态显示占的的IO资源多,动态显示可以节省IO口,本实验采用动态显示。LED显示器的字段码(七段码)显示字符共阴极字段码共阳极字段码显示字符共阴极字段码共阳极字段码03FHC0HA77H88H106HF9HB7CH83H25BHA4HC39HC6H34FHB0HD5EHA1H466H99HE79H86H56DH92HF71H8EH67DH82HP73H8CH707HF

26、8H熄灭00HFFH87FH80H96FH90H2.6.2 N位LED显示器:实际用的LED显示器通常有多位LED显示器组成,多位LED的控制包括字段控制(显示什么字符)和字位控制动(哪一位或哪几位亮)。N位LED显示器包括8*N根字段控制线和N根字位控制线。由LED显示原理可知,要使N位LED显示器的某一位显示出某个字符,必须要将此字符转换为相应的字段码,同时进行字位的选择和控制,这些是通过一定的接口来实现。N位LED显示器的接口形式与字段、字位控制线的译码以及LED显示方式有关。字段、字位控制线的译码方式分为软件译码和硬件译码两种,LED显示方式分为静态显示和动态显示之分。2.7 键盘键盘

27、是计算机不可缺少的输入设备,是实现人机对话的纽带。按其结构形式,键盘可分为非编码键盘和编码键盘,前者用软件方法产生键码,而后者用硬件方法产生键码。本设计采用的是独立式键盘。单片机中使用的都是非编码键盘。非编码键盘具有结构简单,成本低廉的优点。按键构成矩形,行列的交点都对应相应按键。而键,即是一机械开关,当键被按下,其所在行与列将会被接通。而非编码键的接口技术的关键问题就是如何确定被按键的行列位置,并凭此产生键码,也就是键码识别。当检测到有键被按下之后,随即就要进行去抖动处理。由于按键是机械开关结构,机械触点的弹性及电压突跳等因素,在触点闭合及断开的瞬间,会出现电压抖动。键盘上为了防止按键时抖动

28、造成错误按键信号,都要进行去抖。为了保证键识别的准确性,在电压信号抖动的情况下不能进行状态输入。去抖动有硬件和软件两种子方法。硬件方法就是加去抖动电路,从根本上避免抖动的产生;软件方法则是采用时间延迟以躲过抖动,待信号稳定之后再进行键扫描。一般采用软件延时方法时大约需延时1020ms后,再进行键扫描。2.8 蜂鸣器(1)蜂鸣器的作用 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。(2)蜂鸣器的分类 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。(3)蜂鸣器的电路图形符号 蜂鸣器在

29、电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。蜂鸣器的结构原理1压电式蜂鸣器 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后(1.515V直流工作电压),多谐振荡器起振,输出1.52.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。2电磁式蜂鸣器 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生

30、的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。2.9 多功能数字时钟原理图原理图如下,如其电路所示:(1)核心部件采用的是AT89C51单片机;(2)最小系统有复位电路和振荡电路组成;(3)控制电路,主要用三个开关组成用于时间的校验;(4)显示电路,6个七段数码管组成第三章 软件设计3.1 原理框图:中断处理程序秒寄存器与60比较分寄存器与60比较时寄存器加1分寄存器清零判断是否为1sRETI秒寄存器加1不等Y相等秒寄存器清零分寄存器加1相等时寄存器与60比较相等分寄存器清零不等不等通过对单片机的学习,我已经了解到单片机应用系统的软件设

31、计是研制过程中最关键的一项工作。没有软件,就无法实现单片机的控制。 开始初始化调用显示程序校验程序查询 框图所示:主程序为初始化,调用显示程序,校验程序循环往复的执行,中断处理程序:每隔10ms执行一次中断处理程序,并判断是否为一秒,若为一秒,相应的秒分时做相应的处理。显示程序:根据时分秒寄存器的值变化进行查表显示,且为动态显示。整点报时程序:插在频率为1KHZ时的程序位置,在时间59分59秒持续1s。闹铃程序:分别为1KHZ和500HZ。3.2 程序 1、程序功能的介绍:整点报时,实现4低一高在59分59秒时,输出1000Hz信号,音像持续1秒,在1000Hz音像结束时刻为整点,程序如下:M

32、OV R4,2BH ;分寄存器的数值送给R4MOV R2,2CH ;秒寄存器的数值送给R2 CJNE R4,#59,NAOL ;判断是否是59分,是的,则顺序执行,否则跳NAOL CJNE R2,#59,NAOL ;判断是否是59秒,是,则顺序执行,否则跳NAOL CPL P2.7 ;输出频率信号NAOL:NOP ;回原程序2、闹铃程序(6 00)采用方波,周期为600ms,占空比为50,响铃时间为60s MOV R4,2BH ;分寄存器的数值送给R4MOV R2,2CH ;秒寄存器的数值送给R2MOV R1,2AH;时寄存器的数值送给R1 CJNE R3,#30,NAOL1 ;300ms执行

33、一次 CJNE R1,#6,NAOL1 ;6:00响铃,时间为60s CJNE R4,#00H,NAOL1 CPL P2.7NAOL1:NOP3、源程序: ORG 0000H ;程序从0000H开始执行 LJMP MAIN ;长跳转 MAIN ORG 000BH ;定时T0中断入口地址 LJMP TT0 ;长跳转 TT0 ORG 0030H ;初始化程序从0030H执行MAIN:MOV DPTR,#DAT ;表头地址送DPTR MOV 20H,#00H ;中断计数器清0 MOV SP,#2FH ;入栈地址 MOV TMOD,#01H;定时01方式 MOV TH0,#0D8H;10ms MOV

34、TL0,#0EFH SETB EA;开总中断 SETB ET0;开定时T0 MOV 2AH,#00H ;时 MOV 2BH,#00H ;分 MOV 2CH,#00H;秒 SETB TR0;开定时T0中断 MOV R3,#100 ; 中断100次=1SLOOP: LCALL RIS ;跳到显示处理程序 MOV R1,2AH ;时寄存器的内容赋给R1寄存器 ; MOV R4,2BH ;分寄存器的内容赋给R4寄存器MOV R2,2CH ;秒寄存器的内容赋给R2寄存器LOOP1:JB P1.0,NEXT2 ;判断秒校时按钮是否按下, ACALL DELAY ;消斗处理10ms JB P1.0,NEXT

35、2 ;再次判断秒校时按钮是否按下 NEXT1: JNB P1.0,NEXT1 ;等待按钮弹起 MOV A,2CH ;秒加一 ADD A,#01 MOV 2CH,A CJNE A,#60,NEXT2 ;判断秒是否满60 MOV 2CH,#00H ;相等则秒寄存器清零 NEXT2: JB P1.3,NEXT4 ;判断分校时按钮是否按下 ACALL DELAY ;消斗处理10msJB P1.3,NEXT4 ;再次判断分校时按钮是否按下 NEXT3: JNB P1.3,NEXT3 ;等待按钮弹起 MOV A,2BH ;分加一 ADD A,#01 MOV 2BH,A CJNE A,#60,NEXT4 ;

36、判断分是否满60 MOV 2BH,#00H ;相等则分寄存器清零 NEXT4: JB P1.6,LOOP ;判断时校时按钮是否按下 ACALL DELAY ;消斗处理10ms JB P1.6,LOOP ;再次判断时校时按钮是否按下NEXT5: JNB P1.6,NEXT5 ;等待按钮弹起 MOV A, 2AH ;时加一 ADD A,#01H MOV 2AH,A CJNE A,#24,LOOP ;判断时是否满24 MOV 2AH,#00H ;相等则时寄存器清零AJMP LOOPTT0:MOV TH0,#0D8H ;中断程序MOV TL0,#0EFH ;重新赋值 DJNZ R3,TTT ;一秒的判

37、断 MOV R3,#100 MOV A,2CH ;修改时间存储单元 ADD A,#1 ;以下都是相应时分秒的修改 MOV 2CH,A CJNE A,#60,TTT MOV 2CH,#00H MOV A,2BH ADD A,#1 MOV 2BH,A CJNE A,#60,TTT MOV 2BH,#00 MOV A,2AH ADD A, #1 MOV 2AH,A CJNE A,#24,TTTMOV 2AH,#00TTT : CJNE R3,#30,NAOL1CJNE R1,#6,NAOL1 CJNE R4,#00H,NAOL1 CPL P2.7NAOL1:NOP RETI RIS:MOV DPTR

38、,#TAB ;时间显示程序 MOV A,2AH ;采用除法 MOV B,#0AHDIV ABMOV R6,#250 ;等待时间MOV DPTR,#TAB ;查表MOVC A,A+DPTRMOV P0,A ;显示SETB P2.0DS1:DJNZ R6,DS1 CLR P2.0MOV R6,#250MOV A,BMOVC A,A+DPTRMOV P0,ASETB P2.1DS2:DJNZ R6,DS2 CLR P2.1 MOV A,2BH MOV B,#0AHDIV ABMOV R6,#250MOV DPTR,#TABMOVC A,A+DPTRMOV P0,ASETB P2.2DS3:DJNZ R6,DS3 CLR P2.2 MOV A,BMOV R6,#250MOVC A,A+DPTRMOV P0,ASETB P2.3DS4:DJNZ R6,DS4CLR P2.3 MOV A,2CH MOV B,#0AH DIV AB MOV R6,#250MOV DPTR,#TAB MOVC A,A+DPTR MOV P0,A SETB P2.4DS5:DJNZ R6,DS5 CLR P2.4 MOV A,BMOV R6,#250MOVC A,A+DPTRMOV P0,ASETB P2.5DS6:DJNZ R6,DS6

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号