学位论文基于时钟日历芯片ds1302的万年历设计论文.docx
- 文档编号:8071484
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:40
- 大小:646.63KB
学位论文基于时钟日历芯片ds1302的万年历设计论文.docx
《学位论文基于时钟日历芯片ds1302的万年历设计论文.docx》由会员分享,可在线阅读,更多相关《学位论文基于时钟日历芯片ds1302的万年历设计论文.docx(40页珍藏版)》请在冰豆网上搜索。
学位论文基于时钟日历芯片ds1302的万年历设计论文
基于时钟日历芯片DS1302的万年历设计
黄豪民
摘要
随着科学技术的发展,万年历的设计也层出不穷。
本设计以单片机AT89C51和DS1302为核心,结合译码器74HC154和驱动芯片74LS244,以及模拟键盘,LED显示电路等构成一个可控及显示精确的万年历时间系统。
DS1302为一个实时时钟芯片,具有较高时间精度,它与单片机进行串口通信,单片机通过与它的通信,取出其时间寄存器中的值,再通过相应的电路,把时间值通过LED显示,如果显示的值与标准时间不同,此系统就经过模拟键盘灵活控制,调节DS1302中时间寄存器中的值,达到与标准时间同步。
关键词AT89C51,DS1302
ABSTRACT
Alongwithscienceandtechnology'sdevelopment,thedesignsoftheperpetualcalendarhavemanymeanings.ThisdesignusesthemicroprocessorAT89C51andthechipDS1302,withthedecoderchip74HC154,thedrivechip74LS244,thesimulativekeyboard,theLEDdisplayandsoontoconstitutetheperpetualcalendarsystemwhichcancontrolanddisplayprecisely.
DS1302isareal-timeclockchipandhasthehightimeprecision,itcommunicateswiththemicroprocessorviatheserialinterface.ThemicroprocessortakesoutDS1302’stimeregistervaluebythecommunication,atlasttheLEDdisplaysthetimevaluebythecorrespondingcircuit.Ifthetimevalueisdifferentfromthestandardtime,thesimulationkeyboardcanadjustconvenientlyDS1302’stimeregistervalue,achievingwiththestandardtimesynchronously.
KeywordsAT89C51,DS1302
1绪论
在科技日新月异发展的今天,人们对时间概念的认识显得尤为深刻,“时间就是金钱”,“时间就是生命”等警句更是激励着人们努力工作,把握时间。
作为时间的标量,时钟等计时设备也随着人们的不断认识而变化。
在三千年前,我国祖先就发明了用土和石片刻制成的“土圭”与“日规”两种计时器,成为世界上最早发明计时器的国家之一。
到了铜器时代,计时器又有了新的发展,用青铜制的“漏壶”取代了“土圭”与“日规”。
东汉元初四年张衡发明了世界第一架“水运浑象”,此后唐高僧一行等人又在此基础上借鉴改进发明了“水运浑天仪”、“水运仪象台”。
至元明之时,计时器摆脱了天文仪器的结构形式,得到了突破性的新发展。
元初郭守敬、明初詹希元创制了“大明灯漏”与“五轮沙漏”,采用机机械结构,并增添盘、针来指示时间,这使其计时更准确,机械性也更先进。
而在国外,阿拉伯工匠最早利用等速运动原理设计出摆钟表。
埃及人制造了漏壶钟,它是由两个互相叠置的圆筒组成。
水从上面的圆筒穿过一个小孔滴入下面的圆筒。
水滴完了,就是某个时辰过去了。
大一点儿的漏壶灌一次水可报六个小时,然后再重新装满水。
他们还甚至做了装有指针和鸣击装置的钟表,每隔一小时,一定数量的圆球便滚落到金属盖上,发出大声的鸣响。
而钟表发展史日晷是最早报“标准时”的仪器,它由晷盘和晷针组成。
晷盘是一个有刻度的盘,其中央装有一根与盘面垂直的晷针,针影随太阳运转而移动在盘上的位置。
一二七零年前后在意大利北部和南德一带出现的早期机械式时钟,以秤锤作动力,每一小时鸣响附带的钟,自动报时。
一三三六年,第一座公共时钟被安装于米兰一教堂内,在接下来的半个世纪里,时钟传至欧洲各国,法国、德国、意大利的教堂纷纷建起钟塔。
到了现代,计时设备的新技术更是层出不穷,一九六九年,日本精工手表公司开发出世界上第一块石英电子手表,日误差缩小到零点二秒以内。
与传统的机械式手表相比,它走时更为准确,功能更多,制作的成本也更低。
一九七二年,美国的汉密尔顿公司发明了数字显示手表,马达和齿轮从手表中消失了。
为了适应现代社会的需要,瑞士等国更是推出自己特色的钟表新产品,如瑞士菲利浦公司生产的光电钟,可将光源转换成电能作能源的电子表。
日本研制成具有录音、放音等功能的数字手表,还有翻译手表、电视手表等。
英国的无声闹声,到了预定钟点,产生振动叫醒人,可供耳聋者使用。
还有声控照明钟、气温钟、火警闹
钟等。
时钟芯片作为一个独特的时钟设备,它结合时钟原理,把晶振,寄存器等组合在一起做成独立的一块芯片,灵活地满足各种用户需要。
2功能要求
本设计要求以单片机和DS1302为核心,结合显示电路,模拟键盘等辅佐模块,构成一个可控又计时准确的万年历时钟系统。
3方案论证
本设计从3个方面来分析论证:
显示器的选择,编程语言的选择和微处理器的选择。
3.1显示器的选择
一般嵌入式系统可供选择的显示器有以下几种,其具体介绍为:
3.1.1VFD显示器
VFD显示器是由电子管发展过来的一种显示器件。
它是真空二极管或三极
管的一种改型。
二极管的改型称为静态VFD,三极管的改型称为动态VFD。
静态VFD含有两个基本电极:
阴极(灯丝)和阳极。
动态VFD比静态VFD多一极:
栅极。
所有电极在高真空条件下封装于玻璃壳内。
由阴极发射的电子在正向电位的作用下加速到栅极和阳极(静态VFD直接到达阳极),并碰撞激活在阳极的荧光粉图案使其发光。
所需的亮度图形显示可以由控制栅极和阳极(静态VFD仅控制阳极)正电位或负电位来实现。
VFD显示器具有高清晰度、高亮度、宽视角、反应速度快和从红色到蓝色多种色彩等特点,显示效果好。
当使用CIG(集成芯片玻璃)技术时,可集成VFD驱动电路;具有可靠且寿命长等特点。
但它需要5.5~6.3V的灯丝电压,150~450mA的灯丝电流,12~36V的阳极加速电压,15~36V的栅极电压。
不考虑阳极和栅极电流,单灯丝功耗就达825mW,功耗相对来说较大,不适合在移动设备上使用。
另外,它需要多组电压不同的供电电压,使用不方便。
3.1.2LED显示器
LED显示器是由发光二极管发展过来的一种显示器件。
它是LED发光二极管的改型。
一般分为LED数码管显示器和LED点阵显示器。
LED点阵显示器能显示各种信息,但它的体积较大,适合于广告牌等需要大面积显示的场所。
LED数码管显示器具有高亮度、宽视角、反应速度快,可靠性高、使用寿命长等特点。
它比较适合显示数字的时钟系统,同时,在微处理器和LED发光二极管显示器之
间一般还需要驱动芯片。
3.1.3LCD液晶显示器
LCD液晶显示器是利用光的偏振现象来显示的。
一般分为数字型LCD和点阵型LCD。
前者用于显示简单的字符,如时钟等;后者能显示复杂的图形和自定义字符,因此应用非常广泛。
LCD液晶显示器具有本身不发光,靠反射或者透射其它光源发光的优点,同时具有功耗小、可靠性高、寿命长、体积小、电源简单等特点,非常适合于嵌入式系统、移动设备和掌上设备的使用。
结合实际,本时钟系统的显示模块要求简单,以及基于自己掌握的知识,本设计采用LED显示器。
3.2编程语言的选择
3.2.1单片机汇编语言
处理器CPU可以识别的是一组由0和1序列构成的指令码,这种指令码
构成的指令系统称为机器语言,但由于它们不直观,难记、难认、难理解、难易查错等特点,人们在20世纪50年代中期开始用一些“助记符号”来代表机器语言中由0和1组成的指令系统。
这些“助记符号”构成的指令系统和现在增加的伪指令集称为汇编语言。
它具有以下几个方面的特性:
与机器的相关性、执行的高效性、编写程序的复杂性、调试的复杂性等。
单片机汇编语言在这个设计系统中也就是MCS-51指令集。
它是由111条指令组成,按照它们的操作性质可划分为数据传送、算术运算、逻辑操作、程序转移、位操作等5大类。
MCS-51的指令长度较短:
单字节指令有49条;双字节指令有46条;最长的是三字节指令,只有16条。
指令周期较短:
单机器周期指令64条,双机器周期指令45条,只有乘除需要4个机器周期。
MCS-51的指令具有简明、整齐和易于掌握的特点。
3.2.2单片机C语言
单片机C语言源自于单片机汇编语言,它是一种面向过程的语言,具有结构化的特点,可以产生紧凑的代码。
它于单片机汇编语言相比,具有如下的优点:
①对单片机的指令系统不要求很了解,仅要求对8051的存储器结构有所了解
②寄存器的分配,不同存储器的寻址及数据类型等细节可有编译器管理
③程序有规范的结构,可分为不同的函数,这种方式可使程序结构化
④关键字及运算符号可近似人的思维过程式使用
⑤编程及程序调试时间显著缩短,从而提高效率
⑥提供的库包含许多标准子程序,具有较强的数据处理能力
⑦编好的程序容易植入新程序
单片机C语言具有单片机汇编语言力所不及的优点,而且已发展成为嵌入式系统的一个发展方向,因此我选择单片机C语言作为本设计的编程语言。
3.3微处理器的选择
基于本时钟系统的设计要求,由于只是处理显示,键盘检测,与DS1302联系等基本功能,不选择ARM,X89等32位CPU和AVR等16位CPU,而选择ATMEL公司的AT89C51作为本设计的CPU。
4硬件电路
图4.1为本课题——基于时钟日历芯片DS1302的万年历设计的系统设计原理框图。
图4.1基于时钟日历芯片DS1302的万年历的系统的原理框图
系统的硬件电路主要由DS1302、AT89C51单片机、模拟键盘、74LS244驱动芯片、74HC154(4-16译码器)、16个数码管等组成。
AT89C51单片机把DS1302中寄存器的时间值取出来,通过译码电路,驱动电路,在数码管上显示出时间,模拟键盘通过数码管显示的值做相应的控制,以达到准确显示时间的目的。
图4.2为本课题——基于时钟日历芯片DS1302的万年历设计的系统设计的电路原理图(在PROTEUS软件中仿真)。
图4.2基于时钟日历芯片DS1302的万年历的系统的电路原理图
4.1DS1302时钟芯片
4.1.1DS1302简介
DS1302是美国DALLAS公司推出的一种串行接口实时时钟芯片。
芯片内部具有可编程日历时钟和31个字节的静态RAM,日历芯片可自动进行闰年补偿,并可以对年、月、日、周日、时、分、秒进行计时,工作电压为2.5V~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,提供了对备份电源进行绢流充电的能力。
它的主要特点为采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能,通常采用普通32.768kHz晶振。
DS1302采用八脚的DIP封装,其引脚排列如图4.3所示:
Vcc1,Vcc2:
电源输入,其中Vcc1为后备电源,Vcc2为主电源。
GND:
接地端
RST复位端
X1,X2:
外接32.768KHz石英晶振输入
I/0:
数据输入/输出端
SCLK串行时钟输入
图4.3DS1302引脚图
在DS1302的引脚排列,Vcc1和Vcc2为电源引脚,其中,单电源供电时接Vcc1引脚,双电源供电时,主电源接接Vcc2,从电源接Vcc1,如果采用可充电的镉镍电池,可启用内部涓流充电器在主电压正常时间向电池充电,以延长电池的使用时间。
备份电池也可用1微法以上的超容量电池代替,但得注意备份电池的电压应略低于主电源的工作电压。
X1和X2是振荡源,外接32.768kHz的石英晶振。
RST是通信允许信号,当RST=0时,允许通信,当RST=0时,禁止通信。
I/O引脚为双向串行数据传送信号,SCK引脚为串行数据的位同步信号。
DS1302的内部结构如图4.4所示。
图4.4DS1302内部结构图
DS1302的典型应用如图4.5所示。
4.1.2DS1302的控制字节
DS1302的控制字如图4.6所示。
控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中。
位6(RAM/CK)位为DS1302片内RAM/时钟选择位,如果为0,则表示存取日历时钟数据,为1表示存取RAM数据。
位5至位1(A4至A0)用来选择日历时钟寄存器或RAM的地址选择位。
最低有效位位0(RD/WR)为读写控制位,如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
图4.5DS1302的典型应用
图4.6DS1302的控制字节
4.1.3数据的输出
I/O引脚在写入控制指令字后的下一个SCLK时钟的下降沿时,传送一个字
节的数据,数据输入从低位即位0开始。
注意在数据传送时,RST引脚需保持高电位。
如4.7所示
4.1.4数据的输入
I/O引脚在写入控制指令字后的下一个SCLK时钟的上升沿时,数据被写入到内部寄存器,DS1302,数据输入从低位开始,一直到高八位。
注意在数据传输时,RST引脚需保持为高电位,如图4.8所示。
图4.7数据的输出
图4.8数据的输入
4.1.5DS1302的寄存器
DS1302有12个寄存器,其中前7个寄存器分别存放着秒,分,时,日,月,星期和年等信息,存放的数据位为BCD码形式。
此外,DS1302还有控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。
寄存器及其控制字如表4.1所示。
秒寄存器的最高位为时钟暂停控制位,当CH=0时,时钟振荡器暂停,DS1302进入低功耗状态,当CH=1时启动时钟。
写保护寄存器的最高位WP=1时,才能对日历时钟或RAM的内容进行写操作,WP=0,禁止写操作。
表4.1DS1302的寄存器
时钟多字节寄存器为多字节突发方式控制寄存器,通过对该寄存器的寻址,可以将对日历时钟或RAM的读写操作规范为多字节方式。
在此方式下写时钟寄存器时,必须按数据传送的次序写入最先的8个寄存器;而以多字节方式写RAM时,为了传送数据不必写入所有的31个RAM字节。
时钟多字节寄存器读写控制字如图4.9所示。
图4.9时钟多字节读写方式
绢细电流充电控制寄存器如下图4.10所示。
图4.10绢细电流充电控制寄存器
TCS:
绢细充电选择
TCS=1010使能绢流充电
TCS=其它禁止绢流充电
DS:
二极管选择位
DS=01选择一个二极管
DS=10选择二个二极管
DS=00或11即使TCS=1010,充电功能也被禁止
RS的选择如表4.2所示.
表4.2RS选择
31*8RAM寄存区如下图4.11所示。
图4.11RAM寄存区
4.1.6DS1302的读写方式
DS1302与8051之间通过IO线传送同步串行数据,SCLK为串行通信时位同步时钟,一个SCLK脉冲传送一位数据。
每个数据传送时都以字节为单位,低位在前,高位在后,传送一个字节需要8个SCLK脉冲。
数据传送可以分为单字节传送方式和多字节突发方式传送。
单字节传送方式如图4.12所示,在RST=1期间,8051单片机先向DS1302发送一个字节的命令字,紧接着发送一个字节的数据,DS1302在接受到命令字节后自动将数据写入到指定的片内地址或从该地址读取数据。
数据多字节突发方式的传送时序如图4.13示,RST=1期间,若8051单片机向DS1302发送的命令字节中A4—A1全为1,则DS1302在接受到这个字节命令后可以一次进行8个字节日历时钟数据或是31个片内RAM单元数据的读写工作。
图4.12DS1302单字节传送方式
图4.13DS1302多字节突发方式
从以上时序可知,单字节方式传送一次数据需要16个SCLK脉冲多字节方式传送一次数据在对日历时钟进行读写时需要72个SCLK脉冲,而在对片内RAM单元读写时最最多需要256个SCLK脉冲。
4.1.7DS1302时序图
DS1302读时序图如图4.14所示
图4.14DS1302读时序图
DS1302写时序图如图4.15所示。
DS1302时序图中一些重要参数如表4.3所示。
图4.15DS1302写时序图
表4.3时序图中重要参数
参数名称
使用条件
最小值
最大值
Tcc
Vcc=2.0V
4us
Vcc=5.0V
1us
Tch
Vcc=2.0V
1000ns
Vcc=5.0V
250ns
Tcl
Vcc=2.0V
1000ns
Vcc=5.0V
250ns
Tcch
Vcc=2.0V
240ns
Vcc=5.0V
60ns
4.1.8DS1302电路
DS1302单元电路(在PROTEUS软件中仿真)如4.16所示。
图4.16DS1302电路原理图
4.2单片机AT89C51
4.2.1单片机AT89C51简介
AT89C51引脚图如图4.17所示。
图4.17AT89C51引脚
AT89C51内部结构如图4.18所示。
图4.18AT89C51内部结构
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4Kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,可以灵活地应用到各种控制领域。
AT89C51的主要特性:
1)与MCS-51产品指令系统完全兼容
2)4K字节可重复擦写Flash闪速存储器
3)1000次擦写周期
5)全静态工作:
0Hz-24Hz
6)三级加密程序存储器
7)128×8位内部RAM
8)32个可编程I/O线
9)2个16位定时器/计数器
10)6个中断源
11)可编程串行UART通道
12)低功耗的闲置和掉电模式
AT89S51具有PDIP,TQFP和PLCC三种封装形式。
本设计采用的是PDIP封装形式。
4.2.2单片机引脚简介
P0口——8位,开漏极,双向I/O口。
P0口可作为通用I/O口,但须外接上拉电阻,作为输出口,每个引脚能以吸收8个TTL的灌电流。
作为输入时,首先应将引脚置1。
P0口也可用做访问外部程序存储器和数据存储器时的低8位地址/数据总线的复用线,在该模式下,P0口含有内部上拉电阻。
在Flash编程时,P0口接收代码字节数据;在编程校验时,P0口输出代码字节数据(需要外接上拉电阻)。
P1口——8位、准双向I/O口,具有内部上拉电阻。
P1口是为用户准备的1/O双向口。
在编程和校验时,可用做输入低8位地址。
用做输入时,应先将输出锁存器置1.P1口可驱动4个TTL负载。
P2口——具有内部上拉电阻的8位双向I/O口。
P2口用作输出口时,可驱动4个TTL负载;用作输入口时,先将引脚置1,由内部上拉电阻将其提高到高电平。
若负载为低电平,则通过内部上拉电阻向外输出电流。
CPU访问外部16位地址的存储器时,P2口提供8位地址,当CPU用8位地址寻址外部存储器时,P2口为P2特殊功能寄存器的内容。
在Flash并行编程和校验时,P2口可输入高字节地址和某些控制信号。
P3口——具有内部上拉电阻的8位双向口。
P3口用做输出口时,输出缓冲寄存器可吸收4个TTL的灌电流;用作输入口时,首先将引脚置1,由内部上拉电阻抬为高电平。
若外部的负载是低电平,则通过内部上拉电阻向外输出电流。
在与Flash并行编程和校验时,P3口可输入某些控制信号。
P3口除了通用I/O功能外,还有替代功能。
表5.2所列。
P3口——具有内部上拉电阻的8位双向口。
P3口用做输出口时,输出缓冲寄存器可吸收4个TTL的灌电流;用作输入口时,首先将引脚置1,由内部上拉电阻抬为高电平。
若外部的负载是低电平,则通过内部上拉电阻向外输出电流。
在与Flash并行编程和校验时,P3口可输入某些控制信号。
P3口除了通用I/O功能外,还有替代功能。
表5.2所列。
表5.2P3口的替代功能
引脚
符号
说明
P3.0
RXD
串行口输入
P3.1
TXD
串行口输出
P3.2
外部中断0
P3.3
外部中断1
P3.4
T0
T0定时器的外部计数输入
P3.5
T1
T1定时器的外部计数输入
P3.6
外部数据存储器的写选通
P3.7
外部数据存储器的读选通
2.控制信号线
RST——复位输入信号,高电平有效。
在振荡器稳定工作时,在RST脚施加两个机器周期(即24个晶振周期)以上的高电平,将器件复位。
/VPP——外部程序存惜器访问允许信号EA(ExternalAccessEnable)。
当
信号接地时,对ROM的读操作限定在外部程序存储器,地址为0000H~FFFFH;当
接地时,对ROM的读操作从内部程序存储器开始,并可延续至外部程序存储器。
在编程时,该引脚可接编程电压(AT89C51的VPP为5V或12V;AT89LV51的VPP为12V)。
在编程校验时,该引脚可接VCC。
——片外程序存储器读选通信号用PSEN(ProgramStoreEnable),低电平有效。
在片外程序存储器取指期间,当
有效时,程序存储器的内容被送至PO口(数据总线);在访问外部RAM时,
无效。
AIE/
——低字节地址锁存信号AlE(AddresslatchEnable)。
在系统扩展时,AlE的下降沿将PO口输出的低8位地址锁存在外接的地址锁存器中,以实现低字节地址和数据的分时传送。
此外,ALE端连续输出正脉冲.频率为晶振频率的1/6,可用做外部定时脉冲使用。
但要注意,每次访问外RAM时要丢失一个ALE脉冲。
在编程期间,该引脚输入编程脉冲(
)。
3.电原线
VCC——电源电压输入。
GND——接地。
4.外部晶振引线
XTAL1——片内振荡器反相放大器和时钟发生线路的输入端。
使用片内振荡器时,连接外部石英晶体和微调电容。
XTAL2——片内振荡器反相放大器的输出端。
当使用片内振荡器时,外接石英晶体和微调电容。
当使用外部振荡器时,引脚XTAL1接收外振荡器信号,XTAIL2悬空。
时钟振荡器:
AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
这个放大器作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。
其震荡电路如图4.19所示。
外接石英晶体(或陶瓷谐
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学位 论文 基于 时钟日历 芯片 ds1302 万年历 设计