毕业设计制作单片机AT89S52的万历.doc

上传人:文库蛋蛋多 文档编号:4149467 上传时间:2023-04-07 格式:DOC 页数:28 大小:228KB
返回 下载 相关 举报
毕业设计制作单片机AT89S52的万历.doc_第1页
第1页 / 共28页
毕业设计制作单片机AT89S52的万历.doc_第2页
第2页 / 共28页
毕业设计制作单片机AT89S52的万历.doc_第3页
第3页 / 共28页
毕业设计制作单片机AT89S52的万历.doc_第4页
第4页 / 共28页
毕业设计制作单片机AT89S52的万历.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《毕业设计制作单片机AT89S52的万历.doc》由会员分享,可在线阅读,更多相关《毕业设计制作单片机AT89S52的万历.doc(28页珍藏版)》请在三一办公上搜索。

1、制作单片机AT89S52的万年历摘要:电子万年历是一种应用非常广泛的日常计时工具,本设计利用美国DALLAS公司推出的具有涓细电流充电的低功耗实时时钟电路DS1320,研制了一种多功能电子万年历,主要功能包括:电子万年历要求能显示的阳历/阴历、年、月、日、星期、小时、分、秒,除此之外还有显示润年,记忆时间。DS1302可以对年、月、日、周日、时、分、秒进行计时,还具有润年补偿的功能,而且DS1320的使用寿命长,误差小。对于数字电子万年历采用它,具有较准的计时。关键词:AT89S52 DS1302 74LS164 万年历 The production of the calendar with

2、the single-chip AT89S52 Abstract:Electronic calendar application is a kind of tool ,which is widely used in our daily life.The design using the United States with DALLAS small trickle charge current of the low-power real-time clock circuit DS1320, developed a multi-function electronic calendar.The m

3、ain features include E-calendar requirements which are shown in the solar calendar / lunar calendar, year, month, day, weeks, hours, minutes and seconds, in addition to indicate Leap year, the memory of the time. DS1302 can remember year, month, day, weekdays, hours, minutes, seconds for time,which

4、also has the function of a leap year compensation, and long life of the DS1320, the error small. The use of digital electronic calendar for it has a quasi-time.Keywords: AT89S52 DS1302 74LS164 calendar目 录第一章 绪论.31.1 课题背景31.2 电子万年历的目的和意义3第二章 系统硬件电路设计.42.1 硬件设计框图.42.2 AT89S52原理.4 2.3 74LS164电路原理.52.4

5、DS1302电路原理52.5 电源原理.72.6 数码管原理.8第三章 系统软件实现.93.1显示及调整时间子程序流程.93.2调整时间子程序流程.93.3显示闰年子程序流程.103.4显示星期的子程序流程.113.5阳历日期推算阴历日期流程图.11总结 12致谢.13参考文献.14附录1.元件清单.15附录2.电路原理图.16附录3.程序.17第一章 绪论1.1课题背景在生活中,我们经常能看到各种各样的制作精美的万年历,万年历大有取代常规钟表的趋势.随着人们生活水平的提高,智能产品越来越受到人们的欢迎.而单片机,传感器各种集成电路起到关键作用.希望通过本设计能够对未来的趋势有所把握,从而适应

6、社会需要. 1.2 电子万年历的目的和意义电子万年历是一种应用非常广泛的日常计时工具,液晶显示的万年历已经越来越普及,特别是适合在家庭居室、办公室、大厅、会议室和广场使用。LED显示的日历钟显示清晰直观、走时准确,并且还可以扩展出多种功能,本设计利用数量较少的芯片研制了一种多功能电子万年历,主要功能包括:电子万年历要求能显示阳历/阴历、年、月、日、星期、小时、分、秒,除此之外还有显示润年,记忆时间。随着历史的发展,从古代观太阳到滴水计时,从摆钟到现代电子钟表,人类不断的研究,不断的进步。美国DALLAS公司推出的具有涓细电流充电能的低功耗实时时钟电路DS1320。它可以对年、月、日、周日、时、

7、分、秒进行计时,还具有润年补偿的多种功能,而且DS1320的使用寿命长,误差小。对于数字电子万年历采用它具有较准的计时功能。第二章 系统硬件电路设计2.1硬件设计框图AT89S52LED显示DS1302按键图.2.2 AT89S52AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash 存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效

