基于DS1302的万年历设计.docx

上传人:b****3 文档编号:10334480 上传时间:2023-05-25 格式:DOCX 页数:34 大小:310.51KB
下载 相关 举报
基于DS1302的万年历设计.docx_第1页
第1页 / 共34页
基于DS1302的万年历设计.docx_第2页
第2页 / 共34页
基于DS1302的万年历设计.docx_第3页
第3页 / 共34页
基于DS1302的万年历设计.docx_第4页
第4页 / 共34页
基于DS1302的万年历设计.docx_第5页
第5页 / 共34页
基于DS1302的万年历设计.docx_第6页
第6页 / 共34页
基于DS1302的万年历设计.docx_第7页
第7页 / 共34页
基于DS1302的万年历设计.docx_第8页
第8页 / 共34页
基于DS1302的万年历设计.docx_第9页
第9页 / 共34页
基于DS1302的万年历设计.docx_第10页
第10页 / 共34页
基于DS1302的万年历设计.docx_第11页
第11页 / 共34页
基于DS1302的万年历设计.docx_第12页
第12页 / 共34页
基于DS1302的万年历设计.docx_第13页
第13页 / 共34页
基于DS1302的万年历设计.docx_第14页
第14页 / 共34页
基于DS1302的万年历设计.docx_第15页
第15页 / 共34页
基于DS1302的万年历设计.docx_第16页
第16页 / 共34页
基于DS1302的万年历设计.docx_第17页
第17页 / 共34页
基于DS1302的万年历设计.docx_第18页
第18页 / 共34页
基于DS1302的万年历设计.docx_第19页
第19页 / 共34页
基于DS1302的万年历设计.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于DS1302的万年历设计.docx

《基于DS1302的万年历设计.docx》由会员分享,可在线阅读,更多相关《基于DS1302的万年历设计.docx(34页珍藏版)》请在冰点文库上搜索。

基于DS1302的万年历设计.docx

基于DS1302的万年历设计

摘要

随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。

美国DALLAS公司推出的具有涓细电流充电能的低功耗实时时钟电路DS1302。

它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。

对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和还具有时间校准等功能。

该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。

综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

 

关键词:

时钟电钟;DS1302;动态扫描;单片机

Abstract

Alongwiththerapiddevelopmentoftechnology,thepassageoftime,fromconcepttothesun,untilnowelectricclock,humanpendulumclocksarecontinuouslyresearchandconstantinnovationofrecords.AmericanDALLAScompanylaunchedwithJuanfinecurrentchargeoflow-powerreal-timeclockcircuitDS1302.Itcantoyear,month,day,Sunday,when,minutesandsecondsontheclockandalsohasaleapyearcompensationandotherfunctions,andDS1302oflongservicelifeandsmallerror.Fordigitalelectroniccalendarbyusingobjectdigitaldisplay,canalsoshowsthatyear,month,day,Sunday,when,minutesandsecondsandstillhavetimecalibration,andotherfunctions.ThiscircuitadoptsAT89S52SCMasthecore,lowconsumption,caninthelowvoltage3Vwork,voltagecanchoose3~5Vvoltagepowersupply.

Tosumupthecalendarhasreadconvenient,directdisplay,functionaldiversity,simplecircuit,lowcost,andmanyotheradvantages,conformtothetrendofthedevelopmentofelectronicinstruments,andhasabroadmarketprospect.

Keywords:

Clockactuated;DS1302;Dynamicscanning;MCU

引言…………………………………………………………………………………………4

1设计要求与方案论证…………………………………………………………………4

1.1设计要求……………………………………………………………………………………4

1.2系统基本方案选择和论证………………………………………………………………4

1.2.1单片机芯片的选择方案和论证……………………………………………………4

1.2.2显示模块选择方案和论证………………………………………………………4

1.2.3时钟芯片的选择方案和论证………………………………………………………5

1.3电路设计最终方案决定…………………………………………………………………5

2系统的硬件设计与实现……………………………………………………………5

2.1电路设计框图……………………………………………………………………………5

2.2系统硬件概述……………………………………………………………………………5

2.3主要单元电路的设计……………………………………………………………………6

