最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

单片机 定时闹钟

来源:动视网 责编:小OO 时间:2025-09-25 14:01:27
文档

单片机 定时闹钟

摘要本设计是定时闹钟的设计,由单片机ATC51芯片和LED数码管为核心,辅以必要的电路,构成的一个单片机电子定时闹钟。电子钟设计可采用数字电路实现,也可以采用单片机来完成。数字电子钟是用数字集成电路构成的,用数码管显示“时”,“分”,“秒”的现代计时装置。若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路
推荐度:
导读摘要本设计是定时闹钟的设计,由单片机ATC51芯片和LED数码管为核心,辅以必要的电路,构成的一个单片机电子定时闹钟。电子钟设计可采用数字电路实现,也可以采用单片机来完成。数字电子钟是用数字集成电路构成的,用数码管显示“时”,“分”,“秒”的现代计时装置。若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路
摘要

本设计是定时闹钟的设计,由单片机ATC51芯片和LED数码管为核心,辅以必要的电路,构成的一个单片机电子定时闹钟。电子钟设计可采用数字电路实现,也可以采用单片机来完成。数字电子钟是用数字集成电路构成的,用数码管显示“时”,“分”,“秒”的现代计时装置。若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且其成本也有所降低,所以在该设计中采用单片机利用ATC51,它是低功耗、高性能的CMOS型8位单片机。片内带有4KB的Flash存储器,且允许在系统内改写或用编程器编程。另外, ATC51的指令系统和引脚与8051完全兼容,片内有128B 的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。ATC51单片机结合七段显示器设计的简易定时闹铃时钟,可以设置现在的时间及显示闹铃设置时间,若时间到则发出一阵声响,进—步可以扩充控制电器的启停。

设计内容包括了秒信号发生器、时间显示电路、按键电路、供电电源以及闹铃指示电路等几部分的设计。采用四个开关来控制定时闹钟的工作状态,分别为:K1、设置时间和闹钟的小时;K2、设置小时以及设置闹钟的开关;K3、设置分钟和闹钟的分钟;K4、设置完成退出。

课设准备中我根据具体的要求,查找资料,然后按要求根据已学过的时钟程序编写定时闹钟的程序,依据程序利用proteus软件进行了仿真试验,对出现的问题进行分析和反复修改源程序,最终得到正确并符合要求的结果。

设计完成的定时闹钟达到课程设计的要求,在到达定时的时间便立即发出蜂鸣声音,持续一分钟。显示采用的六位数码管电路,如果亮度感觉不够,可以通过提升电阻来调节,控制程序中延迟时间的长短,可以获得不同的效果。也可以改蜂鸣器为继电器,通过控制继电器从而进一步扩展的来控制一些家电开关。

目录

1 概述    4

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

2.1 总体设计    5

2.2 系统时钟电路设计    5

2.3系统复位电路的设计    5

2.4  闹钟指示电路设计    6

2.5 电子闹钟的显示电路设计    6

3 软件设计    7

3.1 概述    7

3.2 主模块的设计    7

3.3 基本显示模块设计    8

3.4 时间设定模块设计    8

3.5 闹铃功能的实现    9

4.Proteus软件仿真    12

5课程设计体会    14

参考文献    15

附1:源程序代码    16

附2:系统原理图    26

1 概述

