单片机课程设计基于单片机的万年历的设计_第1页
单片机课程设计基于单片机的万年历的设计_第2页
单片机课程设计基于单片机的万年历的设计_第3页
单片机课程设计基于单片机的万年历的设计_第4页
单片机课程设计基于单片机的万年历的设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、辽辽 宁宁 工工 业业 大大 学学 单片机原理及接口技术单片机原理及接口技术 课程设计(论文)课程设计(论文)题目:题目: 电子万年历(含农历)电子万年历(含农历) 院(系):院(系): 电气工程学院电气工程学院 专业班级:专业班级: 自动化自动化123123 学学 号:号: 学生姓名:学生姓名: 指导教师:指导教师: (签字)起止时间:起止时间:2015.6.22-2015.7.32015.6.22-2015.7.3本科生课程设计(论文)i课程设计(论文)任务及评语课程设计(论文)任务及评语院(系):电气工程学院 教研室: 自动化学 号120302073学生姓名专业班级123课程设计(论文)

2、题目电子万年历(含农历)课程设计(论文)任务课题完成的功能、设计任务及要求、技术参数课题完成的功能、设计任务及要求、技术参数实现功能实现功能电子万年历能显示阳历年、月、日、星期、时、分、秒和阴历的月、日,并能显示温度。硬件设计包括 cpu 选型、最小系统电路、时钟电路、温度、通信电路、按键及lcd 显示电路等。软件采用汇编语言或 c 语言实现。设计任务及要求设计任务及要求1、确定设计方案,画出方案框图。2、进行硬件电路的设计,包括元器件选择。3、绘制原理图。4、绘出程序流程图,并编写以太网初始化、收发程序、温度检测程序等。5、要求认真独立完成所规定的全部内容;所设计的内容要求正确、合理。6、按

3、学校规定的格式,撰写、打印设计说明书一份;设计说明书应在4000字以上。技术参数技术参数1、显示阳历年、月、日、农历;2、温度保留一位小数,精度为 1。进度计划1、布置任务,查阅资料,确定系统设计方案(2 天)2、系统硬件设计及模块选择(3 天)3、系统软件设计及编写功能程序及调试(3 天)4、撰写、打印设计说明书(1 天)5、验收及答辩。 (1 天)指导教师评语及成绩平时: 论文质量: 答辩: 总成绩: 指导教师签字: 年 月 日本科生课程设计(论文)ii注:成绩:平时20% 论文质量60% 答辩20% 以百分制计算本科生课程设计(论文)iii摘 要电子万年历是一种应用非常广泛日常计时工具,

4、对现代社会越来越重要,电子钟主要是利用现代电子技术将时钟电子化、数字化。与传统的机械钟相比,具有时钟精确、显示直观、无机械传动装置等优点,因而得到广泛应用,根据人们的不同要求,本设计主要为实现一款可正常显示时钟/日历、测量环境温度的多功能电子时。该系统以 at89c51 单片机微处理芯片为核心,使用 ds3231 时钟芯片及ds18b20 温度采集芯片,采用软硬件结合的技术,使硬件部分大为简化,提高了系统的稳定性,并采用 led 显示电路、键盘电路,使人机交互简便易行,持外结合供电电路。ds3231 它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且 ds3231 的

5、使用寿命长,误差小;对于数字电子万年历采用直观的数字显示,数字显示是采用的 lcd19264 液晶显示屏来显示,可以同时显示年、月、日、星期、时、分、秒等信息。此外,该电子万年历还具有时间校准等功能,还可以准确的显示当前的室温的功能,具有体积小,读取方便,显示直观,电路简单明了,成本低廉等诸多优点。关键词:单片机;时钟芯片;温度采集芯片;led 显示本科生课程设计(论文)iv目 录第 1 章 绪论.1.第 2 章 课程设计的方案.2.2.1 概述 .22.2 系统组成总体结构 .2第 3 章 硬件设计.3.3.1 单片机及单片机最小系统设计.33.2 ds3231 时钟芯片.63.3 ds18

6、b20 温度传感器 .83.4 lcd19264 显示电路.93.5 独立按键 .113.6 总体电路图 .12第 4 章 软件设计 .134.1 主程序流程图.134.2 ds3231 时钟芯片的程序设计.144.3 ds18b20 程序的设计 .144.4 阳历与阴历的转换 .15第 5 章 课程设计总结 .16参考文献 .17附录 .18本科生课程设计(论文)1第 1 章 绪论从古至今,人们的日常生活和工作都离不开对时间的准确把握。而随着科技的发展,电子万年历成为了日渐流行的日常计时工具。目前市场上的万年历功能强大,简单直观,给人们带来很大的方便。机械式钟表虽然也可以告知人们时间,也可以

