基于51单片机和lcd1602的万年历设计.docx
- 文档编号:23444301
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:73
- 大小:2.75MB
基于51单片机和lcd1602的万年历设计.docx
《基于51单片机和lcd1602的万年历设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机和lcd1602的万年历设计.docx(73页珍藏版)》请在冰豆网上搜索。
基于51单片机和lcd1602的万年历设计
基于51单片机和lcd1602的万年历设计
基于单片机的万年历设计
摘要
古人依靠日冕、漏刻记录时间,而随着科技的发展,电子万年历已经成为日渐流行的日常计时工具。
本文研究的万年历系统拟用STC89C52单片机控制,以DS1302时钟芯片计时、DS18B20采集温度、1602液晶屏显示。
系统主要由温度传感器电路,单片机控制电路,显示电路以及校正电路四个模块组成。
本文阐述了系统的硬件工作原理,所应用的各个接口模块的功能以及其工作过程,论证了设计方案理论的可行性。
系统程序采用C语言编写,经Keil软件进行调试后在Proteus软件中进行仿真,可以显示年、月、日、星期、时、分、秒和温度并具有校准功能和与即时时间同步的功能。
实验结果表明此万年历实现后具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
关键词:
万年历单片机仿真
TheCalendarofDesignbasedonSingleChip
Abstract
Ancientrelyoncorona,Loukerecordingtime.Theelectroniccalendarhasbecomethepopulartoolforthedailytiming.asthedevelopmentoftechnology.
Inthecalendarsystem,theSTC89C52isusedtocontrol,withtheDS1302clockchiptiming,DS18B20collectingtemperature,1602LCDDisplaying.Thesystemiscomposedoffourmodules:
thetemperaturesensorcircuit,theMCUcontrolcircuit,thedisplaycircuitandthecorrectioncircuit.Thispaperdescribesthehardwareworks,thefunctionsofeachinterfacemoduleanditsworkingprocess,demonstratesdesigntheoryisFeasibility..Clanguageisusedtoprogram,afterdebuggingintheKeilsoftware,thensimulatingintheProteus.Theelectroniccalendarcandisplayyear,month,day,week,hours,minutes,seconds,temperature,andhascalibrationfeaturesandfunctionalitywithrealtimesynchronization.
Theresultsshowthatthiscalendariseasytoread,intuitivedisplay,versatile,simplecircuits,andmanyotheradvantages,Thedesignmeetsthedevelopmenttrendofelectronicinstrumentsandmeters,andhasbroadmarketprospects.
Keywords:
Calendar;MCU;simulation
5.1.4液晶显示程序流程图…………………………………………………………………25
附录三:
系统程序……………………………………………………………………………………...44
第一章绪论
1.1课题研究的意义
万年历是我国古代传说中最古老的一部太阳历。
为纪念历法编撰者万年功绩,便将这部历法命名为“万年历”。
而现在所使用的万年历,实际上就是记录一定时间范围内(比如100年或更多)的具体阳历或阴历的日期的年历,方便有需要的人查询使用,与原始历法并无直接联系。
而随着微电子技术的高速发展,人类用于计时的工具也在不断发展更新,单片机技术的出现使得万年历有了新的发展方向。
单片机以其体积小、功能全、性价比高等诸多优点,在工业控制、家用电器、通信设备、信息处理、尖端武器等各种测控领域的应用中独占鳌头,单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。
目前世界上单片机年产量已达十多亿片,通常是当年微处理器产量的4-5倍以上。
用最少的芯片就能实现最强大的功能,这是将来电子产品的主流方向,它将无可置疑地一步步取代其它同类产品,其数量之大和应用面之广,是其它任何类型的计算机所无法比拟的。
以基于单片机的万年历作为设计的课题,因为它有很好的开放性和可发挥性,对作者的要求比较高,不仅考察了对单片机的掌握能力而且强调了对单片机扩展的应用。
另外液晶显示的万年历已经越来越流行,特别适合在家庭居室、办公室、大厅、会议室、车站和广场等地方使用,它具有显示清晰直观、走时准确、可以进行夜视等功能,并且还可以扩展出其它多种功能。
所以,电子万年历作为设计课题很有价值。
1.2本课题主要的研究工作
本论文主要研究基于单片机的万年历设计。
当程序执行后,LCD显示即时时间、年月日、星期、温度。
设置3个操作键:
K1:
设置键;K2:
上调键;K3:
下调键。
本设计的主要内容:
1、了解单片机技术的发展现状,熟悉万年历各模块的工作原理;2、选择适当的芯片和元器件,确定系统电路,绘制电路原理图,尤其是各接口电路;3、熟悉单片机使用方法和C语言的编程规则,编写出相应模块的应用程序;4、分别在各自的模块中调试出对应的功能,在Proteus软件上进行仿真。
1.2.1研究内容
设计目标:
使基于STC89C52单片机的万年历实现以下四个功能:
1、具有年、月、日、星期、时、分、秒等功能;
2、具备年、月、日、星期、时、分、秒校准功能;
3、具有与即时时间同步的功能;
4、具有显示温度的功能;
1.2.2论文章节安排:
第一章:
绪论是介绍了基于STC89C52单片机的万年历研究意义,重点阐述了本课题的研究内容和研究工作。
第二章:
单片机的概述主要阐述了单片机系统的定义以及单片机系统的发展现状和发展趋势。
因为只有对单片机有了更深入的了解,才能设计出更好的单片机控制系统。
本章的结尾是对单片机C语言编程的介绍。
第三章:
主要介绍了设计要求和课题器件选择的论证方案。
第四章:
硬件基础中主要描述了万年历的各个模块的硬件设计方案,并结合各个元器件和相应的硬件原理图进行分析,最后展示为了实现研究目标所需要的全部硬件基础。
第五章:
软件基础主要罗列了实现万年历各个功能的C语言程序的流程图,并分别对其进行了解释和分析,最后把各个C语言子程序在巧妙结合在一起,共同控制整个系统,也就形成了实现研究目标所需要的所有软件基础。
第六章:
主要对Keil软件Proteus软件进行简单介绍,并给出了关于Proteus软件仿真调试万年历的过程。
最后简要的介绍了硬件调试中的问题和解决办法。
第七章:
主要是对本次实验研究的总结,提出本次实验的不足之处以及相应的改进方法,以便后人继续深入研究。
1.3本章小结
本章是论文的绪论部分,着重介绍了万年历的研究意义。
然后介绍了本文所要解决的实际问题及意义,以及要电子万年历系统要实现的功能和方法。
最后简单地描述了本论文的整体框架和论文章节的安排。
第二章单片机的概述
目前单片机渗透到了我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及远程控制玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域中的机器人、智能仪表、医疗器械了。
单片机具有结构简单、控制功能强、可靠性高、体积小、价格低等优点,因而在许多行业都得到了广泛应用,并且在诸多领域中都发挥了无可比拟的巨大作用。
2.1单片机的定义和特点
2.1.1单片机的定义
单片机即单片微型计算机,是把中央处理器、存储器、定时/计数器、输入输出接口都集成在一块集成电路芯片上的微型计算机。
与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。
单片机也被称为微控制器(Microcontroller),是因为它最早被用于工业控制领域。
单片机的芯片内仅由CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
2.1.2单片机的特点
单片机以其卓越的性能,得到了广泛的应用,已深入到各个领域。
单片机应用在检测、控制领域中,具有如下特点:
1、体积小、控制功能强、成本低。
因而可以方便地组装各种智能式控制设备和仪器,做到机、电、仪一体化。
2、易扩展。
很容易构成各种规模的应用系统,为应用系统的设计和生产带来极大方便。
3、可靠性好、使用温度范围宽。
在各种恶劣的环境下都能可靠的工作,这是其他机种无法比拟的。
4、种类多,型号全。
很多单片机厂家逐年扩大适应各种需要,有针对性地推出一系列型号产品,使系统开发工程师有很大的选择余地。
大部分产品有较好的兼容性,保证了已开发产品能顺利移植,较容易地使产品进行升级换代。
5、低功耗。
现在新型单片机的功耗越来越小,供电电压从5V降低到了3.2V,甚至1V,工作电流从mA降到µA级,工作频率从十几兆可编程到几十千赫兹。
特别是很多单片机都设置了多种工作方式,这些工作方式包括等待、暂停、睡眠、空闲、节电等。
6、可以采用C语言开发环境,具有友好的人机互交环境。
大多数单片机都提供基于C语言开发平台,并提供大量的函数供使用,这使产品的开发周期、代码可读性、可移植性都大为提高。
2.2单片机的发展现状和发展趋势
2.2.1单片机的发展现状
单片机技术在不断的发展,它反映在内部结构、功率消耗、外部电压等级以及制造工艺上。
在这几方面,较为典型地说明了数字单片机的技术水平。
在目前,用户对单片机的需要越来越多,但是,要求也越来越高。
下面分别就这三个方面说明单片机的技术进步状况。
1、内部结构的进步
单片机在内部已集成了越来越多的部件,这些部件包括一般常用的电路,例如:
定时器,比较器,A/D转换器,D/A转换器,串行通信接口,Watchdog电路,LCD控制器等。
有的单片机为了构成控制网络或形成局部网,内部含有局部网络控制模块CAN。
例如,Infineon公司的C505C,C515C,C167CR,C167CS-32FM,81C90。
因此,这类单片机十分容易构成网络。
特别是在控制,系统较为复杂时,构成一个控制网络十分有用。
为了能在变频控制中方便使用单片机,形成最具经济效益的嵌入式控制系统。
有的单片机内部设置了专门用于变频控制的脉宽调制控制电路,这些单片机有Fujitsu公司的MB89850系列、MB89860系列;Motorola公司的MC68HC08MR16、MR24等。
在这些单片机中,脉宽调制电路有6个通道输出,可产生三相脉宽调制交流电压,并内部含死区控制等功能。
特别引人注目的是:
现在有的单片机已采用所谓的三核(TrCore)结构。
这是一种建立在系统级芯片(Systemonachip)概念上的结构。
这种单片机由三个核组成:
一个是微控制器和DSP核,一个是数据和程序存储器核,最后一个是外围专用集成电路(ASIC)。
这种单片机的最大特点在于把DSP和微控制器同时做在一个片上。
这是目前单片机最大的进步之一。
这些单片机都是高档单片机,MCU都是32位的,而DSP采用16或32位结构,工作频率一般在60MHz以上。
2、功耗、封装及电源电压的进步
现在新的单片机的功耗越来越小,特别是很多单片机都设置了多种工作方式,这些工作方式包括等待,暂停,睡眠,空闲,节电等工作方式。
而单片机的封装水平也大大提高,随着贴片工艺的出现,单片机也大量采用了各种合符贴片工艺的封装方式出现,以大量减少体积。
在这种形势中,Microchip公司推出的8引脚的单片机特别引人注目。
这是PIC12CXXX系列。
它含有0.5~2K程序存储器,25~128字节数据存储器,6个I/O端口以及一个定时器,有的还含4道A/D,完全可以满足一些低档系统的应用。
扩大电源电压范围以及在较低电压下仍然能工作是今天单片机发展的目标之一。
目前,一般单片机都可以在3.3~5.5V的条件下工作。
而一些厂家,则可以生产出在2.2~6V的条件下工作的单片机。
3、工艺上的进步
现在的单片机基本上采用CMOS技术,但已经大多数采用了0.6um以上的光刻工艺,有个别的公司,如Motorola公司则已采用0.35um甚至是0.25um技术。
这些技术的进步大大地提高了单片机的内部密度和可靠性。
2.2.2单片机的发展趋势
单片机在目前的发展形势下,表现出几大趋势:
1、可靠性及应用越来越水平高,和互联网连接已是一种明显的走向;2、所集成的部件越来越多,NS(美国国家半导体)公司的单片机已把语音、图像部件也集成到单片机中,也就是说,单片机的意义只是在于单片集成电路,而不在于其功能了。
如果从功能上讲它可以讲是万用机。
原因是其内部已集成上各种应用电路;3、功耗越来越低和模拟电路结合越来越多。
随着半导体工艺技术的发展及系统设计水平的提高,单片机还会不断产生新的变化和进步,最终人们可能发现:
单片机与微机系统之间的距离越来越小,甚至难以辨认。
2.3编程语言的选择
在1972年,美国贝尔实验室的D.M.Ritchie在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。
在众多的程序设计语言中,C语言简洁紧凑,语言表达能力强,其结构化的流程控制有助于编制结构良好的程序。
C语言程序经编译后生成的目标程序代码效率高,几乎可以与汇编语言媲美。
C语言既具备高级语言使用方便、接近自然语言和数学语言的特性,同时也具备对计算机硬件系统的良好操纵和控制能力。
C语言可移植性好,一个C语言源程序可以不做改动,或者稍加改动,就可以从一种型号的计算机移转到另外一种型号的计算机上编译运行。
因此,C语言被广泛应用于各类系统软件和应用软件的开发。
所以本系统以C语言进行软件设计,增加了程序的可读性和可移植性,便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁了。
2.4本章小结
本章主要介绍了单片机的定义和特点,重点描述了单片机发展现状和未来的发展趋势,最后简单地介绍了选择的编程语言。
第三章设计要求和方案论证
3.1设计要求
1、具备在液晶上显示年、月、日、星期、时、分、秒的功能;
2、具备年、月、日、星期、时、分、秒校准功能;
3、具有与即时时间同步的功能;
4、具有显示温度的功能;
3.2单片机芯片的选择方案和论证
方案一:
采用AT89S51芯片作为硬件核心,内部具有4KBROM存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术,所以在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。
方案二:
采用STC89C52芯片,STC89C52是一种低功耗、高性能的8位CMOS微控制器,具有8K的可编程Flash存储器。
同样具有AT89S51的功能,且具有在线编程可擦除技术,当对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏,因此选择采用STC89C52作为主控制系统核心。
3.3显示模块选择方案和论证
方案一:
采用LED数码管动态扫描,LED数码管价格适中,对于显示数字合适,采用动态扫描法与单片机连接时,虽然占用的单片机口线少,但连线还需要花费一点时间,所以也不用此种作为显示。
方案二:
采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,若采用在显示数字显得太浪费,且价格也相对较高,所以在此也不用此种作为显示。
方案三:
采用1602液晶显示屏,该液晶显示屏的显示功能强大,内置192种字符,可显示大量符号、数字,清晰可见,而且功率消耗小寿命长抗干扰能力强。
所以在此设计中采用1602液晶显示屏。
3.4时钟芯片的选择方案和论证
方案一:
直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。
采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大,所以不采用此方案。
方案二:
采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA。
所以本设计采用DS1302时钟芯片。
3.5温度传感器的选择方案与论证
方案一:
使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热敏电阻阻值随温度变化而变化的特性,采集这两个电阻变化的分压值,并进行A/D转换。
此设计方案需用A/D转换电路,增加硬件成本而且热敏电阻的感温特性曲线并不是严格线性的,会产生较大的测量误差。
方案二:
采用数字式温度传感器DS18B20,此类传感器为数字式传感器而且仅需要一条数据线进行数据传输,易于与单片机连接,可以去除A/D模块,降低硬件成本,简化系统电路。
另外,数字式温度传感器还具有测量精度高、测量范围广等优点。
因此本设计选用DS18B20温度传感器。
3.6电路设计最终方案决定
综上各方案所述,对此次作品的方案选定:
采用STC89C52作为主控制芯片,DS1302时钟芯片计时,DS18B20采集温度,LCD1602作为显示模块。
3.7本章小结
本章主要介绍了系统要实现的功能和万年历系统硬件平台的选择,比较了主控模块,时钟模块,显示模块,温度采集模块中不同器件的优劣,最后确定了电路设计的整体方案。
这也是完成设计的先决条件。
第四章系统的硬件设计与实现
4.1电路设计框图
根据上章确定的方案给出了系统整体的设计框图:
图4.1系统结构框图
为使时钟走时与标准时间一致,校时电路是必不可少的,键盘模块用来校正液晶上显示的时间;温度传感器则用来检测当前的环境温度;STC89C52单片机通过输出各种电脉冲信号来驱动控制各部分正常工作;而系统的时间、温度等数据则最终通过液晶模块显示出来。
4.2系统硬件概述
本电路是以STC89C52单片机为控制核心,该芯片具有在线编程功能,功耗低,能在3.3V的超低压下工作;时钟芯片采用DS1302,它是一款高性能、低功耗、自带RAM的实时时钟芯片,具有使用寿命长,精度高和功耗低等特点,同时具有掉电自动保存功能,可以对年、月、日、星期、时、分、秒进行计时,具有闰年补偿功能,其工作电压为2.5V~5.5V;温度检测模块由DS18B20构成,它采用独特的单线接口仅需一个端口引脚进行通讯,具有测量精度高、测量范围广等优点,其测温范围在-55~+125℃,工作电压为3v~5.5v;显示部份使用1602液晶显示屏来实现,该显示屏具有低功耗、寿命长、可靠性高的特点,其工作电压为5v。
4.3主要单元电路的设计
4.3.1STC89C52单片机简介
STC89C52是一种低功耗、高性能的8位CMOS微控制器,具有8K的可编程Flash存储器。
使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
STC89C52具有以下标准功能:
8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
引脚排列如图2.1所示。
图2.1STC89C52引脚图
从引脚功能来看,可将引脚分为三部分:
1、电源及时钟引脚
VCC:
接+5V电源;VSS:
接地;XTAL1和XTAL2:
时钟引脚,外接晶体引线端。
当使用芯片内部时钟时,此两引脚端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
2、控制引脚
RST/VPT:
RST是复位信号输入端,VPT是备用电源输入端。
当RST输入端保持2个机器周期以上高电平时,单片机完成复位初始化操作。
当主电源VCC发生故障而突然下降到一定低电压或断电时,第2功能VPT将为片内RAM提供电源以保护片内RAM中的信息不丢失。
ALE/PROG:
地址锁存允许信号输出端。
在存取外存储器时,用于锁存低8位地址信号。
当单片机正常工作后,ALE端就会周期性地以时钟振荡频率的1/6固定频率向外输出正脉冲信号。
此引脚的第2功能PROG是对片内带有4K字节EPROM的8751固化程序时,作为编程脉冲输入端。
PSEN:
程序存储允许输出端。
是片外程序存储器的读选通信号,低电平有效。
CPU从外部程序存储器取指令时,PSEN信号会自动产生负脉冲,作为外部程序存储器的选通信号。
EA/VPP:
程序存储器地址允许输入端。
当EA为高电平时,CPU执行片内程序存储器指令,但当PC中的值超过0FFFFH时,将自动转向执行片外程序存储器指令;当EA为低电平时,CPU只执行片外程序存储器指令。
对8031单片机,EA必须接低电平。
在8751中,当对片内EPROM编程时,该端接21V的编程电压。
3、I/O口引脚
P0.0~P0.7:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
P1.0~P1.7:
P1口是一个具有内部上拉电阻的8位双向I/O口。
作为输出口,每位能驱动4个TTL逻辑电平。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)。
在flash编程和校验时,P1口接收低8位地址字节。
P2.0~P2.7:
P2口是一个具有内部上拉电阻的8位双向I/O口。
作为输出口,每位能驱动4个TTL逻辑电平。
在访问外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址。
在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3.0~P3.7:
P3口是一个具有内部上拉电阻的8位双向I/O口。
作为输出口,每位能驱动4个TTL逻辑电平。
P3口亦作为STC89C52特殊功能(第二功能)使用。
在flash编程和校验时,P3口也接
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 lcd1602 万年历 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)