8、的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 图.AT89S52引脚图2. 74LS164电路原理74LS164显示模块是由74LS164移位寄存器和数码管构成它为串行输入并

9、行输出的移位寄存器,可以作为静态显示器接口,接在89C51的串行口上用于数码的显示.如图所示:clear (9脚)高电平有效,低电平时使所有输出(QaQh)为低电平 Clock(8脚)上升延输出移位,其余状态保持 A(1脚)B(2脚)输入:逻辑与关系,即全高为高,见低为低。图.74LS164引脚图2. DS1302工作原理首先介绍DS1302的结构及工作原理:DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多

10、个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。 其次介绍引脚功能及结构:图3.22示出DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。

11、RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK始终是输入端。图2.4 DS1302引脚图慢速充电时钟芯片包括实时时钟/日历和3

12、1字节的静态RAM。它经过一个简单的串行接口与微 处理器通信。实时时钟/日历提供秒、分、时、日、周、月和年等信息。对于小于31天的月,月末的日期自动进行调整,还包括了闰年校正的功能。时钟的运行可以采用24小时或带AM(上午)/PM(下午)的12小时格式。使用同步串行通信,简化了DS1302与微处理器的通信。与时钟/RAM通信仅需三根线:(1)RST (复位)、(2)I/O(数据线)、和(3)SCLK(串行时钟)。数据可以以每次一个字节或多达31字节的多字节形式传送至时钟/RAM或从其中送出。DS1302设计成能在非常低的功耗下工作,消耗小于1微瓦的功率便能保存数据和时钟信息。DS1302是DS

13、1202的升级产品,除了DS1202基本的慢速充电功能外,DS1302具有的其它特点包括:用于主电源和备份电源的双电源引脚,可编程的VCC1慢速充电器以及7个附加字节的高速暂存存储器(scratchpad memory)。2.电源原理稳压电源由电源变压器、整流电路、滤波电路和稳压电路组成,如图图2.51交直流转换图图2.52电源原理图VCC1在单电源与电池供电的系统中提供低电源并提供低功率的电池备份。VCC2在双电源系统中提供主电源,在这种运用方式中VCC1连接到备份电源,以便在没有主电源的情况下能保存时间信息以及数据。DS1302由VCC1或VCC2两者中较大者供电。当VCC2大于VCC1+

14、0.2V时,VCC2给DS1302供电。当VCC2小于VCC1时,DS1302由VCC1供电。2. 数码管原理LED数码管分共阳极与共阴极两种,其工作特点是,当笔段电极接低电平,公共阳极接高电平时,相应笔段可以发光。共阴极LED数码管则与之相反,它是将发光二极管的阴极(负极)短接后作为公共阴极。当驱动信号为高电平、端接低电平时,才能发光。LED的输出光谱决定其发光颜色以及光辐射纯度,也反映出半导体材料的特性。常见管芯材料有磷化镓(GaP)、砷化镓(GaAs)、磷砷化镓(GaAsP)、氮化镓(GaN)等,其中氮化镓可发蓝光。发光颜色不仅与管芯材料有关,还与所掺杂质有关,因此用同一种管芯材料可以制

15、成发出红、橙、黄、绿等不同颜色的数码管。其它颜色LED数码管的光谱曲线形状与之相似,仅入,值不同。LED数码管的产品中,以发红光、绿光的居多、这两种颜色也比较醒目。LED数码管等效于多只具有发光性能的PN结。当PN结导通时,依靠少数载流子的注人及随后的复合而辐射发光,其伏安特性与普通二极管相似。在正向导通之前,正向电流近似于零,笔段不发光。当电压超过开启电压时,电流就急剧上升,笔段发光。因此,LED数码管属于电流控制型器件,其发光亮度L(单位是cdm2)与正向电流IF有关,用公式表示:L=KIF即亮度与正向电流成正比。LED的正向电压U,则与正向电流以及管芯材料有关。使用LED数码管时,工作电

16、流一般选10mA左右段,既保证亮度适中,又不会损坏器件。图2.61图2.62第三章 系统软件实现DS1302初始化3.1 显示时间子程序流程 从DS1302中读数据,并放入RAM调用显示子程序显示时间图.3.调整时间子程序流程调整状态年+1月+1日+1时+1分+1返回年=2000月=1日=1时=0分=0YYYYY当前状态年月日时分年2050月12日31时23分59NNNNN图.3.显示闰年子程序流程编程中公历闰年的简单计算方法:设年份 year if (year能被4整除 and 不能被100整除) or year能被400整除 then 该年为闰年 else 该年为平年能被4整除AND不能被