7、定时,显示日历。但是由于受到机械结构、动力和体积的限制,在功能、性能以及造价上都没办法与电子时钟相比。电子钟是采用电子电路实现对时、分、秒进行数字显示的计时装置,广泛应用于个人家庭,室外广场,汽车站和火车站等公共场所,成为人们日常生活中不可少的必需品。由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、0 按时自动打铃、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,更为先进的电子钟的研究

8、有着良好的发展前景和市场潜力由于数字集成电路技术的发展和采用了先进的石英技术,现代电子钟具有走时准确、性能稳定、制作维修简单等优点,弥补了传统钟表的许多不足之处。我们利用单片机技术设计制作的电子万年历,可以很方便的由编程进行功能的调整和改进,使其在能够准确显示公历和农历年、月、日、时间、星期的同时,还能具有很多其他的功能。如设定闹钟、语音报时、二十四节气的显示等,有一定的新颖性和实用性,同时体积小、携带方便,使用也更为方便,具有技术更新周期短、成本低、开放灵活等优点,具备一定的市场前景。这里要介绍的就是一款可满足使用者特殊要求,输出方式灵活、计时准确、性能稳定、维护方便的实用电子万年历 。电子

9、万年历在家庭居室、学校、车站和广场使用越来越广泛,给人们的生活、学习、工作带来极大的方便。针对以往的电子万年历断电后需要重新调整时间与日期,且计时误差大的现象。本设计采用 at89c51 作为主控制器,为了提高电路的实用性加入温度测量电路。本系统程序有主程序、中断服务函数和多个子函数构成。主函数只要完成各子函数和中断函数的初始化。定时中断函数主要完成时钟芯片的定式扫描及键盘扫描。时钟芯片的读写函数只要是将时间、日历信息读出来,并把要修改具体值写入时钟芯片内部。本科生课程设计(论文)2第 2 章 课程设计的方案2.1 概述本系统以 at89c51 单片机为核心,结合 ds3231 时钟芯片及 d

10、s18b20 温度采集芯片等外围器件,实现了万年历的显示公历和农历年、月、日、时、分、秒和星期,还可以准确的显示当前的室温的功能,并通过液晶屏和按键控制完成人机交互功能。本系统具有体积小,读取方便,显示只直观,电路简单明了,成本低廉等诸多优点。2.2 系统组成总体结构万年历系统由 at89c51 作为控制中心,用 lcd19264 作为显示模块,用ds3231 作为时钟模块,用 ds18b20 作为温度模块,系统组成结构图如图。图 1.2 系统组成结构图at89c51ds3231ds18b20lcd 液晶显示按键电路驱动电路本科生课程设计(论文)3第 3 章 硬件设计3.1 单片机及单片机最小

11、系统设计单片机是一种集成芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器cpu、只读存储器rom、多种i/o口和中断系统、定时器/计数器等功能集成到一块硅片上构成的小而完善的微型计算机系统,在工业控制领域广泛应用。本文应用的是89c51单片机,89c51单片机具有如下等特性,面向控制的8位cpu,一个片内振荡器和时钟产生电路,震荡频率为024mhz,片内4kb的片内数据存储器,128b的片内数据存储器,可寻址64kb的片外程序存储器和片外数据存储器控制电路,2个16位i/o口,共32条可单独编程的i/o口现,5个中断源,2个中断优先级,1个全双工的异步串行口,21个特殊功能寄存器

12、,具有节电工作方式,即休闲方式和掉电保护方式。89c51单片机有40个引脚。其中2条主电源引脚,2条外接晶体引脚,4条控制或与其他电源复用的引脚,32条i/o口引脚。vss(20脚):接地端。vcc(40脚):电源端。正常操作及对flash rom的编程和验证时接+5v电源。xtal1(19):j接外部晶体和微调电容的一端。在89c51片内,它是震荡电路反向放大器的输入端及内部时钟发生器的输入端,振荡电路的频率就是晶体的固有频率。当采用外部震荡器时,此引脚输入外部时钟脉冲。xtal2(18脚):接外部晶体和微调电容的另一端。在89c51片内,它是震荡电路反向放大器的输出端。采用外部震荡器时,此