本设计是定时闹钟的设计,由单片机ATC51芯片和LED数码管为核心,辅以必要的电路,构成的一个单片机电子定时闹钟。

  定时闹钟设计可采用数字电路实现,也可以采用单片机来完成。定时闹钟是用数字集成电路构成的,用数码管显示“时”,“分”,“秒”的现代计时装置。单片机具有集成度高、功能强、通用性好、特别是它能耗低、价格便宜、可靠性高、抗干扰能力强和使用方便等独特的优点,所以单片机现在广泛的应用到家用电器、机电产品、儿童玩具、机器人、办公自动化产品等领域。所以在该设计中采用单片机利用ATC51,它是低功耗、高性能的CMOS型8位单片机。片内带有4KB的Flash存储器,且允许在系统内改写或用编程器编程。另外, ATC51的指令系统和引脚与8051完全兼容,片内有128B 的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。ATC51单片机结合七段显示器设计的简易定时闹铃时钟,可以设置现在的时间及显示闹铃设置时间,若时间到则发出一阵声响,进—步可以扩充控制电器的启停。

  设计内容包括了秒信号发生器、时间显示电路、按键电路、供电电源以及闹铃指示电路等几部分的设计。采用四个开关来控制定时闹钟的工作状态,分别为:K1、设置时间和闹钟的小时;K2、设置小时以及设置闹钟的开关;K3、设置分钟和闹钟的分钟;K4、设置完成退出。

  课设准备中根据具体的要求,查找资料,然后按要求根据已学过的时钟程序编写定时闹钟的程序,依据程序利用proteus软件进行了仿真试验,对出现的问题进行分析和反复修改源程序,最终得到正确并符合要求的结果。

  设计完成的定时闹钟达到课程设计的要求,在到达定时的时间便立即发出蜂鸣声音,持续一分钟。显示采用的六位数码管电路,如果亮度感觉不够,可以通过提升电阻来调节,控制程序中延迟时间的长短,可以获得不同的效果。也可以改蜂鸣器为继电器,通过控制继电器从而进一步扩展的来控制一些家电开关。

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

2.1 总体设计

电子闹钟应包括秒信号发生器、时间显示电路、按键电路、供电电源以及闹铃指示电路等几部分。

按键功能说明:K1,设置时间和闹钟的小时;K2,设置小时以及设置闹钟的开关;K3,设置分钟和闹钟的分钟;K4;设置完成退出。

电子闹钟的系统框图如下所示:

图 1

电子闹钟的主电路指的是图1中虚线框内部分,主要涉及到CPU电路和按键按钮电路。主机的设计具体地说有:1)系统时钟电路设计;2)系统复位电路设计;3)按键与按钮电路设计;4)闹铃声指示电路设计。

2.2 系统时钟电路设计

对于时间要求不是很高的系统,只要按图进行设计就能使系统可靠起振并稳定运行。但由于原理图中的C1、C2电容起着系统时钟频率微调和稳定的作用,因此,在本闹钟系统的实际应用中一定要注意正确选择参数(30±10 PF),并保证对称性(尽可能匹配),选用正牌厂家生产的瓷片或云母电容,如果可能的话,温度系数要尽可能低。实验表明,这2个电容元件对闹钟的走时误差有较大关系。

2.3系统复位电路的设计

智能系统一般应有手动或上电复位电路。复位电路的实现通常有两种方式:1)RC复位电路;2)专用µP监控电路。前者实现简单,成本低,但复位可靠性相对较低;后者成本较高,但复位可靠性高,尤其是高可靠重复复位。对于复位要求高、并对电源电压进行监视的场合,大多采用这种方式。

本次课程设计采用了上电按钮电平复位电路。

2.4  闹钟指示电路设计

闹铃指示可以有声或光两种形式。本系统采用声音指示。关键元件是蜂鸣器。蜂鸣器有无源和有源两种,前者需要输入声音频率信号才能正常发声,后者则只需外加适当直流电源电压即可,元件内部已封装了音频振荡电路,在得电状态下即起振发声。市场上的有源蜂鸣器分为3V、5V、6V等系列,以适应不同的应用需要。闹钟电路是用比较器来比较计时系统和定时系统的输出状态,如果计时系统和定时系统的输出状态相同,则发出一个脉冲信号,再和一个高频信号混合,送到放大电路驱动扬声器发声,从而实现定时闹响的功能。其电路设计参见系统原理图。

2.5 电子闹钟的显示电路设计