17、100整除是闰年是平年能被400整除图.3.显示星期的子程序流程X是年份,C是该年从元旦开始到到这一日的天数S=X-1+(X-1)/4+(X-1)/100+(X-1)/400+CW=S/7的余数既是星期数 输出W图. 求某年某月某日是星期几的子功能。(要求编成子程序) 算法:s=(y-1)+(y-1)/4-(y-1)/100+(y-1)/400+c (其中:y为年份;c为某月某日是这一年的第几天,由求出;s为总天数。“/”为整除。) n=s%7 (其中:n为星期数;“%”为求余数) 求某月某日是这一年的第几天的子功能。(要求编成子程序) 二月份是否为平年(28天)或闰年(29天)的算法: y/

18、400=0y/4=0y/1000 (y为年份;“/”整除) ,则y为以闰年;否则,y为平年。 根据可求出一年中的日历。3.阳历日期推算阴历日期的方法 M= 公元年数1977N= M N 4qr q、r、n均为自然数,r4X=14q+10.6(r+1)+年内日期序数-29.5n n=29.5除14q+10.6(r+1)+年内日期序数阴历日期 = X图. 总结通过这次毕业设计制作单片机AT89S52的万年历,我学到了许多知识,还学到了许多思考问题的方法,受益非浅。提高了分析问题、解决问题的能力。在设计过程中,我遇到了很多问题,这是不可避免的,但我并没有急于寻求问题的答案,而是认真分析问题存在的原因

19、,从而着手解决问题,以免以后出现类似的问题。通过本文的学习,你可以很清楚的了解万年历开发与应用,使读者一目了然。文中只是对系统硬件电路设计、软件设计简单阐述。但本文对具体的电路具体设计等没做说明。本文还简单介绍了这个万年历元件清单、电路原理图、为读者竟进行实物焊接提供了很好的帮助以及为以后的电路设计做好了铺垫。致谢本文的研究工作是在王老师的精心指导和悉心关怀下完成的,在我的学业和论文的研究工作中无不倾注着老师辛勤的汗水和心血。王老师在科研和工作中严谨治学勇于创新无私奉献的精神使我受益菲浅。在此论文完成之际,我向导师致以深深的敬意及最真诚的谢意。在学习和科研期间我还得到了许多老师同学和同学的热情

20、关心和大力帮助,在此也深表感谢,并向所有关心和帮助过我的领导老师同学和朋友表示由衷的谢意。最后衷心感谢在百忙之中评阅论文和参加答辩的各位老师。参考文献1 胡汉才.单片机原理及其接口技术.清华大学出版社 .20042 丁元杰.单片机原理与应用.机械工业出版社. 20053 孙育才.MCS-51系列单片微型计算机及其应用. 东南大学出版社. 20044 蔡美勤,张为民,沈新群,张荣娟.MCS51系列单片机系统及其应用.高等教育出版社 .20045王幸之,钟爱琴,王雷,王闪.STC89系列单片机原理与接口技术.北京航空航天大学出版社.2004附录1.元件清单Part TypeDesignatorFo

21、otprint74LS164U3DIP-1474LS164U2DIP-1474LS164U4DIP-1489S52U1DIP-40CAPC6RAD0.4CAPC5RAD0.4CAPC4RAD0.4CAPC3RAD0.4CAPACITORC2RB.2/.4CON2J1SIP2CON10J2SIP10CRYSTALY2DIP2CRYSTALY1DIP2Component_1C1DIP8DPY_7-SEG_DPDS9DIP10DPY_7-SEG_DPDS11DIP10DPY_7-SEG_DPDS13DIP10DPY_7-SEG_DPDS8DIP10DPY_7-SEG_DPDS3DIP10DPY_7-

22、SEG_DPDS5DIP10DPY_7-SEG_DPDS4DIP10DPY_7-SEG_DPDS1DIP10DPY_7-SEG_DPDS6DIP10DPY_7-SEG_DPDS2DIP10DPY_7-SEG_DPDS15DIP10DPY_7-SEG_DPDS18DIP10DPY_7-SEG_DPDS12DIP10DPY_7-SEG_DPDS14DIP10DPY_7-SEG_DPDS16DIP10DPY_7-SEG_DPDS7DIP10DPY_7-SEG_DPDS17DIP10DPY_7-SEG_DPDS10DIP10DPY_7-SEG_DPDS19DIP10LEDD1DIODE0.4PNPQ7

