资源描述
编号: 毕业论文(设计)题 目 多功能数码万年历的设计 指导教师 学生姓名 学 号 专 业 机械设计制造及其自动化 教学单位 德州学院机电工程系 二O 一二年五月三日德州学院毕业论文(设计)开题报告书院(系):机电工程系 专业: 机械设计制造及其自动化 2012年11月19日院(系)机电工程系专 业机械设计制造及其自动化姓 名学 号论文(设计)题目多功能数码万年历的设计一、选题目的和意义万年历顺应了人们对时间方面的要求。它的出现给人们的生活带来诸多方便,在时间极显宝贵的现代生活中,其作用更是不言而喻。它在学校、车站、码头、剧院、医院、办公室等公共场所的应用非常广泛。它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。而且数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。通过此次设计能够更加牢固的掌握单片机的应用技术,增强动手能力、硬件设计能力以及软件设计能力。二、本选题在国内外的研究现状和发展趋势当前,数字万年历技术已经进入了优化人-家庭-环境的整体关系的阶段,它向着超微型、超高效以及集成电路的微型化方向发展。目前,市场上出售的数字万年历品种很多,其中大部分是基于单片机技术设计的电子系统。它们一般由输入脉冲电路、单片机、晶振和复位电路、外路存储器电路和LED显示电路组成。当今,数字万年历主要还是用于计时、自动报时,定时,日期查询以及自动控制等方面。由于单片机技术以及数字集成电路技术的发展,如今的数字万年历系统具有体积小、耗电省、计时准确、性能稳定、维护方便、走时准确、携带方便等优点,此外,现在市场上已有现成的数字万年历集成电路芯片出售,而且价格便宜、使用也很方便。三、课题设计方案 主要说明:研究(设计)的基本内容、观点及拟采取的研究途径和方法。 研究设计的基本内容和观点:本设计就是应用单片机强大的控制功能制作而成的电子万年历,该电子万年历包括功能:时钟功能,温湿度检测功能,红外遥控功能,语音播报功能。本设计采用的是AT89S52单片机,该单片机采用的STC89C52芯片,因此具有很好的兼容性,内部带有8KB的ROM,能够存储大量的程序,最突出特点是具有ISP在系统烧写功能,使得烧写程序更加方便。本系统通过与DS1302和DS18B20通信获取实时时间和实时环境温度,并将得到的数据通过LCD1284液晶显示出来,同时通过相应的按键调整相应的值。研究途径和方法:通过查阅图书和网络搜集相关资料,并根据大学中学习到的相关知识,系统组织材料,一方面是结合实际可能安排并设计系统的硬件设备,主要是系统的外部链接和采用的主要元件设备的选用和搭配,并着重介绍个采用器件的原始性能和选用该器件的目的,并将这些器件的性能综合考虑加以联系,从设计要求入手加以配合,最终达到设计的外部要求;另一方面是结合采用的单片机或集成电路的性能和特点设计出理想的工作模式,并根据模式写出主要参考程序并投入实践。经过硬件设计和软件设计后,将这两方面统一于一个外部整体,即将其在系统中加以调试,最终编出相应的程序,实现此万年历的设计要求。四、计划进度安排 主要说明:起止时间及分阶段的进度要求。毕业论文(设计)的进度计划: 2011.11.1-2011.11.3 收集资料和文献,在教师指导下选题和构思论文。2011.11.3-2011.12.20 进一步收集、分析资料,清理思路,完成开题报告。2011.12.21-2012.3.30 整理资料,确定论文内容,完成论文初稿。2012.4.1-2012.4.15 完成中期检查表,根据导师提出的定稿意见,做最后完善。2012.4.16-2012.4.30 指导教师审阅学生设计,提出修改意见。毕业生根据指导教师的修改意见进行设计修改,并最终定稿。2012.5.4-2012.5.10 毕业生根据评阅教师意见,进一步修改设计(论文),准备答辩。2012.5.12-2012.5.28 论文答辩。五、主要参考文献1孙育才.MCS-51系列单片微型计算机及其应用M.南京:东南大学出版社,2004.6.2黄明强. DS1302在单片机系统中的应用J. 保定师范专科学校学报 ,2004,(2).3广州周立功单片机发展有限公司.DS1302 涓流充电时钟保持芯片的原理与应用.4广州奥松电子有限公司.数字温湿度传感器DHT11.5赵广林编著.新型语音芯片应用手册.电子工业出版社,2008.8.1.6中青世纪.ISD1700_51单片机C语言示例程序.7文艳等. Protel 99 SE电子电路设计. 北京:机械工业出版社,2006.8.8谭浩强. C程序设计M. (第三版). 北京:清华大学出版社.9柏军,胡屏.一种用于单片机的红外串行通信接口J.单片机及嵌入式系统应用,2003.指导教师意见及建议: 签名: 年 月 日教学单位领导小组审批意见: 组长签名: 年 月 日德州学院毕业论文(设计)中期检查表院(系):机电工程系 专业: 机械设计制造及其自动化 2012年4月5日 毕业论文(设计)题目:多功能数码万年历的设计学生姓名学 号指导教师职 称计划完成时间:2012年5月3日 毕业论文(设计)的进度计划:2011.11.1-2011.11.3 收集资料和文献,在教师指导下选题和构思论文。2011.11.3-2011.12.20 进一步收集、分析资料,清理思路,完成开题报告。2011.12.21-2012.3.30 整理资料,确定论文内容,完成论文初稿。2012.4.1-2012.4.15 完成中期检查表,根据导师提出的定稿意见,做最后完善。2012.4.16-2012.4.30 指导教师审阅学生设计,提出修改意见。毕业生根据指导教师的修改意见进行设计修改,并最终定稿。2012.5.4-2012.5.10 毕业生根据评阅教师意见,进一步修改设计(论文),准备答辩。2012.5.12-2012.5.28 论文答辩。完成情况:到目前为止下文内容的详细资料已基本整理完成,且在老师的指导帮助下已经撰写完成论文初稿,现在正进一步的收集更多相关的资料,并根据指导教师的修改意见进行论文修改。指导教师评议(指出优点和不足,如有其它建议,可另附页) 签 名: 年 月 日备 注:目 录摘要及关键词11绪论11.1课题的背景和意义11.2电子万年历的现状和发展12电子万年历的方案设计22.1万年历的简单模拟方案22.2硬件电路模块33电子万年历的软件设计113.1软件的调试113.2电子万年历软件流程及设计124总结194.1 产品性能总结194.2心得体会19参考文献21致 谢22附录23德州学院 机电工程系2012届 机械设计制造及其自动化专业 毕业论文(设计)数码万年历的设计(德州学院机电系,山东德州 253023)摘 要:单片机大量应用于工业控制、智能仪器仪表、计算机网络和通信领域、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。本设计是基于51系列的单片机进行的电子万年历设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。本设计采用的是AT89S52单片机,该单片机采用的MCU51内核,因此具有很好的兼容性,内部带有8KB的ROM,能够存储大量的程序,最突出特点是具有ISP在系统烧写功能,使得烧写程序更加方便。关键词:AT89S52单片机;万年历;时钟模块;1绪论1.1课题的背景和意义由于电子技术的迅速发展,特别是大规模集成电路出现,给人类生活带来了质的的改变,特别是单片机技术的应用产品已经走进了千家万户。近年来,随着我国科技的不断发展,我国经济发展的支柱产业电子产业获得突破性额发展,各种电子产品琳琅满目,随处可见,随着电子产品的更新速度加快,各种功能强大,款式新颖的电子产品不断问世。数字万年历便是这一发展趋势中的代表,数字万年历满足了人们对时间方面的要求。它的出现给人们的生活带来诸多方便,在时间极显宝贵的现代生活中,其作用更是不言而喻。它在学校、车站、码头、剧院、医院、办公室等公共场所的应用非常广泛。但传统的数字万年历除显示时间之外,功能较为单一,逐渐失去了市场。顺应技术发展和人们生产、生活需求,各种功能的新式万年历不断涌现,且功能不断更新。数字万年历作为电子类的小产品由于方便,实用等优势成为市场上的宠儿,同时也成为单片机设计培训中一个很实用的课题。因为这个课题有很好的开发性和可发挥性,因此对设计者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。所以数字万年历无论从实用的角度和培养能力的角度都很有价值。1.2电子万年历的现状和发展当前,数字万年历技术已经进入了优化人-家庭-环境的整体关系的阶段,它向着超微型、超高效以及集成电路的微型化方向发展。目前,市场上出售的数字万年历品种很多,其中大部分是基于单片机技术设计的电子系统1。它们一般由输入脉冲电路、单片机、晶振和复位电路、外路存储器电路和LED显示电路组成。当今,数字万年历主要用于计时、自动报时,定时,日期查询以及自动控制等方面。由于单片机技术以及数字集成电路技术的发展,如今的数字万年历系统具有体积小、计时准确、耗电省、维护方便、性能稳定、走时准确、携带方便等优点,另外,现在市场上已有现成的数字万年历集成电路芯片出售,而且价格便宜、使用也很方便。日历的发展经历了数千年的历史。现代日历随着使用范围的不断扩大,功能日益增加,种类也越来越多。从70年代以来,随着单片机和超大规模集成电路的发展,为数字万年历的飞速发展奠定了物质基础。近几年来,数字万年历的发展方向是朝着稳定性好、走时精度高、走时延续时间长、体积小、使用方便、功能多、制造成本低、耗电量小等方向发展。最新的数字万年历,除了具有常见万年历功能外,而且还具有多点定时、倒计时、语音报时、实时温度测量等功能。在硬件方面它没有太大的变化,主要是通过增加软件部分来实现多点定时、倒计时功能。不难想像,随着科学技术的飞速发展,各种高新技术的出现并被广泛应用到生产、生活中,未来数字万年历产品也必将沿着体积小、耗电省、计时准确、性能稳定、维护方便、直时准确、携带方便等方向发展而其成本却越来越低。2电子万年历的方案设计2.1万年历的简单模拟方案本设计实现的功能是在LCD1206液晶屏上显示出日期、时间,温度、湿度,以及通过温湿度传感器对周围环境进行监测,当温度或湿度超过某一个设定值时,通过LCD1284显示报警信号。同时可通过遥控器对日期和时间进行更改,如果修改成功则在液晶屏上显示“修改成功!”字样。除了上述功能以外,本设计还可以对日期、时间和温湿度进行语音播报。本电子万年历硬件包括电源模块,时钟模块,温湿度检测模块,红外遥控模块,主控制模块,显示模块,语音播报模块。下图为这个硬件电路的概图。图1硬件方案2.2硬件电路模块2.2.1 主控制模块主控制模块采用STC89C52芯片,芯片主要控制其余各个模块,通过对温湿度模块的控制采集温度和湿度,对时钟模块的控制读取时间,通过液晶来显示报警信息,通过对遥控器传来信号的识别来执行对时间修改、语音播报等功能。STC89C522芯片介绍如下:(1)主要性能:8K字节在系统可编程Flash存储器1000次擦写周期全静态操作:0Hz33Hz与MCS-51单片机产品兼容三级加密程序存储器32个可编程I/O口线八个中断源三个16位定时器/计数器低功耗空闲和掉电模块全双工UART串行通道掉电后中断可唤醒看门狗定时器(2)功能特性描述:STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C52具有以下标准功能:8k字节Flash,256字节RAM,2 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。主控制器电路如下图:图2 单片机最小系统该电路是单片机最小系统,电容C7、C8、晶振Y1 构成振荡电路为单片机时钟信号。电容C6、电阻R15组成上电复位电路,而按键S18、电阻R14则构成手动复位。复位后单片机各部件恢复为初始状态。电容C9、C10有退耦、滤波的作用。单片机的PO口内部没有上拉电阻,所以外接上拉J12,其中1脚为排阻的公共端,接电源。2.2.2 时钟电路模块的设计DS13023是美国DALLAS公司推出的高性能、低功耗的时钟芯片,附加了31字节的静态RAM,采用SPI三线接口和CPU进行通信,也可采用突发方式每次传送多个字节时钟信号及RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31天时可以自动调整,并有闰年补偿功能。工作电压可达2.55.5V。采用双电源供电(主电源与备用电源),可设置备用电源充电方式,提供对后备电源进行涓细电流充电能力。利用单片机强大的控制功能就可实现实时计时的功能,而且消耗的系统资源少,程序简单。图2示出DS1302的引脚排列,其中Vcc1是后备电源,Vcc2是主电源。当主电源关闭时,能保持时钟的连续正常运行。DS1302由Vcc1或Vcc2两者中较大者的供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1与X2是振荡源,外接32.768 KHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平启动所有数据传送。RST输入有两种功能:第一,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;第二,RST提供终止单字节或多字节数据的传送手段。当RST是高电平时,所有数据传送被初始化,允许对DS1302进行操作。如果传送过程中RST置为低电平,就会终止此次数据传送,I/O引脚变成高阻态。上电动行时,在Vcc大于等于2.5V之前,RST必须保持低电平。在SCLK 为低电平时,才能将RST置为高电平,I/O为串行数据输入端(双向)。SCLK总是是输入端。I/OVCC2SCLKI/ORSTVCC1X1X2GND12345678 图3 DS1302引脚排列(1) 时钟芯片DS1302的工作原理DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置 “0”,接着把RST端置“1”,最后才给予SCLK脉冲。DS1302的控制字的位7必须置1,若为0则不能对DS1302进行读写数据。对于位6,若对程序进行读/写时RAM=1,对时间进行读/写时,CK=0,位1至位5指操作单元的地址。位0是读/写操作位,进行读操作时,该位为1;该位为0则表示进行的是写操作。控制字节总是从最低位开始输入/输出的。DS1302的日历、时间寄存器内容:“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。“WP”是写保护位,在任何的对时钟和RAM的写操作之前,WP必须为0。当“WP”为1时,写保护位防止对任一寄存器的写操作。(2) DS1302的控制字节DS1302控制字节最高有效位(位7)必须是逻辑1,如果它是0,就不能把数据写入DS1302中,位6如果是0,表示存取日历时钟数据,是1表示存取RAM数据;位5到位1指示操作单元地址;最低有效位(位0)如果是0表示需进行写操作,是1就表示进行读操作,控制字节始终是从最低位开始输出。(3) 数据输入输出(I/O)控制指令字输入后下一个SCLK时钟上升沿时,数据被写入DS1302,数据输入是从低位(即位0)开始。类似,在紧跟8位控制指令字后的下一个SCLK脉冲的下降沿读出DS1302数据,读出数据时从低位0位至高位7。(4) DS1302的寄存器DS1302共有12个寄存器,其中7个寄存器是与日历、时钟有关,存放数据位为BCD码形式。另外,DS1302也有控制寄存器、年份寄存器、时钟突发寄存器、充电寄存器和与RAM相关的寄存器等等。时钟突发寄存器可一次性顺序读写除充电寄存器外所有寄存器的内容。 DS1302和RAM相关的寄存器有两类:一类为单个RAM单元,共31个,每个单元组态是一个8位的字节,其命令控制字是C0HFDH,其中奇数是读操作,偶数是写操作;还有一类是突发方式下的RAM寄存器,这个方式下可一次性读写所有的RAM的31个字节,命令控制字是FFH(读) 、FEH(写)。时钟电路:图4 时钟电路时钟电路如上图所示,X1、X2脚外接32768Hz的晶振Y2,为芯片提供计时脉冲。BT1为后备电池,Vcc2为主电源;Vcc1为备份电源。当Vcc1Vcc2+0.2V时,由Vcc1向DS1302供电,当Vcc1 Vcc2时,由Vcc2向DS1302供电。DS1302的CLK、I/O、/RST三个管脚分别连接单片机的三个管脚,单片机通过控制这三个管脚来读取DS1302里的时间,然后通过LCD12864来显示时间。2.2.3 温湿度检测模块温湿度检测模块采用的是DHT11数字温湿度传感器,以下是对此芯片的介绍:DHT114数字温湿度传感器是一部含有已经校准数字信号输出的温湿度复合传感器。它用专用的数字模块采集技术与温湿度传感技术,确保产品能有卓越的长期稳定性和极高的可靠性。传感器有一个电阻式感湿元件和一个NTC测温元件,与一个高性能8位单片机连接。所以该产品具有超快响应、品质卓越、性价比极高、抗干扰能力强等优点。每一个DHT11传感器都在十分精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程时要调用这些校准系数。单线制串行接口,让系统集成变得简易快速。极低的功耗、超小的体积,信号传输的距离高达20米以上,使其成为各类应用佳选则。产品为4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。表1 DHT11引脚功能引脚号引脚名称 功能1 VCC电源端2DATA数据输入输出端3NC空4GND地线模块实现的功能是实现对周围温度和湿度的检测。温湿度采集电路:图5 温湿度采集电路如上图所示,DHT11的2脚连接到单片机的I/O口(P2.3),并接一个上拉电阻R9增加可靠性,当单片机发送开始信号,DHT11从低功耗模式切换到高速模式,对周围环境的温湿度进行采集,当开始信号结束后,DHT11将采集到的数据送给单片机,同时通过LCD12864显示出数据。2.2.4显示模块的设计液晶显示屏(LCD)具有低耗电量、轻薄短小、无辐射危险,平面直角显示和影象稳定不闪烁等优点,画面效果好,可视面积大,抗干扰能力强,分辨率高等特点。但由于液晶是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器的资源占用较多,其成本也偏高。在使用时,不能有静电干扰,否则易烧坏液晶的显示芯片。如图6为LCD显示模块,和最小系统上的连线一样,无需修改。图6 LCD液晶显示屏显示模块2.2.5 红外遥控模块红外遥控模块分为发射部分和接收部分,发射部分采用电视遥控器,而接收部分采用的是红外一体化接收头。以下是红外遥控的系统框图:键盘编码调制LED遥控发射器光/电放大解调解码遥控接收器图7 红外遥控的系统框图红外线发射端就是红外遥控器,主要包括键盘、编码调制芯片、红外线发射LED。当按下某一按键后,遥控器上的编码调制芯片便进行编码,并结合载波电路的载波信号而成为合成信号,再经红外线发射二极管,将红外线信号发射出去。一体化红外线接收器是集红外线接收与放大于一体,不需要其他外接元件,就可以完成从红外线接收到输出与TTL电平信号兼容的所有数据传输工作,体积与普通的塑封三极管大小一样,它适合于所有红外线遥控与红外线数据传输。红外接收电路:图8 红外接收电路红外接收电路如上图所示,其中HW为红外一体化接收头,1脚连接到单片机的I/O口并接一个上拉电阻R10增加可靠性,接收头将接收的数字编码通过1脚送给单片机,单片机对接收到的数字编码进行解码。2.2.6 语音播报模块语音模块采用ISD1730语音芯片,其主要实现的功能是播报时间、温湿度。以下是对此模块的介绍:ISD17305是华邦 ISD 公司 2007 年新推出的单片优质语音录放电路,该芯片提供了很多新功能,包括新信息提示( vAlert ) , 内置专利的多信息管理系统, 双运作模式(独立 & 嵌入式),及可定制的信息操作指示音效。芯片内部包括麦克风前置扩大器、自动增益控制、振荡器与内存扬声器、驱动线路等全方位整合系统功能。 特点:丰富多样的工作状态提示;两种控制方式,两种录音输入方式,两种放音输出方式;可处理多达 255 段信息;有可录、放音十万次,存储内容可以断电保留一百年 ;音质好,电压范围宽,应用灵活,价廉物美;多种采样频率对应多种录放时间;电气特性:工作电压: 2.4V-5.5V,最高不能超过 6V; 静态电流: 0.5 - 1 A ; 工作电流: 20mA 。用户可利用震荡电阻来自定芯片的采样频率,从而决定芯片的录放时间和录放音质。下表为 ISD1730 的参数表:表2 ISD1730的参数表时间(秒)采样率(KHZ)ROSC(K)201260 30 8 80 37 6.4 100 45 5.3 120语音电路: 图9语音电路语音电路如上图所示,主控单片机主要通过四线(SCLK,MOSI,MISO,/SS)SPI协议对ISD1730进行串行通信。ISD1730作为从机,几乎所有的操作都可以通过这个SPI协议来完成。ROSC引脚接100K电阻,即声音的采样频率为6.4KHz。LED 管脚给出信号来提示芯片的工作状态。MIC+、MIC-为麦克风的输入端,SP+、SP-喇叭的输出端。/RESET引脚接一个按键,当按键按下即/RESET被触发,芯片将播放指针和录音指针都放置在最后一段语音信息的位置。2.2.7 硬件电路的调试硬件调试主要是检测硬件电路是否有短路、断路、虚焊以及元器件是否可用等。(1)首先检验单片机芯片STC89C52是否有正常工作。连接好电路,用示波器检测其晶振频率是否接近所买晶振的频率值,如有接近表明晶振有工作。或者可以用编写一简单程序,如将55H送给I/O用万用表检测其高低电平是否符合,这样就可确定单片机的工作状态。(2)显示部分的检测:先用万用表检测显示电路连接是否正确,然后编写一个简单的显示程序来测试它。经测试显示部分能正常工作,但是有时还是会出现花屏的现象。 经检测后发现原来是接触不良,只要把部分线,特别是电源线重新插上去就可以了。(3)DS1302的硬件电路很简单,只通过3根I/O线跟单片机的P1-5,P1-6,P1-7直接相连,很容易检测,主要是检查其引脚:如晶振和电源是否连接好等。另外可以通过软件来调试硬件,如为了测试DS1302是否能正常定时,可以将DS1302读写编好的小程序加上LCD显示烧入单片机中,观察显示是否有改变,则可观察出硬件电路是否存在问题,晶振是否有工作。可以使其全速运行,用记时器检测DS1302定时一分钟与实际值是否存在误差进行软件的调试。(4)应注意的是在电路中晶振的地应与其他地独立分开,同时步PCB板时,应使晶振的电路尽量与所属芯片接近,否则晶振工作可能会受影响。(5)红外接收的硬件电路也非常简单,检测也非常容易。另外可编写小程序,当遥控器按下时,将键值通过8个LED显示出来。这样一来可以得到按键的键值方便以后的操作;另一方面可以用来判断红外部分是否有正常工作。(6)语音部分的检测可以通过录放音来检测电路是否正常。在录音前应对ISD1730芯片进行擦除,具体步骤是按下/ERASE键,当LED灯先长亮二下接着再短亮七下,则表明芯片已擦除干净。按下/REC键,通过麦克风进行录音。录完音后,给/PLAY引脚低电平,听是否能正常播放所有已录的音段。如果能则表明语音电路是能正常工作的,否则应检测电路。(7)温湿度传感器电路的检测也非常容易。可编写小程序对周围的环境进行测量。当对DHT11哈一口气时,看温湿度是否会改变,如果能则表明电路能正常工作。3电子万年历的软件设计3.1软件的调试电子万年历是多功能的数字型,可以看当前日期,时间。电子成年历功能很多,所以对于它的程序也较为复杂,所以在编写程序和调试时出现了相对较多的问题。最后经过多次的模块子程序的修改,一步一步的完成,最终解决了软件。在软件的调试过程中遇到的主要问题是:烧入程序后,LCD液晶显示屏显示亮度不好。解决:一边旋转10K欧的滑动变阻器,一边观看LCD显示屏,知道看到合适的亮度为止。烧片基本原理:RST置高电平,然后向单片机串行发送编程命令。P1.7(SCK)输入移位脉冲,P1.6(MISO)串行读入数据,P1.5(MOSI)串行写入命令或数据。查看烧写的程序是否正确无误,对程序进行认真修改。3.2电子万年历软件流程及设计本论文中,软件解决的主要问题是对时间显示、温湿度测量及显示、红外的解码、语音播放。3.2.1主程序设计及流程图首先对程序进行初始化,包括对单片机中断的初始化、各个输入输出口初始化、DHT11的初始化、红外初始化、DS1302时间初始化。然后进行温湿度检测、读取时钟并在液晶屏上显示出来;接着判断是否有键按下,如果有则执行按键对应的处理程序,如果没有则等待。 图10主程序流程图3.2.2 时钟部分及流程图时钟部分要对年、月、日、时、分等进行调整,流程图如下: 图11 时间调整程序流程图对DS1302的读取时很重要的,首先要向其内部的RAM写入正确的初值,其内部的80H, 82H, 84H, 86H, 88H, 8aH, 8cH, 8eH分别是代表写入的初始秒、分、时、年、月、日、星期等,我们只要向这几个地址输入初始值,然后DS1302就会自动在这个初始时间上进行计算并且把当前的时间存放在其内部RAM中的81H, 83H, 85H, 87H, 89H, 8bH, 8dH, 8fH中,当我们想要得到正确的时间只需要单片机与其进行串行通讯读取上述地址即可。DS1302的读写时序图如下:图12 DS1302的读写时序图DS1302 与CPU 的连接仅需要三条线,即SCLK(7)、I/O(6)、RST(5)。VCC1 在单电源与电池供电系统中提供低电源及提供低功率电池备份。 VCC2在双电源系统中提供主电源,这种运用方式VCC2连接到备份电源,以便在没有主电源情况下能保存时间信息和数据。DS1302 由VCC1或VCC2两者中的较大者供电。当VCC1大于Vcc2+0.2V 时,Vcc1 给DS1302 供电。当VCC1小于VCC2时,DS1302 由VCC2供电。数据输入输出在控制指令字输入后的下一个SCLK 时钟的上升沿时数据被写入DS1302,数据输入从低位即位0 开始。同样,在紧跟8 位的控制指令字后的下一个SCLK 脉冲的下降沿读出DS1302 的数据,读出数据时从低位0 位至高位7。通过对DS1302的输入输出可以对其进行操作。3.2.3 温湿度部分及流程图温度根据环境变化而不断改变,其变化的流程图如下:图13 温度显示流程图DATA用于微处理器和DHT11之间的通讯和同步,应用单总线数据格式,每次通讯时间4ms左右,数据分为小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零操作流程如下:每次完整数据传输40bit,高位先出。数据式:8bit湿度整数数据+8bit湿度小数数据+8bit 温度整数数据+8bit温度小数数据+8bit校验及用户MCU发送一次开始信号后,DHT11从低功耗模式变为高速模式,等到主机开始信号结束后,DHT11发送响应信号,送出40bit数据,触发一次信号采集,用户选择读取部分数据。从模式下,DHT11接收到开始信号触发一次温湿度采集,若没有接收到主机发送开始信号,DHT11就不会主动进行温湿度采集。采集数据后转换到低速模式。1、总线空闲状态的是高电平,主机把总线拉低等待DHT11响应,主机把总线拉低应该大于18毫秒,确保DHT11检测到起始信号。DHT11接收到主机开始信号后,等待主机开始信号结束,接着发送80us低电平响应信号。然后主机发送开始信号结束后,延时等待20-40us后, 读取DHT11响应信号,主机发送开始信号后,可以切换到输入模式,或输出高电平均可, 总线由上拉电阻拉高。2、总线为低电平时,说明DHT11发送响应信号,DHT11发送响应信号后,就把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平长短决定数据位是0还是1。格式见下面图示。若读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常。当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。图14 数据传送时序3.2.4 液晶显示部分及流程图液晶显示是万年历设计中十分重要的一个部分,只有液晶显示正常的情况下才能正确显示时间,温湿度。液晶显示部分的流程图如下:开 始设置命令口地址读状态忙吗?Y写命令寄存器初始化完毕吗?NNY设置数据口地址读状态字忙吗?写显示数据数据写完吗?结 束YNNY图15 液晶显示流程图3、基本操作时序 (1)读状态:输入:RS=L,RW=H,E=H 输出:D0D7=状态字 (2)写指令:输入:RS=L,RW=L, D0D7=指令码,E=高脉冲 输出:无 (3)读数据:输入:RS=H,RW=H,E=H 输出:D0D 7=数据 (4)写数据:输入:RS=H,RW=L, D0D7=数据,E=高脉冲 输出:无图16 读写操作时序4、初始化过程(复位过程)指令:(1)延时15毫秒(2)写指令38H;显示模式设置(3)写指令08H;显示关闭(4)写指令01H;显示清屏(5)写指令06H;显示光标移动设置(6)写指令0CH;显示开及光标设置图17 数据与命令时序3.2.5 红外遥控部分 单片机解码的关键是如何识别“0”和“1”,从上面遥控码“0”和“1”的波形图中可以发现“0”、“1”均以0.56ms 的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,即“1”的高电平宽度是“0”的高电平宽度的3 倍。如果延时0.56ms,若读到的电平为低,说明该位为“0”,反之则为“1”。红外按键处理流程图:图18 红外按键处理流程图软件部分主要是通过模块化调试,依次是时钟芯片与液晶的组合,温湿度传感器与液晶的组合,时钟芯片、温湿度传感器与液晶的组合,红外线、时钟芯片、温度传感器与液晶的组合,最后再加入语音部分实现整机的调试。4总结4.1 产品性能总结本系统采用了高性能STC89C52单片机作为核心芯片,充分利用了其高速数据处理能力和丰富的片内外设,实现了仪器的小型化和智能化。使仪器具有结构简单、性能稳定、体积小、成本低等优点。除此之外系统还增加了温湿度采集及报警、语音播报时间、红外遥控等功能,使万年历多功能化。应用程序以C语言编写,充分利用芯片资源,提高了测量精度和代码执行效率,减小了代码容量,方便实现各种功能。但是本系统还有不足之外:1、 语音的音质不够好:应采用音箱或其他音质较好的设备。2、 温湿度不够精准:应选用较好的SHT11。在本系统实现功能的基础上,可以再做适当的功能扩展,使本万年历的功能更加完善,安全性更高,使用更加方便等。4.2心得体会毕业设计是每个大学生必须面临的一项综合素质的考验,如果说在过去四年里,我们的学习是一个知识的累积过程,那么现在的毕业设计就是我们综合运用这四年所学的知识来独立解决问题的实践活动。在这近一个多月的毕业设计中,我们有艰辛的付出,但是更多的是丰收的喜悦。知识固然得到了巩固和提高,但我相信在实践过程中的切身体会将会使我在以后的工作和学习中终身受用。首先,学习能力得到了提高。在毕业设计过程中,自始至终独立完成硬件电路的设计、PCB设计、单片机软件编写等。在软硬件调试的过程中,虽然遇到许多的困难,但是通过查阅书籍或网络很多相关文章和向卖方请教,困难也终于解决了。通过这次毕业设计,我不仅对理论有了更深一步的认识,增强了和外界技术的沟通,还培养了自学能力和分析解决问题的能力,更重要的是,培养了克服困难的勇气和信心。其次,培养了自己的市场观念。一个商品是否能够抢占市场,除了必须的功能和质量要求外,其价格是最大的竞争优势。如何在保证质量和完成同等功能的情况下,把产品的成本降到最低。是每个设计人员在作出方案时首要考虑的因素。再次,人际交流能力得到锻炼。人非生而知之者!人的学识总是不能面面俱到的,这就要求我们必须善于借鉴别人的成功经验或失败教训,使自己少走弯路。我在软件编程中,就借鉴了别人的编程风格,采用几个.C文件再加一个.H文件的方式,收效甚佳。总之,毕业设计完成了,我学到了很多东西,最重要的是我们学会了一种精神坚持。在以后的时间里面我将会用这种精神去工作,不断努力,不断进取,使自己更上一层楼!同时,身边的同学也给了我许多的帮助。在此,我向身边关心我的同学致以诚挚的谢意!最后感谢学院对我这几年的培养。参考文献1黄明强.DS1302在单片机系统中的应用J.保定师范专科学校学报,2004,(2):224.2孙育才.MCS-51系列单片微型计算机及其应用M.南京:东南大学出版社,2004.4264. 3赵海梅.DS1302实时显示时间的原理与应用J.2004:1221.4陈龙等.自动化技术与应用J.2011:410.5赵广林编著.新型语音芯片应用手册M.电子工业出版社,2008.4244.6中青世纪.ISD1700_51单片机C语言示例程序.7文艳等. Protel 99 SE电子电路设计M.北京:机械工业出版社,2009.6276.8谭浩强.C程序设计(第三版)M.北京:清华大学出版社,2009.3444.9柏军,胡屏.一种用于单片机的红外串行通信接口J.单片机及嵌入式系统应用,2003:1422.Design of digital calendarSunYuanyuan(Mechanical and Electronic Engineering Department of Dezhou University,Dezhou Shandong,253015)Abstract:SCM is widely used in smart instrumentation, industrial control, computer networking and communications, household appliances, medical equipment, aerospace, specialized equipment for the intelligent management and process control and other fields.The design is based on the 51 series of microcontrollers designed electronic calendar, you can display year, month, day, hour and weekly information, date and time with adjustable features.This design uses the AT89S52 microcontroller, the microcontroller used MCU51 kernel, so it has good compatibility, with 8KB of internal ROM, can store a large number of procedures, the most prominent feature is a function of ISP programming in the system, making the burnwriting process more convenient. Key Words: AT89S52 Microcontroller;Calendar;Time Setting致 谢在本次毕业设计中,我得到了王老师的热心指导。自始至终关心督促毕业设计进程和进度。帮助解决毕业设计中遇到的许多问题。还不断向我们传授分析问题和解决问题的办法,并指出了正确的努力方向,使我们在毕设过程中少走很多弯路。在这里非常感谢洪老师的指导和帮助,并致以诚挚的谢意!本论文能够完成,还要感谢机电工程系的所有老师,是他们在这四年的时间里,教会我的专业知识。在我撰写论文期间,指导老师在忙碌的工作之余,给予我专业知识上的指导,而且教给我学习的方法和思路,使我在论文设计过程中不断有新的认识和提高。老师们为论文课题的研究提出了许多指导性的意见,为论文的撰写、修改提供了许多具体的指导和帮助。多亏他们的指导和帮助才使我能够顺利完成本论文设计。我会在以后的工作中为社会作出贡献,去回报他们对我的教导。希望每个人都和我一样,通过毕业论文设计,能够学到更多的知识与道理。 经历了这次毕业设计,让我知道做任何事情都必须认真仔细,凡是都不能粗心大意。我在以后的工作中一定谨记这一点,希望在工作中尽量少出错,减少工作中的失误。再次感谢所有机电系的老师,谢谢您们这四年对我的照顾。附录一:硬件电路原理图及PCB附录二:系统程序#include #include /#include LCD1602.h/#include DS1302.h#define uint unsigned int#define uchar unsigned charsbit DS1302_CLK = P20; /实时时钟时钟线引脚 sbit DS1302_IO = P21; /实时时钟数据线引脚 sbit DS1302_RST = P22; /实时时钟复位线引脚sbit ACC0 = ACC0;sbit ACC7 = ACC7;char hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year; /秒,分,时到日,月,年位闪的计数sbit Set = P20; /模式切换键sbit Up = P21; /加法按钮sbit Down = P22; /减法按钮sbit out = P23; /立刻跳出调整模式按钮char done,count,temp,flag,up_flag,down_flag;uchar TempBuffer5,week_value2;void show_time(); /液晶显示程序/*1602液晶显示部分子程序*/Port Definitions*sbit LcdRs= P05;sbit LcdRw= P06;sbit LcdEn = P07;sfr DBPort = 0x80;/P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口/内部等待函数*#define LCD_COMMAND0 / Command#define LCD_DATA1 / Data#define LCD_CLEAR_SCREEN0x01 / 清屏#define LCD_HOMING 0x02 / 光标返回原点void LCD_Write(bit style, unsigned char input)LcdEn=0;LcdRs=style;LcdRw=0;_nop_();DBPort=input;_nop_();/注意顺序LcdEn=1;_nop_();/注意顺序/*延时子程序*/void mdelay(uint delay)uint i;for(;delay0;delay-)for(i=0;i0x59) /超过59秒,清零 temp=0; break; case 2:temp=Read1302(DS1302_MINUTE); /读取分数 temp=temp+1; /分数加1up_flag=1;if(temp0x59) /超过59分,清零temp=0;break;case 3: temp=Read1302(DS1302_HOUR); /读取小时数temp=temp+1; /小时数加1up_flag=1;if(temp0x23) /超过23小时,清零 temp=0; break; case 4: temp=Read1302(DS1302_WEEK); /读取星期数 temp=temp+1; /星期数加1
展开阅读全文