本次课程设计采用了6位数码管显示电路。在6位LED显示时,为了简化电路,降低成本,采用动态显示的方式, 6个LED显示器共用一个8位的I/O, 6位LED数码管的位选线分别由相应的P2. 0~P2. 5控制,而将其相应的段选线并联在一起,由一个8位的I/O口控制,即P0口。译码显示电路将“时”、“分”、“秒”计数器的输出状态菁七段显示译码器译码,通过6位LED七段显示器显示出来。到达定时电路时根据计时系统的输出状态产生一脉冲信号,然后去触发一音频发生器实现闹铃。校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整的。

3 软件设计

3.1 概述

软件设计的重点在于秒脉冲信号的产生、显示的实现、以及按键的处理等方面。基于软件的秒脉冲信号通常有延时法和定时中断法。延时法一般采用查询方式,在延时子程序前后必然需要查询和处理的程序,导致误差的产生,因此其秒脉冲的精度不高;中断法的原理是,利用单片机内部的定时器溢出中断来实现。例如,设定某定时器每100ms中断1次,则10次的周期为1s。本系统中所使用的晶振频率为12MHZ。

3.2 主模块的设计

主模块是系统软件的主框架。结构化程序设计一般有“自上而下”和“自下而上”两种方式,“自上而下”法的核心就是主框架的构建。它的合理与否关系到程序最终的功能的多少和性能的好坏。本系统的主模块的程序框图如下图2所示:

图 2

3.3 基本显示模块设计

基本显示模块设计的重点是由显示代码取得相应的段码,显示段码数据的并行发送,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。

程序流程如图3所示。

                

关显示以免显示抖动

通过串口将时分秒数据传入数码管

打开显示

图 3

3.4 时间设定模块设计

时间设定模块的设计要点是按键的去抖处理与“一键多态”的处理。即只涉及4个键完成了6位时间参数的设定。软件法去抖动的实质是软件延时,即检测到某一键状态变化后延时一段时间,再检测该按键的状态是否还保持着,如是则作为按键处理,否则,视为抖动,不予理睬。去抖中的延时时间一般参考资料多描述为10ms左右,实际应用中,应大于20ms,否则,会导致按一次作多次处理,影响程序正常执行。“一键多态”即多功能键的实现思想是,根据按键时刻的系统状态,决定按键采取何种动作,即何种功能。

其流程图如下图4所示:

                            

图 4

3.5 闹铃功能的实现

闹铃功能的实现涉及到两个方面:闹铃时间设定和是否闹铃判别与相应处理。闹铃时间设定模块的设计可参照时间设定模块,这里着重阐述闹铃判别与处理模块的设计问题。闹铃判别与闹铃处理的关键在于判别何时要进行闹铃。当时十位、时个位、分十位、分个位中任一位发生改变(进位)时,就必须进行闹铃判别。译码显示电路将“时”、“分”、“秒”计数器的输出送到七段显示译码驱动器译码驱动,通过六个七段LED显示器显示出来。闹铃电路根据计时系统的输出状态产生一脉冲信号,然后加上一个高频或低频信号送到放大电路驱动蜂鸣器发声实现报时。校时电路是直接加一个脉冲信号到时计数器或者分计数器或者秒计数器来对“时”、“分”、“秒”显示数字进行校对调整。

其流程图如下所示:

图5.1

                                         图5.2

考虑到实用性,在该电子钟的设计中修改定时或调整时间时采用了闪烁,而且以定时20组闹钟。在编程上,首先进行了初始化定义了程序的入口地址以及中断的入口地址,在主程序的开始定义了一组固定单元用来存储计数的秒,分,时以及定时时间的序号等。

在显示程序段中主要进行了闪烁的处理,采用定时器中断置标志位,再与位选相互结合的方法来控制调时或定时中的闪烁。时,分,秒显示则是用了软件译码(查表)的方式,再用了一段固定的程序段进行进制转化。初始化之后,用中断方式对其计数,计数的同时采用了定时器比较的方法,比较当前计数时间与定时时间是否相等,若相等则将闹铃标志位置数。由于定义了定时闹钟组,在这里采用中断组次,每中断一次比较一组闹钟,避免了一次比较中断时间过长,影响下次中断时间。显示之后查询闹铃标志位是否与前面所置数相等,若相等则响铃。

