基于DS1302实时时钟系统的设计论文文档格式.docx
《基于DS1302实时时钟系统的设计论文文档格式.docx》由会员分享,可在线阅读,更多相关《基于DS1302实时时钟系统的设计论文文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
下面是单片机的主要发展趋势,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。
将单片机嵌入时钟构成一体,开发出多功能时钟,可以让人们对于时间更好的把握,是发展的必然结果。
现代的数字钟不仅需要数字电路技术而且需要模拟电路技术和单片机技术,增加了数字钟的功能。
其电路可以由实时时钟模块、环境温度检测模块、人机接口模块、报警模块等部分组成。
利用软件编程尽量做到硬件电路简单稳定,减小电磁干扰和其他环境干扰,充分发挥软件编程的优点,减小因元器件精度不够引起的误差,但是数字钟还是可以改进和提高如选用更精密的元器件。
但与机械式时钟相比已经具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。
数字钟是采用数字电路实现对时、分、秒、日期数字显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
本文就是基于以上的选题背景和研究意义,研究设计的基于DS1302D的实时时钟系统。
2.方案对比与选择分析介绍
2.1单片机控制器的选择与对比
目前在单片机系统中,低端控制其中应用比较广泛的微处理器芯片主要为8位单片机。
新型单片机层出不穷,硬件资源相互兼容,品类齐全,功能完善,性能稳定,体积小,价格低廉,货源充足,调试和编程方便,所以应用极为广泛。
ATmega16是基于增强的AVRRISC结构的低功耗8位CMOS微控制器。
由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达1MIPS/MHz,从而可以减缓系统在功耗和处理速度之间的矛盾。
ATmega16有如下特点:
16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512字节EEPROM,1K字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP封装)的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及六个可以通过软件进行选择的省电模式。
STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。
内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S,即25万次/秒)针对电机控制,强干扰场合。
STC89C52单片机是一款低功耗,低电压,高性能CMOS8位单片机,片内含8KB(可经受1000次擦写周期)的FLASH可编程可反复擦写的只读程序存储器,器件采用CMOS工艺和高密度、非易失性存储器(NURAM)技术制造,其输出引脚和指令系统都与MCS-51兼容。
片内的FLASH存储器允许在系统内可改编程序或用常规的非易失性存储器编程器来编程。
因此,STC89C52是一种功能强,灵活性高且价格合理的单片机,可方便的应用在各个控制领域。
本设计本着实用、够用、方便、降低成本的原则,本设计中需要更多的I/O引脚驱动数码管,在众多的单片机中选用具有32根I/O引脚的STC89C52单片机。
2.2实时时钟芯片的选择与对比
在电子时钟设计中,常用的实时时钟芯片有DS12887、DS1216、DS1643、DS1302。
每种芯片的主要时钟功能基本相同,只是在引脚数量、备用电池的安装方式、计时精度和扩展功能等方面略有不同。
DS12887与DS1216芯片都有内嵌式锂电池作为备用电池;
X1203引脚少,没有嵌入式锂电池,跟DS1302芯片功能相似,只是相比较之下,X1203与STC89C52搭配使用时占用I/O口较多。
DS1643为带有全功能实时时钟的8K×
8非易失性SRAM,集成了非易失性SRAM、实时时钟、晶振、电源掉电控制电路和锂电池电源,BCD码表示的年、月、日、星期、时、分、秒,带闰年补偿。
同样,DS1643拥有28只管脚,硬件连接起来占用微处理器I/O口较多,不方便系统功能拓展和维护。
故而从性价比和货源上考虑,本设计采用实时时钟日历芯片DS1302。
2.3显示器件的选择与对比
显示部分是本次设计的重要部分,一般有LED数码管和LCD液晶显示器两种方案。
方案一:
采用LED数码管显示。
LED的结构及连接如图2.1所示:
图2.1LED数码管结构与连接图
LED显示器可以分为有静态显示方式和动态显示方式两种。
静态显示就是当数码管显示某个字符时,相应的段恒定的导通,直到要显示下一个字符为止。
数码管工作在静态显示方式时,共阴极COM端要接地;
若为共阳极COM端接在+5V电源。
每位的段选线应分别与一个8位数据口的输出端相连,数码管的各位是相互独立的,且要显示字符一经确定,相应数据的输出将必须维持不变。
静态显示数码管一直在工作,因而数码管静态显的亮度较高。
在这种显示方式编程比较容易,管理也较简单,但占用I/O口线资源较多,因而在显示位数较多的情况下,我们大都都采用数码管动态显示方式进行显示。
而对于动态显示方式,虽可以避免静态显示的问题,但设计上如果处理不当,易造成亮度低,有闪烁等问题。
方案二:
采用LCD显示。
LCD液晶显示具有丰富多样性、灵活性、电路简单、易于控制而且功耗小等优点,对于一般的段式液晶屏,需要专门的驱动电路,而且也经显示作为一种被动显示,可视性相对较差;
对于具有驱动电路和微处理器接口的液晶显示模块(字符或点阵),一般多采用并行机接口,对于微处理器的接口要求较高,占用资源多。
另外,89C52本身没有专门的液晶驱动接口。
鉴于上述原因,我们采用方案一,采用了数码管显示方式。
数码管作为一种主动显示器件,具有亮度高、价格便宜、功耗低、驱动简单等优点,而且市场上也有专门的时钟显示组合数码管。
3.系统设计概述
3.1设计内容及要求
.采用STC89C52单片机作为主控制器;
2.采用DS1302作为实时时钟芯片,实现精确走时;
3.通过数码管显示时间、日期、星期、闹钟等信息,通过按键切换显示内容;
4.时间具有掉电保持功能;
5.通过按键设定闹钟时间和关闭闹钟报警,闹钟通过蜂鸣器报警;
6.系统电源设计。
3.2系统框架及说明
图3.1系统框图
图3.1所示为实时时钟系统的整体框图,系统由6部分组成,其中包括MCU主控系统部分、LED数码管部分、按键部分、实时时钟部分、蜂鸣器报警部分及电源部分。
其中MCU核心控制部分采用STC89C52单片机为核心控制器,主要负责DS1302数据的读写、数码管扫描显示、按键响应、报警控制;
按键部分采用4个独立按键,用于数码管显示内容的切换和闹钟时间的设定;
实时时钟部分主要由DS1302和晶振组成,提供精确时间;
报警器部分主要由蜂鸣器组成,当实时时间到达设定时间时,单片机控制蜂鸣器报警,蜂鸣器发出尖锐刺耳的报警声音,起到很好的报警作用;
电源部分主要由78XX三端稳压集成芯片组成,为整个系统提供所需的5V工作电源。
总的来说,由于采用了较好的方案和相关器件的选择,使得整个系统具有性价比高、成本低、具有很高的实用性等优点。
4.硬件电路设计分析
4.1STC89C52单片机简介
STC89C52单片机是STC推出的新一代高速、低功耗、超强抗干扰单片机,指令代码完全兼容传统的8051单片机,12时钟/机器周期和6时钟/机器周期可任意选择,下面为STC89C52单片机的主要参数。
1.增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051.
2.工作电压:
5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)
3.工作频率范围:
0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz
4.用户应用程序空间为8K字节
5.片上集成512字节RAM
6.通用I/O口(32个),复位后为:
P0/P1/P2/P3是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片
8.具有EEPROM功能
9.具有看门狗功能
10.共3个16位定时器/计数器。
即定时器T0、T1、T2
11.外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒
12.通用异步串行口(UART),还可用定时器软件实现多个UART
13.工作温度范围:
-40~+85℃(工业级)/0~75℃(商业级)
4.2STC89C52单片机内部结构
STC89C52单片机内部结构框图如下图所示,其中包括中央处理器MCU、程序存储器Flash、数据存储器SRAM、定时/计数器、串口、I/O口、EEPROM、看门狗等。
图4.1STC89C52单片机内部结构框图
4.3MCU控制电路设计分析
本系统所使用的单片机最小系统原理图如下图所示,其中包括STC89C52单片机、晶振电路、复位电路、按键、上拉电阻、数码管等。
其中本设计采用的晶振为22.1184M,复位电路采用上电复位方式,上拉电阻为1K9P排阻,4个按键分别接P32、P33、P34、P35,功能分别为显示模式切换、闹钟设定取消、时间值设置加(+)按键、时间值减(-)按键。
单片机P0口接数码管段选端,单片机P2口接数码管位选端。
图4.2单片机系统原理图
4.4数码管显示设计分析
4.4.1数码管的工作原理介绍
单片机I/O的应用最典型的是通过I/O口与7段LED数码管构成显示电路,7段LED数码管,在一定形状的绝缘材料上,利用单只LED组合排列成“8”字型的数码管,分别引出它们的电极,点亮相应的点划来显示出0-9的数字。
LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。
下图4.3是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。
图4.3数码管内部原理图
将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。
以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。
当然,LED的电流通常较小,一般均需在回路中接上限流电阻。
假如我们将"
b"
和"
c"
段接上正电源,其它端接地或悬空,那么"
段发光,此时,数码管显示将显示数字“1”。
而将"
a"
、"
d"
e"
g"
段都接上正电源,其它引脚悬空,此时数码管将显示“2”。
其它字符的显示原理类同。
用单片机驱动LED数码管有很多方法,按显示方式分,有静态显示和动态(扫描)显示,按译码方式可分硬件译码和软件译码之分。
静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后就不再控制LED,直到下一次显示数据需要更新时再传送一次新数据,显示数据稳定,占用很少的CPU时间;
动态显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。
这两种显示方式各有利弊:
动态显示虽然有闪烁感,占用的CPU时间较多,但是用的硬件少,能节省线路板的空间。
动态扫描显示接口是单片机种应用最广泛的一种显示方式。
其接口电路是把所有的LED显示器的8个笔画段A~G、DP的同名端连在一起,而每一个数码管的位选端是各自独立地受I/O线控制。
CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是哪个显示器亮,则取决于位选端,而这一端由I/O控制的,可以自行决定何时显示哪一位。
而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的位选端,使各个显示器轮流点亮。
在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的,约1ms左右,但是由于人的视觉暂留现象及发光余晖效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。
静态显示虽然数据稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多,但是编程相对于动态显示比较简单,本设计采用的是静态显示方案。
单片机对LED数码管的驱动方法可以分为串行和并行两种,分别适用于不同的使用场合,两者的硬件电路和程序区别也很大。
在一般情况下,单片机使用并行驱动的方式进行LED的显示,并行驱动的结构较简单。
4.4.2数码管的驱动电路设计分析
本设计数码管采用两个4位的共阴数码管组成8位数码管,采用的上面所说的单片机并行的驱动方式。
段选端接到P0口,位选端接到P2口,虽然使用的IO口比较多,因为本系统的电路不是很复杂,所有做到了充分利用单片机资源,减少硬件成本。
数码管电路原理图如下图4.4。
图4.4数码管内部原理图
4.5DS1302时钟电路设计分析
4.5.1DS1302芯片介绍
低功耗时钟芯片DS1302可以对年、月、日、时、分、秒进行计时,且具有闰年补偿等多种功能。
DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录。
这种记录对长时间的连续测控系统结果的分析以及对异常数据出现的原因的查找有重要意义。
(1)DS1302的性能特性
·
实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行计数;
用于高速数据暂存的31×
8位RAM;
最少引脚的串行I/O;
2.5~5.5V电压工作范围;
2.5V时耗电小于300nA;
用于时钟或RAM数据读/写的单字节或多字节(脉冲方式)数据传送方式;
简单的3线接口;
可选的慢速充电(至VCC1)的能力。
DS1302时钟芯片包括实时时钟/日历和31字节的静态RAM。
它经过一个简单的串行接口与微处理器通信。
实时时钟/日历提供秒、分、时、日、周、月和年等信息。
对于小于31天的月和月末的日期自动进行调整,还包括闰年校正的功能。
时钟的运行可以采用24h或带AM(上午)/PM(下午)的12h格式。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302有主电源/后备电源双电源引脚:
VCC1在单电源与电池供电的系统中提供低电源,并提供低功率的电池备份;
VCC2在双电源系统中提供主电源,在这种运用方式中,VCC1连接到备份电源,以便在没有主电源的情况下能保存时间信息以及数据。
DS1302由VCC1或VCC2中较大者供电。
当VCC2大于VCC1+0.2V时,VCC2给DS1302供电;
当VCC2小于VCC1时,DS1302由VCC1供电。
(2)DS1302数据操作原理
DS1302在任何数据传送时必须先初始化,把RST脚置为高电平,然后把8位地址和命令字装入移位寄存器,数据在SCLK的上升沿被输入。
无论是读周期还是写周期,开始8位指定40个寄存器中哪个被访问到。
在开始8个时钟周期,把命令字节装入移位寄存器之后,另外的时钟周期在读操作时输出数据,在写操作时写入数据。
时钟脉冲的个数在单字节方式下为8加8,在多字节方式下为8加字节数,最大可达248字节数。
如果在传送过程中置RST为低电平,则会终止本次数据传送,并且I/O引脚变为高阻态。
上电运行时,在VCC>
=2.5V之前,RST脚必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
DS1302的管脚图如图4.6所示,表4.1为各引脚的功能,内部结构图如图4.7所示。
图4.6DS1302管脚图
引脚号
引脚名称
功能
1
VCC2
主电源
2,3
X1,X2
振荡源,外接32768HZ晶振
4
GND
地线
5
RST
复位/片选线
6
I/O
串行数据输入/输出端(双向)
7
SCLK
串行数据输入端
8
VCC1
后备电源
表4.1DS1302引脚功能表
图4.7DS1302内部结构图
DS1302的控制字如图4.8所示。
控制字节的最高有效位(位7)必须是逻辑1;
如果它为逻辑0,则不能把数据写入到DS1302中。
位6如果为0,则表示存取日历时钟数据;
为1表示存取RAM数据。
位5~1(A4~A0)指示操作单元的地址。
最低有效位(位0)如为0,表示要进行写操作;
为1表示进行读操作。
控制字节总是从最低位开始输入/输出。
图4.8控制字节的含义
为了提高对32个地址的寻址能力(地址/命令位1~5=逻辑1),可以把时钟/日历或RAM寄存器规定为多字节(burst)方式。
位6规定时钟或RAM,而位0规定读或写。
在时钟/日历寄存器中的地址9~31或RAM寄存器中的地址31不能存储数据。
在多字节方式中,读或写从地址0的位0开始。
必须按数据传送的次序写最先的8个寄存器。
但是,当以多字节方式写RAM时,为了传送数据不必写所有31字节。
不管是否写了全部31字节,所写的每一字节都将传送至RAM。
数据读写程序如图4.9所示。
图4.9数据读写程序
DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表4.2,其中奇数为读操作,偶数为写操作。
寄存器
名
命令字
取值
范围
各位内容
写操作
读操作
3
2
秒寄存器
80H
81H
00-59
CH
10SEC
SEC
分钟寄存器
82H
83H
10MIN
MIN
小时
84H
85H
01-12或
00-23
12/
24
10
AP
HR
日期
86H
87H
01-28,29,
30,31
10DATE
DATE
月份寄存器
88H
89H
01-12
IOM
MONTH
周日寄存器
8AH
8BH
01-07
DAY
年份寄存器
8CH
8DH
00-99
10YEAR
YEAR
表4.2DS1302的日历、时钟寄存器及其控制字
时钟暂停:
秒寄存器的位7定义位时钟暂停位。
当它为1时,DS1302停止振荡,进入低功耗的备份方式。
通常在对DS1302进行写操作时(如进入时钟调整程序),停止振荡。
当它为0时,时钟将开始启动。
AM-PM/12-24[小]时方式:
[小]时寄存器的位7定义为12或24[小]时方式选择位。
它为高电平时,选择12[小]时方式。
在此方式下,位5是AM/PM位,此位是高电平时表示PM,低电平表示AM,在24[小]时方式下,位5为第二个10[小]时位(20~23h)。
4.5.2DS1302电路设计分析
实时时钟芯片