收藏 分销(赏)

毕业设计(论文)--基于单片机AT89C52的电子万年历的设计.pdf

上传人:曲**** 文档编号:459738 上传时间:2023-10-11 格式:PDF 页数:55 大小:3.18MB
下载 相关 举报
毕业设计(论文)--基于单片机AT89C52的电子万年历的设计.pdf_第1页
第1页 / 共55页
毕业设计(论文)--基于单片机AT89C52的电子万年历的设计.pdf_第2页
第2页 / 共55页
毕业设计(论文)--基于单片机AT89C52的电子万年历的设计.pdf_第3页
第3页 / 共55页
毕业设计(论文)--基于单片机AT89C52的电子万年历的设计.pdf_第4页
第4页 / 共55页
毕业设计(论文)--基于单片机AT89C52的电子万年历的设计.pdf_第5页
第5页 / 共55页
点击查看更多>>
资源描述

1、本科毕业设计(论文)题 目电子万年历的设计 _ 摘 要在当代繁忙的工作与生活中,时间与每一个人都有非常密切的关系,每个人都受 到时间的影响,电子万年历的出现给人们的工作与生活带来了福音。电子万年历是实 现对阳历的日期和时间以及阴历的日期显示的计时装置。随着科技的发展,电子万年 历也有了巨大的进步和发展,目前已经广泛应用于家庭、车站、码头、办公室以及银 行等各种场所。已经成为人们日常生活和工作中必不可少的电子产品,具有广阔的发 展空间和市场前景。本文介绍了基于单片机AT89C52的电子万年历的设计,该设计结合时钟芯片 DS13 02以及显示器件LCD12 864,能够直观的显示阳历年、月、日、星

2、期、时、分、秒,以及通过程序算法转换阳历的日期,得到阴历的年、月、日。在显示阴历时间时,能标明是否为闰年、闰月,同时完成对它们的自动校正,全部信息均受单片机AT89c52 的控制,并由液晶显示器件LCD12 864显示。人机口由4个按键来实现,通过这四个 按键可对时间、日期进行人为的自由调整。本设计采用单片机为核心器件,软硬件结合,使硬件部分大为简化,提高了系统 稳定性,设计出的电子万年历可以显示阳历的日期和时间以及阴历的日期。其软硬件 设计简单,时间记录准确,有较强的实用性。关键词:万年历;AT89C52;DS13 02;LCD12 864AbstractIn cont emporary b

3、usy work and life,t ime and every one has a very close relat ionship,everyone is t he influence of t he t ime,t he emergence of elect ronic calendar t o peoples work and life bring t he Gospel.Elect ronic calendar is t he realizat ion of t he solar calendar dat e and t ime and dat e of t he display

4、of t he t iming device.Wit h t he development of science and t echnology,elect ronic calendar also had great progress and development,now has been used widely in t he family,st at ion,whar office and of t he bank and ot her various places.Has become people daily life and work necessary in elect roni

5、c product s,have wide development space and t he market prospect.This paper int roduces t he AT89C52 single chip microcomput er based on t he elect ronic calendar design,t he design wit h t he clock chip DS 1302 and display devices LCD12864,can int uit ive shows YangLiNian,mont h,day,week,when,minut

6、 es and seconds,and t hrough t he process of convert ing solar calendar dat e algorit hm,get t he lunar calendar year,mont h,day.In t he display lunar calendar t ime,can indicat e whet her for a leap year,int ercalary moon,finish at t he same t ime t o t heir aut omat ic adjust ment,all informat ion

7、 by AT89C52 single chip microcomput er cont rol of bot h,and t he liquid cryst al display device LCD 12864 display.The man-machine mout h by four pressing but t ons,t hrough t he four but t ons on t ime,dat e of people free adjust ment.This design uses t he MCU as t he core,t he hardware and soft wa

