智能仪表课程设计
内蒙古科技大学
智能仪表综合训练设计说明书
题 目:基于
学生姓名:
学 号:
专 业:测控技术与仪器
班 级:
指导教师:DS18B20的温度采集系统 XXXXX 511823000 XXXXXX XXXXXX
中文摘要
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K的系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
关键词:DS18B20;LCD1602;报警;温度采集;单片机STC89C52
目 录
第一章 概述 ............................................................ 1
1.1背景及研究意义 .................................................. 1
1.2国内外现状 ...................................................... 1
1.3课程设计的目的 .................................................. 3
1.4主要工作 ........................................................ 3
1.5本文研究内容 .................................................... 3
第二章 总体方案设计 .................................................... 4
2.1设计方案 ........................................................ 4
2.2系统设计原理 .................................................... 4
2.3系统组成 ........................................................ 4
2.4程序流程图 ...................................................... 5
第三章 硬件设计 ........................................................ 6
3.1微控制器 ........................................................ 6
3.1.1主要参数: ................................................. 6
3.1.2引脚图 ..................................................... 7
3.2 DS18B20 ......................................................... 7
3.2.1内部结构 ................................................... 8
3.2.2特性 ....................................................... 8
3.2.3引脚图 ..................................................... 9
3.3 LCD1602 ......................................................... 9
3.3.1引脚图及引脚功能 ........................................... 9
3.3.2 LCD1602的特性 ............................................ 10
第四章 软件设计 ....................................................... 11
4.1 Keil uVision4 的使用 ........................................... 11
4.1.1项目文件的建立 ............................................ 11
4.1.2源文件的建立 .............................................. 13
4.1.3编译、连接项目,形成目标文件 .............................. 15
4.2 STC_ISP的使用 ................................................. 15
4.3 程序流程图 ..................................................... 17
4.3.1上下限调整 ................................................ 17
4.3.2 报警程序 ................................................. 18
第五章 总结 ........................................................... 20
参考文献 .............................................................. 21
附录A 基于DS18B20的温度采集系统的硬件原理图 .......................... 22
附录B 基于DS18B20的温度采集系统的源程序 .............................. 23
第一章 概述
1.1背景及研究意义
随着时代的进步和发展,单片机技术已经普及到我们生活、工作、 科研、各个
领域,已经成为一种比较成熟的技术, 单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。温度是工业对象中的一个重要的被控参数。然而所采用的测温元件和测量方法也不相同;产品的工艺不同,控制温度的精度也不相同。因此对数据采集的精度和采用的控制方法也不相同。传统的控制方式以不能满足高精度,高速度的控制要求,如温度控制表温度接触器,其主要缺点是温度波动范围大,由于他主要通过控制接触器的通断时间比例来达到改变加热功率的目的,受仪表本身误差和交流接触器的寿命限制,通断频率很低。近几年来快速发展了多种先进的温度控制方式,如:PID控制,模糊控制,神经网络及遗传算法控制等。这些控制技术大大的提高了控制精度,不但使控制变得简便,而且使产品的质量更好,降低了产品的成本,提高了生产效率。
DS18B20与STC89C52结合实现最简温度检测系统,该系统结构简单,抗干扰能
力强,适合于恶劣环境下进行现场温 度测量,有广泛的应用前景。对于防潮、防霉、防腐、防爆是仓库日常工作的重要内容,是衡量仓库管理质量的重要指标。它直接影响到储备物资的使用寿命和工作可靠性。为保证日常工作的顺利进行,首要问题是加强仓库内温度与湿度的监测工作。但传统的方法是用与湿度表、毛发湿度表、双金属式测量计和湿度试纸等测试器材,通过人工进行检测,对不符合温度和湿度要求的库房进行通风、去湿和降温等工作。这种人工测试方法费时费力、效率低,且测试的温度及湿度误差大,随机性大。因此我们需要一种造价低廉、使用方便且测量准确的温湿度测量仪。本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警。
1.2国内外现状
温度控制系统在国内各行各业的应用虽然已经十分广泛,但从国内生产的温度控
制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大的差距。成熟的温控产品主要以“点位”控制及常规的PID控制器为主,它们只能适应一般温度系统控制,而用于较高控制场合的智能化、自适应控制仪表,国内技术还不十分成熟,形成商品化并广泛应用的控制仪表较少。随着我国经济的发展及加入WTO,我国政府及企业对此都非常重视,对相关企业资源进行了重组,相继建立了一些国家、企业的研发中心,开展创新性研究,使我国仪表工业得到了迅速的发展。 单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。
1.3课程设计的目的
1.巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力。
2.培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力。
3.通过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤。
4.加深对智能仪器的理解,了解智能仪器在实际生产中的重要意义
1.4主要工作
本课程设计的重点是设计一种基于单片机的温度采集系统。利用数字传感器DS18B20测量温度并转换,用LCD1602显示采集到的温度值。
主要工作如下
1.温度采集并转换。
2.上、下限报警且上、下限可调。
3.LCD1602显示。
1.5本文研究内容
本文主要介绍了一个基于STC89C52单片机的测温系统,详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,特别是数字温度传感器DS18B20的数据采集过程。对各部分的电路也一一进行了介绍, 该系统可以方便的实现温度采集和显示, 并可根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。
第二章 总体方案设计
2.1设计方案
采用数字温度芯片DS18B20 测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0—100摄氏度时,最大线形偏差小于1 摄氏度。DS18B20 的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器STC89C52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大。采用51 单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC 机通信上传数据,另外STC89C52 在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。
该系统利用STC89C52芯片控制温度传感器DS18B20进行实时温度检测并通过LCD1602显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。
2.2系统设计原理
利用温度传感器DS18B20可以直接读取被测温度值,进行转换的特性,温度值经过DS18B20处理后转换为数字值,然后送到单片机中进行数据处理,并与设置的温度报警限比较,超过限度后通过蜂鸣器报警。同时处理后的数据送到LCD中显示。
2.3系统组成
本系统以STC89C52单片机作为主控芯片,利用DS18B20数字温度传感器作为温度传感器,通过LCD1602作为显示器件,通过单片机控制来实时显示当前温度。并实时显示时间,且时间可调。当温度高于设定最高温度或低于设定的最低温度时,蜂鸣器发出报警声。
系统框图如下
2.4程序流程图
图2-1 图 2-2
第三章 硬件设计
3.1微控制器
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K的系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8K字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。
3.1.1主要参数:
1. 增强型8051 单片机,6 时钟/机器周期和12 时钟/机器周期可以任意选择,指令代码完全兼容传统8051
2. 工作电压:5.5V~3.3V(5V 单片机)/3.8V~2.0V(3V 单片机)
3. 工作频率范围:0~40MHz,相当于普通8051 的0~80MHz,实际工作频率可
达48MHz
4. 用户应用程序空间为8K 字节
5. 片上集成512 字节RAM
6. 通用I/O 口(32 个),复位后为:P0/P1/P2/P3 是准双向口/弱上拉, P0 口
是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻。
7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿
真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片
8. 具有EEPROM功能
9. 具有看门狗功能
10. 共3个16位定时器/计数器。即定时器T0、T1、T2
11. 外部中断4 路,下降沿中断或低电平触发电路,Power Down 模式可由外部中断低电平触发中断方式唤醒
12. 通用异步串行口(UART),还可用定时器软件实现多个UART
13. 工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)
14. PDIP 封装
3.1.2引脚图
图 3-1
3.2 DS18B20
DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水
循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
3.2.1内部结构
图 3-2
3.2.2特性
1.独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯
2.测温范围 -55℃~+125℃,固有测温分辨率0.5℃
3.支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳
4.工作电源: 3~5V/DC
5.在使用中不需要任何外围元件
6.测量结果以9~12位数字量方式串行传送
7.不锈钢保护管直径 Φ6
8.适用于DN15~25, DN40~DN250各种介质工业管道和狭小空间设备测温
9.标准安装螺纹 M10X1, M12X1.5, G1/2”任选
10.PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接
3.2.3引脚图
图 3-3
3.3 LCD1602
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。
1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。
3.3.1引脚图及引脚功能
第1脚:VSS为电源地
第2脚:VCC接5V电源正极
第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)
第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器
第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作 第6脚:E(或EN)端为使能(enable)端
第7~14脚:D0~D7为8位双向数据端
第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极
图 3-4
3.3.2 LCD1602的特性
1. +3.3V电压,对比度可调
2. 内含复位电路
3. 提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能
4. 有80字节显示数据存储器DDRAM
5. 内建有192个5X7点阵的字型的字符发生器CGROM
6. 8个可由用户自定义的5X7的字符发生器CGRAM
第四章 软件设计
4.1 Keil uVision4 的使用
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
2009年2月发布Keil uVision4,Keil uVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。
下面介绍Keil uVision4的使用方法:
4.1.1项目文件的建立
Keil C51 现在常用的是第四版本的Keil uVision4 ,打开的界面如图
4-1
图 4-1
选择Project菜单下的 New Project 弹出如图4-2所示的对话框
图 4-2
在键入“项目1”后保存,弹出图4-3芯片选择对话框,在这里选择Atmel公司的AT89C51芯片如图4-4,此时会提醒用户是不是添加启动码,选择“是”。
图 4-3
图 4-4
4.1.2源文件的建立
在File菜单下选择New...弹出程序编写界面如图4-5 ,在Text 下编写程序
图 4-5
编程完成后点击保存,弹出如图4-6对话框
图 4-6
输入文件名加后缀“.c”,这里输入“项目1.c”,点击保存。这样我们就完成了一个源文件,之后右键点击“Source Group 1”在弹出的下拉菜单中选择“Add Files to Group‘Source Group 1’...
弹出如图4-7所示对话框,找到刚刚完成的源文件,单击‘Add’,这样我们就把源文件添加到工程中去了。
图 4-7
4.1.3编译、连接项目,形成目标文件
把保存了的工程源文件添加到工程当中过后,我们就可以编程、连接、调试了。在编译之前我们设置一下,在通过过后会生成“*.HEX文件”,这就是单片机所需的程序文件。设置如图
4-8
图 4-8
编译、连接时,如果程序有错,则编译不成功,并在下面的信息窗口给出相应的提示信息,以便用户修改。如图4-9,这个是编译成功的情况。
图 4-9
4.2 STC_ISP的使用
STC-ISP 是一款单片机下载编程烧录软件,是针对STC系列单片机而设计
的,可下载STC89系列、12C2052系列和12C5410等系列的STC单片机,使用简便,现已被广泛使用。
现目前使用的是STC-ISP的版本是V4.7.9的版本。打开软件,出现如图4-10所示的界面。
图 4-10
在程序下载之前要先设置,要选择对应的芯片、COM口、波特率(一般可以默认不变)。
设置好过后再用串口线把电脑和开发板连接好就可以下载程序到芯片当中了,点击主界面的“OpenFile/打开文件”,弹出如图4-11的对话框,选择需要的“*.HEX或者是*.BIN”文件。
在下载时候,开发板需要重新复位一次,可用对开发板重新上电的办法。
图 4-11
4.3 程序流程图
4.3.1上下限调整
上下限调整模块主要由按键程序和显示程序构成。按键扫描电路扫描调整键K1是否按下,检测到按键按下时,延时1ms,再次检测按键是否按下,若检测到按下,才确定此按键,本设计中每个按键设计都运用了防抖动功能,避免抖动产生的误差。当检测到按键K1按下七次时,显示为设定的上限值,此时K2和K3分别为递增键和递减键,在上限或下限没超过125℃时,每次检测到按下时则上限值增加或减少1,并将key4标志位置7。当K1被按下八次时,显示为设定的下限值,此时K2和K3分别为递增键和递减键,每次检测到按下时则下限值增加或减少1,并将key4标志位置8。当K1被第九次按下时,key4标志位置9,此时跳转到温度采集模式,并将设定的上限值和下限值写入到传感器中。显示程序显示设定值的变化,当key4为0时,显示测量到的温度的值,当key为7时,显示上限值,并随K2,K3按键按下的时上限值的变化而变化,当key4为8是,显示下限值,并随K2,K3按键按下时下限值的变化而变化
图 4-12 上下限调整程序流程图
4.3.2 报警程序
报警模块主要由单片机输出电平来驱动蜂鸣器构成。当所测温度超过设定的上限(TH值)或下限温度(TL值)时置beep=1,表示温度值越界。在调用报警子程序时先判断beep的值,若为1则在鸣器端口输出低电平信号beep=0,蜂鸣器报警。在蜂鸣器报警的同时,LED灯不断闪烁。
图 4-13 报警程序流程图
第五章 总结
此课程设计用到了一个单片机STC89C52、DS18B20、电阻、电源和简单的外围电路,因此设计的核心就是芯片DS18B20。由于此前对此芯片缺乏了解,所以此次设计的难点在编程,通过搜集和阅读DS18B20的资料,以及本组成员的编译和数天调试,攻克了程序设计的难题,使此次的课程设计取得突破性的成功。DS18B20 是一种传感器精度高、互换性好;它直接将温度数据进行编码,可以只使用一根电缆传输温度数据,通信方便,传输距离远且抗干扰性好的数字温度传感器。所构成的系统以简单,且系统扩充维护十分方便。DS18B20 可以广泛用于工厂工业过程、大型粮仓、酿酒厂,食品加工厂的温度检测以及宾馆、仪器仪表室等处的温度检测和控制.
在硬件基本没有问题的情况下,我们下载程序进行调试,实现了温度显示的基本功能,后进行程序改进,扩展了功能,实现温度上下限的设置和温度报警功能以及时钟功能。通过这次智能化仪表设计使我学习到了很多的东西,不仅加深了对专业知识的理解,而且更好地把理论知识与实践相结合,提高了自身的动手能力和实践水平,增强了学习单片机系统开发与设计的兴趣。
参考文献
[1] 于永.51单片机C语言常用模块与综合系统设计实例精讲[M].北京:电子工业出版社,2008
[2] 戴永成等.基于DS18B20的数字温度测量仪[J].北华航天工业学院学报,2008 [3] 甘勇等. 数字温度传感器DS18B20 在多点测温系统中的应用. 河南农业大学学报,2001
[4] 张越等.基于DS18B20温度传感器的数字温度计[J].微电子学,2007 [5] 李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,1998
[6] 黄河.基于DS18B20的单总线数字温度计[J].湘潭师范学院学报,2008 [7] 李广弟.单片机基础[M].北京:北京航空航天大学出版社,1994
[8] 王建强等.基于DSP控制器与DS18B20的温度测量方法[J]. 仪器仪表与检测技术,2009
[9] 雷建龙等.数码管动态显示乱码现象分析[J].液晶与显示,2009 [10] 孙安清等.AT89S52单片机实验与实践教程[M].单片机实验板配套教程 [11] 赵亮等.单片机C语言编程和实例[M].人民邮电出版社,2003 [12] 张毅刚等.单片机原理及运用[M].高等教育出版社,2003
附录A 基于DS18B20的温度采集系统的硬件原理图
附录B 基于DS18B20的温度采集系统的源程序