13、引脚应悬浮。rst(9脚):复位信号输入端,高电平有效。当振荡器工作时,在此引脚上出现两个周期以上的高电平,就可以使单片机复位。ale(30脚):地址锁存允许信号。当89c51上电正常工作后,ale端不断向外输出正脉冲信号,此信号频率为振荡器的1/6.通过用示波器查看ale端是否有脉冲信号输出,可以确认89c51芯片的好坏。89c51在并行扩展外部存储器时,p0口用于分时传送低8位地址和数据信号,当ale信号有效时,p0口传送低8位地址信号;ale信号无效时,p0口传送的是8位数据信号。在ale信号的下降沿,锁定p0口传送的低8位地址信号,可以实现低8位地址与数据的分离。晶振并不能独立的使用,

14、必须配合合适的负载电容,否则会产生频率偏差,或者是使晶振不能工作。负载电容的选择可以根据单片机的技术文档上的说明来本科生课程设计(论文)4选择。对于51单片机一般选择不大于40pf的瓷片电容。复位电路,就是利用它把电路恢复到起始状态。就像计算器的清零按钮的作用一样,以便回到原始状态,重新进行计算。和计算器清零按钮有所不同的是,复位电路启动的手段有所不同。一是在给电路通电时马上进行复位操作;二是在必要时可以由手动操作;三是根据程序或者电路运行的需要自动地进行。复位电路都是比较简单的大都是只有电阻和电容组合就可以办到了。再复杂点就有三极管等等配合程序来进行了。为确保微机系统中电路稳定可靠工作,复位

15、电路是必不可少的一部分,复位电路的第一功能是上电复位。一般微机电路正常工作需要供电电源为5v5%,即4.755.25v。由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当vcc超过4.75v低于5.25v以及晶体振荡器稳定工作时,复位信号才会撤除,微机电路开始正常工作。复位引脚当有连续两个以上机器周期(2us以上)的高电平,这个单片机就会复位。而我们的电路设计是,电容充电瞬间,电流通过电容器,然后向电阻方向放电,此时,电容的“-”端就能有一个很高的电势,在高于3v的情况下,均可以认为是高电平。单片机里虽然集成了很多电路,但仍然不能独立运行,必须要外连一些电路,才能使单片

16、机运行起来。这种能使单片机工作的最简电路,我们叫做单片机最小系统。本设计最小系统由复位电路,晶振电路和单片机组成。在提及单片机的最小系统后,现对单片机的另一重要应用系统即中断系统做一个比较详细的介绍。在cpu 与外设交换信息时,存在着一个快速cpu与慢速的外设之间的矛盾。为解决这个问题,发展了中断的概念。单片机在某一时刻只能处理一个任务,当多个任务同时要求单片机处理时,这一要求应该怎么实现呢?通过中断可以实现多个任务的资源共享。所谓的中断就是,当cpu正在处理某项事务的时候,如果外界或者内部发生了紧急事件,要求cpu暂停正在处理工作而去处理这个紧急事件,待处理完后,再回到原来中断的地方,继续执

17、行原来被中断的程序,这个过程称作中断。从中断的定义我们可以看到中断应具备中断源、中断响应、中断返回这样三个要素。中断源发出中断请求,单片机对中断请求进行响应,当中断响应完成后应进行中断返回,返回被中断的地方继续执行原来被中断的程序。mcs-51单片机的中断源共有两类,它们分别是:外部中断和内部中断。外部中断0(int0)来自p3.2引脚,通过外部中断0触发方式控制位it0(tcon.0),来决定中断输入信号是低电平有效还是负跳变有效。一旦输入信号有效,便使ie0标志置一,向cpu申请中断;外部中断1(int1)来自p3.3引脚,通过外部中断1触发方式控制位it1(tcon.2),来决定中断输入

18、信号是低电平有效还是负跳变有效。一旦输入信号有效,便使ie0标志置一,向cpu申请中断。内部本科生课程设计(论文)5中断有三个:tf0,tf1,ri或ti。tf0(tcon.5) ,片内定时/计数器t0溢出中断请求标志。当定时/计数器t0发生溢出时,置位tf0,并向cpu申请中断;tf1(tcon.7) ,片内定时/计数器t1溢出中断请求标志。当定时/计数器t1发生溢出时,置位tf1,并向cpu申请中断;ri(scon.0)或ti(scon.1) ,串行口中断请求标志。当串行口接收完一帧串行数据时置位ri或当串行口发送完一帧串行数据时置位ti,向cpu申请中断。 mcs-51单片机为用户提供了

