基于AT89S52单片机的万年历设计.docx

上传人:b****5 文档编号:3904717 上传时间:2022-11-26 格式:DOCX 页数:46 大小:143.72KB
下载 相关 举报
基于AT89S52单片机的万年历设计.docx_第1页
第1页 / 共46页
基于AT89S52单片机的万年历设计.docx_第2页
第2页 / 共46页
基于AT89S52单片机的万年历设计.docx_第3页
第3页 / 共46页
基于AT89S52单片机的万年历设计.docx_第4页
第4页 / 共46页
基于AT89S52单片机的万年历设计.docx_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

基于AT89S52单片机的万年历设计.docx

《基于AT89S52单片机的万年历设计.docx》由会员分享,可在线阅读,更多相关《基于AT89S52单片机的万年历设计.docx(46页珍藏版)》请在冰豆网上搜索。

基于AT89S52单片机的万年历设计.docx

基于AT89S52单片机的万年历设计

摘要:

电子万年历是一种应用非常广泛的日常计时工具,本设计利用美国DALLAS公司推出的具有涓细电流充电的低功耗实时时钟电路DS1320,研制了一种多功能电子万年历,主要功能包括:

电子万年历要求能显示的阳历/阴历、年、月、日、星期、小时、分、秒,除此之外还有显示润年,记忆时间。

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

对于数字电子万年历采用它,具有较准的计时。

关键词:

AT89S52DS130274LS164万年历

Theproductionofthecalendarwiththesingle-chipAT89S52

Abstract:

Electroniccalendarapplicationisakindoftool,whichiswidelyusedinourdailylife.ThedesignusingtheUnitedStateswithDALLASsmalltricklechargecurrentofthelow-powerreal-timeclockcircuitDS1320,developedamulti-functionelectroniccalendar.ThemainfeaturesincludeE-calendarrequirementswhichareshowninthesolarcalendar/lunarcalendar,year,month,day,weeks,hours,minutesandseconds,inadditiontoindicateLeapyear,thememoryofthetime.DS1302canrememberyear,month,day,weekdays,hours,minutes,secondsfortime,whichalsohasthefunctionofaleapyearcompensation,andlonglifeoftheDS1320,theerrorsmall.Theuseofdigitalelectroniccalendarforithasaquasi-time.

Keywords:

AT89S52DS130274LS164 calendar

 

目录

第一章绪论……………………………………………………………………….……3

1.1课题背景………………………………………………………………………3

1.2电子万年历的目的和意义……………………………………………………3

第二章系统硬件电路设计.............................................................................................4

2.1硬件设计框图……………………………………………………………….4

2.2AT89S52原理…………………………………………………………….…..4

2.374LS164电路原理…………………………………………………………..5

2.4DS1302电路原理……………………………………………………………5

2.5电源原理…………………………………………………………………….7

2.6数码管原理………………………………………………………………….8

第三章系统软件实现………………………………………………………………...9

3.1显示及调整时间子程序流程………………………………………..………..9

3.2调整时间子程序流程…………………………………………………..……..9

3.3显示闰年子程序流程………………………………………………..……….10

3.4显示星期的子程序流程………………………………..…………………….11

3.5阳历日期推算阴历日期流程图…………………………………………..….11

总结……………………………………………………………………………………12

致谢…………………………………………………………………………………….13

参考文献………………….………………………………………...………………….14

附录1.元件清单……………………………………………………………………….15

附录2.电路原理图…………………….……………………………………………….16

附录3.程序…………………….……………………………………………………….17

第一章绪论

1.1课题背景

在生活中,我们经常能看到各种各样的制作精美的万年历,万年历大有取代常规钟表的趋势.随着人们生活水平的提高,智能产品越来越受到人们的欢迎.而单片机,传感器各种集成电路起到关键作用.希望通过本设计能够对未来的趋势有所把握,从而适应社会需要.

1.2电子万年历的目的和意义

电子万年历是一种应用非常广泛的日常计时工具,液晶显示的万年历已经越来越普及,特别是适合在家庭居室、办公室、大厅、会议室和广场使用。

LED显示的日历钟显示清晰直观、走时准确,并且还可以扩展出多种功能,本设计利用数量较少的芯片研制了一种多功能电子万年历,主要功能包括:

电子万年历要求能显示阳历/阴历、年、月、日、星期、小时、分、秒,除此之外还有显示润年,记忆时间。