为了避免响铃影响显示,采用了每显示几屏以后在显示程序中出现脉冲,驱动喇叭,不会影响显示。之后用查询方式对按键进行判断,若有键按下,则进行软件延时消抖,避免了抖动引起的干扰,执行相应的定时,选时或调时程序段。对当前时间或定时时间修改后又返回到最初的显示程序段,如此循环下去。

4.Proteus软件仿真

本次课程设计所采用的程序调试软件为wave6000集成调试软件,所采用的仿真软件为protus 6 professional软件。

本次试验的效果图如下所示:

性能及误差分析

该电子钟有三个按键: K1, K2和K3键。按K1键进行校时,可以分别对时及分进行单独校时,使其校正到标准时间,校时时需要校正哪一位哪一位就闪烁。按K2键是对闪烁位进行加一或返回的操作。按K3键调整定时时间和定时组数,需要调整哪一位哪一位就闪烁,该电子钟最多可定时20组闹钟。经测试该电子钟在一天的累计误差约为0. 1秒。该电子钟的误差主要由晶振自身的误差所造成,晶振的误差约为0. 0001~0. 000001。在软件的编程过程中所产生的误差比较小,在重装初值的过程中大概需要约8个机器周期,但在程序开始对定时器赋初值时,多加了8个机器周期,减小了这方面的误差。另外在中断的过程中,只会在第一次计时时产生时间的偏移,而它所产生累计误差很小,可以忽略。

结构化软件程序的调试一般可以将重点放在分模块调试上,统调是最后一环。软件调试可以采取离线调试和在线调试两种方式。前者不需要硬件仿真器,可借助于软件仿真器即可;后者一般需要仿真系统的支持。本次课设,采用wave6000集成调试软件来调试程序,通过各个模块程序的单步或跟踪调试,使程序逐渐趋于正确,最后统调程序。

仿真部分采用protus 6 professional软件,此软件功能强大且操作较为简单,可以很容易的实现各种系统的仿真。

首先打开protus 6 professional软件,在元件库中找到要选用的所有元件,然后进行原理图的绘制;绘制好后再选择wave6000已经编译好的*.hex文件,选择运行,观察显示结果,根据显示的结果和课设的要求再修改程序,再运行查,直到满足要求。

5 课程设计体会

单片机是一门应用性很强的学科,课程设计是培养我们综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考察过程。虽然在做课程设计以前已经系统的把单片机课本认真的学习了一下,但是在刚拿到设计任务书时还是有点一头雾水,不知道该从哪里下手。令人欣慰的是经过一周的学习,虽然过程很艰辛,但是总算实现了定时闹钟的功能,所有的努力都很值得。这一周的大部分时间都在研究程序怎么处理,在这个过程中加深了我对汇编语言命令的应用,而且也更加了解到软硬件配套的重要性。

通过这次课程设计,使我对这们功课有了更深刻的认识和了解。首先对于硬件电路的工作原理有了进一步系统的学习,同样就有了进一步的认识,使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能提高自己的实际动手能力和思考的能力。其次软件在这次设计中也有不足之处,比如音乐的响声不连续,但又不知道从哪个地方入手解决这个问题,这要求在以后的学习中,拓宽自己的知识面,解决设计的不足之处。

总之,通过这次课程设计不仅使我巩固了本课程所学的基本知识,还使我具有了撰写科研报告的初步训练能力,我相信这些能力在我以后的工作或者是再学习中一定会起到不小的作用,一切的辛苦和艰难都是值得的。

参考文献

[1] 余发山 单片机原理及应用技术,徐州:中国矿业大学出版社,2003

[2] 杨刚,周群.电子系统设计与实践.电子工业出版社.2004:18-23 341-347 118-122