19、四个专用寄存器,来控制单片机的中断系统。定时器控制寄存器(tcon) ,该寄存器用于保存外部中断请求以及定时器的计数溢出。进行字节操作时,寄存器地址为88h。按位操作时,各位的地址为88h8fh,当cpu采样到int0(或int1)端出现有效中断请求时,ie0(ie1)位由硬件置“1” 。当中断响应完成转向中断服务程序时,由硬件把ie0(或ie1)清零, 当计数器产生计数溢出时,相应的溢出标志位由硬件置“1” 。当转向中断服务时,再由硬件自动清“0” 。计数溢出标志位的使用有两种情况:采用中断方式时,作中断请求标志位来使用;采用查询方式时,作查询状态位来使用;串行口控制寄存器(scon) ,进

20、行字节操作时,寄存器地址为98h。按位操作时,各位的地址为98h9fh,当发送完一帧串行数据后,由硬件置“1” ;在转向中断服务程序后,用软件清“0” ,当接收完一帧串行数据后,由硬件置“1” ;在转向中断服务程序后,用软件清“0” 。串行中断请求由ti和ri的逻辑或得到。就是说,无论是发送标志还是接收标志,都会产生串行中断请求;中断允许控制寄存器(ie) ,进行字节操作时,寄存器地址为0a8h。按位操作时,各位的地址为0a8h0afh,可见,mcs-51单片机通过中断允许控制寄存器对中断的允许(开放)实行两级控制。即以ea位作为总控制位,以各中断源的中断允许位作为分控制位。当总控制位为禁止时

21、,关闭整个中断系统,不管分控制为状态如何,整个中断系统为禁止状态;当总控制位为允许时,开放中断系统,这时才能由各分控制位设置各自中断的允许与禁止。mcs-51单片机复位后(ie)00h,因此中断系统处于禁止状态。单片机在中断响应后不会自动关闭中断。因此在转中断服务程序后,应根据需要使用有关指令禁止中断,即以软件方式关闭中断。中断优先级控制寄存器(ip)mcs-51单片机的中断优先级控制比较简单,因为系统只定义了高、低2个优先级。高优先级用“1”表示,低优先级用“0”表示。各中断源的优先级由中断优先级寄存器(ip)进行设定。ip寄存器地址0b8h,位地址为0bfh0b8h。当我们通过 pc 端给

22、 at89c51 下载程序时,采用的是计算机串口(rs-232电平:高 -12v 低+12v)通信,所以计算机与单片机之间进行通信时需要电平转换芯片 max232。max232 含有两个 rs-232 发送驱动器和接收驱动器,其中发送器的输入为本科生课程设计(论文)6ttl/cmos 电平,输出为 rs-232 电平。max232 接收器的输入为 rs-232 电平,输出为 ttl/cmos 电平。不使用的输入输出端可以悬空。max232 的工作温度范围为 0至 70。max232 的 pin14(t1out)引脚与串行口的 2 引脚连接,pin13(r1in)引脚与串行口的 3 引脚连接。p

23、in12(r1out)引脚和pin11(t1in)引脚分别与单片机的 p3.0 /rxd(串行输入口) 、p3.1 /txd(串行输出口)连接。这样单片机所需要的程序就可以从计算机下载了。图3.1 单片机最小系统结构图3.2 ds3231 时钟芯片 maxim integrated新型实时时钟(rtc) ds3231,内部集成了tcxo、rtc和32.768khz晶体,并采用低成本、标准型、16引脚soic封装。在-40至+85温度范围内,计时精度为2分钟/年。这一出色性能使ds3231成为当前要求高计时精度应用的最佳解决方案。而rtc的其它集成功能也扩展了系统应用领域,适合那些对计时精度要求

24、极高的应用。应用包括:服务器、电表、安防及门禁控制系统、车队管理、远程信息处理系统、gps导航装置、pos终端以及atm。ds3231是低成本、高精度i2c实时时钟(rtc),具有集成的温补晶振(tcxo)和晶体。该器件本科生课程设计(论文)7包含电池输入端,断开主电源时仍可保持精确的计时。集成晶振提高了器件的长期精确度,并减少了生产线的元件数量。ds3231提供商用级和工业级温度范围,采用16引脚300mil的so封装。ds3231的引脚功能说明如下:32khz是32khz频率输出;vcc用于主电源的dc引脚;int/sqw为低电平有效中断或方波输出;rst是低电平有效复位引脚;n.c.表示

