基于单片机电子时钟的设计.docx
- 文档编号:8906833
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:34
- 大小:582.19KB
基于单片机电子时钟的设计.docx
《基于单片机电子时钟的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机电子时钟的设计.docx(34页珍藏版)》请在冰豆网上搜索。
基于单片机电子时钟的设计
专科毕业大作业
毕业大作业
题目名称
基于单片机电子时钟的设计
专业班级
电子工艺与管理
学生姓名
XXX
学号
XXXX
指导教师
XXX
二○一二年五月八日
内容摘要:
本次设计主要是利用AT89C51单片机完成,其中AT89C51是核心元件同时采用数码管动态显示“时”、“分”、“秒”的现代计时装置。
与传统机械表相比,它具有走时精确,显示直观等特点。
它的计时周期为24小时,显示满刻度为“23时59分59秒”,另外具有校时功能、整点报时功能、闹铃功能、断电后有记忆功能、恢复供电时可实现计时同步等特点。
本文主要介绍用单片机内部的定时/计数器来实现数字显示计时系统的方法,本设计硬件由单片机AT89C51芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机数字显示计时(闹钟)显示系统,硬件电路仿真由Proteus仿真软件完成,软件由伟福(WAVE)编程完成。
关键词:
AT89C51LED闹铃整点报时
引言……………………………………………………………3
第一章概述
1.1课题简介…………………………………………………4
1.2设计的主要原理…………………………………………4
1.3方案论证…………………………………………………4
1.4设计的目的及要求………………………………………5
第二章硬件设计
2.1硬件部分框图……………………………………………6
2.2使用芯片介绍……………………………………………6
2.3分电路设计………………………………………………9
第三章软件设计
3.1单元分配………………………………………………14
3.2程序框图与汇编程序…………………………………14
第四章调试
4.1软件调试………………………………………………22
4.2protues仿真软件的应用………………………………22
4.3性能分析…………………………………………………23
小结……………………………………………………………24
参考文献…………………………………………………………………25
附录A源程序…………………………………………………………26
附录B电路原理图……………………………………………………36附录C元件清单………………………………………………………37
引言
时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。
怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?
这就要求人们不断设计出新型时钟。
现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。
时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。
在一个单片机应用系统中,时钟有两方面的含义:
一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:
一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:
DS1302,DS12887,X1203等都可以满足高精度的要求。
本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机AT89S51芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机电
子时钟。
第一章概述
1.1课题简介
数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,已得到广泛的使用。
数字钟的设计方法有许多种,例如,可用中小规模集成电路组成电子钟;也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟;还可以利用单片机来实现电子钟等等。
这些方法都各有其特点,其中利用单片机实现的电子钟具有编程灵活,并便于功能的扩展。
单片机应用的重要意义在于,它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
本次设计以AT89C51单片机为核心来控制时钟电路、按键电路、复位电路、LED显示器段码驱动电路、LED显示器码驱动电路、6位LED显示器电路以及蜂鸣器,以达到对“时”“分”“秒”精确的控制和显示。
1.2设计的主要原理
电路工作原理:
该电路以AT89C51为核心。
显示器用七段共阳LED数码管显示器,显示小时、分钟以及秒,从P0口接入4个按钮开关,作为输入电路,进行手动设置调时、调分和调秒,通过P2,P1口来实现对显示的实时控制。
1.3设计的目的及要求
1.设计目的
(1)熟悉集成电路的引脚安排;
(2)熟悉并掌握80C51的结构原理及应用;
(3)了解电路板结构及其接线方法;
(4)了解数字钟的组成及工作原理;
(5)掌握芯片的逻辑功能及使用方法;
(6)熟悉数字钟的设计与制作。
2.设计要求
(1)报时用中断方式计时;
(2)到整时时能够准时;
(3)由晶振提供标准时间基准信号;
(4)自动计时并具备校调功能。
可以单独对每一位校调;
(5)设置四个按键SET,RET,ALM和+1键,对时,分,秒进行调整;
(6)通过软件编程的方法实现以24小时为一个周期同时显示小时,分钟和秒。
1.4方案论证
方案一:
采用实时时钟芯片设计:
针对计算机系统对实时时钟功能的普遍需求,各大芯片生产厂家陆续推出了一系列的实时时钟集成芯片,如DS1287,DS12887等,这些实时时钟芯片具备年月日,时分秒计时功能和多点定时功能,计时数据的更新每秒进行一次,不需程序干预。
计算机间程序简单。
此外,实时时钟芯片多数带有锂电池做后备电池具备永不停止的计时功能,具有可编程方波输出功能,可用做实时测控系统的采样信号等;有的实时时钟芯片内部还带有非易失性RAM,可用来存放需长期保存的但有时也需变更的数据。
方案二:
采用单片机软件控制技术:
利用AT89C51内部的16位定时/计数器进行中断服务,配合软件延时实现计时计时及控制全部采用软件控制,并配合外围显示及键盘电路,从而实现电子时钟的各项功能。
比较上述两种方案:
方案一虽然功能强大,性能较好但所用芯片较贵、外围逻辑电路复杂,且灵活性较低,不利于各种功能的扩展;方案二此系统硬件简单,将复杂的硬件功能用软件实现,因此系统控制灵活,能很好的满足基本需求,且能够使人在定时/计数器的使用、中断及程序设计方面得到锻炼与提高,因此本次设计采用方案二。
第二章硬件设计
2.1硬件部分框图
图2-1为该系统设计方案的硬件电路设计框图。
该数字显示计时系统的硬件电路是由单片机、时钟电路、按键电路、复位电路、LED显示器段码驱动电路、LED显示器码驱动电路、6位LED显示器电路。
图2-1硬件电路框图
在图2-1中,以AT89C51单片机为核心,LED数码管显示内容通过P1口从单片机传送到数码管。
P2口是数码管位选控制端口。
形成一个可以显示时,分,秒的数字显示计时系统。
在这一系统中当时间调整设置键(SET)被按下时,系统进入时间调整输入功能状态;当定时时间设置键(ALM)被按下时,系统进入定时(闹钟)时间输入功能状态;当+1调整键被按下时,被调整位加一;当确认键(RET)被按下时,指向下一个要调整的位。
4个按键开关通过不同的组合实现外部控制程序状态
2.2使用芯片介绍
AT89C51是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89c51具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89C51可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
AT89C51是单片机中的典型产品,AT89C51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,如图2.1所示。
图2.1单片机内部结构示意图
现分别加以说明:
1、中央处理器
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
2、数据存储器(RAM)
AT89C51内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
3、程序存储器(ROM)
AT89C51共有4KB掩膜ROM,最大可扩展64K字节,用于存放用户程序,原始数据或表格。
4、定时/计数器:
AT89C51有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
5、并行输入输出(I/O)口:
AT89C51共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。
6、中断系统
AT89C51具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。
7、AT89C51的引脚介绍
AT89C51单片机内部总线是单总线结构,即数据总线和地址总线是公用的.AT89C51有40条引脚,这40条引脚可分为I/O接口线、电源线、控制线、外接晶体线4部分。
AT89C51单片机为双列直插式封装结构,如图2.2所示。
图2.2AT89C51引脚分配图
AT89C51单片机的电源线有以下两种:
(1)VCC:
+5V电源线。
(2)GND:
接地线。
AT89C51单片机的外接晶体引脚有以下两种:
(1)XTAL1:
片内振荡器反相放大器的输入端和内部时钟工作的输入端。
采用内部振荡器时,它接外部石英晶体和微调电容的一个引脚。
(2)XTAL2:
片内振荡器反相放大器的输出端,接外部石英晶体和微调电容的另一端。
采用外部振荡器时,该引脚悬空。
外接晶体引脚。
控制线AT89C51单片机的控制线有以下几种:
(1)RST:
复位输入端,高电平有效。
(2)ALE/PROG:
地址锁存允许/编程线。
(3)PSEN:
外部程序存储器的读选通线。
(4)EA/Vpp:
片外ROM允许访问端/编程电源端。
2.3分电路设计
1.按键电路设计与器件选择
具备随时对当前时间进行调整的基本功能,由于并不需要经常修改时间且按键少可以接入独立式键盘输入电路。
独立式键盘结构电路是由按键和4个电阻组成,按键分别命名为SET.ALM.RET和+1,按键可以采用轻触开关,电阻采用并脚排电阻(4*10K)如图2-4所示:
图2-4键盘结构
在图2-4中4个按键的功能的具体说明:
①RET确认键的功能:
确认,即对+1调整位进行确认,该键按下时说明被调整位的值已经确定,转去调整下一位。
②+1键调整键的功能:
分别对时间值的小时十位、小时个位、分的十位、分的个位、秒的十位、秒的个位进行+1调整,即该键每按下一次,对应的时间调整位+1。
③ALM键功能:
设置定时(闹钟)时间,即当需要电子时钟进行定时(闹钟)服务时,可以通过该键的功能来输入定时(闹钟)时间,使用ALM键与+1键RET键配合来完成这一功能。
④SET键功能:
设置当前时间,即当电子时钟的时间有误差时,需要随时对它进调整,使用SET键与+1键RET键配合来完成这一功能。
键盘的硬件电路设计只能保证4个按键信号的可靠进入,要想完成键盘的输入功能,还要靠软件编程来具体实现的。
当用手按下一个键时,如图2-5所示,往往按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,也回会出现类似的情况。
这就是抖动。
抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于10ms。
很容易想到,抖动问题不解决就会引起对闭合键的识别。
用软件方法可以很容易地解决抖动问题,这就是通过延迟10ms来等待抖动消失,这之后,在读入键盘码。
图2-5按键抖动信号波形
2.LED显示电路选择
在单片机的应用系统中,通常需要进行人机对话。
这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示运行状态与运行结果等。
显示器、键盘电路就是用来完成人-机对话活动的人-机通道。
LED显示器的驱动是一个非常重要的问题,由系统硬件设计框图可知显示电路由LED显示器、段驱动电路和位驱动电路组成。
在本次设计中运用LED数码显示器、采用PNP管以及单片机的P2口来组成显示电路。
LED显示器由7个发光二极管组成,也称为7段LED显示器,排列形状如图2-3a所示。
LED显示器的发光二极管有共阴极和共阳极两种连接方法.图2-3b为共阴极接法,各发光二极管的阴极连在一起并接地,当某一发光二极管的阳极输入高电平时,则该段发光;图2-3c为共阳极接法,各发光二极管的阳极连在一起并接+5V,当阴极输入法低电平时,该段发光二极管发光。
使用LED显示器时,要注意区分两种不同的接法。
为了显示数字或符号,要为LED显示器提供代码(字形码),在两种接法中字形码是不同的。
图2-37(8)段LED显示器
7段发光二极管再加上一个小数点位,共计8段,提供给LED显示器的字形码正好1B,各字形对应关系如下:
代码位
D7
D6
D5
D4
D3
D2
D1
D0
显示段
Dp
G
f
E
d
c
b
a
用LED显示器显示十六进制数的字形码见表2-2。
表2-2十六进制数字形代码表
显示字符
共阴极码
共阴极码
显示字符
共阳极码
共阴极码
0
C0H
3FH
9
90H
6FH
1
F9H
06H
A
88H
77H
2
A4H
5BH
B
83H
7CH
3
B0H
4FH
C
C6H
39H
4
99H
66H
D
A1H
5EH
5
92H
6DH
E
86H
79H
6
82H
7DH
F
84H
71H
7
F8H
07H
“灭”
FFH
00H
8
80H
7FH
3.蜂鸣器电路的设计
闹铃指示可以有声或光两种形式,本系统采用声音指示。
关键元件是蜂鸣器。
蜂鸣器有无源和有源两种,前者需要输入声音频率信号才能正常发声,后者则只需外加适当直流电源电压即可;元件内部已经封装了音频振荡电路,在得电状态下即起振发声。
市场上的有源蜂鸣器分为3V、5V、6V等系列,以适应不同的应用需要。
其中PNP小功率三极管采用9012。
其最大集电极电流为800mA。
完全满足蜂鸣器驱动的需要。
适当调节基极电阻可改变蜂鸣器的发声功率。
图2-7蜂鸣器电路
在图2-7中,当P3.7=0时,VT1导通时,使蜂鸣器的两个引脚间获得将近5V的直流电压,蜂鸣器中有电流通过,而产生蜂鸣音。
当P3.7=1时,VT1截止时,蜂鸣器的两引脚间的直流电压接近0V,蜂鸣器不发声。
4.单片机的复位方式与电路选择
复位就是通过某种方式,使单片机内各寄存器的值变为初始化状态的操作。
AT89C51单片机在时钟电路工作以后,在RESET端持续给出2个机器周期的高电平就可以完成复位操作。
复位分为上电自动复位和手动复位两种方式。
本系统采用上电复位方式。
上电复位是在单片机接通电源时,对单片机的复位。
在上电瞬间RST端与VCC电位相同,随着电容上电压的逐渐上升,RST端电位逐渐下降。
上电复位所需要的最短时间是振荡器建立时间加2个机器周期
3种方式复位电路图:
注:
一般情况下图中电容C1和C2取30PF左右,晶体的振荡频率范围是1.2~12MHZ。
晶体振荡频率越高,则系统的时钟频率越高,单片机运行速度也越快。
一般情况下,单片机使用的振荡频率为6MHZ或者说12MHZ。
5.相关电路参数的计算
(1)PNP三极管与P2口之间的电阻选择:
选取三极管9012的放大倍数为100,选通一个LED数码管所需电流即三极管的集电极电流为:
Ic=15mA*7=105mA,则它的基极电流Ib=105mA/100=1.05mA,取1mA,三极管压降为0.7V,则电阻阻值为:
R=(5-0.7)V/1mA=4.3K,实际取4.7K
(2)LED数码管与P1口之间的电阻选择:
由于LED数码管是由七段发光二极管组成。
每个二极管所需电压为2V,电阻的峰值电流取10mA,又由于P1的压降为,则电阻上所需电压为5-2-0.3=2.7V
则电阻上的阻值为2.7V/10mA=270,实际取300
(3)开关与P0口之间的电阻选择:
由于开关端的电阻接+5电源,导线本身的电流是非常微小的,所以我选择了10K的电阻来完成硬件电路的连接。
(4)I端口分配及连接:
P1.0-P1.7:
LED数码管显示内容通过P0口从单片机传送到数码管。
P2.0-P2.5:
数码管位选控制端口。
P0.0-P0.3:
分别连接开关,SET、ALM、+1和RET键,通过不同的组合实现外部控制程序状态。
第三章软件设计
3.1单元分配
在AT89C51单片机的内部00H-1FH为工作寄存器区,20H-2FH为位寻址区,30H-7FH为数据缓冲区。
堆栈的先进后出的特点。
1.堆栈区70H-7FH
2.段码显示缓冲区45H-40H
3.当前时间的二进制存储单元30H-32H
4.闹铃时间的二进制存储单元33H-35H
5.闪烁显示单元20H
3.2程序框图与汇编程序
主程序框图如图3-1所示:
图3-1主程序框图
1主程序
主程序的内容的一般包括:
主程序的起始地址,中断服务程序的起始地址,有关内存单元及相关部件的初始化和一些子程序的调用等内容。
设置中断入口地址、设置主程序的起始地址(开始),为了保护现场设置堆栈指针,为了保证显示的正确性要进行T0的初始化和显示缓冲区与计时有关的寄存器的清零。
启动T0调用显示程序显示当前时间,根据需要可以进行按键处理,一旦闹钟时间到,发出报警,报警时间过后,调用显示程序继续正常的时间显示。
主程序清单如下:
ORG0000H;中断入口地址
AJMPMAIN
ORG000BH;T0中断
AJMPT0INT
MAIN:
MOVSP,#70H;设置堆栈指针
MOVR6,#06H;显示缓冲区清零
MOVR1,#45H
S0:
MOV@R1,#00H
DECR1
DJNZR6,S0
MOVTMOD,#01H;T0为工作方式1
MOVTH0,#0BH;设T0计数初值
MOVTL0,#0DCH
SETBRS0;选择工作区1
MOVR2,#00H;相关寄存器清零
MOVR3,#00H
MOVR4,#00H
MOVR5,#00H
CLRRS0;选择工作区0
MOVR1,#45H;显缓区首指针送R1
SETBTR0;开T0
SS1:
LCALLDISP;调用显示程序
LCALLKEYBOARD;调用按键处理程序
MOVR2,35H;判断是否有定时时间
CJNER2,#0,NT
MOVR2,34H
CJNER2,#0,NT
MOVR2,33H
CJNER2,#0,NT
SJMPBB
NT:
MOVA,35H
CJNEA,32H,BB;判断定时时间到否
MOVA,34H
CJNEA,31H,BB
MOVA,33H
CJNEA,30H,BB
CLRP3.7;时间到发出报警
MOVR7,#15
SJMPSS1
BB:
SETBP3.7
SJMPSS1
2中断系统的介绍
如果在执行主程序时只有一个中断请求源请求中断,而这时CPU又是对中断开放的那么这个中断立即得到响应。
然而由于中断是随机产生的,中断源又不止1个,因此往往会出现这样的情况:
几个中断源同时请求中断,或者当某一个中断正在响应中,又有其他中断源请求中断,这时中断一般会按如下原则进行处理:
(1)不同级的中断源同时请求中断时——先高后低
(2)同级的中断源同时申请中断时——事先规定
(3)处理低级中断又收到高级中断请求时——停低转高
(4)处理高级中断又收到低级中断请求时——高不理低
AT89C51单片机的中断系统对优先级的控制比较简单,只规定了两个中断优先级,对于每一个中断源均可编程为高优先级中断或低优先级中断。
在同一个优先级中,五个中断优先级的次序如下:
外部中断0(IE0)
定时器/计数器T0溢出中断(TF0)
外部中断1(IE1)
定时器/计数器T1溢出中断(TF1)
串行口中断(RI+TI)
AT89C51单片机有1个中断优先级寄存器IP,字节地址为B8H。
对于每一个中断源,均可通过IP的设置来确定优先等级,置1为高优先级,反之为低。
3时钟计时程序
数字显示计时系统的主要任务是:
采用单片机为核心的器件产生24小时时间,并用LED显示器将它显示出来。
在本次设计中所用的晶振为6MHz,定时器最长的定时时间为131.72ms,要产生24h的时间值,故我们采用定时器T0方式1。
(1)24小时的产生:
选择定时器T0方式1,定时125ms中断一次,利用R2寄存器加1,8次为1s,再利用寄存器R3计数60s,依次类推,累计24的时间值,并需设置以下几个寄存器:
R2:
累计1s时间寄存器。
T0每中断一次R2=R2+1,计数八次向R3进位,并将R2清零
R3:
累计60s时间寄存器。
当R3=60s,向R4进位,并使R3=0。
R4:
累计60min时间寄存器。
当R4=60min向R5进位,并使R4=0。
R5:
累计24h时间寄存器。
当R5=24h,正好是昼夜的时间,并使R5=0。
(2)定时器的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 电子 时钟 设计