8、re combinat ion t o make hardware part great ly simplified and improve t he st abilit y of t he syst em,design of elect ronic calendar can display t he solar calendar dat e and t ime,and t he dat e of t he lunar calendar.It s soft ware and hardware design simple,t ime t o record and accurat e,wit h

9、st rong pract icabilit y.Keywords:elect ronic calendar;AT89C52;DS 1302;LCD12864目录1.绪论.11.1 本设计的研究背景和研究意义.11.2 设计任务及任务分析.12.本设计总体设计方案.22.1方案论证与比较.22.1.1方案一:基于AT89c52的电子万年历的设计.22.1.2 方案二:基于PLD的电子万年历的设计.22.1.3 方案三:基于凌阳单片机的电子万年历的设计.32.2本设计方案选择.43.硬件电路的设计与计算.53.1 控制电路的设计与计算.53.1.1电路选择.53.1.2元器件的选型及参数计算.5

10、3.2 时钟电路的设计与计算.83.2.1电路选择.83.2.2元器件的选型及参数计算.93.3显示电路的设计与计算.113.3.1电路选择.113.3.2元器件的选型及参数计算.113.4硬件总电路图.134.软件设计及编程.144.1 软件设计功能图.144.2 软件设计流程图.144.3阳历程序设计及功能实现.154.4 时间调整程序设计及功能实现.154.5 阴历程序设计及功能实现.175.系统调试及分析.195.1 硬件电路调试及结果分析.195.1.1单片机最小系统电路的测试结果及其分析.195.1.2 DS13 02时钟电路的测试结果及其分析.195.1.3 LCD12 864显

11、示电路的测试结果及其分析.205.2 软件调试及功能分析.205.2.1 阳历显示程序功能实现及其分析.205.2.2时间调整程序功能实现及其分析.215.2.3 阴历显示程序功能实现及其分析.216.结论与展望.226.1结论.22电子万年历的设计6.2展望.22谢辞.23参考文献.24附录一:系统整体电路图.25附录二:PCB电路图.26附录三:实物图.27附录四:系统完整程序.285电子万年历的设计1.绪论1.1 本设计的研究背景和研究意义随着电子技术的迅速发展,时间的流逝,从观察太阳、摆钟到现在的电子钟,人 类在不断的研究、不断的创新。电子万年历是实现对年、月、日、时、分、秒、农历 等

12、显示的计时装置,广泛应用与家庭、车站、码头、办公室、银行等各种场所,成为 人们日常生活中的必需品。数字集成电路的发展和石英晶体振荡器的广泛应用,使得 数字钟的精度远远超过老式钟表。钟表的数字化给人们生活带来了极大的方便,在此 基础上完成的电子万年历精度高,功能易于扩展,可扩展为诸如整点报时、定时自动 报警、按时自动打铃、自动启闭路灯等等具有多种功能的产品。电子万年历的出现给人们的生活与工作带来了诸多的方便,具有读取方便、显示 直观,功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。1.2 设计任务及任务分析设计任务:设计一个电子万年历,要求能显示阳历年、月、日、星期、小时、分钟、秒

13、和阴历年、月、日,在显示农历时间时,能标明是否为闰年。主控芯片使用AT89c52 单片,时钟芯片使用美国DALIAS公司推出的一种高性能、低功耗、带RAM的实时时 钟 DS13 02 o任务分析:实现对阳历时间、日期及阴历日期的显示,需要单片机的控制,并通过显示模块 进行显示。能对时间、日期进行调节,就需要按键模块。西南石油大学本科毕业设计(论文)2.本设计总体设计方案2.1方案论证与比较2.1.1方案一:基于AT89C52的电子万年历的设计采用AT89C52芯片作为硬件核心,采用Flash ROM,内部具有4 K B ROM存储空间,能于3 V的超低压工作,而且与MCS-51系列单片机完全兼