随着历史的发展,从古代观太阳到滴水计时,从摆钟到现代电子钟表,人类不断的研究,不断的进步。

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

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

对于数字电子万年历采用它具有较准的计时功能。

 

第二章系统硬件电路设计

2.1硬件设计框图

图2.1

2.2AT89S52

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89S52具有以下标准功能:

8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

图2.2AT89S52引脚图

2.374LS164电路原理

74LS164显示模块是由74LS164移位寄存器和数码管构成它为串行输入并行输出的移位寄存器,可以作为静态显示器接口,接在89C51的串行口上用于数码的显示.如图所示:

clear(9脚)高电平有效,低电平时使所有输出(Qa~Qh)为低电平Clock(8脚)上升延输出移位,其余状态保持A(1脚)B(2脚)输入:

逻辑与关系,即全高为高,见低为低。

图2.3 74LS164引脚图

 

2.4DS1302工作原理

首先介绍DS1302的结构及工作原理:

DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。

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

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

DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。

其次介绍引脚功能及结构:

图3.22示出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进行操作。

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

上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。

只有在SCLK为低电平时,才能将RST置为高电平。

I/O为串行数据输入输出端(双向),后面有详细说明。

SCLK始终是输入端。

图2.4DS1302引脚图

慢速充电时钟芯片包括实时时钟/日历和31字节的静态RAM。

它经过一个简单的串行接口与微处理器通信。

实时时钟/日历提供秒、分、时、日、周、月和年等信息。

对于小于31天的月,月末的日期自动进行调整,还包括了闰年校正的功能。

时钟的运行可以采用24小时或带AM(上午)/PM(下午)的12小时格式。

使用同步串行通信,简化了DS1302与微处理器的通信。

与时钟/RAM通信仅需三根线:

(1)RST(复位)、

(2)I/O(数据线)、和(3)SCLK(串行时钟)。

数据可以以每次一个字节或多达31字节的多字节形式传送至时钟/RAM或从其中送出。

DS1302设计成能在非常低的功耗下工作,消耗小于1微瓦的功率便能保存数据和时钟信息。

DS1302是DS1202的升级产品,除了DS1202基本的慢速充电功能外,DS1302具有的其它特点包括:

用于主电源和备份电源的双电源引脚,可编程的VCC1慢速充电器以及7个附加字节的高速暂存存储器(scratchpadmemory)。

2.5电源原理

稳压电源由电源变压器、整流电路、滤波电路和稳压电路组成,如图

图2.51交直流转换图

图2.52电源原理图

VCC1在单电源与电池供电的系统中提供低电源并提供低功率的电池备份。

VCC2在双电源系统中提供主电源,在这种运用方式中VCC1连接到备份电源,以便在没有主电源的情况下能保存时间信息以及数据。

DS1302由VCC1或VCC2两者中较大者供电。

当VCC2大于VCC1+0.2V时,VCC2给DS1302供电。

当VCC2小于VCC1时,DS1302由VCC1供电。

 

2.6数码管原理

LED数码管分共阳极与共阴极两种,其工作特点是,当笔段电极接低电平,公共阳极接高电平时,相应笔段可以发光。

共阴极LED数码管则与之相反,它是将发光二极管的阴极(负极)短接后作为公共阴极。

当驱动信号为高电平、Ө端接低电平时,才能发光。

LED的输出光谱决定其发光颜色以及光辐射纯度,也反映出半导体材料的特性。

常见管芯材料有磷化镓(GaP)、砷化镓(GaAs)、磷砷化镓(GaAsP)、氮化镓(GaN)等,其中氮化镓可发蓝光。

发光颜色不仅与管芯材料有关,还与所掺杂质有关,因此用同一种管芯材料可以制成发出红、橙、黄、绿等不同颜色的数码管。

其它颜色LED数码管的光谱曲线形状与之相似,仅入,值不同。

LED数码管的产品中,以发红光、绿光的居多、这两种颜色也比较醒目。

LED数码管等效于多只具有发光性能的PN结。

当PN结导通时,依靠少数载流子的注人及随后的复合而辐射发光,其伏安特性与普通二极管相似。

在正向导通之前,正向电流近似于零,笔段不发光。

当电压超过开启电压时,电流就急剧上升,笔段发光。

因此,LED数码管属于电流控制型器件,其发光亮度L(单位是cd/m2)与正向电流IF有关,用公式表示:

L=KIF即亮度与正向电流成正比。

LED的正向电压U,则与正向电流以及管芯材料有关。