25、无连接,外部必须接地;gnd为地;vbat为备用电源输入;sda为串行数据输入、输出;scl为串行时钟输入。rtc保存秒、分、时、星期、日期、月和年信息。少于31天的月份,将自动调整月末的日期,包括闰年的修正。时钟的工作格式可以是24小时或带/am/pm指示的12小时格式。提供两个可设置的日历闹钟和一个可设置的方波输出。ds3231采用i2c总线与系统微控制器进行通信,i2c总线是由philips公司开发的两线式串行总线,用于连接微控制器及其外围设备,由于接口直接在组件之上,因此i2c总线占用空间少,减少了电路板的空间和芯片管脚的数量,降低了互联成本。它支持多主控,任何能够进行发送和接收的设备

26、都可以成为主总线。一个主控能够控制信号的传输和时钟频率。i2c总线通过两根连线(串行时钟线scl和双向传送sda)实 现半双工同步数据传输,确保两器件之间地址和数据信息的双向传输。它采用器件地址的硬件设置方法(即每个器件具有一个确定的id) ,通过软件寻址,从而避免器件的片选信号线寻址,使硬件系统扩展灵活简便。为保证通信正常,必须保证 i2c总线上的数据能够顺利传送。在数据开始传送前,首先让i2c接口进行初始化。ds3231的i2c接口的初始化操作可通过微控制器在总线上发送一个有效start条件来实现,因为微控制器产生的start信号能够终止ds3231的i2c接口当前的数据收、发过程,并将该

27、接口置于start条件后的待命状态。但要发送一个有效的start条件,必须在ds3231释放sda数据线时才能实现。如果sda数据线处于低电平状态,这时,可以让系统微控制器产生一个附加的scl脉冲来迫使ds3231接口送出下一位数据。假设下一位数据仍然为逻辑“0” ,就继续产生附加的scl脉冲,经过多个scl脉冲后,ds3231就会释放sda数据总线。完成i2c总线的初始化后,接着进行控制和状态寄存器的初始化设置,确定正确的数据范围,就可以运行相应的测控程序。精密的、经过温度补偿的电压基准和比较器电路用来监视vcc状态,检测电源故障,提供复位输出,并在必要时自动切换到备份电源。另外,/rst监

28、视引脚可以作为产生p复位的手动输入。除计时精度高之外,ds3231还具有一些其它功能,这些功能扩展了系统主机的附加功能和选择范围。该器件内部集成了一个非常精确的数字温度传感器,可通过i2c*接口对其进行访问(如同时间一样)。这个温度传感器的精度为3c。本科生课程设计(论文)8片上控制电路可实现自动电源检测,并管理主电源和备用电源(即低压电池)之间的电源切换。如果主电源掉电,该器件仍可继续提供精确的计时和温度,性能不受影响。当主电源重新加电或电压值返回到容许范围内时,片上复位功能可用来重新启动系统微处理器。ds3231电路图如图所示。图3.2 ds3231电路图3.3 ds18b20 温度传感器

29、 本设计需要显示温度,而采集温度需要通过传感器来实现。本设计使用的为ds18b20温度传感器。ds18b20的读写时序和测温原理与ds1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对 低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄

30、存器值的累加,此时温度寄存器中的数值即 为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。ds18b20 的主要特性(1)独特的单线接口方式,ds18b20在与微处理器连接时仅需要一条口线即可实现微处理器与ds18b20的双向通讯;本科生课程设计(论文)9(2)测温范围 55+125,固有测温误差1;(3)支持多点组网功能,多个ds18b20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定;(4)工作电源: 3.05.5v/dc (可以数据线寄生电源) ;(5)在使用中不需要任何外

31、围元件;(6)测量结果以912位数字量方式串行传送;(7)不锈钢保护管直径 6;(8)适用于dn1525, dn40dn250各种介质工业管道和狭小空间设备测温;(9)标准安装螺纹 m10x1, m12x1.5, g1/2”任选;(10)pvc电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。ds18b20引脚定义:(1)dq为数字信号输入/输出端;(2)gnd为电源地;(3)vdd为外接供电电源输入端(在寄生电源接线方式时接地) 。要想使ds18b20进行精确的温度转换,i/o线必须保证在温度转换期间提供足够的能量,由于每个ds18b20在温度转换期间工作电流达到1ma,当几个温度传

