基于单片机的智能温度计的设计
- 格式:doc
- 大小:984.50 KB
- 文档页数:45
摘要随着时代的进步和发展,智能仪表已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术, 本文主要介绍了一个基于89C51单片机的测温系统,详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。
DS18B20与STC89C51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。
关键词:温度测量;DS18B20;STC89C51目录1 智能仪器仪表的简介 (1)1.1智能仪器仪表简介 (1)1.2智能仪器仪表的作用 (2)1.3本课题的背景和意义 (2)2 系统设计简介 (3)2.1 数字温度计简介 (3)2.2 设计要求 (4)2.3 设计方案论证 (4)3.系统硬件设计 (5)3.1主控制器选择 (5)3.2显示电路 (5)3.3温度传感器简介 (6)3.4蜂鸣器模块电路 (7)3.6电源模块 (8)4 设计语言及软件介绍 (8)4.1 C51语言介绍 (8)4.2 keil uvision4软件介绍 (9)5 系统软件设计 (10)5.1 概述 (10)5.2 系统程序设计模块 (10)5.2.1主程序 (10)5.2.2 LCD写指令子函数 (11)5.2.3LCD写数据子函数 (11)5.2.4 LCD 写字符串子函数 (12)5.2.5 LCD初始化子函数 (13)5.2.6 DS18B20复位子函数 (14)5.2.7 DS18B20读数据子函数 (15)5.2.8 DS18B20写数据子函数 (16)5.2.9 读取温度值并转换子函数 (17)5.2.10 显示温度子函数 (19)5.2.11 设置报警值子函数 (21)5.2.12报警子程序 (28)5.3 控制源程序 (29)5.3.1 C51程序 (29)5.3.2程序清单 (36)5.4 调试及仿真 (36)5.4.1温度计功能仿真 (36)5.4.2设置报警功能仿真 (37)1 智能仪器仪表的简介1.1智能仪器仪表简介1.LCD1602液晶显示器工业字符型液晶,能够同时显示16x02即32个字符(16列2行)。
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。
1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。
市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。
2.蜂鸣器蜂鸣器是一种一体化结构的电子讯响器,在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。
蜂鸣器采用直流电压供电,其能发出单调的或者某个固定频率的声音,如嘀嘀嘀,嘟嘟嘟等。
蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型,通常在计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件使用。
3.DS18B20DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。
主要根据应用场合的不同而改变其外观。
封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。
耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
4.STC89C51STC89C51RC是采用8051核的ISP(In System Programming)在系统可编程芯片,最高工作时钟频率为80MHz,片内含8K Bytes的可反复擦写1000次的Flash只读程序存储器,器件兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,具有在系统可编程(ISP)特性,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。
STC89C51RC系列单片机是单时钟/机器周期(1T)的兼容8051 内核单片机,是高速/ 低功耗的新一代8051 单片机,全新的流水线/精简指令集结构,内部集成MAX810 专用复位电路。
1.2智能仪器仪表的作用1.LCD1602液晶显示器:显示传感器当前所感受到的温度2.蜂鸣器:当当前温度超过或低于所固定温度时工作,即发出警报3.STC89C51:储存用户程序实现程序功能4.DS18B20:感受温度,用于获取温度1.3本课题的背景和意义2 系统设计简介2.1 数字温度计简介数字温度计可以准确的判断和测量温度,以数字显示,而非指针或水银显示。
故称数字温度计或数字温度表。
数字温度计采用温度敏感元件也就是温度传感器(如铂电阻,热电偶,半导体,热敏电阻等),将温度的变化转换成电信号的变化,如电压和电流的变化,温度变化和电信号的变化有一定的关系,如线性关系,一定的曲线关系等,这个电信号可以使用模数转换的电路即AD转换电路将模拟信号转换为数字信号,数字信号再送给处理单元,如单片机或者PC机等,处理单元经过内部的软件计算将这个数字信号和温度联系起来,成为可以显示出来的温度数值,如25.0摄氏度,然后通过显示单元,如LED,LCD或者电脑屏幕等显示出来给人观察。
这样就完成了数字温度计的基本测温功能。
2.2 设计要求1、利用温度传感器(DS18B20)测量所接触物体的温度。
2、测量范围在0℃~+50℃内可以随意规定,精度为±0.5℃。
3、测量温度由LCD1602液晶显示器直读显示。
4、超过规定范围发出警报。
2.3 设计方案论证根据系统的设计要求,选择DS18B20作为本系统的温度传感器,选择单片机AT89C51为测控系统的核心来完成数据采集、处理、显示等功能。
选用数字温度传感器DS18B20,省却了采样/保持电路、运放、数/模转换电路以及进行长距离传输时的串/并转换电路,简化了电路,缩短了系统的工作时间,降低了系统的硬件成本。
该系统的总体设计思路如下:温度传感器DS18B20把所测得的温度发送到AT89C51单片机上,经过51单片机处理,将把温度在显示电路上显示,本系统显示器用4位共阳LED数码管以动态扫描法实现。
检测范围-55摄氏度到125摄氏度。
按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路和显示电路。
本课题以是89C51单片机为核心设计的一种数字温度控制系统,系统整体硬件电路包括,传感器数据采集电路,温度显示电路,单片机主板电路等组成。
系统框图主要由主控制器、单片机复位、时钟振荡、LED显示、温度传感器组成。
数字温度计总体电路结构框图如图2.3所示。
图2.3数字温度计总体电路结构框图3.系统硬件设计3.1主控制器选择图3-1STC89C51引脚图3.2显示电路显示电路是使用的串口显示,这种显示最大的优点就是使用口资源比较少,只用P0和P3口,串口的发送和接收,采用4位共阳LED数码管,,此处选择型号为7SEG-MPX4-CA红灯共阳数码管,从主控制器AT89C51芯片P0口输出段码,列扫描用P3.0~P3.3口来实现,列驱动用74HC04六反相器。
如图所示:图3-2显示电路3.3温度传感器简介由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度,要比较多的外部元件支持,且硬件电路复杂,制作成本相对较高。
这里采用DALLAS公司的数字温度传感器DS18B20作为测温元件。
图3-3 DS18B20的测温原理图3.4蜂鸣器模块电路图3-4蜂鸣器原理图3.5按键模块电路图3-5按键模块原理图3.6电源模块图3-6电源模块原理图4 设计语言及软件介绍4.1 C51语言介绍单片机C51语言是由C语言继承而来的。
和C语言不同的是,C51语言运行于单片机平台,而C语言则运行于普通的桌面平台。
C51语言具有C语言结构清晰的优点,便于学习,同时具有汇编语言的硬件操作能力。
对于具有C语言编程基础的读者,能够轻松地掌握单片机C51语言的程序设计。
单片机C51语言兼备高级语言与低级语言的优点。
语法结构和标准C语言基本一致,语言简洁,便于学习。
运行于单片机平台,支持的微处理器种类繁多,可移植性好。
对于兼容的8051系列单片机,只要将一个硬件型号下的程序稍加修改,甚至不加改变,就可移植到另一个不同型号的单片机中运行。
其具有高级语言的特点,尽量减少底层硬件寄存器的操作。
单片机C51语言提供了完备的数据类型、运算符及函数供使用。
C51语言是一种结构化程序设计语言,可以使用一对花括号“{}”将一系列语句组合成一个复合语句,程序结构清晰明了。
C51语言代码执行的效率方面十分接近汇编语言,且比汇编语言的程序易于理解,便于代码共享。
4.2 keil uvision4软件介绍Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。
运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。
2009年2月发布Keil μVision4,Keil μVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。
新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。
新版本支持更多最新的ARM芯片,还添加了一些其他新功能。
5 系统软件设计5.1 概述5.2 系统程序设计模块系统程序主要包括主函数,LCD写指令子函数,LCD写数据子函数,LCD 写字符串子函数,LCD初始化子函数,DS18B20复位子函数,DS18B20读数据子函数,DS18B20写数据子函数,读取温度值并转换子函数,显示温度子程序,设置报警值子程序和报警子程序等。