[3] 何立民.单片机高级教程(应用与设计).北京:北京航空航天大学出版社,2000年.53-98

[4] 涂时亮,张友德.单片微机控制技术.清华大学出版社.1994:86-87 146-147

[5] 《融会贯通 Protel99电路设计》 弘道工作室 北京 人民交通出版设,2000.

[6] 《单片机原理及接口技术实验》 朱定华 北京 北方交通大学出版社2002.11

附1:源程序代码

K1 EQU P1.0  ;在程序开始前定义变量

           K2 EQU P1.1

           K3 EQU P1.2

           K4 EQU P1.3

           ORG 0000H     

           LJMP MAIN

           ORG 000BH     

           LJMP TIME

 ORG 0100H

      MAIN:MOV SP,#50H

           MOV 20H,#00H   ;时间 BIN  SECOND

           MOV 21H,#00H   ;     BIN  MINUTE

           MOV 22H,#00H   ;     BIN  HOUR

           MOV 23H,#01H   ;闹铃 BIN MINUTE

           MOV 24H,#01H   ;    BIN HOUR

           MOV 25H,#00H   ;定义一个标志位

           MOV 30H,#00H   ;时间   BCD  SECOND

           MOV 31H,#00H   ;

           MOV 32H,#00H   ;       BCD  MINUTE

           MOV 33H,#00H   ;

           MOV 34H,#00H   ;       BCD  HOUR

           MOV 35H,#00H   ;

           MOV 36H,#01H   ;闹铃   BCD MINUTE

           MOV 37H,#00H   ;

           MOV 38H,#01H   ;           BCD HOUR

           MOV 39H,#00H   ;

             MOV TMOD,#01H  ;16位计数器 T0,方式1

           MOV TH0,#03CH  ;赋初值

           MOV TL0,#0B0H      

           MOV IE,#10000111B   ;开中断   T0,EA=1

           SETB TR0            ;T0启动计数

           MOV R2,#14H         ;计数器

           MOV P2,#0FFH

 LOOP:LCALL TIMEPRO      ; 调用现在时间与闹铃时间比较程序

           LCALL DISPLAY1     ; 调用现在时间显示子程序

           JB K1,M1           ; 判断按键是否按下

           LCALL XIAOZHEN1    ; 调用消抖程序

           MOV C,25H.0

           JC A1

        A1:CLR 25H.0

           LCALL SETTIME     ;  调用设置现在时间子程序

           LJMP LOOP

        M1:JB K2,M2

           LCALL XIAOZHEN2

           MOV C,25H.0

           JC A2

        A2:CLR 25H.0

           LCALL SETATIME   ;  调用设置闹钟的程序

           LJMP LOOP

        M2:JB K4,M3

        A3:LCALL XIAOZHEN3

           MOV C,25H.0

           JC A4

        A4:CLR 25H.0

        M3:LJMP LOOP

SETTIME:

       L0:LCALL DISPLAY1

          JB K2,L1

          LCALL XIAOZHEN4

          MOV C,25H.0

          JC A5

       A5:CLR 25H.0

          INC 22H

          MOV A,22H

          CJNE A,#18H,GO12

          MOV 22H,#00H

          MOV 34H,#00H

          MOV 35H,#00H

          LJMP L0

       L1:JB K3,L2

          LCALL XIAOZHEN5

          MOV C,25H.0

          JC A6

       A6:CLR 25H.0

          INC 21H

          MOV A,21H

          CJNE A,#3CH,GO11

          MOV 21H,#00H

          MOV 32H,#00H

          MOV 33H,#00H

          LJMP L0

     GO11:MOV B,#0AH

          DIV AB

          MOV 32H,B

          MOV 33H,A

          LJMP L0

     GO12:MOV B,#0AH

          DIV AB

          MOV 34H,B

          MOV 35H,A

          LJMP L0

       L2:JB K4,L0

          LCALL XIAOZHEN3

          MOV C,25H.0

          JC AX

       AX:CLR 25H.0

          RET

