文档库 最新最全的文档下载
当前位置:文档库 › 简易电子钟LED 毕业设计

简易电子钟LED 毕业设计

绪论 (2)

摘要 (3)

第1章总体设计方案 (4)

1.1 数字电子钟的电路概述 (4)

1.2 电路的设计方案 (4)

1.3 总体简易设计电路图 (5)

第2章系统的硬件设计 (7)

2.1 系统的硬件构成及功能 (7)

2.2 单元电路的分析与设计 (7)

2.2.1 AT89C51单片机及其引脚说明 (7)

2.2.2 晶体振荡器 (11)

2.2.3 LED数码管 (11)

2.2.4 74LS373的功能及引脚说明 (13)

第3章系统的软件设计 (16)

3.1 软件编程要点 (16)

3.2 项目程序流程图 (16)

3.2 项目的源程序 (19)

第4章系统调试 (28)

4.1常用调试工具 (28)

4.1.1 keil软件 (28)

4.1.2 Proteus软件 (29)

4.1.3 系统调试 (29)

第5章总结 (30)

附录整机电路图 (31)

参考资料 (32)

在信息技术急速发展的今天,计算机科学日新月异。而单片机作为计算机科学的一个分支,在微机控制领域得到长足的发展。随着单片机的发展与科学技术的提高,单片机已经成为人类生产生活中不可缺少的工具。现在,单片机的应用已经渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置、飞机上各种仪表的控制、计算机的网络通讯与数据传输、工业自动化过程的实时控制和数据处理、广泛使用的各种智能IC卡、民用豪华轿车的安全保障系统、录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。

单片机要解决的问题多数是仍是老问题,新颖之处是比以前用较少的元件。尤其是设计逻辑关系复杂的控制系统,过去用通用的逻辑门集成电路芯片将需要几十片甚至上百片,而现在只用几片就能够实现,而且方便灵活,做设计修改或改动功能时,只消改写软件原文件重写芯片,免去了在硬件线路上大动干戈的苦差事。大连减少芯片个数主要是靠单片机的可编程性和高度集成化。使开发周期更短,制造成本更低,用电更省和可靠性更高。要求用各种逻辑门芯片实现的逻辑电路,可以用一片单片机芯片加上相应的控制软件就可以实现。

摘要

计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。单片机在这种情况下诞生了。截止今日,单片机应用技术飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。

单片计算机即单片微型计算机。(Single-Chip Microcomputer ),是集CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。而51系列单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。

本文通过对一个基于单片机的能实现定时,秒表,万年历,闹钟等功能的多功能电子时钟的设计学习,详细介绍了单片机应用中的数据转换显示,液晶显示原理,键盘扫描原理,单片机的定时中断原理。从而达到学习、了解单片机相关指令在各方面的应用。系统由AT89S52、温度检测芯片、时钟芯片、液晶显示器、存储器、稳压电源等部分构成,能实现时钟日历显示的功能,能进行时、分、秒的显示和实时温度显示。也具有日历计算和时钟、日历的校准,定时时间的设定和闹铃等功能。文章后附有电路原理图、PCB板图和程序清单,以供读者参考。因水平有限,难免有疏落不足之处,敬请老师和同学能给与批评指正。

关键字:定时秒表闹钟万年历

第1章总体设计方案

1.1 数字电子钟的电路概述

数字钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能和报时功能。因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路、报时电路和振荡器组成。干电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路组成。秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发现胡一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计时器,可实现对一天24小时的累计。译码显示电路将“时”、“分”、“秒”计数器的输出状态菁七段显示译码器译码,通过六位LED七段显示器显示出来。整点报时电路时根据计时系统的输出状态产生一脉冲信号,然后去触发一音频发生器实现报时。校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整的。

1.2 电路的设计方案

根据功能和指标要求,本系统选用AT89C51单片机为主控机。通过扩展必要的外围接口电路,实现对数字电子钟的设计。具体设计考虑如下:(1)由于此次所要设计的是简单的数字电子钟显示时、分、秒功能,因此需要用LED数码管作为显示器。

(2)同时用于调时、分的调时电路分别接引脚P1.1、P1.2。

(3)用并行口P0.0-P0.7作为段选码,P2.0-P2.5作为位选码,相应的驱动芯片用74LS373。

