单片机原理及系统课程设计报告:基于89C51单片机的数字温度计设计精选.doc

单片机原理及系统课程设计报告:基于89C51单片机的数字温度计设计精选.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机原理及系统课程设计报告:基于89C51单片机的数字温度计设计精选

单片机原理及系统课程设计报告:基于89C51单片机的数字温度计设计 基于89C51单片机的数字温度计设计 1 引言 本次课程设计的目的是设计一种数字温度计,在设计方法要遵循模块化的设计方法,该数字温度计主要应用于环境的温度检测,所以需要以下几点要求: (1)2)误差应当小于物理温度计由于观察造成的误差。 (3)该温度计的数字界面要友好直观在温度计出现错误时要能够报错。 2 设计方案及原理说明 2.1设计方案 本次可程设计的课题是数字温度计,我们的重点是温度的采集即测温电路。由此可以得到以下两个方案: 方案一:通过利用热敏电阻的感温效应,将随被测温度变化的电压或电流采集过来,进行A/D转换后,用单片机对其进行温度处理,在显示元件上显示。优点:所用的电子元件容易得到,单片机处理程序简单。缺点:电路过于复杂,精度较差,容易受到外界环境的影响。 方案二:使用DS18B20传感器。该传感器可以测量-55℃至125℃范围内的温度值,将采集的温度数据转换成16位二进制数,由单片机负责计算转换成相应温度值,并且通过显示元件上显示。优点;精度较高,电路设计较为简单,用到的电子元件较少。缺点:对与软件的要求比较高。综上,选择方案二更为合理。 2.2设计原理 有上述方案,我们可以将本次课程设计分为硬件设计和软件设计两部分。其中硬件电路又分为DS18B20传感器检测电路、1602LCD显示电路、包含复位电路及内部时钟电路的单片机控制电路。软件设计通过使用CKeil Uvision3对其进行编译并通过单片机开发板进行仿真。 该系统总的来说有三大模块构成,分别是传感器模块、显示模块以及单片机模块。其组成原理是这样的,单片机写入读取和控制传感器的命令,使DS18B20采集温度数据并将其传输到单片机后单片机负责把接收到的数字量经过数据,。还通过。 图1 数字温度计设计框图 3 数字温度计硬件电路设计 3.1数字温度计设计芯片选择 本次课程设计用到了89C51单片机、DS18B20温度传感器和1602LCD屏。 3.2数字温度计硬件连接方法及原理 该系统连接方法如下1602LCD 的DB口是双向的数据线与单片机P0口连接,用单片机P 2.1,P2.2 ,P2.31602LCD的RS、RW、E三个管脚连接,VDD接5V电源,VEE与VSS接地即可。传感器的DQ与单片机P3.3相连,晶振和复位电路不作说明,该系统连接图如图2所示 图2 数字温度计硬件原理连接图 该系统是基于这样的原理进行设计:首先因为DS18B20传感器采集的温度数据是以两个字节的数据存放,用DQ口串行传输并与单片机P3.3相连,通过这根线单片机读取数据和写入指令。数据进入单片机后经处理由P0口送入显示块DB口,因为单片机的P2.1,P2.2,P2.3DS18B20温度传感器与单片机之间单总线串行传输,时序非常的重要,所以我们编写的程序时序为:传感器复位→发送存在脉冲→发送传感器存储器操作指令→执行数据读写指令周→传感器复位周而复始的做温度的采集。因为是单片测量在温度传感器进行测量流程图中跳过ROM指令,传感器流程序程图如附录A图(a)所示。1602LCD与单片机之间有八条数据线负责二者之间的通信。这里我们要注意D7口是作为忙碌位,当单片机在向液晶屏写入数据时必须当该位为检测为低电平时才可以写入数据。显示模块的程序流程图如附录图A(b)所示。综上主程序流程如下图3所示。源代码详见附录C。 图3 主程序流程图 在Keil Uvision3上将编写的源代码录入生成后缀名为.c的文件,经过编译可将生成的.hex格式的文件。程序编译调试结果如附录B图所示。 6 数字温度计的硬件仿真调试及说明 将生成的.hex其烧入单片机后接通单片机电源,系统开始工作。刚开始界面会显示85℃约有1秒,后恢复正常测得室温下如图4所示。经过查询资料得因为在初始化时传感器的寄存器中会默认一个国定数值,经计算后显示正好为85,所以不可避免但能通过修改延时程序改变其显示时间。 图4 测量室内温度 由上图可知室内温度为24.13℃,为了证明其是否可以测量实时温度用手捏住DS18B20温度传感器,发现其温度有所变化,上升至32.05℃,如下图6所示。 图5 手捏住传感器的温度 当拔掉DS18B20温度传感器,重新启动传感器时,屏幕会显示报错信息,如下图7所示.。 图7 报错提示信息 经过认真分析,实物仿真正确,达到之前的设计要求。 7 总结 我在设计中遇到了这样的问题,在程序编译好之后无法在Protues软件中仿真电路中实现,但是程序却可以在实物电路中正常运行。经过查资料终于解决,原因是我所使用的传感器与仿真软件中的传感器型号相同,但是只能够行程序时序不同,导致仿真结果不能正

文档评论(0)

beoes + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档