32、感器挂在同一根i/o线上进行多点测温时,只靠4.7k上拉电阻就无法提供足够的能量,会造成无法转换温度或温度误差极大。因此,单一温度传感器测温情况下,适宜采用电池供电系统中。多组工作是不适合采用电池供电,并且工作电源vcc必须保证在5v,当电源电压下降时,寄生电源能够汲取的能量也降低,会使温度误差变大。电路图如图所示。图3.3 ds18b20电路图本科生课程设计(论文)103.4 lcd19264 显示电路本次设计显示电路需要显示时间,农历日期,公历日期星期,温度等数据,所以采用 lcd19264 显示电路,19264a-06 是一种图形点阵液晶显示器。它主要采用动态驱动原理由行驱动控制器和列驱

33、动器两部分组成了 192(列)64(行)的全点阵液晶显示。此显示器采用了 cob 的软封装方式,通过导电橡胶和压框连接 lcd,使其寿命长,连接可靠。其工作特性为:(1)工作电压为+3v 到+5v10%,自带驱动 lcd 所需的负电压。(2)全屏幕点阵,点阵数为 192(列)64(行),可显示 12(/列)4(行)个(1616 点阵)汉字,也可完成图形,字符的显示。(3)与 cpu 接口采用 7 条位控制总线和 8 位并行数据总线输入输出。(4)内部有显示数据锁存器(5)简单的操作指令 显示开关设置,显示起始行设置,地址指针设置和数据读/写等指令。表 3.1 接口顺序图序号符号功能说明1vss

34、电源地2vdd电源输入(+5v)3v0lcd 驱动电压输入端4rs寄存器选择端5r/w读/写信号6e使能信号7-14db0-db7数据总线15/cs1片选信号 1,低有效,选择左屏16/rst复位信号,低有效17/cs2片选信号 2,低有效,选择中屏18/cs3片选信号 3,低有效,选择右屏19vout负压输入输出端20leda背光正极模块主要硬件构成说明:本科生课程设计(论文)111显示数据 ram(ddram) ddram(6488 bits)是存储图形显示数据的。此 ram 的每一位数据对应显示面板上一个点的显示(数据为 h)与不显示(数据为 l) 。ddram 的地址与显示位置关系对照

35、图2x 地址寄存器 x 地址寄存器是一个三位页地址寄存器,其输出控制着 ddram 中 8 个页面的选择,也是控制着数据传输通道的八选一选择器。x 地址寄存器可以由 mpu以指令形式设置。x 地址寄存器没有自动修改功能,所以要想转换页面需要重新设置 x 地址寄存器的内容。3y 地址计数器 y 地址计数器是一个 6 位循环加一计数器。它管理某一页面上的 64 个单元。y 地址计数器可以由 mpu 以指令形式设置,它和页地址指针结合唯一选通显示存储器的一个单元,y 地址计数器具有自动加一功能。在显示存储器读/写操作后y 地址计数将自动加一。当计数器加至 3fh 后循环归零再继续加一。4z 地址计数

36、器 z 地址计数器是一个 6 位地址计数器,用于确定当前显示行的扫描地址。z 地址计数器具有自动加一功能。它与行驱动器的行扫描输出同步,选择相应的列驱动的数据输出。19264 引脚接线图如图。图3.4 lcd19264显示电路本科生课程设计(论文)123.5 独立按键本设计需要具有调节时间日期的功能,所以必须具有独立按键来进行人机交互,所以本设计采用的4个独立按键,分别是:“设置” 、 “确认” 、 “加” 、 “减” 。判断“设置”键是否按下及第几次按下可以分别对日期、时间、星期选定,然后按“加” 、 “减”即可进行设置, “确认”键按下后,新数据即写入时钟芯片。例如, “设置”键按1下,即

37、可以对年份进行设置,按4下,即是可以对小时进行设置。其电路设计如图:图3.5 独立按键图本科生课程设计(论文)133.6 总体电路图图3.6 总体电路图本科生课程设计(论文)14第 4 章 软件设计4.1 主程序流程图本设计利用keil(c51) 软件进行程序的编写。c语言是一种编译型程序设计语言,它兼顾了许多种高级语言的特点,并且具备汇编语言的功能,c 语言可以像汇编语言一样对位、字节和地址进行操作。目前,使用c语言进行程序设计已经成为软件开发的一个主流。c语言程序本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同的单片机中移植过来。用c语言开发系统可以大大缩短开发周期,明显增强程序的

