毕业设计基于DS1302的电子万年历设计.docx
《毕业设计基于DS1302的电子万年历设计.docx》由会员分享,可在线阅读,更多相关《毕业设计基于DS1302的电子万年历设计.docx(23页珍藏版)》请在冰豆网上搜索。
毕业设计基于DS1302的电子万年历设计
基于DS1302的电子万年历设计
专业班级:
学生姓名:
指导教师:
职称:
讲师
摘要:
现在是一个知识爆炸的新时代,新产品、新技术层出不穷,电子技术的发展更是日新月异。
可以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。
在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。
因此我们需要一个定时系统来提醒这些忙碌的人,而数字化的钟表给人们带来了极大的方便。
由于单片机具有灵活性强、成本低、功耗低、保密性好等特点,所以电子日历时钟一般都以DS1302为核心,外加一些外围设备来实现。
近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。
多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。
单片机在多功能数字钟中的应用已是非常普遍的,人们对数字钟的功能及工作顺序都非常熟悉。
但是却很少知道它的内部结构以及工作原理。
由单片机作为数字钟的核心控制器,可以通过它的时钟信号进行计时实现计时功能,将其时间数据经单片机输出,利用显示器显示出来,通过按键可以进行定时、校时功能。
输出设备显示器可以用液晶显示技术和数码管显示技术。
关键词:
DS1302实时钟万年历
TheDesignofTheSimpleLogicControllerBasedonSCM
Abstract:
Nowaneweraofknowledgeexplosion,newproducts,newtechnologiesemergeinendlessly,thedevelopmentofelectronictechnologyischanging.Itisnoexaggerationtosay,electronictechnologyapplicationseverywhere,electronictechnologyischangingourlife,andourworld.Inthisfastdevelopment,thetimeismoreprecioustopeopleinthefastpaceoflife,peopleoftenforgottenwhentime,onceencountersomethingimportantandforgettime,thiswillbringgreatloss.Soweneedaregularsystemtoremindthosebusypeople,anddigitalclocksbringgreatconvenience.Duetothemicrocontrollerhasflexibility,lowcost,lowpowerconsumption,thesecrecyisgoodwaitforacharacteristic,sotheelectroniccalendarclocksaregenerallybasedonDS1302,plussomeperipheralequipmenttoachieve.
Inrecentyears,withthedevelopmentofscienceandtechnologyandtheprogressofthesociety,thepeopleofadigitalclockhigherrequirements,thetraditionalclockalreadycannotsatisfythedemandsofthepeople.Multi-functionaldigitalclockinperformanceorinstylehaveundergoneaqualitativechange,electronicalarmclock,number,etc.Microcomputerinthemulti-functiondigitalclockapplicationisverycommon,andhasthefunctionofdigitalclockandworkorderisveryfamiliarwith.Butfewknowitsinternalstructureandworkprinciple.Bysinglechipmicrocomputerasthecorecontroller,digitalclockthroughitsclocksignaltimingrealizeitsfunction,theclocktimedatausingSCMoutputs,display,throughthebuttonscanberegularly,schoolwhenfunction.OutputdeviceswithLCDmonitorscandisplaytechnologyofdigitaltechnologyandthepipe.
Keywords:
DS1302calendarclock.
引言……………………………………………………………………………………………1
第一章系统概述……………………………………………………………………………2
1.1设计要求………………………………………………………………………………2
1.2设计方案………………………………………………………………………………2
1.3器件选择………………………………………………………………………………2
1.4系统概述………………………………………………………………………………3第二章系统的硬件设计…………………………………………………………………4
2.1时钟接口电路设计…………………………………………………………………4
2.1.1简介…………………………………………………………………………………4
2.1.2内部实时时钟RTC和RAM地址分配………………………………………………6
2.1.3时钟和日历………………………………………………………………………6
2.1.4控制寄存器………………………………………………………………………7
2.2键盘接口电路设计…………………………………………………………………7
2.2.1键盘的分类………………………………………………………………………8
2.2.2键盘开关的抖动…………………………………………………………………8
2.2.3键盘电路…………………………………………………………………………9
2.3八段数码管显示电路设计…………………………………………………………10
2.3.1数码管的结构……………………………………………………………………10
2.3.2数码管的分类……………………………………………………………………11
2.3.3数码管的显示方式………………………………………………………………12
2.3.4数码管显示图……………………………………………………………………13
2.4AT89C51简单电路设计………………………………………………………………13
2.4.1AT89C51简介………………………………………………………………………13
2.4.2单片机接口电路图………………………………………………………………17
第三章系统软件设计…………………………………………………………………18
3.1系统软件程序图……………………………………………………………………18
3.2接口软件…………………………………………………………………………18
3.3按键…………………………………………………………………………………21
第四章仿真软件介绍及其仿真………………………………………………………23
4.1仿真软件概述………………………………………………………………………23
4.2程序运行效果图……………………………………………………………………24
结论………………………………………………………………………………25
致谢………………………………………………………………………………26
参考文献…………………………………………………………………………27
引言
本论文是基于DS1302的电子万年历设计。
由于数字集成电路技术的发展和采用了先进的石英技术,使电子钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
虽然现在市场上已有现成的电子钟集成电路芯片出售,价格便宜,使用也灵活,如可以随意设置时、分、秒的输出,改变显示数字的大小等,并且由于集成电路技术的发展,特别是MOS集成电路技术的发展,使电子钟具有体积小、携带方便,但是这里介绍的实用电子钟可以满足使用者的一些特殊要求,输出方式灵活、功耗低、计时准确、性能稳定、维护方便等优点。
实用电子时钟是一个时间控制系统,既能作为一般的时间显示器,同时可以根据需要扩展其功能,扩展为可显示时间和日历的电子万年历。
论文中的控制单元是以ATMEL公司的AT89C51微控制器为核心,显示单元采用LED数码管,实现时间的显示。
在软件上,采用keilc51软件系统,控制单元采用汇编语言编程;另外,从硬件和软件上采取了多种措施提高系统的可靠性。
第一章系统概述
1.1设计要求
1.自动计时,显示年、月、日、时、分、秒。
2.时间显示可调整。
3.具备闰年闰月自动补偿功能。
1.2设计方案
按照设计要求,整个系统可划分为以下几个模块:
1.主控模块
采用单片机,对系统进行初始化,主要完成对键盘的响应、数码管显示等功能的控制,起到总控和协调各模块之间工作的作用。
2.键盘输入模块
主要完成时间相关的设置调制。
3.数码管显示模块
完成对单片机送来的时间和日期进行显示。
1.3器件选择
主控模块采用AT89C51单片机作为系统的控制核心。
键盘输入模块采用独立式按键电路:
每个键单独占有一根I/O接口线,每个I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式,但是当按键较多时占用单片机的I/O数目较多。
两个六位8段数码管。
1.4系统概述
系统由单片机AT89C51为主控制器,单片机不断读取实时钟DS1302提供的时间,送数码管显示。
通过按键可以对年,月,日及时间时,分,秒进行设置。
整个系统的电源由5V电池提供,以便于携带。
所设计的电子万年历目标为实现以下功能:
1.年,月,日及时间时,分,秒的显示;2通过按键可随时进行年,月,日及时间时,分,秒的校对。
系统结构如图1.1所示:
图1.1系统框图
第二章系统的硬件设计
2.1时钟接口电路设计
本电子万年历系统的重要部分在于时钟模块,这里选用串行日历时钟芯片DS1302。
与采用并行总线与单片机进行数据通信的时钟芯片相比,DS1302与单片机的连线大为减少,极大的节省了单片机的系统资源。
时钟芯片的接口电路如图2.1所示。
图2.1DS1302时钟电路
2.1.1结构及工作原理
DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、星期、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。
DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。
DS1302的引脚排列,其中Vcc1为后备电源,Vcc2为主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由Vcc1或Vcc2两者中的较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。
当Vcc2小于Vcc1时,DS1302由Vcc1供电。
X1和X2是振荡源,外接32.76kHz晶振。
RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:
首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
I/O为串行数据输入输出端(双向),后面有详细说明。
SCLK始终是输入端。
下图为DS1302的引脚功能图。
图2.2DS1302引脚示意图
图中,Vcc,GND---直流电源通过这两个引脚提供给该器件,Vcc为+5V输入,当提供的5V电源在正常范围内器件能充分地被访问,能对器件读写数据。
当3V的电池被连至该器件且Vcc低于1.25×VBAT时,对器件的读写被禁止,而计时功能照常进行,不受低输入电压的影响。
当Vcc降到低于VBAT,则RAM区和计时器将被切换到外部电源VBAT来供电(名义上VBAT为3.0V直流电源)。
VBAT---电池输入引脚。
可以是任意标准的3V锂电池或其它电源。
为了器件能够正常工作,电池电压必须限制在2.0~3.5V之间。
事实上,写保护带电压被内部电路设置为1.25×VBAT。
X1,X2----32.76KHZ晶振管脚
GND----地
RST----复位键
I/O----数据输入/输出引脚
SCLK----串行时钟
Vcc1,Vcc2----电源供电管脚
2.1.2内部实时时钟RTC和RAM地址分配
DS1302的RTC与RAM寄存器的地址分配如图2.3所示。
RTC寄存器地址位于00H到07h处。
RAM寄存器地址位于08h~3Fh。
在多字节存取中,当地址指针到达3Fh,即RAM空间的最后一个单元,则下一个操作地址将翻卷到00h,即时钟空间的开头。
图2.3DS1302地址分配图
2.1.3时钟和日历
通过读取正确的寄存器字节能获得正确的时钟和日历信息,实时时钟寄存器如表2.1所示。
通过写入正确的寄存器字节能够设置或者初始化时钟和日历。
时钟和日历寄存器中的内容均采用BCD码格式,时钟寄存器00h的位7是时钟停止位,当该位被设置为1时,晶振失效,当该位被清零时,晶振使能。
所以,在初始化程序中,使能晶振(CH位=0)是很重要的。
DS1302可以运行在12小时或24小时模式,小时寄存器的位7被定义为作为12小时或24小时模式选择位。
当该位为高时选择12小时模式,采用12小时模式时,位5是AM/PM标志位,该位为1表示PM。
当采用24小时模式时,位5是第二个10小时位(20~23小时)。
当总线开始工作时,当前的时间信息被传送给一串二级寄存器,时间信息然后从这些二级寄存器中读取,而时钟照常运行。
当在读过程中,主寄存器内容发生变化时,这样可以避免再次读寄存器的必要性。
表2.1DS1302实时时钟寄存器
2.1.4控制寄存器
DS1302控制寄存器用来控制SQW/OUT引脚的操作。
OUT:
输出控制。
当方波输出失效时,该位控制SQW/OUT引脚的输出。
如果SQWE=0,若OUT=1则SQW/OUT引脚的逻辑电平为1,而OUT=0则SQW/OUT引脚的逻辑电平为0。
SQWE:
方波使能。
当该位被设置为逻辑1时,使能晶振输出,方波输出的频率由RS1和RS0位的值来确定。
当方波输出的频率设为1Hz,则时钟寄存器内容将在方波的下降沿更新。
表2.2方波输出频率
RS1
RS0
SQWOUTPUT
FREQUENCY
0
0
1Hz
0
1
4.096KHz
1
0
8.192KHz
1
1
32.768KHz
RS:
速率选择。
当方波输出使能时,这些位控制方波输出的频率。
表2.2列出了方波频率与RS位的值的对应关系。
2.2键盘接口电路设计
2.2.1按键的分类
键盘在单片机应用系统中,实现输入数据、传送命令的功能,是人工干预的主要手段。
键盘分两大类:
编码键盘和非编码键盘。
编码键盘:
由硬件逻辑电路完成必要的键识别工作与可靠性措施。
每按一次键,键盘自动提供被按键的读数,同时产生一选通脉冲通知微处理器,一般还具有反弹跳和同时按键保护功能。
这种键盘易于使用,但硬件比较复杂,对于主机任务繁重之情况,采用8279可编程键盘管理接口芯片构成编码式键盘系统是很实用的方案。
非编码键盘:
只简单地提供键盘的行列与矩阵,其他操作如键的识别,决定按键的读数等仅靠软件完成,故硬件较为简单,但占用CPU较多时间。
有:
独立式按键结构、矩阵式按键结构
2.2.2按键开关的抖动
组成键盘的按键有触点式和非触点式两种,单片机中应用的一般是由机械触点构成
的。
在下图2.4中,当开关S未被按下时,P0。
0输入为高电平,S闭合后,P0。
0输入为低电平。
由于按键是机械触点,当机械触点断开、闭合时,会有抖动动,P1。
0输入端的波形如图2.5所示。
这种抖动对于人来说是感觉不到的,但对计算机来说,则是完全可以感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言,这已是一个“漫长”的时间了。
前面我们讲到中断时曾有个问题,就是说按键有时灵,有时不灵,其实就是这个原因,你只按了一次按键,可是计算机却已执行了多次中断的过程,如果执行的次数正好是奇数次,那么结果正如你所料,如果执行的次数是偶数次,那就不对了。
图2.4开关S图2.5P1.0输入端的波形
为使CPU能正确地读出P0口的状态,对每一次按键只作一次响应,就必须考虑如何去除抖动,常用的去抖动的方法有两种:
硬件方法和软件方法。
单片机中常用软件法,因此,对于硬件方法我们不介绍。
软件法其实很简单,就是在单片机获得P0。
0口为低的信息后,不是立即认定S1已被按下,而是延时10毫秒或更长一些时间后再次检测P0。
0口,如果仍为低,说明S1的确按下了,这实际上是避开了按键按下时的抖动时间。
而在检测到按键释放后(P0。
0为高)再延时5-10个毫秒,消除后沿的抖动,然后再对键值处理。
不过一般情况下,我们通常不对按键释放的后沿进行处理,实践证明,也能满足一定的要求。
当然,实际应用中,对按键的要求也是千差万别,要根据不同的需要来编制处理程序,但以上是消除键抖动的原则。
2.2.3键盘电路
在设计键盘电路时我们采用3×1的四键键盘。
单片通过查询方式对键盘扫描。
用软件算法消除按键瞬时的抖动。
按键电路如图2.6所示。
其中,各键值代表的含义如下:
S1:
进入时.分.秒设置选择;S2:
数值加;S3:
进入年.月.日设置选择。
图2.6按键电路
2.3八段数码管显示电路设计
.数码管是非常常见的东西,他能显示数字,以及字母,应用非常的广泛,本文我来和大家谈谈如何用单片机来驱动数码管。
2.3.1数码管的结构
数码管由7个发光二极管组成,行成一个日字形,它门可以共阴极,也可以共阳极.通过解码电路得到的数码接通相应的发光二极而形成相应的字,这就是它的工作原理。
基本的半导体数码管是由7个条状的发光二极管(LED)按图2.7所示排列而成的,可实现数字0~9及少量字符的显示。
另外为了显示小数点,增加了1个点状的发光二极管,因此数码管就由8个LED组成,我们分别把这些发光二极管命名为a,b,c,d,e,f,g,dp,排列顺序如下图2.7
图2.7数码管引脚图及外形图
2.3.2数码管的分类
数码管按各发光二极管电极的连接方式分为共阳数码管和共阴数码管两种。
共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。
共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。
当某一字段的阳极为低电平时,相应字段就不亮。
共阴数码管内部连接如图2.8所示。
图2.8共阴数码管内部连接图
共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。
共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。
当某一字段的阴极为高电平时,相应字段就不亮。
共阳数码管内连接如图2.9所示。
图2.9共阳数码管内部连接图
2.3.3数码管的显示方式
数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
动态显示驱动:
数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。
通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
静态显示驱动:
静态驱动也称直流驱动。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89C51单片机可用的I/O端口才32个呢:
),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
我们设计的万年历采用6位八段共阳数码管动态显示驱动。
2.3.4数码管显示图
模块在接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取BF标志时BF需为“0”,方可接受新的命令。
如果在送出一个指令前不检查BF标志,则在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前一个指令确定执行完成。
系统开机后,自动进入时钟状态显示,画面如图2.10所示。
图2.10时钟状态显示画面
2.4AT89C51单片机电路设计
2