使用LED数码管时,工作电流一般选10mA左右/段,既保证亮度适中,又不会损坏器件。

图2.61

图2.62

第三章系统软件实现

3.1显示时间子程序流程

图3.1

3.2调整时间子程序流程

图3.2

3.3显示闰年子程序流程

编程中公历闰年的简单计算方法:

设年份year

if(year能被4整除and不能被100整除)oryear能被400整除

then该年为闰年

else该年为平年

图3.3

3.4显示星期的子程序流程

图3.4

①求某年某月某日是星期几的子功能。

(要求编成子程序)

算法:

s=(y-1)+(y-1)/4-(y-1)/100+(y-1)/400+c

(其中:

y为年份;c为某月某日是这一年的第几天,由②求出;s为总天数。

“/”为整除。

n=s%7(其中:

n为星期数;“%”为求余数)

②求某月某日是这一年的第几天的子功能。

(要求编成子程序)

二月份是否为平年(28天)或闰年(29天)的算法:

y/400=0∨y/4=0∧y/100≠0(y为年份;“/”整除)

,则y为以闰年;否则,y为平年。

根据①②可求出一年中的日历。

3.5阳历日期推算阴历日期的方法

图3.5

 

总 结

通过这次毕业设计――制作单片机AT89S52的万年历,我学到了许多知识,还学到了许多思考问题的方法,受益非浅。

提高了分析问题、解决问题的能力。

在设计过程中,我遇到了很多问题,这是不可避免的,但我并没有急于寻求问题的答案,而是认真分析问题存在的原因,从而着手解决问题,以免以后出现类似的问题。

通过本文的学习,你可以很清楚的了解万年历开发与应用,使读者一目了然。

文中只是对系统硬件电路设计、软件设计简单阐述。

但本文对具体的电路具体设计等没做说明。

本文还简单介绍了这个万年历元件清单、电路原理图、为读者竟进行实物焊接提供了很好的帮助以及为以后的电路设计做好了铺垫。

 

致谢

本文的研究工作是在王老师的精心指导和悉心关怀下完成的,在我的学业和论文的研究工作中无不倾注着老师辛勤的汗水和心血。

王老师在科研和工作中严谨治学勇于创新无私奉献的精神使我受益菲浅。

在此论文完成之际,我向导师致以深深的敬意及最真诚的谢意。

在学习和科研期间我还得到了许多老师同学和同学的热情关心和大力帮助,在此也深表感谢,并向所有关心和帮助过我的领导老师同学和朋友表示由衷的谢意。

最后衷心感谢在百忙之中评阅论文和参加答辩的各位老师。

 

参考文献

[1]胡汉才.《单片机原理及其接口技术》.清华大学出版社.2004

[2]丁元杰.《单片机原理与应用》.机械工业出版社.2005

[3]孙育才.《MCS-51系列单片微型计算机及其应用》.东南大学出版社.2004

[4]蔡美勤,张为民,沈新群,张荣娟.《MCS-51系列单片机系统及其应用》.高等教育出版社.2004

[5]王幸之,钟爱琴,王雷,王闪.《STC89系列单片机原理与接口技术》.北京航空航天大学出版社.2004

 

附录1.元件清单

PartTypeDesignatorFootprint

74LS164U3DIP-14

74LS164U2DIP-14

74LS164U4DIP-14

89S52U1DIP-40

CAPC6RAD0.4

CAPC5RAD0.4

CAPC4RAD0.4

CAPC3RAD0.4

CAPACITORC2RB.2/.4

CON2J1SIP2

CON10J2SIP10

CRYSTALY2DIP2

CRYSTALY1DIP2

Component_1C1DIP8

DPY_7-SEG_DPDS9DIP10

DPY_7-SEG_DPDS11DIP10

DPY_7-SEG_DPDS13DIP10

DPY_7-SEG_DPDS8DIP10

DPY_7-SEG_DPDS3DIP10

DPY_7-SEG_DPDS5DIP10

DPY_7-SEG_DPDS4DIP10

DPY_7-SEG_DPDS1DIP10

DPY_7-SEG_DPDS6DIP10

DPY_7-SEG_DPDS2DIP10

DPY_7-SEG_DPDS15DIP10

DPY_7-SEG_DPDS18DIP10

DPY_7-SEG_DPDS12DIP10

DPY_7-SEG_DPDS14DIP10

DPY_7-SEG_DPDS16DIP10

DPY_7-SEG_DPDS7DIP10

DPY_7-SEG_DPDS17DIP10

DPY_7-SEG_DPDS10DIP10

DPY_7-SEG_DPDS19DIP10

LEDD1DIODE0.4

PNPQ7TO-92A

PNPQ8TO-92A

PNPQ3TO-92A

PNPQ2TO-92A

PNPQ1TO-92A

PNPQ6TO-92A

PNPQ5TO-92A

PNPQ4TO-92A

RES2R1AXIAL0.4

RES2R2AXIAL0.4

RES2R7AXIAL0.4

RES2R6AXIAL0.4

RES2R5AXIAL0.4

RES2R3AXIAL0.4

RES2R4AXIAL0.4

RES2R12AXIAL0.4

RES2R13AXIAL0.4

RES2R14AXIAL0.4

RES2R11AXIAL0.4

RES2R8AXIAL0.4

RES2R9AXIAL0.4

RES2R10AXIAL0.4

SW-PBS2AXIAL0.4

SW-PBS1AXIAL0.4

 

 

附录2.电路原理图

附录3程序

3.1主程序

sec11equ10h

sec12equ11h

min11equ12h

min12equ13h

hour11equ14h

hour12equ15h

day11equ16h

day12equ17h

month11equ18h

month12equ19h

year11equ1ah

year12equ1bh

year13equ1ch

year14equ1dh

TEMPEQU1EH

N_DAYEQU1FH

shu2equ20h

adress2equ21h

ADRESS1EQU23H

SHU1EQU24H

SHU3EQU25H

TEMP11EQU26H

TEMP12EQU27H

N_DAY11EQU28H

N_DAY12EQU29H

N_MONTH11EQU2AH

N_MONTH12EQU2BH

N_MONTHEQU2CH

huanequ2dh

SCLKbit90h

iobit91h

RSTbit92h

secdata60h

mindata61h

hourdata62h

datedata63h

monthdata64h

daydata65h

year1DATA66H

year2data67h

int_minequ68h

int_hourequ69h

int_dateequ6ah

int_monthequ6bh

int_year1equ6ch

int_dayequ6dh

start_yearEQU01;定义查询表起始年份,

01--199表示1901-2099年

;以下三单元为需转换的公历日期是子程序的入口数据

time_yearDATA66h

time_monthDATA64h;BIT7表示世纪,

为1表示19世纪,为0表示20世纪

time_dateDATA63h

;以下三单元存转换后农历日期与入口单元重叠,

如要保留入口信息,请重定义出口地址

CONvert_yeArDATA33h

CONvert_mONthDATA34h;BIT7为1表示闰月

CONvert_dAteDATA35h

temp_Byte1DATA37h

temp_Byte2DATA38h

temp_Byte3DATA39h

temp_Byte4DATA3Ah

temp_Byte5DATA3Bh

time_weekDATA65h;星期天出口

3.2公历转农历子程序

org0000h

movp0,#0ffh

mov6eh,#00hmov

int_min,#59h

movint_hour,#23h

movint_date,#12h

movint_month,#11h

movint_year1,#04h

movint_day,#07h

movtemp,#00h

movyear2,#20h

MOVSP,#74H

3.3DS1302读写程序

lcallinit

start:

mov70h,hour

mov71h,min

movday,time_week

movr0,#sec

movr7,#7

setbpsw.5

lcallrwrtc

lcallkEY

LCALLCONvert

lcallGetWeek

LCALLTRUN

;LCALLDINGSHI

LCALLDISP1

LCALLDISP3

ljmpstart

rwrtc:

movb,#10000001b

jbpsw.5,rwrtc1

movb,#10000000b

rwrtc1:

clrsclk

nop

setbrst

movr6,#8

mova,b

rwrtc2:

clrsclk

rrca

movio,c

nop

setbsclk

djnzr6,rwrtc2

movr6,#8

jnbpsw.5,rwrtc4

rwrtc3:

clrsclk

nop

movc,io

rrca

setbsclk

djnzr6,rwrtc3

mov@r0,a

sjmprwrtc6

rwrtc4:

mova,@r0

rwrtc5:

clrsclk

rrca

movio,c

nop

setbsclk

djnzr6,rwrtc5

rwrtc6:

incr0

mova,b

adda,#02h

movb,a

clrrst

nop

clrsclk

djnzr7,rwrtc1

RET

WRRTC:

CLRSCLK

NOP

SETBRST

NOP

NOP

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

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1