(4)同时还需晶体振荡电路,复位电路及中断电路。

该数字电子钟可以完成以下功能:

(1)能准确的显示0~23小时59分59秒;

(2)具有方便的校时功能;

(3)具有特定作息报时功能;

通过将以上电路组合起来实现本次我所要设计完成的简易数字电子钟及其功能。

1.3 总体简易设计电路图

图1-1 总体结构框图

工作原理:数字钟一般由振荡器、分频器、计数器、译码器、显示器等几部分组成。这些都是数字电路中应用最广的基本电路。石英晶体振荡器产生的时标信号送到分频器,分频电路将时标信号分成每秒一次的方波秒信号。秒信号送入计数器进行计数,并把累计的结果以“时”、“分”、“秒”的数字显示出来。“秒”的显示由两级计数器和译码器组成的六十进制计数电路实现:“分”的显示电路

与“秒”相同,“时”的显示由两级计数器和译码器组成的二十四进制计数电路来实现。所有计时结果由六位数码管显示。

第2章系统的硬件设计

2.1 系统的硬件构成及功能

根据总体要求分析,数字电子钟的电路系统由秒信号发生器、“时、分、秒”LED数码管显示电路、校时电路、复位电路等组成。秒信号发生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。“时、分、秒”分别通过不同进制的计数器来实现。74LS373将“时、分、秒”的输出状态经LED数码管显示出来。电路是根据计时系统的输出状态产生一脉冲信号。校时电路是用来对“时、分、秒”显示数字进行校对调整的。根据实际情况,硬件的主要单片机为AT89C51芯片,它能够满足数据的采集、控制和数据处理的需求。调试时间时,有相应的调试时、分的按钮。

2.2 单元电路的分析与设计

2.2.1 AT89C51单片机及其引脚说明

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51单片机如图2-1:

图2-1 AT89C51单片机

功能特性及引脚说明:

AT89C51提供以下标准功能:4K字节FLASH闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

1、主电源引脚(2根)

(1) VCC:电源输入,接+5V电源;

(2) GND:接地线。

2、外接晶振引脚(2根)

(1) XTAL1:片内晶振电路的输入端;

(2) XTAL2:片内晶振电路的输出端。

3、控制引脚(4根)

(1) RST/VPP:复位引脚,引脚上出现2个机器周期的高电平将使单片机复位;

(2) ALE/PROG:地址所存允许信号。当访问外部程序存储器或数据存储器时,ALE输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器。ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH 存储器编程期间,该引脚还用于输入编程脉冲(/PROG)。如有必要,可通过对特殊功能寄存器区中的8EA单元的DO位置位,可禁止ALE操作。该置位后,只有一条MOVX和MOVC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效;

(3) PSEN:外部存储器读选通讯信号。当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次/PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的/PSEN信号不出现;

(4) EA/VPP:程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。

4、可编程输入/输出引脚(32根)

AT89C51单片机有4组8为可编程I/O口,分别为P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。每一根引脚都可以编程,比如用来控制电机、交通灯等,开发产品时就是利用这些可编程引脚来实现我们想要的功能。

(1) P0口:8位双向I/O口线,名称为P0.0-P0.7,作输入口时,应先软件置“ 1”。是一组8位漏双向极开路型I/O口,即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8位TTL逻辑门电路,对端口写’1’可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在FLASH 编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻;

(2) P1口:8位准双向I/O口线,名称为P1.0-P1.7,作输入口时,应先软件置“ 1”。是一个带有内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部上

拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。FLASH编程和程序校验期间,P1接收低8位;