38、可读性,便于改进、扩充和移植。而针对8051的c语言日趋成熟,成为了专业化的实用高级语言。虽然汇编语言效率高,对硬件的可操控性更强,体积小,但是不易维护,可移植性差。本设计程序实现了阳历日期、阴历日期、时间、星期、温度、节日提醒等功能。主程序流程图如图: 开始lcd、ds3231、ds18b20及相关量初始化调液晶显示程序设置键是否按下调用设置子程序刷新y图4.1主程序流程图本科生课程设计(论文)154.2 ds3231 时钟芯片的程序设计在本设计中,要实现万年历的功能,ds3231时钟芯片是少不得的,虽然只用单片机也可以实现,但是将会造成时间误差较大,不好调节。用ds3231时钟芯片不仅可以

39、大大的避免那样的问题,还可以减小程序的编写量。这个模块是本设计中是很重要的模块。ds3231时钟芯片工作的流程图如图所示:yn开始相关量初始化ds3231去保护复位端产生一个高电平写ds3231地址延时一段时间向该地址写数据地址增加数据写完否复位端产生一个高电平写ds3231地址延时一段时间将该地址数据读出地址增加数据写完否显示数据y图4.2 ds3231时钟芯片流程图4.3 ds18b20 程序的设计 ds18b20温度传感器在本设计中负责实时传输当前温度,在液晶上显示出来。本科生课程设计(论文)16ds18b20温度传感器操作简单,一个引脚就可以进行双向传输。ds18b20工作流程图如图:

40、开始ds18b20初始化跳过rom匹配发出温度转换命令延时发出温度转换命令延时数据读出温度转换常数显示数据图4.3 ds18b20流程图4.4 阳历与阴历的转换 阳历与阴历的转换程序中总共有199(1901-2099)年的阳历对应阴历数据。 阳历对应的阴历数据(每年占用单片机三字节)格式:第一字节bit7-4位表示闰月月份,为0,则无闰月;bit3-0位对应阴历第1-4月的大小。第二字节bit7-0位对应阴历第5-12月大小。第三字节bit7位表示阴历第13月大小(月分对应的位为1,表示农历月大(30天)为0表示小(29天) ) ;第三字节bit6-5位表示春节的阳历月份,bit4-0位表示春

41、节公历日期。例:阳历2011年对应阴历2011年数据为:0x0b,0x4a,0x43。0x0b和0x4a的二进制数表示为:00001011,01001010,这两个字节表示阴历2011年没有闰月,也就是没有第十三个月。一,三,四,六,九,十一月都是月大(30天) ,其它都是月小(29天) 。0x43的二进制数表示为:01000011,这里的bit6-5位为10(2位可表示4个月) ,表示阴历2011年的春节在阳历2011年的2月份。bit4-0位为00011(00000-11111,5位最大数为31) ,表示3日。整个字节就表示阴历2011年的春节在阳历2011年的2月3日。本科生课程设计(论

42、文)17第 5 章 课程设计总结数字万年历是一种在日常生活中随处可见的电子产品,随着电子技术的不断更新,数字万年历已经进入了大家小户。本次电子万年历的设计,经过多次的修改与分析,对电路的原理及功能更加熟悉,同时提高了设计能力与及对电路的分析能力。经过此设计,基本完成了设计任务的要求。硬件层面而言操作相对简单,界面比较友好。它集日历、时钟、温度计于一体,成为家庭里非常实用方便的小家电。这次专业课程设计很高兴能够分到数字万年历设计这个课题,经过查阅资料,了解了数字万年历的基本功能与原理后,便开始着手根据不同模块查找适合的芯片,基于at89c51单片机,利用 ds3231时钟芯片来运行系统,再加上一

43、个ds18b20温度 传感器芯片,便能实现万年历的基本功能了,结果用lcd显示。原理并不难,但是要实现万年历的基本功能就必须得弄懂这几个模块的基本原理,还要配套上严谨的程序,这样才能真正地实现出来。在经过一个多星期的学习,慢慢地了解了了各个模块的基本联系。在做课程设计的过程中,有很多的知识还是通过查阅文档或请教同学来获得的,让我了解到自己的很多不足,很多知识还是有待进一步增强。如果要学习某些知识,就必须通过实践来学习,这样才能把知识融会贯通,真正地掌握。本科生课程设计(论文)18参考文献1 郑郁正.单片机原理及应用m.四川大学出版社,2009 2 王怀平,王仁波,胡开明.proteus 仿真设

44、计基于单片机 at89c51 的电子万年历j.科技广场,2008:197-1983 武红玉. 基于 at89s51 单片机的电子万年历的设计j. 科技传播,2012.05 4 苏畅. 基于单片机控制的 lcd 显示万年历制作j. 长江大学学报,2013.085 王怀平,王仁波,胡开明. proteus 仿真设计基于单片机 at89c51 的电子万年历. 科技广场j,2008.106 淡海英.基于 at89c51 控制的电子万年历系统设计j. 陕西国防工业职业技术学院学报,2014.037 雷伏容,张小林,崔浩.51 单片机常用模块设计查询手册m.清华大学出版社,2010.01 8 肖炎根,舒望

