课程设计说明书课程名称:《单片机技术》设计题目:万年历院(部):电子信息与电气工程学院学生姓名:*******学号:************专业班级:************指导教师:*******20**年5月23日课程设计任务书设计题目万年历学生姓名****所在院系电子信息与电气工程学院专业、年级、班***********设计要求:1、设计制作一个用LCD1602显示的带温度显示的万年历;2、具有年、月、日、星期、时、分、秒、温度等显示功能;3、具备年、月、日、星期、时、分、秒校准功能;4、具有闹钟显示、调节设定、整点鸣叫功能。学生应完成的工作:设计万年历的工作原理,利用DXP软件绘制电路原理图,利用KeiluVision4软件编写C语言程序并且生成HEX文件,并利用Proteus软件进行电路仿真和调试。并设计制作电路的PCB板(或万用板的元件布局和连线)。根据设计原理对电路进行安装、调试,完成课程设计工作,并提交课程设计报告。参考文献阅读:[1]童诗白.模拟电子技术基础[M].北京:高等教育出版社,2005.[2]阎石.数字电子技术(第五版)[M].北京:高等教育出版社,2005.[3]邱关源,罗先觉.电路(第五版)[M].北京:高等教育出版社,2006.[4]周灵彬,任开杰.基于Proteus的电路与PCB设计[M].北京:电子工业出版社,2010.[5]穆秀春,冯新宇,王宇.AltiumDesigner原理图与PCB设计[M].北京:电子工业出版社,2011.[6]郭天祥.51单片机C语言教程[M].北京:电子工业出版社,2012.[7]张毅刚,彭喜元,彭宇.单片机原理及应用[M].北京:高等教育出版社,2010.[8]李升.单片机原理与接口技术[M].北京:北京大学出版社,2011.工作计划:5月6号:搜集资料;5月7号:方案论证拟定硬件方案;5月8号:讨论优化并确定硬件方案;5月9号—10号:讨论并确定程序流程并绘制流程图;5月13号:根据流程图编写程序并且进行软件的仿真与调试;5月14号—15号:硬件电路的制作并撰写课程设计报告;5月15号:烧录程序并调试;5月16号:完成课程设计报告的撰写。任务下达日期:2013年5月6日任务完成日期:2013年5月17日指导教师(签名):学生(签名):万年历摘要:设计了一个带温度显示的万年历电路系统,该电路具有年、月、日、星期、时、分、秒、闹钟显示和调整功能,并且还能显示温度和按键鸣叫、整点鸣叫、定时闹钟鸣叫等功能。其中显示部分采用LCD1602显示,时钟部分采用DS1302时钟芯片,温度部分采用DS18B20单线温度传感器。报时鸣叫采用有源蜂鸣器并用三极管驱动。软件方面我们采用C语言编程,利用KeiluVision4软件编写C语言程序并且生成HEX文件。先将程序在Proteus仿真,通过之后再烧录到单片机中。该设计的优点是充分利用了LCD1602的显示功能完成了万年历应该具有的功能并且还扩展了温度和闹钟。不足之处是收到LCD1602显示功能的限制没能显示农历日期,而且报时部分只是发出滴滴声而不是语音报时。关键词:万年历;LCD1602;温度传感器(DS18B20);时钟芯片(DS1302)目录1.设计背景……………………………………………………………………11.1时钟的用途及精度的需求…………………………………………11.2万年历的使用现状及设计目的…………………………………………12.设计方案……………………………………………………………………12.1任务分析……………………………………………………………………12.2方案选择和论证……………………………………………………………22.2.1显示模块选择方案和论…………………………………………………22.2.2时钟模块的方案选择和论证……………………………………………22.2.3按键控制模块的方案选择和论证………………………………………22.2.4温度采集模块方案选择…………………………………………………32.2.5方案的整体框图…………………………………………………………32.2.6设计流程图程序部分的拟定案…………………………………………43.方案实施…………………………………………………………………53.1.1整体电路及其分析………………………………………………………53.1.2电源电路…………………………………………………………………63.1.3单片机最小系统…………………………………………………………63.1.4蜂鸣器及驱动电路………………………………………………………73.1.5时钟芯片DS1302电路…………………………………………………73.1.6温度采集芯片DS18B20电路……………………………………………83.1.7键盘控制电路……………………………………………………………83.1.8LCD1602控制电路………………………………………………………93.2软件仿真………………………………………………………………103.2.1Proteus仿真软件介绍…………………………………………………103.2.2电路仿真调试…………………………………………………………113.3电路的焊接与调试……………………………………………………124.结果与结论………………………………………………………………145.收获与致谢………………………………………………………………146.参考文献…………………………………………………………………157.附件………………………………………………………………………157.1电路原理图………………………………………………………………157.2Proteus仿真图…………………………………………………………167.3电路工作中实物图………………………………………………………177.4元器件清单………………………………………………………………197.5源程序清单……………………………………………………………2011.设计背景1.1时钟的用途及精度的需求时间,对人们来说是非常宝贵的,准确的掌握时间和分配时间对人们来说至关重要。随着时间的流逝,科学技术的不断发展和提高,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好、更方便、更精确的显示时间,这就要求人们不断设计研发出新型的时钟。高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校。数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。1.2万年历的使用现状及设计目的如今万年历已经在人们生活中广泛的使用,它不仅是记录日期和时间的工具,而且也成为了一种装饰品。现在的万年历可以说是多种多样,外观精美。放在家里既可以计时也可作为风景壁画,因此越来越受到大众消费者的喜爱。本次课程设计通过利用STC89C52单片机和DS1302芯片以及外围的按键和LCD显示器等部件,设计一个基于单片机的电子时钟。设计的电子时钟通过液晶显示器显示,并能通过按键对时间以及闹钟进行设置。目的来模拟真实产品中万年历的工作原理,具有很强的实用性。2.设计方案2.1任务分析目的是设计一个带温度显示的万年历电路系统,该电路具有年、月、日、星期、时、分、秒、闹钟显示和调整功能,并且还能显示温度和按键鸣叫、整点鸣叫、定时闹钟鸣叫等功能。其中显示部分准备采用LCD1602显示,时钟部分准备采用DS1302时钟芯片,温度部分准备采用DS18B20单线温度传感器。报时鸣叫采用有源蜂鸣器并用三极管驱动。软件方面我们采用C语言编程,利用KeiluVision4软件编写C语言程序并且生成HEX文件。先将程序在Proteus仿真,通过之后再烧录到单片机中。22.2方案选择和论证2.2.1、显示模块选择方案和论证方案一:采用点阵式数码管显示。点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且难度也相对较高,所以不用此种作为显示。方案二:采用LED数码管动态扫描。LED数码管价格便宜,对于显示数字最合适,但功耗较大,且显示容量不够,所以也不用此种方案。方案三:采用LCD液晶显示屏。液晶显示屏的显示功能强大,可显示大量文字,显示多样,清晰可见,且价格适中,所以采用了LCD数码管作为显示。2.2.2时钟模块的方案选择和论证方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA.2.2.3按键控制模块的方案选择和论证(宋体四号,加粗)方案一:直接加减:使用7按键,1按键切换闹钟,6按键对时分秒分别加减,控制方式相当简单,但需要较多按键与I/O口,功能一般,成本较高。方案二:矩阵键盘:使用16按键对时分秒直接设置,能最为灵活的对数字钟进行设置,功能强大,但控制方式相对困难,成本较高,需要较多按键与I/O口。3DS1302AT89S52按键LCD显示DS18B20方案三:换位调整:使用4按键,1设置闹钟,1键设置调整时间,1键调整,1键确定,此种控制方式相对简单,占用I/O口少,成本低廉,但功能一般。经过反复比较,在3种方案中选取了第3种——换位调整,此方案成本低,功能已经足够满足数字钟的需要,而且硬件软件均比较简单。2.2.4温度采集模块方案选择(宋体四号,加粗)DS18B20数字温度传感器接线方便,独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。因此DS18B20完全满足设计要求。2.2.5方案的整体框图(宋体四号,加粗)图1整体方框图42.2.6设计流程图程序部分小组的拟定方案YNYN图2设计流程图开始完成与DS18B20,LCD1602,DS1302相关的子函数的编程完成与DS18B20,LCD1602,DS1302相关的初始化设置CPU读取DS18B20,DS1302的温度和时间数据CPU将数据送至LCD1602显示相关数字及字母数组设置相关引脚的特殊位定义检测是否有时间校准按键按下重新设置时间,并写至进DS1302的寄存器返回53.方案实施3.1.1原理图设计及工作原理分析(宋体四号,加粗)图3整体原理图我们首先构成单片机的最小系统,使单片机能正常工作,在程序中首先对LCD1602、DS1302、DS18B20进行初始化,由CPU完成对DS1302产生的各种时钟数据的读取,然后将数据写至LCD1602,以显示数据,达到可视化的效果。对于课程设计的拓展部分,我们可以利用DS18B20温度传感器来测试周围环境的温度,由CPU完成对数据的读取,然后通过CPU将数据写至LCD1602,以显示温度数据,达到可视化的效果。通过键盘扫描子程序通过测试按键是否闭合来调整各种时间数据和闹钟已达到校准和定时的目的。在按键的同时调用蜂鸣器程序,驱动蜂鸣器响来作为按键提示音,另外我们还扩展了整点报时提示音和闹钟提示音等。63.1.2电源电路(宋体四号,加粗)我们采用了USB和变压器双电源供电:图4变压器供电电路变压器输出的9V交流电经桥堆2W10后变成有较大波动的的直流电,然后经过滤波电容和微调电容后变成直流电,再经过L7805三端稳压器