23、TO-92APNPQ8TO-92APNPQ3TO-92APNPQ2TO-92APNPQ1TO-92APNPQ6TO-92APNPQ5TO-92APNPQ4TO-92ARES2R1AXIAL0.4RES2R2AXIAL0.4RES2R7AXIAL0.4RES2R6AXIAL0.4RES2R5AXIAL0.4RES2R3AXIAL0.4RES2R4AXIAL0.4RES2R12AXIAL0.4RES2R13AXIAL0.4RES2R14AXIAL0.4RES2R11AXIAL0.4RES2R8AXIAL0.4RES2R9AXIAL0.4RES2R10AXIAL0.4SW-PBS2AXIAL0.4S

24、W-PBS1AXIAL0.4附录2.电路原理图附录3程序 31 主程序sec11 equ 10hsec12 equ 11hmin11 equ 12hmin12 equ 13hhour11 equ 14hhour12 equ 15hday11 equ 16hday12 equ 17hmonth11 equ 18hmonth12 equ 19hyear11 equ 1ahyear12 equ 1bhyear13 equ 1chyear14 equ 1dhTEMP EQU 1EHN_DAY EQU 1FHshu2 equ 20hadress2 equ 21hADRESS1 EQU 23HSHU1 E

25、QU 24HSHU3 EQU 25HTEMP11 EQU 26HTEMP12 EQU 27HN_DAY11 EQU 28HN_DAY12 EQU 29HN_MONTH11 EQU 2AHN_MONTH12 EQU 2BHN_MONTH EQU 2CHhuan equ 2dhSCLK bit 90hio bit 91hRST bit 92hsec data 60hmin data 61hhour data 62hdate data 63hmonth data 64hday data 65hyear1 DATA 66Hyear2 data 67hint_min equ 68hint_hour eq

26、u 69hint_date equ 6ahint_month equ 6bhint_year1 equ 6chint_day equ 6dhstart_year EQU 01; 定义查询表起始年份,01-199 表示1901-2099 年;以下三单元为需转换的公历日期是子程序的入口数据time_year DATA 66htime_month DATA 64h ;BIT7 表示世纪,为1 表示19 世纪,为0 表示20 世纪time_date DATA 63h;以下三单元存转换后农历日期与入口单元重叠,如要保留入口信息,请重定义出口地址CONvert_yeAr DATA 33hCONvert_m

27、ONth DATA 34h ;BIT7 为1 表示闰月CONvert_dAte DATA 35htemp_Byte1 DATA 37htemp_Byte2 DATA 38htemp_Byte3 DATA 39htemp_Byte4 DATA 3Ahtemp_Byte5 DATA 3Bhtime_week DATA 65h ;星期天出口3.2 公历转农历子程序org 0000hmov p0,#0ffhmov 6eh,#00hmov int_min,#59hmov int_hour,#23hmov int_date,#12hmov int_month,#11hmov int_year1,#04hm

28、ov int_day,#07hmov temp,#00hmov year2,#20hMOV SP,#74H3.3 DS1302读写程序lcall initstart: mov 70h,hourmov 71h,minmov day,time_weekmov r0,#secmov r7,#7setb psw.5lcall rwrtc lcall kEY LCALL CONvert lcall GetWeek LCALL TRUN ;LCALL DINGSHI LCALL DISP1 LCALL DISP3 ljmp startrwrtc: mov b,#10000001b jb psw.5,rwr

29、tc1 mov b,#10000000brwrtc1:clr sclk nop setb rst mov r6,#8 mov a,brwrtc2:clr sclk rrc a mov io,c nop setb sclk djnz r6,rwrtc2 mov r6,#8 jnb psw.5,rwrtc4rwrtc3:clr sclk nop mov c,io rrc a setb sclk djnz r6,rwrtc3 mov r0,a sjmp rwrtc6rwrtc4:mov a,r0rwrtc5:clr sclk rrc a mov io,c nop setb sclk djnz r6,