SETATIME:LCALL DISPLAY2   ;调用闹钟设置,闹铃响时的显示程序

       N0:LCALL DISPLAY2

          JB K3,N1

          LCALL XIAOZHEN6

          MOV C,25H.0

          JC A7

        A7:CLR 25H.0

          INC 24H

          MOV A,24H

          CJNE A,#24,GO22

          MOV 24H,#00H

          MOV 38H,#00H

          MOV 39H,#00H

          LJMP N0

       N1:JB K1,N2

          LCALL XIAOZHEN7

          MOV C,25H.0

          JC A8

       A8:CLR 25H.0

          INC 23H

          MOV A,23H

          CJNE A,#60,GO21

          MOV 23H,#00H

          MOV 36H,#00H

          MOV 37H,#00H

          LJMP N0

    GO21:MOV B,#0AH

         DIV AB

         MOV 36H,B

         MOV 37H,A

         LJMP N0

    GO22:MOV B,#0AH

         DIV AB

         MOV 38H,B

         MOV 39H,A

         LJMP N0

      N2:JB K4,N0

         LCALL XIAOZHEN3

         MOV C,25H.0

         JC A9

      A9:CLR 25H.0

         RET

TIMEPRO:MOV A,21H

          MOV B,23H

          CJNE A,B,BK

          MOV A,22H

          MOV B,24H

          CJNE A,B,BK

          SETB 25H.0

          MOV C,25H.0

          JC XX

       XX:LCALL TIMEOUT

       BK:RET

  TIMEOUT:

       X1:LCALL BZ   

          LCALL DISPLAY2

          CLR 25H.0

          JB K4, X1

          RET

 BZ:CLR P3.7

         MOV R7,#250

      T2:MOV R6,#124

      T3:DJNZ R6,T3

         DJNZ R7,T2

         SETB P3.7

         JB K4,XY

         LCALL XIAOZHEN3

         MOV C,25H.0

         JC XY1

      XY:RET

     XY1:LJMP LOOP

XIAOZHEN1:LCALL DISPLAY1

             JB K1,XIAOZHEN1

             MOV C,K1

             JC XIAOZHEN1

             LCALL DELAY

             MOV C,K1

             JC XIAOZHEN1

    STOP1:MOV C,K1

          JNC STOP1

          LCALL DELAY

             MOV C,K1

             JNC STOP1

             SETB 25H.0

             RET

   XIAOZHEN2:LCALL DISPLAY2

             JB K2,XIAOZHEN2

             MOV C,K2

             JC XIAOZHEN2

             LCALL DELAY

             MOV C,K2

             JC XIAOZHEN2

       STOP2:MOV C,K2

             JNC STOP2

             LCALL DELAY

             MOV C,K2

             JNC STOP2

             SETB 25H.0

             RET

    XIAOZHEN3:LCALL DISPLAY1

              JB K4,XIAOZHEN3

              MOV C,K4

              JC XIAOZHEN3

              LCALL DELAY

              MOV C,K4

              JC XIAOZHEN3

        STOP3:MOV C,K4

              JNC STOP3

              LCALL DELAY

              MOV C,K4

              JNC STOP3

              SETB 25H.0

              RET

    XIAOZHEN4:LCALL DISPLAY1

              JB K2,XIAOZHEN4

              MOV C,K2

              JC XIAOZHEN4

              LCALL DELAY

              MOV C,K2

              JC XIAOZHEN4

        STOP4:MOV C,K2

              JNC STOP4

              LCALL DELAY

              MOV C,K2

              JNC STOP4

              SETB 25H.0

              RET

    XIAOZHEN5:LCALL DISPLAY1

              JB K3,XIAOZHEN5

              MOV C,K3

              JC XIAOZHEN5

              LCALL DELAY

              MOV C,K3

              JC XIAOZHEN5

        STOP5:MOV C,K3

              JNC STOP5

              LCALL DELAY

              MOV C,K3

              JNC STOP5

              SETB 25H.0

              RET

    XIAOZHEN6:LCALL DISPLAY2

              JB K3,XIAOZHEN6

              MOV C,K3

              JC XIAOZHEN6

              LCALL DELAY

              MOV C,K3

              JC XIAOZHEN6

        STOP6:MOV C,K3

              JNC STOP6

              LCALL DELAY

              MOV C,K3

              JNC STOP6

              SETB 25H.0

              RET

    XIAOZHEN7:LCALL DISPLAY2

              JB K1,XIAOZHEN7

              MOV C,K1

              JC XIAOZHEN7

              LCALL DELAY

              MOV C,K1

              JC XIAOZHEN7

        STOP7:MOV C,K1

              JNC STOP7

              LCALL DELAY

              MOV C,K1

              JNC STOP7

              SETB 25H.0

              RET