14、容,编程也简单,而且价格 便宜,使整体的设计成本降低。采用LCD12 864液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,显示美观,方便查看。采用DS13 02时钟芯片实现时钟,DS13 02芯片是一种高性能的时钟芯片,可自动 对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,RAM做为 数据暂存区,工作电压2.5V5.5V范围内,2.5V时耗电小于3 00nA。本方案的系统框图如图2.1所示。时钟电路(DS1302)图2.1方案一系统框图2.1.2方案二:基于PLD的电子万年历的设计采用ALTERA公司的FLEX1OK系列PLD器件。设计起来

15、结构清晰,各个模块,从 硬件上设计起来相对简单,控制与显示的模块间的连接比较方便。采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显 示文字比较适合。采用DS13 02时钟芯片实现时钟,DS13 02芯片是一种高性能的时钟芯片,可自动 对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,RAM做为 2电子万年历的设计数据暂存区,工作电压2.5V5.5V范围内,2.5V时耗电小于3 00nA。本方案的系统框图如图2.2所示。图2.2方案二系统框图2.1.3方案三:基于凌阳单片机的电子万年历的设计凌阳16位单片机有丰富的中断源和时基。它的准确度相当高,并且C语言和

16、汇 编兼容的编程环境也很方便来实现一些递归调用。I/O 口功能也比较强大,方便使用。用凌阳16位单片机做控制器最有特色的就是它的可编程音频处理,可完成语音的录 制播放和识别。这些都方便对设计进行扩展,使设计更加完善,成本也相对低一些。采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动 态扫描法与单片机连接时,占用的单片机口线少。直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是实现的时间误差较 大。本方案的系统框图如图2.3所示。图2.3方案三系统框图3西南石油大学本科毕业设计(论文)2.

17、2本设计方案选择在方案二中,但是考虑到本设计的特点,PLD在功能扩展上比较受局限,而且占 用的资源也相对多一些。显示模块使用的点阵式数码管的价格相对较高。在方案三中,凌阳单片机在控制与显示的结合上有些复杂,显示模组资源相对有 限,而且单片机的稳定性不是很高。显示模块使用的数码管编程繁琐,操作比液晶显 示复杂,也不便于直观的查看。综上各所述,本次设计将选择方案一:基于AT89c52的电子万年历的设计。采用 AT89c52作为控制系统;DS13 02提供时钟;LCD12 864作为显示。4电子万年历的设计3.硬件电路的设计与计算3.1控制电路的设计与计算3.1.1电路选择最小控制系统由单片机、晶振

18、电路和复位电路组成。晶体振荡器的两端分别接两个电容,来对晶振信号退耦。单片机复位采用的上电复位的方式。如图3.1所示为控制系统电路图。图3.1控制系统电路图:-1-;-.-4-3.1.2元器件的选型及参数计算1、单片机AT89c52AT89C52是一种低功耗、高性能CM0S8位微控制器,具有8K在系统可编程Flash 存储器。使用Atmel公司高密度非易失性存储器技术制造。片上Flash允许程序存储 器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可 编程Flash,使得AT89c52为众多嵌入式控制应用系统提供高灵活、超有效的解决方 案。AT89c52具有以下标准功

19、能:8k字节Flash,256字节RAM,32位I/O 口线,看 门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89C52可降至0Hz静态逻辑操作,支 5西南石油大学本科毕业设计(论文)持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数 器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片 机一切工作停止,直到下一个中断或硬件复位为止。AT89C52的引脚图如图3.2所示。(TH P1OC(T2EX)P1.1C P12C P13C P14C pi sr Piec Pl.

20、7 匚 RSTC(RXDjPaoc(TXDJP31C(1RT6)P32 c(iNTl)P33C 匚(11)P3 5 C(WR)P36 匚(R5)P87C XTAL2C XTAL1C GNOC7 1 402 393 384 375 366 357 M8 339 3210 3111 8012 2913 2014 2715 2B16 2517 241B 2319 2320 21vcc Pao(ADO)PO 1(ADI)P02(AD2)JP03(AD3)P0 4(AD4)PQ5CAD9)POe(ADO)P0 7(AO7)ALE/PW53 P2.7CA16)P2 6(A14)J P2-5(A13)Pi4

21、(A12)Pi3(Al1)3 P2.2(A10)P2.1(AO)3P2.0(AB)图3.2 AT89C52引脚图P0 口:P0 口是一个8位漏极开路的双向I/O 口。作为输出口,每位能驱动8个 TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0 口也被作为低8位地址/数据复用。在这种 模式下,P0具有内部上拉电阻。在flash编程时,P0 口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。如图3.3所示为P0 口的上拉电阻电路连接图。POIXADO)PO!AD!)M 21AD2)POXADJ)PO-KAIH)PO5P3.1