2.3.1单片机主控制模块的设计…………………………………………………………6

2.3.2时钟电路模块的设计…………………………………………………………………6

2.3.3电路原理及说明………………………………………………………………………7

2.3.4显示模块的设…………………………………………………………………………9

3系统的软件设计………………………………………………………………………9

3.1程序流程框图……………………………………………………………………………10

3.2程序的设计………………………………………………………………………………11

4指标测……………………………………………………………………………………11

4.1测试仪器…………………………………………………………………………………22

4.2硬件测试…………………………………………………………………………………22

4.3软件测试…………………………………………………………………………………22

4.4测试结果分析与结论…………………………………………………………………22

4.4.1测试结果分析………………………………………………………………………23

4.4.2测试结论………………………………………………………………………………23

5作品总结………………………………………………………………………………23

致谢词…………………………………………………………………………………………24

参考文献……………………………………………………………………………………25

附录一:

系统电路图……………………………………………………………………………………26

 

引言

随着当今世界经济的快速发展和信息化时代的来临,各种各样的小型智能家电产品陆续出现在我们的生活当中。

日历是人们不可或缺的日常用品。

但一般日历都为纸制用品,使用不便,寿命不长。

电子万年历采用智能电子控制和显示技术,改善了纸制日历的缺陷。

本设计以AT89S52单片机为核心,构成单片机控制电路,AT89C52是一种带8K字节闪速可编程可擦除只读存储器(PEROM)的低电压、高性能CMOS8位为控制器。

该器件采用ATMEL非易失存储器制造技术制造,与工业标准的80C51和80C52指令集和输出管脚相兼容。

结合DS1302时钟芯片,完成时间的自动调整和掉电保护,全部信息用液晶显示。

时间、日期调整由三个按键来实现。

通过一个复杂的产品的设计、组装、调试及软件实现,从而将所学的理论知识与实践相结合,进一步巩固专业知识,掌握基本专业技能,切实加强动手能力,通过对实际产品各功能系统的研究,提升对理论知识的认识,两者结合,提高理论指导,解决实际问题的能力为就业打下坚实的基础。

1设计要求与方案论证

1.1设计要求:

(1)基本要求

1具有年、月、日、星期、时、分、秒等功能;

2具备年、月、日、星期、时、分、秒校准功能;

1.2系统基本方案选择和论证

1.2.1单片机芯片的选择方案和论证:

方案一:

采用89C51芯片作为硬件核心,采用FlashROM,内部具有4KBROM存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。

方案二:

采用AT89S52,片内ROM全都采用FlashROM;能以3V的超底压工作;同时也与MCS-51系列单片机完全该芯片内部存储器为8KBROM存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。

所以选择采用AT89S52作为主控制系统.

1.2.2显示模块选择方案和论证:

方案一:

采用LED液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用LED液晶显示屏.

方案二:

采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示.

方案三:

采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。

所以采用了LED数码管作为显示。

1.2.3时钟芯片的选择方案和论证:

方案一:

直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。

采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。

所以不采用此方案。

方案二:

采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA.

1.3电路设计最终方案决定

综上各方案所述,对此次作品的方案选定:

采用AT89S52作为主控制系统;DS1302提供时钟;LED数码管动态扫描作为显示。

2系统的硬件设计与实现

2.1电路设计框图

 

2.2系统硬件概述

本电路是由AT89S52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,工作电压为2.5V~5.5V。

采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。

DS1302内部有一个31*8的用于临时性存放数据的RAM寄存器。

可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;显示部份由7SEG-MPX6-C6和7SEG-MPX6-C6=BLUE,74ls47译码器构成。

使用动态扫描显示方式对数字的显示。

2.3主要单元电路的设计

2.3.1单片机主控制模块的设计

AT89S52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。

单片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出.第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端.如图-1所示

图-1主控制系统

2.3.2时钟电路模块的设计

图-2示出DS1302的引脚排列,其中Vcc1为后备电源,Vcc2为主电源。

在主电源关闭的情况下,也能保持时钟的连续运行。

DS1302由Vcc1或Vcc2两者中的较大者供电。

当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。

