ImageVerifierCode 换一换
格式:DOCX , 页数:45 ,大小:2.69MB ,
资源ID:21629389      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21629389.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(带温度显示的万年历单片机课程设计Word文件下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

带温度显示的万年历单片机课程设计Word文件下载.docx

1、高等教育出版社,2005. 2阎 石.数字电子技术(第五版)M.北京:高等教育出版社,2005.3邱关源,罗先觉.电路(第五版)M.北京:高等教育出版社,2006.4周灵彬,任开杰.基于Proteus的电路与PCB设计M.北京:电子工业出版社,2010.5穆秀春,冯新宇,王宇.Altium Designer原理图与PCB设计M.北京:电子工业出版社,2011.6郭天祥.51单片机C语言教程M.北京:电子工业出版社,2012.7张毅刚,彭喜元,彭宇.单片机原理及应用M.北京:高等教育出版社,2010. 8李升.单片机原理与接口技术M.北京:北京大学出版社,2011.工作计划: 5月6号:搜集资料

2、;5月7号:方案论证拟定硬件方案;5月8号:讨论优化并确定硬件方案;5月9号10号:讨论并确定程序流程并绘制流程图; 5月13号:根据流程图编写程序并且进行软件的仿真与调试;5月14号15号:硬件电路的制作并撰写课程设计报告;5月15号:烧录程序并调试; 5月16号:完成课程设计报告的撰写。任务下达日期:2013 年 5 月 6 日任务完成日期:2013 年 5 月17 日指导教师(签名): 学生(签名):摘 要:设计了一个带温度显示的万年历电路系统,该电路具有年、月、日、星期、时、分、秒、闹钟显示和调整功能,并且还能显示温度和按键鸣叫、整点鸣叫、定时闹钟鸣叫等功能。其中显示部分采用LCD16

3、02显示,时钟部分采用DS1302时钟芯片,温度部分采用DS18B20单线温度传感器。报时鸣叫采用有源蜂鸣器并用三极管驱动。软件方面我们采用C语言编程,利用Keil uVision4软件编写C语言程序并且生成HEX文件。先将程序在Proteus仿真,通过之后再烧录到单片机中。该设计的优点是充分利用了LCD1602的显示功能完成了万年历应该具有的功能并且还扩展了温度和闹钟。不足之处是收到LCD1602显示功能的限制没能显示农历日期,而且报时部分只是发出滴滴声而不是语音报时。关键词: 万年历;LCD1602;温度传感器(DS18B20);时钟芯片(DS1302) 1.设计背景 11.1时钟的用途及

4、精度的需求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.8 LCD1602控制电路93.2软件仿真103.2.1 Proteu

5、s仿真软件介绍103.2.2电路仿真调试113.3 电路的焊接与调试 124.结果与结论145.收获与致谢146.参考文献157.附件 157.1电路原理图157.2 Proteus仿真图167.3电路工作中实物图177.4元器件清单197.5源程序清单 201. 设计背景1.1时钟的用途及精度的需求时间,对人们来说是非常宝贵的,准确的掌握时间和分配时间对人们来说至关重要。随着时间的流逝,科学技术的不断发展和提高,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好、更方便、更精确的显示时间,这就要求人们不断设计研发出新型的时钟。高精度的计时工具大多数都使用了石英晶体振荡器,由于电子

6、钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校。数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。 1.2万年历的使用现状及设计目的如今万年历已经在人们生活中广泛的使用,它不仅是记录日期和时间的工具,而且也成为了一种装饰品。现在的万年历可以说是多种多样,外观精美。放在家里既可以计时也可作为风景壁画,因此越来越受到大众消费者的喜爱。本次课程设计通过利用STC89C52单片机和DS1302芯片以及外围的按键和LCD显示器等部件,设计

7、一个基于单片机的电子时钟。设计的电子时钟通过液晶显示器显示,并能通过按键对时间以及闹钟进行设置。目的来模拟真实产品中万年历的工作原理,具有很强的实用性。2.设计方案2.1任务分析目的是设计一个带温度显示的万年历电路系统,该电路具有年、月、日、星期、时、分、秒、闹钟显示和调整功能,并且还能显示温度和按键鸣叫、整点鸣叫、定时闹钟鸣叫等功能。其中显示部分准备采用LCD1602显示,时钟部分准备采用DS1302时钟芯片,温度部分准备采用DS18B20单线温度传感器。2.2方案选择和论证2.2.1、显示模块选择方案和论证方案一: 采用点阵式数码管显示。点阵式数码管是由八行八列的发光二极管组成,对于显示文

8、字比较适合,如采用在显示数字显得太浪费,且难度也相对较高,所以不用此种作为显示。方案二:采用LED数码管动态扫描。LED数码管价格便宜,对于显示数字最合适,但功耗较大,且显示容量不够,所以也不用此种方案。方案三:采用LCD液晶显示屏。液晶显示屏的显示功能强大,可显示大量文字,显示多样,清晰可见,且价格适中,所以采用了LCD数码管作为显示。2.2.2时钟模块的方案选择和论证 直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。 采用DS1302时钟芯片实现时钟,DS1302芯片是一

9、种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,工作电压2.5V5.5V范围内,2.5V时耗电小于300nA.2.2.3按键控制模块的方案选择和论证(宋体四号,加粗) 直接加减:使用7按键,1按键切换闹钟,6按键对时分秒分别加减,控制方式相当简单,但需要较多按键与I/O口,功能一般,成本较高。 矩阵键盘:使用16按键对时分秒直接设置,能最为灵活的对数字钟进行设置,功能强大,但控制方式相对困难,成本较高,需要较多按键与I/O口。 换位调整:使用4按键,1设置闹钟,1键设置调整时间,1键调整,1键确定,此种控制方式相对简单,占用I/O口少,成本低廉,但功

10、能一般。经过反复比较,在3种方案中选取了第3种换位调整,此方案成本低,功能已经足够满足数字钟的需要,而且硬件软件均比较简单。2.2.4温度采集模块方案选择(宋体四号,加粗) DS18B20数字温度传感器接线方便,独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。因此DS18B20完全满足设计要求。2.2.5方案的整体框图

11、(宋体四号,加粗)图1 整体方框图2.2.6设计流程图程序部分小组的拟定方案 Y NYN返回 图2 设计流程图3. 方案实施3.1.1原理图设计及工作原理分析(宋体四号,加粗)图3 整体原理图我们首先构成单片机的最小系统,使单片机能正常工作,在程序中首先对LCD1602、DS1302、DS18B20进行初始化,由CPU完成对DS1302产生的各种时钟数据的读取,然后将数据写至LCD1602,以显示数据,达到可视化的效果。对于课程设计的拓展部分,我们可以利用DS18B20温度传感器来测试周围环境的温度,由CPU完成对数据的读取,然后通过CPU将数据写至LCD1602,以显示温度数据,达到可视化的

12、效果。通过键盘扫描子程序通过测试按键是否闭合来调整各种时间数据和闹钟已达到校准和定时的目的。在按键的同时调用蜂鸣器程序,驱动蜂鸣器响来作为按键提示音,另外我们还扩展了整点报时提示音和闹钟提示音等。3.1.2电源电路(宋体四号,加粗) 我们采用了USB和变压器双电源供电:图4 变压器供电电路 变压器输出的9V交流电经桥堆2W10后变成有较大波动的的直流电,然后经过滤波电容和微调电容后变成直流电,再经过L7805三端稳压器输出5V直流电。7805输出端的电容起到了防干扰和微调作用。图5 USB供电电路3.1.3单片机最小系统(宋体四号,加粗) 单片机采用了上电自动复位和按键复位的双复位,利用12M

13、HZ晶振作为单片机的外部晶振来驱动单片机工作。其中两个33pf的电容用于晶振的启动。由于单片机的P0口是准双向IO口,所以需要排阻RP1作为该口的上拉电阻。图6 单片机最小系统3.1.4蜂鸣器及驱动电路(宋体四号,加粗) 我们采用的有源蜂鸣器,由于单片机的输出电流较小所以我们采用PNP形的三极管作为驱动电路,来驱动蜂鸣器发声,当单片机给低电平时蜂鸣器响。图7 蜂鸣器电路3.1.5时钟芯片DS1302电路(宋体四号,加粗) 时钟芯片采用双电源,当系统断电之后由3V的电源电池供电。保证了系统断电之后时钟继续工作,当系统再次上电之后时钟能显示正确的时间和日期。图8 时钟电路3.1.6温度采集芯片DS

14、18B20电路(宋体四号,加粗)图9 温度采集电路3.1.7键盘控制电路(宋体四号,加粗) 该设计采用的是独立按键,S1为时间设置,S2为时间或者日期调整,S3为确定键,S4为闹钟设置。图10 按键控制电路3.1.8 LCD1602控制电路(宋体四号,加粗) LCD1602是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。第1脚:VSS为电源地。第2脚:VDD接5V电源正极。第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高

15、电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。图11 LCD1602液晶显示电路3.2软件仿真3.2.1 仿真软件介绍(宋体四号,加粗) Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲

16、,是弥补了实验和工程应用间脱节的矛盾和现象。(1)proteus的工作过程 运行proteus的ISIS程序后,进入该仿真软件的主界面。在工作前,要设置view菜单下的捕捉对齐和system下的颜色、图形界面大小等项目。通过工具栏中的p(从库中选择元件命令)命令,在pickdevices窗口中选择电路所需的元件,放置元件并调整其相对位置,元件参数设置,元器件间连线,编写程序;在source菜单的Definecodegenerationtools菜单命令下,选择程序编译的工具、路径、扩展名等项目;菜单的Add/removesourcefiles命令下,加入单片机硬件电路的对应程序;通过debug

17、菜单的相应命令仿真程序和电路的运行情况。(2)Proteus软件所提供的元件资源Proteus软件所提供了30多个元件库,数千种元件。元件涉及到数字和模拟、交流和直流等。(3)Proteus软件所提供的仪表资源 对于一个仿真软件或实验室,测试的仪器仪表的数量、类型和质量,是衡量实验室是否合格的一个关键因素。在Proteus软件包中,不存在同类仪表使用数量的问题。Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似但功能更多。(4)Proteus软件所提供的调试手段 提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信

18、号。对于单片机硬件电路和软件的调试,Proteus提供了两种方法:一种是系统总体执行效果,一种是对软件的分步调试以看具体的执行情况。对于总体执行效果的调试方法,只需要执行debug菜单下的execute菜单项或F12快捷键启动执行,用debug菜单下的pauseanimation菜单项或pause键暂停系统的运行;或用debug菜单下的stop菜单项或shift-break组合键停止系统的运行。其运行方式也可以选择工具栏中的相应工具进行。对于软件的分步调试,应先执行debug菜单下的start/restartdebugging菜单项命令,此时可以选择stepover、stepinto和step

19、out命令执行程序(可以用快捷键F10、F11和ctrl+F11),执行的效果是单句执行、进入子程序执行和跳出子程序执行。在执行了start/restartdebuging命令后,在debug菜单的下面要出现仿真中所涉及到的软件列表和单片机的系统资源等,可供调试时分析和查看。3.2 Proteus电路仿真与调试图12 Proteus下的仿真电路图本次课程设计我们小组采用分工合作的方式,把任务分成了四个模块:硬件部分、软件部分、仿真调试、实物的制作与调试。我们首先拟定实现的功能方案,然后小组讨论制定系统的整体框图。采用功能模块化、任务具体化、工作协调化的方式,充分发挥小组成员各自的的优势。本次设

20、计我主要负责仿真与调试模块,因为我之前没有接触过Proteus的仿真,因此在协调小组工作之余我开始学习Proteus仿真软件的使用。可以说仿真是软件和硬件的组合体,首先要对硬件有充足的了解,明白其中各个模块的功能,而且对软件也要有透彻的了解。因为当仿真结果与预期的结果不一致时,在确保硬件设计合理的基础上只能是软件的编写有误,因此需要对软件进行修改。在仿真的时候出现的问题让我不知所措,刚开始竟然连液晶都不亮。经检查后发现原来是液晶背光的电源与地接反了。经调整后,液晶亮了,但是什么都不显示。经小组商讨后,我决定用分模块的方式,首先对各个模块分开测试。在修改程序的同时,我学会编程软件KEIL的使用,

21、提高了我的编程能力和软件测试的技巧,第一步:我测试单片机的最小系统,看看单片机是否工作。我写了一个小程序,将4个IO口的电平全部拉低发现单片根本就不工作,IO口的引脚电平还是默认的高电平。我首先判定是单片机的外部晶振出了问题,经检查后发现是晶振的起震电容选取的不合适,经修改后单片机正常工作了。第二步:测试蜂鸣器模块,我们是通过PNP型三极管来驱动蜂鸣器发声的,所以需要单片机给个低电平才能使三极管导通,经测试三极管能正常工作。第三步:测试液晶的初始化程序,让其开显示并且光标闪烁,然后测试液晶的写入程序,经测试后发现该模块的程序均正常。第四步:测试DS1302的读写程序,通过单片机读取DS1302

22、时钟芯片的数据,然后将数据处理后送到液晶显示器液晶能够正常显示,但是与预期的显示位置有差异,经修改写入的地址后,能达到预期的目标。第五步:DS18B20温度传感器数据的读写,当单片机对其数据进行读入是发现根本就没反应,经过讨论和测试后发现是它的读写时序不对,于是我们对比DS18B20的数据手册,然后进行单步调试确保时序与之对应,然后再次读取它的数据,这次终于成功了。最后将修改过的主程序载入单片机发现各个部分的功能都能实现了。软件仿真部分圆满成功。3.3焊接与调试(宋体四号,加粗)我们小组采取分工合作的方式将任务分成了四部分:硬件部分、软件部分、软件仿真与调试、实物的制作与调试。我主要是负责硬件

23、的制作与调试。由于硬件制作是最后一步,所以我之前一直在协助组员之间的工作,负责任务的分配与协调,在此期间我学会了Proteus仿真软件的使用和一些调试的方法,可以说对我以后的硬件电路的调试也是非常有用的。而且在硬件电路设计的时候我明白了各个芯片的使用和各个模块的功能,对以后的焊接与调试也是至关重要的,在此期间我又进一步熟悉了Altium designer原理图绘制软件的使用。在与小组成员讨论软件设计流程的时候我明白软件设计的要点和注意事项,明白了软件各个模块的作用和它们之间的执行顺序以及怎样协调工作。通过学习我明白系统开发的流程,了解了需要用到的工具软件。当硬件和软件设计及仿真的工作都完成后就

24、轮到我的制作了,由于这次采用的是万用板,可以说元件的布局是非常重要的一部分,我首先对电路进行布局,在布局的同时为了布线的方便对芯片的引脚的位定义进行了局部的调整,在确保无误后开始焊接。可以说焊接是个耐心和细致的工作,特别是用万用板制作,由于它的布线大部分采用的明线,所以看起来会非常乱,一不小心就会出错。还有这次用的万用板是两个插孔在一起的那种,由于从背面插元器件,看不到正面的焊盘是否连接。刚开始焊接的时候就出现了元件引脚相连的情况,而且有的焊盘在重焊的时候还发生了焊盘脱落的情况。这引起了我的重视,在以后的元件放置的时候我很注意焊盘的位置,防止焊盘相连的情况再次发生。我用了整整一天的时间进行焊接

25、,又用了一天的时间进行调试,最后功能完全实现,画上了圆满的句号。 在调试的过程中也遇到了不少的问题,我采用和软件调试类似的方法分模块测试。第一步:测试单片机的最小系统,看看单片机是否工作。经检查后发现是晶振的起震电容选取的不合适,经修改后单片机正常工作了。测试液晶的初始化程序,让其开显示并且光标闪烁发现液晶显示非常暗,后来发现是液晶的背光没有接,接上背光后液晶亮了并且工作正常。DS18B20温度传感器数据的读写,当单片机对其数据进行读入是发现读取的温度与实际有差别,经过讨论和测试后发现是温度的变量数据类型用的uchar型,改成uint型的后温度读取正确。测试DS1302的读写程序,通过单片机读

26、取DS1302时钟芯片的数据,终于显示了结果,可是现实的结果并不是自己设定的日期,后来才发现在设置初值时,将顺序搞乱了,重新整理后,上面显示正确的结果。硬件调试与制作部分圆满成功。4 结果与结论 完成了用LCD1602显示的带温度显示的万年历的预期的全部功能功能。具有年、月、日、星期、时、分、秒、温度等显示功能;具备年、月、日、星期、时、分、秒校准功能;具有闹钟显示、调节设定、整点鸣叫功能。 制作过程中将程序烧到板上时,LCD1602不能显示结果,经过排查,发现是接触不良,重新将其接好后,再次烧录程序。终于显示了结果,可是现实的结果并不是自己设定的日期,后来才发现在设置初值时,将顺序搞乱了,重新整理后,上面显示正确的结果。 该设计的缺点是没能显示农历和语音报时功能,这也是受到LCD1602显示功能的影响。如果换成LCD12864显示就能充分显示农历日期,再加上语音芯片实现语音报时功能就更好了。5 收获与致谢 为了完成此次课设,我再次翻阅了

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1