45、.基于实时时钟芯片的电子万年历的设计j.电子技术,2007,z3:91-94 9 张政,路阳. 基于 at89c51 单片机控制的万年历探究j.电子技术与软件工程,2014.02 10 李宏,张家田.液晶显示器件应用技术m.机械工业出版社,2004.2 11 刘德全.可调家用万年历的单片机原理j.宁夏师范学院报,2008.03:95-9812 姜志海,刘连鑫.单片微型计算机原理及应用m.机械工业出版社,2007.1. 13 冯育才,雷思孝.单片机系统设计及工程应用m.西安电子科技大学出版社,2005.5 14 李珍,付植桐.单片机原理与应用技术m.清华大学大学出版社,2011.2 15 何乃味

46、. 基于 led 点阵显示的电子万年历的设计与实现j. 安徽电子信息职业技术学院学报,2014.2本科生课程设计(论文)19附录 #include#include #define uchar unsigned char#define uint unsigned intuchar sec,min,hour,day,month,year,cen,week; /秒,分,小时,公历日期,月份,年份,世纪,星期unsigned char lunarmonth,lunarday,lunaryear; /阴历日期,月份,年份bit c_moon; /大小月标志位 bit cenbit=0; /世纪标志,为

47、1,则表示 20 世纪,为 0,则表示 21 世纪bit w=0; /调时状态标志位 char next_1=0,next_2=0;uchar h,m; /比较变量/* lcd19264 指令*/#define lcd_data p0#define busy 0 x80 /用于检测 lcd 状态字中的 busy 标识sbit lcd_rs=p24;sbit lcd_rw=p25;sbit lcd_e=p26;sbit psb=p21;sbit rest=p23;/* ds18b20 指令*/#define ds18b20_read_rom 0 x33 / 读 rom 指令#define ds1

48、8b20_match_rom 0 x55 / 匹配 rom 指令#define ds18b20_skip_rom 0 xcc / 跳过 rom 指令#define ds18b20_search_rom 0 xf0 / 搜索 rom 指令#define ds18b20_alarm_search 0 xec / 报警搜索指令#define ds18b20_write_scratchpad 0 x4e / 写暂存寄存器指令#define ds18b20_read_scratchpad 0 xbe / 读暂存寄存器指令#define ds18b20_copy_scratchpad 0 x48 / 复制

49、暂存寄存器指令本科生课程设计(论文)20#define ds18b20_convert_t 0 x44 / 启动温度转换指令#define ds18b20_recall_e2 0 xb8 / 重新调出 e2prom 的数据#define ds18b20_read_power_supply 0 xb4 / 读电源sbit ds18b20_data = p20; /温度探头(dq)数据端口对应的单片机引脚bit minus_flag;/* ds3231 指令*/寄存器宏定义#define write_second 0 x80#define write_minute 0 x82#define wri

50、te_hour 0 x84#define write_day 0 x86#define write_month 0 x88#define write_week 0 x8a#define write_year 0 x8c#define read_second 0 x81#define read_minute 0 x83#define read_hour 0 x85#define read_day 0 x87#define read_month 0 x89#define read_week 0 x8b#define read_year 0 x8d#define write_protect 0 x8

51、esbit ds3231_clk=p10; /ds3231 的时钟信号线sbit ds3231_io=p11; /ds3231 的数据端口线sbit ds3231_rst=p12; /ds3231 的片选信号线sbit acc0 = acc0; /累加器位定义sbit acc7 = acc7;/*定义开关按键*/sbit setkey=p31; /按键功能:设置sbit surekey=p30; /按键功能:确认sbit left=p35;/按键功能:左移sbit right=p34;/按键功能:确右移认本科生课程设计(论文)21sbit pluskey=p37; /按键功能:加sbit re

52、ducekey=p36; /按键功能:减/*函数声明*/*基本函数*/void writedatalcd(unsigned char wdlcd); /写数据void writecommandlcd(unsigned char wclcd,buysc); /写指令/unsigned char readdatalcd(void); /读数据unsigned char readstatuslcd(void); /检测忙void lcdinit(void); /初始化void lcdclear(void); /清屏void lcdflash(void); /屏幕闪动/void displayonechar(unsigned char x, unsigned char y, unsigned char

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论