基于51单片机的多功能电子钟设计.docx
- 文档编号:16923255
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:77
- 大小:1.02MB
基于51单片机的多功能电子钟设计.docx
《基于51单片机的多功能电子钟设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机的多功能电子钟设计.docx(77页珍藏版)》请在冰点文库上搜索。
基于51单片机的多功能电子钟设计
基于51单片机的多功能电子钟设计
【摘要】数字电子时钟是人们日常生活中不可或缺的必需品。
本文以STC89C52为核心控制芯片,DS12887为时钟芯片,DS18B20为温度传感器,通过液晶显示器LCD1602实时显示时间及温度,通过按键设置年月日和星期以及定时闹钟,定时闹钟时间到自动发出警报。
本设计的+5V电源采用LM1117电压转换元件,将电源适配器转换得到的12V电压直接变成5V电压供系统使用。
程序的下载则是通过普中科技公司自制的PZ-ISP软件完成。
经过测试,系统可以正常完成预定的功能。
【关键词】电子时钟;单片机;DS12887;DS18B20;
DesignofMulti-functionClockBasedon51MCU
【Abstract】Digitalelectronic clockis anintegral,necessarypart ofdailylife.Inthispaper,STC89C52chipisusedasthecorecontrolchip,DS12887chipisusedastheclockchip,DS18B20chipisusedasthetemperaturesensorandLCD1602wasusedtodiaplaytimeandtemperature。
Youcansetyear,monthandtimealarmclockthroughthefourbuttons.Whentherealtimereachtothetimeclock,thesystemwillwarnautomatically.The+5VpowerofthesystemissuppliedbyLM1117voltageconversiondevice.The12Vvoltagegetfrompoweradapterwastransformeddirectlyinto5Vvoltageforthesystem.ThedownloadoftheprocessisaccomplishedthroughthePZ-ISPsoftwaremadebyPuzhongtechnologycompany.Aftertesting,thesystemcancompletethescheduledfunctionnormally.
【keywords】electronicclock;MCU;DS12887;DS18B20
第一章绪论
1.1电子时钟的研究背景
20世纪末,电子技术得到了极速的发展,毫无疑问,在其推动下,现代电子产品以及各种高科技产品几乎渗透到了社会的各个领域,这有力地推动了社会生产力的发展和社会信息化程度以及综合科技水平的提高,但产品更新换代的频率也越来越快。
随着科技的发展社会的进步和全球化竞争的日益激烈,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。
多功能电子钟不管在性能还是在样式亦或是用途上都发生了重大的变化,许多电子钟都已具备电子闹钟、电子秒表、温度检测等功能。
同时单片机在多功能数字钟中的应用已是非常普遍的[1]。
多功能电子时钟除了具有时钟的功能外还可以包含对环境温度检测的功能。
温度是一种最基本的环境参数。
在各个行业生产及日常生活中,对温度的测量及控制始终占据着非常重要的地位。
目前,典型的温度检测控制系统由模拟式温度传感器、A/D转换电路和各种单片机组成。
由于模拟式温度传感器输出的模拟信号必须经过A/D转换环节转换为数字信号后才能与单片机等微处理器接口进行读写的操作,所以硬件电路会比较复杂,成本较高。
而以DS18B20为代表的新型单线总线数字式温度传感器集温度测量和A/D转换于一体,这类传感器可以直接输出数字量,同时与单片机接口电路结构非常简单,可以广泛用于距离远、节点分布多的场合,具有较强推广应用价值。
[2]
数字电子时钟是采用数字电路实现对时,分,秒数字显示的装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可或缺的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,数字时钟的精度远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
例如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动启闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电器的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字时钟及扩大其应用,有着非常现实的意义。
1.2电子时钟的国内外研究现状
数字电子时钟,自从它发明的那天起,就成为人类的朋友,给人们的生活、学习、工作、娱乐带来极大的方便。
但随着时间的推移,科学技术的不断发展,生活节奏越来越快,竞争日益激烈,人们对时间计量的精度要求越来越高,应用越来越广。
可以说时间的准确已成为各行各业安全运行的基础,如果时间出现误差而不能及时校正,会造成一系列严重的后果和经济损失[3]。
电子时钟的设计方法有多种,可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟,还可以利用对单片机编程来实现电子钟。
其中,利用单片机实现的电子时钟具有硬件结构简单、编程灵活、便于功能扩展等特点。
由单片机作为数字钟的核心控制器,可以通过它的时钟信号实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。
通过键盘可以进行定时、校时功能。
输出设备显示器可以用液晶显示技术或者数码管显示技术[4]。
温度是一种最基本的环境参数,日常生活和工农业生产中经常要检测温度。
传统的方式是采用热电偶或热电阻,但是由于模拟温度传感器输出为模拟信号,必须经过A/D转换环节获得数字信号后才能与单片机等微处理器接口,使得硬件电路结构复杂,制作成本较高。
近年来,美国DALLAS公司生产的DSl8B20为代表的新型单总线数字式温度传感器以其突出优点广泛使用于仓储管理、工农业生产制造、气象观测、科学研究以及日常生活中。
DSl8B20集温度测量和A/D转换于一体,直接输出数字量,传输距离远,可以很方便地实现多点测量,硬件电路结构简单,与单片机接口几乎不需要外围元件[5]。
智能温度传感器(亦称数字温度传感器)是上世纪90年代中期问世的。
此类传感器是微电子技术、计算机技术和自动测试技术的结晶。
目前,国际上已开发出多种智能温度传感器。
智能温度传感器内部一般包含温度传感器、A/D转换器、信号处理器、存储器(或寄存器)和接口电路。
有的产品还带多路选择器、中央控制器、随机存取存储器和只读存储器。
智能温度传感器能实时更新并输出温度数据,适配于各种微控制器也就是通常所说的单片机(MCU),并且可通过软件来实现显示功能,其智能化取决于软件和硬件的综合开发水平,二者缺一不可。
目前,新型温度传感器正从模拟式向数字式、集成化向智能化及网络化的方向发展[6]。
21世纪后,智能温度传感器毫无疑问正朝着高精度、多功能、总线标准化、高可靠性及高安全性等高科技的方向迅速发展,开发虚拟传感器和网络传感器、研制更先进的单片测温系统已是刻不容缓[7]。
在日常生活和自动控制系统中,我们时常会遇到对时间和温度实时监控的需求。
这就给具有多种功能的时钟提供了市场,也有了市场开发的前景。
本文给出了一种基于单片机实现带温度检测的电子时钟的设计方法和实现过程。
第二章总体方案
2.1系统的设计思路
本次设计完成电子时钟年、月、日、时、分、秒的显示及环境温度测量等功能的基础上完成定时闹钟的功能。
由于DS12887时钟芯片内含一个锂电池,所以断电情况可以运行十年以上不丢失数据,重新上电后不用校正时钟。
硬件电路包括单片机最小系统电路、DS12887实时时钟芯片电路模块、LCD1602液晶显示模块、按键模块、DS18B20温度传感器模块、蜂鸣器报警电路模块;软件部分主要通过c程序的编程实现对时钟芯片进行时间数据的读和写,然后通过液晶显示程序将时间显示出来,通过按键操作实现功能的转换和屏幕的切换。
设计中结合硬件、软件的分步调试,达到要求的控制效果。
2.2系统硬件描述
基于单片机系统的电子时钟基本结构框图如图2-1所示:
图2-1系统基本结构框图
该系统所需要的器件包括单片机STC89C52芯片一块,实时时钟芯片DS12887一块,温度传感器DS18B20一块,液晶显示屏LCD1602一块,双4输入与门芯片74LS21一块,蜂鸣器一个,12mHZ的晶振一个,排针排线若干组,电容电阻若干,导线若干,发光二级管一个,三极管一个,按钮5个。
2.3系统软件描述
系统程序实现三部分功能:
时钟部分实现年、月、日、时、分、秒、星期显示和设置、闹钟功能;温度测量部分实现环境温度测量及显示;键盘部分主要为时钟和闹钟设置;功能整体程序流程框图如图2-2所示。
图2-2功能整体流程框图
2.4设计流程和预期成果
该设计的主要流程如下:
首先阅读大量参考文献,进行设计方案的确定,然后在Protel99SE上进行原理图的绘制和修改,在电气检查无误的情况下,购买所需要的元器件(元器件应考虑裕量)。
接着把元器件焊接到各个功能电路的模块上,并结合程序进行调试。
最后将各个功能的电路程序组合起来,然后再进行总体调试直到成功。
本设计能达到以下结果:
1)显示年、月、日、星期等日历相关信息。
通过按键设置年月日和星期,以及定时闹钟。
2)掉电后时钟芯片正常运行,重新上电后不用校正时钟。
3)定时时间到达时,蜂鸣器报警;手动按任意键报警停止;如无人工按键,报警在1.5min后停止。
4)实时温度显示。
第三章硬件设计
3.1硬件芯片介绍
3.1.1单片机STC89C52
(一)STC89C52功能特点[8]
STC89C52是一种带8K字节闪烁可编程可擦除只读存储器的低电压,高性能COMOS8的微处理器,俗称单片机。
该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
表3-1给出了其主要功能。
表3-1STC89C52主要功能
主要功能特性
兼容MCS51指令系统
8K可反复擦写FlashROM
32个双向I/O口
256x8bit内部RAM
3个16位可编程定时/计数器中断
时钟频率0-24MHz
2个串行中断
可编程UART串行通道
2个外部中断源
共6个中断源
2个读写中断口线
3级加密位
低功耗空闲和掉电模式
软件设置睡眠和唤醒功能
(二)STC89C52各管脚介绍
STC89C52各管脚如图3-1所示。
图3-1STC89C52管脚图
(1)主电源引脚(2根)
VCC(Pin40):
电源输入,接+5V电源
GND(Pin20):
接地线
(2)外接晶振引脚(2根)
XTAL0(Pin18):
片内振荡电路的输入端
XTAL1(Pin19):
片内振荡电路的输出端
(3)控制引脚(4根)
RST/VPP(Pin9):
复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
ALE/PROG(Pin30):
地址锁存允许信号
PSEN(Pin29):
外部存储器读选通信号
EA/VPP(Pin31):
程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
(4)可编程输入/输出引脚(32根)
STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
PO口(Pin39~Pin32):
名称为P0.0~P0.7。
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平(晶体管-晶体管逻辑电平)。
P1口(Pin1~Pin8):
名称为P1.0~P1.7。
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下所示。
在flash编程和校验时,P1口接收低8位地址字节。
P1引脚第二功能
P1.0:
T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1:
T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5:
MOSI(在线系统编程时用到)
P1.6:
MISO(在线系统编程时用到)
P1.7:
SCK(在线系统编程时用到)
P2口(Pin21~Pin28):
名称为P2.0~P2.7。
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口(Pin10~Pin17):
8位准双向I/O口线,名称为P3.0~P3.7。
P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为STC89C52特殊功能(第二功能)使用,如下表所示。
在flash编程和校验时,P3口也接收一些控制信号。
端口引脚第二功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INTO(外中断0)
P3.3INT1(外中断1)
P3.4TO(定时/计数器0)
P3.5T1(定时/计数器1)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器读选通)
此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。
RST——复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。
FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
3.1.2实时时钟芯片DS12887
(一)DS12887功能特点[9][10]
DS12887是美国达拉斯半导体公司推出的时钟芯片,此芯片是基于CMOS技术的,把时钟芯片所需的晶振和外部锂电池相关电路集于芯片内部,这无疑大大简化了外围电路,同时它与目前IBMAT计算机常用的时钟芯片MC146818B和DS1287芯片引脚兼容,可直接进行对等交换。
其主要功能如下:
(1)内含一个锂电池,断电可以运行十年,并且不会丢失数据,时间功能正常运行。
(2)可计时至2100年前的秒、分、时、星期、日、月、年等日历信息并带有闰年补偿功能。
(3)可通过编程选择BCD码或者二进制数表示日历和定时闹钟。
(4)可通过编程选择12小时或24小时制,12小时时钟模式带有PM和AM提示,此外还有有夏令时功能。
(5)可选择MOTOROLA和INTEL总线时序。
(6)内部共有128个RAM单元,这在常用的实时时钟中属于较大的。
其中14个字节作为时钟和控制寄存器,114字节为通用RAM,所有ARAM单元数据都具有掉电保护功能。
(7)可编程并选择的方波信号输出
(8)中断信号输出(IRQ)和总线兼容,定时闹钟中断、周期性中断、时钟更新周期结束中断可分别由软件屏蔽,也可分别进行测试。
(9)三种可供选择的中断方式
-时间性中断
-周期性中断
-时钟更新结束中断
(二)DS12887的原理及管脚说明
图3-2显示了DS12887管脚排列图。
下面说明管脚功能:
图3-2DS12887管脚图
GND:
电源地
VCC:
直流电源+5V电压。
若外部提供的VCC电源小于4.25V,读写会即刻被禁止,但芯片内部的计时仍在继续,重新通上+5V电源后,通过编程即可显示当前时间;若外部提供的VCC电源小于3V,电源方式切换为内部锂电池提供,同样可以保持芯片内部计时仍然继续。
MOT(模式选择):
接VCC(+5V)时,芯片在MOTOROLA时序下工作,接GND(地)时,芯片在INTEL时序下工作。
SQW(方波信号):
通过15个分频器抽头中的13个提供方波输出。
AD0~AD7(双向地址/数据复用线):
数据和控制指令都通过此8个引脚来于单片机等控制器传输。
AS(地址选通输入):
地址锁存引脚。
DS(数据选通或读输入):
该引脚有两种操作模式,视该芯片是出于MOTOROLA模式或者INTEL模式,当使用MOTOROLA时序时,DS是一正脉冲,出现在总线周期的后段,称为数据选通;若为INTEL时序,DS称作(RD),RD与典型存贮器的允许信号(OE)的定义相同。
R/W(读/写输入):
R/W管脚同样也有两种操作模式。
此引脚的两种模式与DS相似。
CS(片选输入):
在访问DS12887的总线周期内,片选信号必须保持为低。
IRQ(中断申请输入):
低电平有效,可作微处理的中断输入。
没有中断条件满足时,IRQ处于高阻态。
IRQ线是漏极开路输入,要求外接上拉电阻。
RESET(复位输出):
若要保证DS12887有效复位,必须让该脚保持低电平时间大于200ms,。
(三)DS12887的内部功能
(1)地址分配图
DS12887的存储器分配图如图3-3所示,其中00H-09H为时钟信息和闹钟信息寄存器,0AH-0DH为四个控制寄存器
图3-3DS12887存储器分配图
(2)控制寄存器
●寄存器A
表3-2DS12887寄存器A
UIP:
更新位。
若UIP为1,实时时钟的更新转换发生的很快,而当UIP为0,更新转换至少在244µs内不会发生。
DV0,DV1,DV2:
用于晶振和复位分频链的开启。
表3-3DS12887周期中断率和方波频率
RS3,RS2,RS1,RS0:
频率选择位,通过这四个位用户可以:
a用PIE位允许中断;
b用SQWE位允许SQAW输出;
c二者同时允许并用相同的频率;
d二者都不允许
●寄存器B
表3-4DS12887寄存器B
SET:
此位为0,时间更新正常进行,每秒计数走时一次,当此位为1,时间更新被禁止,程序可对芯片进行初始化的操作和编程。
PIE:
周期中断允许位,PIE为1,则允许以选定的频率拉低IRQ管脚,PIE为0,则禁止中断。
AIE:
定时闹钟中断允许位,AIE为1,允许中断,否则禁止中断。
UIE:
更新结束中断允许位,AIE为1,允许中断,否则禁止中断。
SQWE:
方波允许位,置1选定频率方波从SQW脚输出;为0-时,SQW脚为低。
DM:
数据模式位,DM为1表明为十进制数据,而0表明是BCD码的数据。
24/12:
小时格式位,1表明24小时制,而0表明12小时制。
DSE:
夏令时允许位,当DSE置1时允许两个特殊的更新,在四月份的第一星期日,时间从1:
59:
59AM时改变为3:
00:
00AM;在十月的最后一个星期日的1:
59:
59AM时改变为1:
00:
00AM。
当DSE位为0,这种特殊修正不发生。
●寄存器C
表3-5DS12887寄存器C
IRQF:
中断申请标志位。
当下列表达式中一个或多个为真时,置1。
PF=PIE=1;AF=AIE=1;UF=UIE=1;
即:
IRQF=PF·PIE+AF·AIE+UF·UIE
只要IRQF为1,IRQ管脚输出低,程序读寄存器C以后或RESET管脚为低后,所有标志位清零。
AF:
定闹中断标志位,只读,AF为1表明现在时间与定闹时间匹配。
VF:
更新周期结束标志位。
VF为1表明更新周期结束。
BIT0~BIT3:
未用状态位,读出总为0,不能写入。
●寄存器D
表3-6DS12887寄存器D
VRT:
内部锂电池状态位,平时应总读出1,如出现0,表明内部锂电池耗尽。
BIT0~BIT6:
未用状态位,读出总为0,不能写入。
3.1.3温度传感器DS18B20
(一)DS18B20功能特点
DS18B20具有超小体积和超低硬件开销,精度高,抗干扰能力强等优点。
具有全
数字温度转换及输出,单总线数据通信,最高12位分辨率,检测温度范围大的特征,是开发温度相关产品的很好的选择。
其主要功能如下:
(1)独特的单线接口仅需一个端口引脚进行通讯
(2)简单的多点分布应用
(3)无需外部器件
(4)可通过数据线供电
(5)零待机功耗
(6)测温范围-55~+125℃,以0.5℃递增。
华氏器件-67~+2570F,以0.90F递增
(7)温度以9位数字量读出
(8)温度数字量转换时间200ms(典型值)
(9)用户可定义的非易失性温度报警设置
(10)报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件
(11)应用包括温度控制、工业系统、消费品、温度计或任何热感测系统
(二)DS18B20内部工作原理
DS18B20内部结构主要由四部分组成:
64位光刻ROM、温度传感器、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 多功能 电子钟 设计