当Vcc2小于Vcc1时,DS1302由Vcc1供电。

X1和X2是振荡源,外接32.768KHz晶振。

RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。

RST输入有两种功能:

首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。

当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。

如果在传送过程中RSTS置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。

上电动行时,在Vcc大于等于2.5V之前,RST必须保持低电平。

中有在SCLK为低电平时,才能将RST置为高电平,I/O为串行数据输入端(双向)。

SCLK始终是输入端。

图-2DS1302的引脚图

2.3.3电路原理及说明

(1)时钟芯片DS1302的工作原理:

DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置“0”,接着把RST端置“1”,最后才给予SCLK脉冲;读/写时序如下图4所示。

图5为DS1302的控制字,此控制字的位7必须置1,若为0则不能把对DS1302进行读写数据。

对于位6,若对程序进行读/写时RAM=1,对时间进行读/写时,CK=0。

位1至位5指操作单元的地址。

位0是读/写操作位,进行读操作时,该位为1;该位为0则表示进行的是写操作。

控制字节总是从最低位开始输入/输出的。

表6为DS1302的日历、时间寄存器内容:

“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。

“WP”

是写保护位,在任何的对时钟和RAM的写操作之前,WP必须为0。

当“WP”为1时,写保护位防止对任一寄存器的写操作。

(2)DS1302的控制字节

DS1302的控制字如表-1所示。

控制字节的高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出

RAMRD

1A4A3A2A1A0

/CK/WR

表-1DS1302的控制字格式

(3)数据输入输出(I/O)

在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。

同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。

如下图-4所示

图-4DS1302读/写时序图

(4)DS1302的寄存器

DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表-2。

表-2DS1302的日历、时间寄存器

此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。

时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。

DS1302与RAM相关的寄存器分为两类:

一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。

(5)DS1302的基本组成和工作原理

DS1302的管脚排列及描述如下图及表所示

2.3.4显示模块的设计

如图-5所示,采用动态扫描显示,由7SEG-MPX6-C6和7SEG-MPX6-C6=BLUE,接MINRES200R,再接2N5551三极管接到7SEG-MPX6-C6和7SEG-MPX6-C6=BLUE的“1/2/3/4/5/6”端。

74ls47分别接到7SEG-MPX6-C6和7SEG-MPX6-C6=BLUE的“A/B/C/D/E/F/G"上。

(b)

            图-5LED动态扫描显示

3系统的软件设计

3.1程序流程框图

 

 

 

 

3.2程序清单

SCLKEQUP3.2

IOEQUP3.3

RSTEQUP3.4

TRLEQUP3.5

JIA1EQUP3.6

TSHEQUP3.7

YEARDATA66H

MONTHDATA65H

WEEKDATA64H

DAYDATA63H

HOURDATA62H

MINUTEDATA61H

SECONDDATA60H

DS_ADDRDATA32H

DS_DATADATA31H

ORG00H

AJMPSTART

MAIN2F:

LJMPMAIN2

START:

MOVSP,#70H

LCALLDELAY1

MOVDS_ADDR,#8EH

MOVDS_DATA,#00H

LCALLWRITE

START0:

MOVDS_ADDR,#81H

LCALLREAD

ANlA,#7FH

MOVDS_ADDR,#80H

MOVDS_DATA,A

LCALLWRITE

STAR1:

MOVDS_ADDR,#0C0H

MOVDS_DATA,#9CH

LCALLWRITE

MOV20H,#0

MOV21H,#0FH

MOV22H,#0

MAIN1:

JBTRL,MAIN2FA

MOV22H,#1

AJMPMAIN2FB

MAIN2FA:

JBTSH,MAIN2F

MOV22H,#2

MOVDS_ADDR,#81H

LCALLREAD

ORLA,#80H

MOVDS_ADDR,#80H

MOVDS_DATA,A

LCALLWRITE

MAIN4:

LCALLDISP

JNBTSH,MAIN4

MOV22H,#2

MAIN2FB:

MOVDS_ADDR,#81H

LCALLREAD

ORLA,#80H

MOVDS_ADDR,#80H

MOVDS_DATA,A

LCALLWRITE

MAIN4J:

LCALLDISP