(3) P2口:8位准双向I/O口线,名称为P2.0-P2.7,作输入口时,应先软件置“ 1”。是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。FLASH编程和程序校验期间,P1接收低8位。在访问外部程序存储器或16位地址的外部地址存储器(例如执行MOVX @DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(例如执行MOVX @R1指令)时,P2口线上的内容(即特殊功能寄存器SFR区中R2寄存器的内容),在整个访问期间不改变。FLASH编程和校验时,P2亦接收高位地址和其他控制信号;

(4) P3口:8位准双向I/O口线,名称为P3.0-P3.7,作输入口时,应先软件置“ 1”。是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,被外部拉低的P3口将用上拉电阻输出电流。

P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表2-1所示:

表2-1 P3口的第二功能

P3口还接收一些用于FLASH闪速存储器编程和程序校验的控制信号。

2.2.2 晶体振荡器

石英晶体振荡器的特点是振荡频率准确、电路结构简单、频率易调整,作用是为系统提供基本的时钟信号。我们在晶体某一方向加一电场,从而在与此垂直的方向产生机械振动,有了机械振动,就会在相应的垂直面上产生电场,从而使机械振动和电场互为因果,这种循环过程一直持续到晶体的机械强度限制时,才达到最后稳定,这种压电谐振的频率即为晶体振荡器的固有频率。

振荡器特性,XTAL1和XTAL2分别为反向放大器的输入和输出。该反晶体向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。在XTAL1和XTAL2引脚上外接定时元件就能构成自激振荡电路。定时元件通常采用石英晶体和电容组成的并联谐振电路。电容器C1和C2主要起频率微调作用。石英晶体振荡器,如下图2-2:

2.2.3 LED

LED数码管示,如下图2-3:

图2-3 LED数码管

LED数码管的性能特点、简易检测及使用注意事项:

1.性能特点

(1)能在低电压、小电流条件下驱动发光,能与CMOS、ITL电路兼容;

(2)发光响应时间极短(<0.1μs),高频特性好,单色性好,亮度高;

(3)体积小,重量轻,抗冲击性能好;

(4)寿命长,使用寿命在10万小时以上,甚至可达100万小时。成本低。

因此它被广泛用作数字仪器仪表、数控装置、计算机的数显器件。

2.性能简易检测

LED数码管外观要求颜色均匀、无局部变色及无气泡等,在业余条件下可用干电池作进一步检查。现以共阴数码管为例介绍检查方法。

将3伏干电池负极引出线固定接触在LED数码管的公共负极端上,电池正极引出线依次移动接触笔画的正极端。这一根引出线接触到某一笔画的正极端时,那一笔画就应显示出来。用这种简单的方法就可检查出数码管是否有断笔(某笔画不能显示),连笔(某些笔画连在一起),并且可相对比较出不同笔划发光的强弱性能。若检查共阳极数码管,只需将电池正负极引出线对调一下,方法同上。LED数码管每笔画工作电流ILED约在5—10mA之间,若电流过大会损坏数码管,因此必须加限流电阻,其阻值可按下式计算:

R限 =(U。—ULED)/ILED

其中U。为加在LED两端电压,ULED为LED数码管每笔画压降(约2伏)。利用数字万用表的hFE插口能够方便地检查LED数码管的发光情况。选择NPN挡时,C孔带正电,月孔带负电。例如检查LTS547R型共阴极LED数码管时,从E孔插入一根单股细导线,导线引出端接9极(第③脚与第⑧脚在内部连通,可任选一个作为?);再从C孔引出一根导线依次接触各笔段电极,可分别显示所对应的

笔段。

3.使用注意事项

(1)检查时若发光暗淡,说明器件已老化,发光效率太低。如果显示的笔段残缺不全,说明数码管已局部损坏。如果数码管表面出现明显裂痕、凹哇或是其它的一些损坏皆不能再使用。

(2)对于型号不明、又无管脚排列图的LED数码管,用数字万用表的h距挡可完成下述测试工作:①判定数码管的结构形式(共阴或共阳);②识别管脚;③检查全亮笔段。预先可假定某个电极为公共极,然后根据笔段发光或不发光加以验证。当笔段电极接反或公共极判断错误时,该笔段就不能发光。

2.2.4 74LS373的功能及引脚说明

74LS373芯片图2-4:

图2-4 74LS373芯片

其功能介绍如下:

373为三态输出的八 D 透明锁存器,共有 54/74S373 和 54/74LS373 两种线路

结构型式,其主要电器特性的典型值如下(不同厂家具体值有差别):

型号 tPd PD

54S373/74S373 7ns 525mW

54LS373/74LS373 17ns 120mW

373 的输出端 O0~O7 可直接与总线相连。

当三态允许控制端 OE 为低电平时,O0~O7 为正常逻辑状态,可用来驱动负

载或总线。当 OE 为高电平时,O0~O7 呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。

当锁存允许端 LE 为高电平时,O 随数据 D 而变。当 LE 为低电平时,O 被锁存在已建立的数据电平。

当 LE 端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善400mV。

引出端符号:

D0~D7 数据输入端

OE 三态允许控制端(低电平有效)

LE 锁存允许端

O0~O7 输出端

表2-2 真值

复位电路

为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般微机电路正常工作需要供电电源为5V±5%,即4.75~5.25V。由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。

复位电路示图,如下图2-5:

图2-5 复位电路图

图中所示为手动电平复位电路,当RESET键按下时,在单片机的复位端将出现一个有300的电阻和1K电阻分压的电平,单片机复位。手动复位用在人们可以进入的机器上,还可以用来紧急停止电路。自动复位用在人们不能进入的机器上。复位必须在所有危险都被清除后发生,通常手动复位更安全。自动复位可以用在人们无法进入的保护通道上。在人们可以进入并紧急停止的保护通道上,只使用手动复位。

第3章系统的软件设计

3.1 软件编程要点

LED显示器由8个发光二极管组成。它由7个长条形的发光管排成“日”字形。LED显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED显示器。此设计采用LED显示采用共阴极的数码管。共阴极和共阳极结构的LED显示器各比划段名和安排位置是相同的。当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。

一个时钟的计时累加,要实现分、时的进位,需用到多种进制,秒、分、时钟的进位是十进制,秒向分进位和分向时进位却是六十进制,而每天又是二十四小时制,所以是二十四进制。从秒到分和从分到时的计时是通过累加与数值比较实现的。设置小时单元、分单元、秒单元,分别存放小时、分、秒的数值。

数字钟的走时可校准,校准时按下调时开关,这里用单片机AT89C51的P3.2 I/O口外接调时开关确定可以调时,再用P1.3和P1.2两个开关实现时和分钟的校正,每按一次时、分累加1,并进位。调时好后,再将P3.2 I/O口的开关按回原处。当时间需要复位时,按下RST接口的复位键,即可复位,重新设置时间。

3.2 项目程序流程图

1.初始化流程图,如下图3-1:

图3-1 初始化流程图2.INT0中断服务程序流程图见图3-2:

3.T0中断服务流程图见图3-4:

4.显示程序流程图见图3-5:

图3-4 T0中断服务流程图 图3-5 显示程序流程图

3.2 项目的源程序

系统的源程序如下:

源程序:

#include

#define uchar unsigned char

#define uint unsigned int

sbit dule=P1^0; //定义段选信号

sbit wele=P1^0; //定义位选信号

sbit key_minu=P1^2; //定义调时开关(分钟)

sbit key_hour=P1^3; //定义调时开关(小时)

sbit key=P3^2; //定义外部中断0开关

uchar aa; //定义定时器中断控制变量

uchar temp_hour; //定义调时开关的暂存变量(分钟)uchar temp_minu; //定义调时快关的暂存变量(小时)uchar temp_key; //定义外部中断0的暂存变量

uchar hour;

uchar minu;

uchar sec;

uchar hour_sw; //小时的十位

uchar hour_gw; //小时的个位

uchar minu_sw; //分钟的十位

uchar minu_gw;

uchar sec_gw;

uchar sec_sw;

uchar code table[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

void init()

{

TMOD=0X01; //设定定时器工作方式为工作方式1

EA=1; //开启总中断位

ET0=1; //开启定时器0中断

TH0=(65536-50000)/256; //给定时器0的高8位装数

TL0=(65536-50000)%256; //给定时器0的低8位装数

TR0=1; //允许计数器0工作

IT0=0; //设置外部中断0的触发方式位低电平触发

EX0=1; //开启外部中断0

PX0=1; //将外部中断0的优先级设位最高

aa=0; //初始化定时器中断0的控制位hour=0;

minu=0;

sec=0;

key_hour=1; //将开关控制置高电平

key_minu=1; //将开关控制置高电平

key=1; //将开关控制置高电平

temp_key=key; //将开关控制变量的值赋给开关暂存变量

temp_hour=key_hour; //将开关控制变量的值赋给开关暂存变量

相关文档
相关文档 最新文档