30、rwrtc5rwrtc6:inc r0 mov a,b add a,#02h mov b,a clr rst nop clr sclk djnz r7,rwrtc1 RETWRRTC: CLR SCLK NOP SETB RST NOP NOP MOV R7,#2WRRTC1: MOV R6,#8 MOV A,R0 CLR Cwrrtc2: CLR SCLK RRC A MOV IO,C nop SETB SCLK DJNZ R6,WRRTC2 INC R0 djnz r7,wrrtc1 clr rst nop clr sclk ret init: CLR SCLK CLR RST MOV S

31、EC,#10001110b MOV MIN,#00000000b MOV R0,#SEC LCALL wrrtc MOV SEC,#10010000b MOV MIN,#10100101b MOV R0,#SEC LCALL wrrtc MOV R0,#SEC MOV SEC,#10000000b MOV MIN,#00000000b lcall writer_f lcall writer_sh lcall writer_date lcall writer_yue lcall writer_nian retwriter_f:LCALL wrrtc mov r0,#sec mov sec,#82

32、h mov min,int_min lcall wrrtc retwriter_sh:mov sec,#10000100b mov min,int_hour mov r0,#sec lcall wrrtc retwriter_yue:mov sec,#88h mov min,int_month mov r0,#sec lcall wrrtc retwriter_nian:mov sec,#8ch mov min,int_year1 mov r0,#sec lcall wrrtc retwriter_date:mov sec,#86h mov min,int_date mov r0,#sec l

33、call wrrtc RET3.4 BCD转换TRUN: MOV A,SEC MOV B,#10H DIV AB MOV SEC12,A MOV SEC11,B MOV A,MIN MOV B,#10H DIV AB MOV MIN12,A MOV MIN11,B MOV A,HOUR MOV B,#10H DIV AB MOV HOUR12,A MOV HOUR11,B MOV A,date MOV B,#10H DIV AB MOV DAY12,a MOV DAY11,b MOV A,MONTH MOV B,#10H DIV AB MOV MONTH12,A MOV MONTH11,B M

34、OV A,year1 MOV B,#10H DIV AB MOV YEAR12,A MOV YEAR11,B MOV A,YEAr2 MOV B,#10H DIV AB MOV YEAR14,A MOV YEAR13,b MOV A,35h MOV B,#10H DIV AB MOV N_DAY12,A MOV N_day11,B MOV A,34h MOV B,#10H DIV AB MOV N_MONTH12,A MOV N_MONTH11,B MOV A,TEMP MOV B,#10H DIV AB MOV TEMP12,A MOV TEMP11,B RET3.5延时程序 DEALY:M

35、OV R5,#01h DEL1: MOV R2,#07dH DEL2:NOP NOP DJNZ R2,DEL2 DJNZ R5,DEL1 RET3.6 显示程序DENG:MOV P2,#0FFH MOV A,#00H MOV SBUF,A JNB TI,$ CLR TI MOV P2,ADRESS2 MOV A,SHU2 MOV SBUF,A JNB TI,$ CLR TI MOV A,#00H MOV SBUF,A JNB TI,$ CLR TI LCALL DEALY MOV P2,#0FFH RETDENG1:MOV P2,#0FFH MOV A,SHU1 MOV SBUF,A JNB

36、TI,$ CLR TI MOV P2,#0FFH mov a,#00h MOV SBUF,a JNB TI,$ CLR TI MOV P2,ADRESS1 MOV A,SHU3 MOV SBUF,A JNB TI,$ CLR TI LCALL DEALY RETDISP1: MOV R3,#0bFH MOV R4,#06H MOV R0,#10HDISP2:MOV A,R0 MOV DPTR,#TAB MOVC A,A+DPTR MOV SHU2,A inc r0 MOV A,R3 Rr A MOV R3,A MOV ADRESS2,A LCALL DENG DJNZ R4,DISP2 mov

37、 a,day mov dptr,#xing movc a,a+dptr mov shu2,a mov adress2,#0bfh lcall deng RETDISP3:MOV R3,#0FEH MOV R4,#08H MOV R1,#24HDISP4:MOV A,R0 MOV DPTR,#TAB MOVC A,A+DPTR MOV SHU3,A INC r0 MOV A,R1 MOVC A,A+DPTR MOV SHU1,A INC R1 MOV A,R3 RR A MOV R3,A MOV ADRESS1,A LCALL DENG1 DJNZ R4,DISP4 RET3.7键盘程序key:jb p1.3,s2s1: lcall disp1 lcall disp3 jnb p1.3,s1 mov a,6eh inc a mov 6e

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号