22、(TXP3.2(-INP3.3(-INP3.4(T0P3.5(T1P3.6(-W路3.2时钟电路的设计与计算3.2.1电路选择时钟电路的晶体振荡器与单片机的晶振一样,两端分别接两个电容,来对晶振信 号退耦。如图3.6所示为时钟电路连接图。8电子万年历的设计3.2.2元器件的选型及参数计算1、时钟芯片DS13 02DS13 02是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为 2.5V-5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字 节的时钟信号或RAM数据。DS13 0

23、2内部有一个3 1X8的用于临时性存放数据的RAM 寄存器。DS13 02是DS12 02的升级产品,与DS1202兼容,但增加了主电源/后背电源 双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。如图3.7所示为DS13 02引脚图,其中Vccl为后备电源,Vcc2为主电源。XI和 X2是振荡源,外接3 2.768K Hz晶振。图3.7 DS13 02引脚图控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入 DS13 02中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5 至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表

24、示 进行读操作,控制字节总是从最低位开始输出。在控制指令字输入后的卜一个SCLK时钟的上升沿时,数据被写入DS13 02,数据 输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下 降沿读出DS13 02的数据,读出数据时从低位0位到高位70读写时序如下图3.8所 7J o9西南石油大学本科毕业设计(论文)单字节谀MST/“rLruruTLTT_n_run_nLJ_L_/“|AO Al A2 2 A4 R/T|1DO|D1|二字KKST“rTjrurururururururunLj-|AO A1|A2 1A3|a4|1乂 DO|DI|D2图3.8 DS13 02读/写时

25、序图DS13 02有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表3-1。表3-1 DS13 02的日历、时间寄存器耳寄存 器.读寄存 露Bit*Bit4.-Bit3 Bit2 Bitl.,80H81H.CH.10秒秒“82 H83 H.N10 分a分,84%85*12/2 4-3AM/PM.时一86H.87H.0103.日-88H.89H.0.O0.110月7月78 AH.8BH-0,0”330a星期一8cH.8DH.10年.年8EH.8FH.WP.o-a0.0.o.0.2、DS13 02晶振电路DS13 02的晶振电路与单片机的

26、晶振电路相似,唯一不同之处在晶振的频率,DS13 02所选晶振频率为3 2.768K Hzo如图3.9所示为DS13 02的晶振电路。图3.9 DS13 02晶振电路10电子万年历的设计3.3显示电路的设计与计算3.3.1电路选择-WV-图3.10显示电路连接图LCD12 864的引脚直接接在单片机的引脚上面,RE、RW、E、PSB依次接在单片机 PL0至PL3 口上,数据口 DO-D7依次接在单片机P0 口上。A引脚上接一个10K的滑 动变阻器来调节显示屏的亮度。显示部分电路图如图3.10所示。3.3.2元器件的选型及参数计算1、LCD12864液晶显示12864是一种具有4位/8位并行、2

27、线或3线串行多种接口方式,内部含有国标 一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为12 8X64,内置 8192个16*16点汉字,和128个16*8点ASCII字符集。利用该模块灵活的接口方式 和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8X4行16X 16点阵的汉字。也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构 成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示 程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。各管脚功能如表32所示。表32 12864管脚功能表管脚号管脚名称电平管脚功能描述1-地VS

28、S0V电源地2-+5VVCC3.0+5V电源正3-中V0一对比度(亮度)调整(可以接Vcc)11西南石油大学本科毕业设计(论文)LCD12 864的数据传输过程如图图3.11所示。4-单1RS(CS)H/LRS二“H,表示DB7DBO为显示数据RS=L,表示DB7DBO为显示指令数据5-单2R/W(SID)H/LR/W=“H”,E=“H”,数据被读到 DB7DBO R/W=L,E=H-L”,DB7DBO 的数据被写到 IR 或DR6-单3E(SCLK)H/L使能信号7-单 39DBOH/L三态数据线8-单 38DB1H/L三态数据线9-单 37DB2Il/I.二态数据线10-单 36DB3H/

29、L三态数据线11-单 35DB4H/L三态数据线12-单 34DB5H/L二态数据线13-单 33DB6H/L三态数据线14-单 32DB7H/L三态数据线15-单 4PSBH/LH:8位或4位并口方式,L:串口方式(见注释1)16空NC-空脚17空/RESETH/L复位端,低电平有效(见注释2)18空VOUT-LCD驱动电压输出端19-+5VAVDD背光源正端(+5V)(见注释3)2 0-地KVSS背光源负端(见注释3)12电子万年历的设计LCD12 864读数据的时序图如图3.12所示。1 2 3 4 5 7 8 9 10 li 12 13 14 15 1 17 18 19 2G 21 2

30、2 23 24SID pi0 0 Q 0 0Higher datadata产 byt e图3.12读数据(8位数据线模式)3.4硬件总电路图系统总电路图见附录一,PCB板见附录二。13西南石油大学本科毕业设计(论文)4.软件设计及编程4.1软件设计功能图软件系统功能图如图4所示。图4.1软件系统功能图4.2软件设计流程图软件系统流程图如图4.2所示。图4.2软件流程图14电子万年历的设计4.3 阳历程序设计及功能实现因为使用了时钟芯片DS13 02,阳历程序只需从DS13 02各个寄存器中读出年、月、日、星期、时、分、秒等数据,在处理即可。在首次对DS13 02进行操作前,必须对 它进行初始化

31、,然后从DS13 02中读出数据,再经过处理后,送给显示模块单元。阳 历程序设计系统流程图如图4.3所示。图4.3计算阳历程序流程图4.4 时间调整程序设计及功能实现调整时间用4个按钮调整,1个用于控制,1个用于移位,两外2个作为加、减 调节按钮。在调节时间过程中,逃调整的位与其他的位应该有区别,所以增加了汉字 显示提示功能,即调整的位有相应的汉字提示。当按下一位按钮时,即进入下一位的 调整,并有相应汉字提示。时间调整程序流程图如图4.4所示。15西南石油大学本科毕业设计(论文)图4.4时间调整程序流程图16电子万年历的设计4.5 阴历程序设计及功能实现阴历程序的实现是靠阳历日期来推算。要根据

32、阳历日期来推算阴历日期,首先要 设计算法。推算方法是,根据阳历当前日期在一年中的天数来计算阴历日期。阳历一 个月不是30天就是31天(2月除外,闰年2月为29天,平年2月为28天)。阴历 一年有12个月或13个月(含闰月),一个月为29天或30天。如果把一个只有29 天的月称为小月,用1标志,把30天的月称为大月,用0标志,那么12位二进制就 能表示一年12个月的大小。如果有闰月,则把闰月的月份作为一字节的高4位,低 4位表示闰月大小,大月为0,小月为lo这样一字节就包含了所有闰月信息。阴历 春节和阳历元旦相差天数也用一字节表示。总共用4字节就可以存储一年中任何一天 阳历与阴历对应关系的有关数

33、据,例如2004年的阴历与阳历对应关系如表4-1所示。表4-1 2004年的阴历与阳历对应关系表月份123456789101112闰2月大小小大大大小大小大小大小大小二进制1000101010101天数29303030293029302930293030十六进制4252212004年春节和元旦相差21天,这样2004年的信息表示为:21,4 2 H,52 H,2 1HO 其中表示12个月大小信息的字节,第4位和第7位不用。第一字节位十进制,其他 的都为十六进制。按此方法,100年的阳历和阴历对应关系表共使用400字节。先要根据当前阳历的日期,算出阳历为该年中的第儿天,计算出当前阳历日期为该年

34、的第几天后,再减去该年春节和元旦的日差,如果够减,则相减的结果就是阴历在该 年中的总第几天,根据该数据就可以推算出具体的当前阴历日期;如果不够减,则表 示当前阴历为阳历的前一年,在这种情况卜.,根据实际,当前阴历口期会处于阴历的 11月或12月,此时春节和元旦的日差减去前面计算出的当前阳历日期在阳历中的第 几天的数据,其结果表示当前阴历日期距离春节的天数。再根据查表所得的该年的阴 历的闰月和大小月信息,就可以推算出该天的阴历日期。阴历程序算法流程图如图4.5所示。17西南石油大学本科毕业设计(论文)18电子万年历的设计5.系统调试及分析5.1硬件电路调试及结果分析电子万年历的电路系统比较简单,

35、但对于焊接方面不可轻视,电路系统中只要出 于一处的错误,就会对检测造成很大的不便,电路中的交线较多,对于各种锋利的引 脚要注意处理,否则会刺穿被带有包皮的导线,对电路造成短路现象。硬件电路实物 图见附录三。5.1.1 单片机最小系统电路的测试结果及其分析焊接好单片机最小系统电路后,测试是否有虚焊、短路等问题以及单片机是否正 常工作。用万用表的二极管档测试,若有,吱吱吱的响声则表示有短路,这种方法也 可以检查线路是否连接通。给单片机最小系统上电,用万用表电压档测试单片机各引 脚输出电压是否正常,电压表的读数如图5.1所示。用示波器检测单片机晶振是否起 振,晶振的波形输出如图5.2所示。图5.1电

36、压表测试读数图5.2单片机晶振输出波形图5.1.2 DS13 02时钟电路的测试结果及其分析时钟芯片DS13 02与单片机的连接比较简单,电路焊接好后,检测电路是否有虚 19西南石油大学本科毕业设计(论文)焊、短路的问题,用万用表测试时钟芯片各脚电压,用示波器检测时钟芯片的晶振是 否起振。在测试时钟电路的时候,发现时钟电路的输出波形不正常,经过检查和测试,发 现晶振没有添加去耦电容,在添加了电容之后,时钟电路输出波形工作正常了。如图 5.3所示为DS13 02的实物连接图。图5.3 DS13 02实物图5.1.3 LCD12 864显示电路的测试结果及其分析液晶显示电路的连接很简单,很容易焊接

37、。但需要需要注意的是,由于液晶屏是 接在AT89s52的P0 口,所以必须要接上拉电阻。焊接好后,检测电路是否有虚焊、短路的问题,用万用表测试各脚的电压。测试滑动变阻器能否调节显示屏亮度。在芯 片中烧入一个简单的液晶屏显示程序,测试液晶屏能否显示。如图5.4所示为LCD12 864的实物连接图。2图5.4 LCD12 864实物图5.2软件调试及功能分析5.2.1阳历显示程序功能实现及其分析阳历程序的设计很简单,编写好DS13 02读写程序和阳历和时间显示程序,在主 20电子万年历的设计函数中调用,很容易就能实现阳历和时间的显示功能。在编写程序时,由于没有掌握好DS13 02的读写时序,导致D

38、S13 02不能正常读数。经过认真分析时序,最后终于编写出了 DS13 02的正确程序。如图5.5所示为12864 显示出的时间日期。图5.5阳历时间日期显示5.2.2时间调整程序功能实现及其分析时间调整程序比较复杂,程序多了,就很容易出错,所以在编写过程中要很细心。将编写好的程序烧入单片机中进行检查。在写这部分程序时,感觉不是很困难,只要认真按照逻辑顺序编写就行了。如图5.6所示是时间日期的调节部分。图5.6月份的调节显示5.2.3阴历显示程序功能实现及其分析阴历程序的编写难点主要在算法上,在有了算法和阴历与阳历转阴历的关系表 的情况下,阴历程序也很容易编写。编写好程序,烧入开发板检测。在程

39、序加入了农历子程序后,农历不能正常显 示。在仔细查看程序,发现返回的农历是16进制数。而我把它当成了十进制数,以 至于不能正常显示。修改后,显示正常,如图5.7所示。图5.7阳历与阴历显示21西南石油大学本科毕业设计(论文)6.结论与展望6.1结论通过本次设计,本系统能完成以下功能:(1)显示公历日期功能(年、月、日、时、分、秒以及星期)(2)可通过按键调节年、月、日、时、分、秒以及星期(3)可动态完整显示年本设计的亮点是在显示阴历日期时,使用汉字的显示,显示农历的年份采用的天 干地支的表现方式。例如,在2012年的农历闰四月初一时,显示格式为“壬辰年闰四 月初一”,使显示更为美观。本设计硬件

40、电路较简单,所以器件较少,电路中使用了 AT89c52单片机、DS13 02 时钟芯片和LCD 12864液晶显示器,实现了预计功能。6.2展望在本次设计中仍然存在着不足之处。1、显示的年限过短,只能显示2000年2100年之间的部分。2、通过按键调节年、月、日后,如果不调节星期,星期的显示就会出现与正常 的星期不匹配,目前还没办法自动校正,只能通过手动调节星期,才能使所显示的星 期与正常星期匹配。由3、于未来的阴历日期是不能准确预测出的,所以,所显示的阴历日期有可能与 其他版本的电子万年历在未来的阴历日期显示上出现不匹配的情况。4、由于使用的是C语言进行的编程,所以整个程序显得很臃肿,在现有

41、的程序 设计基础上,还可以进行精简。5、本设计的功能还可以在现有基础上再次扩展,还可以添加闹铃功能,跑马表 功能,以及整点报时功能等等,还有很大的扩展空间。22电子万年历的设计谢首先我必须感谢院领导对我们毕业生在毕业设计过程中的支持与关怀!其次我要特别感邱红兵老师,不管在选题阶段,还是在设计阶段、在制作阶段,正是他给予我不断的指导与帮助,导师渊博的学识、严谨的治学态度、求实创新的工 作作风、对事业和科学的执着追求,以及对我谆谆教诲给我留下了深刻的印象,使我 受益终身。在课题的研究设计过程中,我不仅从邱老师那里学到许多专业知识,更重 要的是学会了学习新知识并将其巩固的方法,这无疑是一把开启未来生

42、活的钥匙,特 此向邱老师表示衷心的感谢!最后我要感谢我的同学们,在设计和焊接过程遇到困难时,正是由于同学们的帮 助我才能顺利的克服困难,毕业设计的完成离不开同学们的帮助!在大学四年的学习生活中,还得到了许多领导和老师的热情关心和帮助,在此,向所有关心和帮助过我的领导、老师、同学和朋友们表示由衷的谢意!衷心的感谢在百忙之中评阅论文和参加答辩的各位教授、老师!23西南石油大学本科毕业设计(论文)2410K uglanp,kriegerE,SantiagoE.The8051microcontronller.2 009:P110-12 29黄遵熹.单片机原理接口与应用.陕西:西北工业大学.,1997.

43、058周航慈.单片机程序设计基础.北京:北京航空航天大学.,1991.117万光毅.单片机实验与实践教程.北京:北京航空航天大学.,2 005.016何立民.单片机应用技术选编.北京:北京航空航天大学.,2 000.085李振声.实验电子技术(P182193).国防工业大学.,20014 李飞光.单片机课程设计实例指导.北京:北京航空航天大学.,20043 张俊谟.单片机中级教程.北京:北京航空航天大学出版,2 006.032 李建忠.单片机原理及应用.陕西:西安电子科技大学出版,2 006.021康光华.电子技术基础(数字部分).北京:电子工业.,2 006.02参考文献电子万年历的设计25

44、西南石油大学本科毕业设计(论文)附录二:PCB电路图V1ici e十my oo acc cz a acr aa 0OOGO0OO pK-pJ*pL-pAq*-t r.t j*-r-*0O0OOO0OOO0O0OO0OOOO0OO0OOOenu 6aO O O OFOIIMlb t il 20(NL-Z)S O O O26电子万年历的设计附录三:实物图27西南石油大学本科毕业设计(论文)附录四:系统完整程序显示子程序:#d efine d ata_bus PO d efine RS Pl_l#d efine R_W Pl_3 d efine E Pl_2#d efine PSB Pl_0void

45、 d elay(unsigned int cont)(unsigned char j;unsigned int i;for(i=0;icont;i+)for(j=0;j10;j+);void cheak_busy(void):RS=0;R_W=1;E=1;while(d ata_bus&0X80);E=0;)void write_ord er(unsigned char command):cheak busy();RS=0;R_W=0;E=1;d ata_bus=command;d elay(50);E=0;)void write_d ata(unsigned char d atas):che

46、ak_busy();RS=1;R_W=0;E=1;d ata_bus=d atas;d elay(50);E=0;)void screen int(void):PSB=1;一并行数据传输d elay(50);write_ord er(0X3 0);/一 8 位数据,基本指令d elay(50);write_ord er(0X02);/一地址归位d elay(50);write_ord er(0X0C);/一整体显示。关闭游标28电子万年历的设计d elay(50);write_ord er(0X80);/-设定起始显示位置d elay(50);write_ord er(0X01);/一清屏d

47、elay(50);write_ord er(0X06);/-进入设定点void clear_screen(void)/一需要修改部分(write_ord er(0X01);d elay(50);write_ord er(0X06);/一进入设定点 d elay(50);d elay(5000);void puts_char(unsigned char row,unsigned char line,unsigned char*p)一 字符或者汉字输出unsigned char star_site=0X80;unsigned char*q=0;unsigned char over_flag=0;i

48、f(rowl|linel)return;if(row=3)row=1;line=line+8;else if(row-4)row=2;line=line+8;row=row-l;line=line-l;row=row16)break;void puts_d ata(unsigned char row,unsigned char line,unsigned charcont,unsigned int number)输出数据(暂为四位)cod e unsignedchar*p=012 3 4 56789;unsigned char temp4;unsigned char*q;unsigned ch

49、ar i;unsigned charstar_site=0X80;if(cont=5)return;if(rowl|linel)return;else if(row-3)row=l;linealine+8;)else if(row=4):row=2;1ine=line+8;)row=row-l;1ine=line-1;row=row4;star_site=star_site|row;star_site=star_site|line;temp0=number/1000;temp1=number%1000/100;temp2=number%100/10;temp3=number%10;write_

50、ord er(star_site);for(i=4-cont;i 0;i-);BCD码转十进制unsigned char DS13 02 _BCD_to_DEC(unsigned char BCD)(unsigned char temp;temp=BCD/16;temp*=10;temp+=BCD%16;return(temp);DS 13 02 初始化void DS13 02 _start():RST=1;SCL=0;SDA=0;)/DS 13 2 0 结束void DS13 02 _stop()(RST=0;SCL=0;SDA=0;)DS1602 写一个字节void DS13 02 _wr

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 行业资料 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服