重庆三峡学院课程设计报告书题目:基于可调的电子万年历和温度设计学院(系):应用技术学院年级专业:10级电子信息工程(应电应本)学号:201015254105学生姓名:钱晓翠指导教师:谢辉教师职称:副教授完成日期2012年11月30日目录摘要………………………………………………………………………2第一章引言………………………………………………………………31.1设计任务………………………………………………………………………31.2设计目的………………………………………………………………………31.3设计思路………………………………………………………………………31.3.1方案论证…………………………………………………………………31.3.2芯片的选择…………………………………………………………………41.3.3显示模块选择方案和论证…………………………………………………41.3.4时钟信号的选择方案和论证…………………………………………………41.3.5最终方案………………………………………………………………………5第二章硬件系统的设计2.1原理图设计…………………………………………………………………………52.2温度感应电路………………………………………………………………………62.3复位电路部分………………………………………………………………………62.4液晶显示电路………………………………………………………………………72.5时钟信号电路………………………………………………………………………72.6AT89C52原理及说明………………………………………………………………82.6.1引脚功能………………………………………………………………………8第三章软件系统的设计.3.1系统程序流程图…………………………………………………………………93.2系统具体程序代码………………………………………………………………10第四章系统调试……………………………………………………274.1软件调试………………………………………………………………274.2硬件调试………………………………………………………………27第五章设计心得……………………………………………………27元件清单表…………………………………………………………………27致谢……………………………………………………………………28参考文献………………………………………………………………28基于单片机的电子钟的设计重庆三峡学院应用技术学院摘要:本文介绍了一种基于单片机的可调的电子万年历和温度显示。该设计主要由五个模块组成:微处理器(单片机),温度传感器,控制调节按键,实时时钟模块及显示模块。温传感器器主要由DS18B20来完成,它负责把采集到的温度传给单片机。实时时钟模块主要由DS1302构成,它负责产生始终数据送给单片机,微处理器芯片AT89C52来完成DS18B20,DS1302,按键传来的数据进行处理,并送与显示模块(LCD1602)进行显示。该系统的电路简单,所用的元件较少,成本低,且测量精度和可靠性较高。可以测量-55°到+125°的温度和显示年,月,日,星期,时,分,秒,并且可通过按键调节时间。关键词单片机;万年历;温度;AT89C52;LCD1602,DS1302,DS18B20第一章引言1.1设计任务(1)根据具体题目要求,设计以单片机为控制核心的测量系统或控制系统,完成对指定目标或对象的测量及控制。(2)设计单片机与测量及控制对象的接口并进行硬件调试。(3)针对要求测量或控制的对象完成程序的编制。(4)硬件软件联调,完成题目所要求的功能。(5)设计能支持时、分、秒的时钟,时钟要具有时间调整功能。1.2设计目的(1)通过课程设计,使我们能够深入理解单片机系统的工作原理,接口电路的设计及调试方法,培养综合运用所学理论知识分析和解决实际问题的能力。(2)使用AT89C51芯片的串口功能,利用实时时钟芯片DS1302与液晶显示器LCD1602和DS18D20实现年、月、星期、日、时、分、秒、温度的显示。(3)用keil软件进行编程与调试,利用Proteus7Professional软件进行绘制硬件电路图且进行仿真。1.3设计思路1.3.1方案论证单片机芯片的选择方案和论证方案一:采用89C51芯片作为硬件核心,采用FlashROM,内部具有4KBROM存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。方案二:采用AT89S52,片内ROM全都采用FlashROM;能以3V的超底压工作;同时也与MCS-51系列单片机完全该芯片内部存储器为8KBROM存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏,所以选择采用AT89S52作为主控制系统。1.2显示模块选择方案和论证方案一:采用LED数码管动态扫描,LED数码管价格适中,对于显示数字合适,采用动态扫描法与单片机连接时,虽然占用的单片机口线少,但连线还需要花费一点时间,所以也不用此种作为显示。方案二:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。方案三:采用LCD液晶显示来实现万年历的显示,我采用的LCD1602芯片,它可以显示16*2个字符,完全可以用于电子万年历的时间和日期的显示内容,但是LCD1602部能显示汉字,对于日期的显示可以采用数字显示的方法。1.3时钟芯片的选择方案和论证方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大,所以不采用此方案。方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA。1.4温度显示的选择方案和论证方案一:直接采用的是DS18B20传感器来测试温度,这样既简单又方便,对于在短时间就可以掌握的温度传感器。1.5最终确定芯片的选择方案和论证综上各方案所述,对此次作品的方案选定:采用AT89S52作为主控制系统;DS1302提供时钟;LCD1602液晶显示屏作为显示,DS18B20传感器作为温度测试。1.3.2芯片的选择采用AT89C51芯片,其为高性能CMOS8位单片机,该芯片内含有4kbytes的可反复擦写的只读程序存储器(PEROM)、128bytes的随机存取数据存储器(RAM)、32位可编程I/O口线、2个16位定时/计数器、6个中断源、可编程串行UART通道及低功耗空闲和掉电模式。因此,我们选用AT89C51。1.3.3显示模块选择方案和论证采用LCD液晶显示,显示较为清楚直观,时间和日期在液晶显示器LCD1602中分两行来显示。1.3.4时钟信号的选择方案和论证直接采实时时钟DS1302芯片来给予电子万年历的初始信号,系统直接在DS1302中读取时间和日期,并且可以修改DS1302中的初始时间和日期。时钟和日期的修改通过三个按键设置,分别为模式按键、曾量按键、减量按键。1.3.5最终方案综上方案所述,对于可调的电子万年历与温度显示方案选定为:AT89C51作为主控器,DS1302作为时钟信号,LCD1602作为显示器,DS18B20作为测温器。图1第二章硬件系统的设计2.1原理图设计此次单片机数字时钟的设计采用AT89C51为主控制芯片,并由实时时钟DS1302芯片提供时钟信号,LCD液晶显示器1602提供液晶显示,温度传感器DS18B20作为温度测试。图22.2温度感应电路图3由图3所示温度感应电路是由一个DS18B20传感器作为主要器件,采用单总线传输数据与电阻R2来线与。2.3复位电路部分单片机在启动运行时都需要复位,使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。MCS-51单片机有一个复位引脚RST,采用施密特触发输入。当震荡器起振后,只要该引脚上出现2个机器周期以上的高电平即可确保时器件复位[1]。复位完成后,如果RST端继续保持高电平,MCS-51就一直处于复位状态,只要RST恢复低电平后,单片机才能进入其他工作状态。单片机的复位方式有上电自动复位和手动复位两种,图6是51系列单片机统常用的上电复位电路。图4复位电路2.4液晶显示电路图5通过图五可以看出液晶显示芯片与单片机之间的数据传输是由液晶显示的D0~D7口和单片机的P2口来进行数据之间的传输。由于我们没有用到液晶显示器的背光所以就没有对VSS与VEE提供工作电压,由于液晶显示芯片的数据不用被单片机所读取,所以这里我们就直接给予液晶显示器读端R给予低电平这样单片机就只能对晶显示器写入数据.液晶显示器的RS端是控制是传送数据还是送指令直接接在单片机的P3.0口。2.5时钟信号电路图6根据图6可以看出我们采用的是DS1302实时时钟芯片,这个这个芯片完全可以提供我们所设计的电子万年历的日期与时间,在使用时需提供一个32.768MHZ的晶振来给予芯片的时钟信号,实时时钟芯片它采用的是I/O总线传输。2.6AT89C52原理及说明AT89C52美国Intel公司生产的低电压,高性能CHMOS8位单片机,片内含4kbytes的可反复擦写的只读程序存储器(PEROM)和蔼可亲128bytes的随机存取数据存储器(RAM),器件采用Intel公司的高密度、非易失性存储技术生产,片内置通用4位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机适合于许多较为复杂控制应用场合。AT89C52脚图2.6.1引脚功能Vcc(40):电源电压GND(20):接地P0口(32-39):P0口是一个8位双向I/O接口,也即地址/数据总线复用口。作为输出口用时,每位吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器时,这组口线分时转换地址(低8位)和数据总线复用。P1口(1-8):P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路,对端口写“1”通过内部的上拉电阻把端口拉到高电平时,此时可作输入口。作为输入品使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。RST(9):复位信号输入端。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG(30):地址锁存有效信号输出端。当访问片外程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节,一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的,要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。XTAL1(19):振荡器反相放大器的及内部时钟发生器的输入端。XTAL1(18):振荡器反相放大器的输出端。通过XTAL1、XTAL2外接晶振后,即可构成自激振荡器,驱动内部时钟发生器向主机提供时钟信号。第三章软件系统的设计DS1302、液晶显示器LCD1602、温度传感器DS18B20、和定时器T0的初始化,还有时钟的时间设定与读取、液晶的显示与按键处理等。3.1系统程序流程图图8为了实现时间和日期的显示功能,需要在DS1302中读取时间和日期,并送LCD1602中显示,这样需要设计DS1302和LCD1602进行初始化程序、DS1302的时间日期的读取和修改程序、LCD1602的初始化和显示程序。另外时间和日期