JNBTRL,MAIN4J

MOV22H,#1

JNBTRL,YYY

MOV20H,#8

LCALL

JBJIA1,NNN

NNN2:

LCALLDISP

JNBJIA1,NNN2

MOVR7,YEAR

LCALLJIAY1

MOVYEAR,A

CJNE

MOVYEAR,#06

NNN1:

MOVDS_ADDR,#8CH

MOVDS_DATA,YEAR

LCALLWRITE

MOVR0,YEAR

LCALLDIVIDE

MOV4AH,R1

MOVA,4AH

SWAPA

MOV4AH,A

MOV4BH,R2

MOVA,4BH

SWAPA

MOV4BH,A

SJMPNNN

YYY:

LCALLDISP

JNBTRL,YYY

YYY3:

JNBTRL,DDD

MOV20H,#4

LCALLDISP

JBJIA1,YYY3

YYY2:

LCALLDISP

JNBJIA1,YYY2

MOVR7,MONTH

LCALLJIAY1

MOVMONTH,A

CJNEA,#13H,YYY1

MOVMONTH,#1

YYY1:

MOVDS_ADDR,#88H

MOVDS_DATA,MONTH

LCALLWRITE

MOVR0,MONTH

LCALLDIVIDE

MOV48H,R1

MOVA,48H

SWAPA

MOV48H,A

MOV49H,R2

MOVA,49H

SWAPA

MOV49H,A

SJMPYYY3

DDD:

LCALLDISP

JNBTRL,DDD

MOV20H,#2H

DDD3:

JNBTRL,NYD

MOV20H,#2

LCALLDISP

JBJIA1,DDD3

DDD2:

LCALLDISP

JNBJIA1,DDD2

MOVR7,DAY

LCALLJIAY1

MOVDAY,A

CJNEA,#32H,DDD1

MOVDAY,#1

DDD1:

MOVDS_ADDR,#86H

MOVDS_DATA,DAY

LCALLWRITE

MOVR0,DAY

LCALLDIVIDE

MOV46H,R1

MOVA,46H

SWAPA

MOV46H,A

MOV47H,R2

MOVA,47H

SWAPA

MOV47H,A

SJMPDDD3

NYD:

LJMPMAIN3A

SSS:

LCALLDISP

JNBTSH,SSS

MOV20H,#8

SSS3:

JNBTSH,FFF

LCALLDISP

JBJIA1,SSS3

SSS2:

LCALLDISP

JNBJIA1,SSS2

MOVR7,HOUR

LCALLJIAY1

MOVHOUR,A

CJNEA,#24H,SSS1

MOVHOUR,#0

SSS1:

MOVDS_ADDR,#84H

MOVDS_DATA,HOUR

LCALLWRITE

MOVR0,HOUR

LCALLDIVIDE

MOV44H,R1

MOV45H,R2

SJMPSSS

FFF:

LCALLDISP

JNBTSH,FFF

MOV20H,#4

FFF3:

JNBTSH,MMM

LCALLDISP

JBJIA1,FFF3

FFF2:

LCALLDISP

JNBJIA1,FFF2

MOVR7,MINUTE

LCALLJIAY1

MOVMINUTE,A

CJNEA,#60H,FFF1

MOVMINUTE,#0

FFF1:

MOVDS_ADDR,#82H

MOVDS_DATA,MINUTE

LCALLWRITE

MOVR0,MINUTE

LCALLDIVIDE

MOV42H,R1

MOV43H,R2

SJMPFFF3

MMM:

LCALLDISP

JNBTSH,MMM

MOV20H,#2

MMM3:

JNBTSH,MAIN3

LCALLDISP

JBJIA1,MMM3

MMM2:

LCALLDISP

JNBJIA1,MMM2

MOVR7,SECOND

LCALLJIAY1

MOVSECOND,A

CJNEA,#60H,MMM1

MOVSECOND,#0

MMM1:

ORLSECOND,#80H

MOVDS_ADDR,#80H

MOVDS_DATA,SECOND

LCALLWRITE

ANLSECOND,#7FH

MOVR0,SECOND

LCALLDIVIDE

MOV40H,R1

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2