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