DELAY:MOV R4,#14H

        DL00:MOV R5,#0FFH

        DL11:DJNZ R5,DL11

             DJNZ R4,DL00

             RET

TIME:PUSH ACC

            PUSH PSW

            MOV TH0,#03CH

             MOV TL0,#0B0H

            DJNZ R2,RET0

            MOV R2,#14H

         MOV A,20H

         CLR C

         INC A

         CJNE  A,#3CH,GO1

         MOV 20H,#0

             MOV 30H,#0

             MOV 31H,#0

         MOV A,21H

         INC A

        CJNE A,#3CH,GO2

        MOV 21H,#0H

        MOV 32H,#0

        MOV 33H,#0

        MOV A,22H

        INC A

        CJNE A,#18H,GO3

        MOV 22H,#00H

        MOV 34H,#0

        MOV 35H,#0

        AJMP RET0

    GO1:MOV 20H,A

        MOV B,#0AH

        DIV AB

        MOV 31H,A

        MOV 30H,B

        AJMP RET0

         GO2:MOV 21H,A

             MOV B,#0AH

             DIV AB

             MOV 33H,A

             MOV 32H,B

         AJMP RET0

         GO3:MOV 22H,A

             MOV B,#0AH

             DIV AB

             MOV 35H,A

             MOV 34H,B

                AJMP RET0

        RET0:POP PSW

             POP ACC

             RETI

     DISPLAY1:MOV R0,#30H

              MOV R3,#0FEH

              MOV A,R3

       PLAY1:MOV P2,A

             MOV A,@R0

             MOV DPTR,#DSEG1

             MOVC A,@A+DPTR

             MOV P0,A

             LCALL DL1

             MOV P2,#0FFH

             MOV A,R3

             RL A

             JNB ACC.6,LD1

             INC R0

             MOV R3,A

             LJMP  PLAY1

         LD1:RET

DISPLAY2:PUSH ACC

             PUSH PSW

             MOV R0,#36H

             MOV R3,#0FBH

             MOV A,R3

       PLAY2:MOV P2,A

             MOV A,@R0

             MOV DPTR,#DSEG1

             MOVC A,@A+DPTR

             MOV P0,A

             LCALL DL1

             MOV P2,#0FFH

             MOV A,R3

             RL A

             JNB ACC.6,LD2

             INC R0

             MOV R3,A

             LJMP PLAY2

         LD2:POP PSW

             POP ACC

             RET

         DL1:MOV R7,#05H

         DL:MOV R6,#0FFH

        DL6:DJNZ R6,$

            DJNZ R7,DL

            RET

DSEG1:DB 3FH,06H,5BH,4FH,66H

            DB 6DH,7DH,07H,7FH,6FH

END

附2:系统原理图

文档

单片机 定时闹钟

摘要本设计是定时闹钟的设计,由单片机ATC51芯片和LED数码管为核心,辅以必要的电路,构成的一个单片机电子定时闹钟。电子钟设计可采用数字电路实现,也可以采用单片机来完成。数字电子钟是用数字集成电路构成的,用数码管显示“时”,“分”,“秒”的现代计时装置。若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top