多路温度采集课程设计.docx
- 文档编号:7458584
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:31
- 大小:299.80KB
多路温度采集课程设计.docx
《多路温度采集课程设计.docx》由会员分享,可在线阅读,更多相关《多路温度采集课程设计.docx(31页珍藏版)》请在冰豆网上搜索。
多路温度采集课程设计
目录
1前言1
2总体方案设计3
2.1设计内容3
2.2方案比较3
2.2.1方案一3
2.2.2方案二3
2.2.3方案三4
2.3方案论证5
2.4方案选择5
3单元模块设计6
3.1各单元模块功能介绍及电路设计6
3.1.1电源电路6
3.1.2中央处理电路6
3.1.3测温电路7
3.1.4显示电路7
3.1.5超温报警电路9
3.1.6串口下载电路10
3.2电路参数的计算及元器件的选择11
3.2.1中央处理电路11
3.2.2测温电路11
3.2.4显示电路11
3.3特殊器件的介绍11
3.3.1STC89C52单片机特点及特性11
3.3.2DS18B20介绍13
3.3.3矩阵键盘15
3.4各单元模块的联接16
4软件设计17
4.1软件设计原理及使用工具17
4.1.1设计原理17
4.1.2使用工具17
4.2系统软件设计结构图及其功能17
4.3主要软件设计流程框图及说明18
4.3.1主程序流程及说明18
5系统调试20
5.1系统调试21
6系统功能、指标参数22
6、1说明系统能实现的功能22
6、1、1设置温度上限22
6、1、2温度测量22
6、1、3报警22
6.2系统性能分析23
7结论24
8总结与体会25
9参考文献26
1前言
随着“信息时代”的到来,作为获取信息的手段——传感器技术得到了显著的进步,其应用领域越来越广泛,对其要求越来越高,需求越来越迫切。
传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。
因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。
而温度传感器在生产和生活中有广泛应用,对其的了解及应用就显得更为重要了。
单片机在测控领域中具有十分广泛的应用,它既可以测量电信号,又可以测量温度、湿度等非电信号。
由单片机构成的温度检测、温度控制系统可广泛应用于很多领域。
在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。
测量温度的关键是温度传感器,传感器属于信息技术的前沿尖端产品,温度传感器的发展经历了三个发展阶段:
传统的分立式温度传感器、模拟集成温度传感器、智能集成温度传感器。
目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它的特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。
社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。
温度计是常用的热工仪表,常用于工业现场作为过程的温度测量。
在工业生产过程中,不仅需要了解当前温度读数,而且还希望能了解过程中的温度变化情况。
随着工业现代化的发展,对温度测量仪表的要求越来越高,而数字温度表具有结构简单,抗干扰能力强,功耗小,可靠性高,速度快等特点,更加适合于工业过程中以及科学试验中对温度进行在线测量的要求。
数字温度计的高速发展,使它已成为实现测量自动化、提高工作效率不可缺少的仪表。
数字化是当前计量仪器仪表发展的主要方向之一。
而高准确度数字温度计的出现,又使温度计进入了精密标准测量领域。
与此相适应,测量的可靠性、准确性显得越来越重要。
本设计采用单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单总线从数字温度传感器传递到单片机上。
单片机数据处理之后,发出控制信息改变报警和控制执行模块的状态,同时将当前温度信息发送到液晶显示屏进行显示。
本系统可以实现多路温度信号采集与显示,可以使用按键来设置温度限定值,通过进行温度数据的运算处理,发出控制信号达到控制蜂鸣器和发光二极管的目的。
我所采用的控制芯片为STC89c52,此芯片功能较为强大,能够满足设计要求。
通过对电路的设计,对芯片的外围扩展,来达到对多路温度的采集和显示功能。
本课程设计是配合课堂教学的一个重要的实践教学环节,它能起到巩固课堂和书本上的知识,加强综合能力,提高系统设计水平,启发创新思想的效果,培养资料搜集和汇总的能力,培养总体设计和方案论证的意识,提高硬件,软件设计与开发的综合能力,提高软件和硬件联合调试的能力,掌握相关开发软件,仿真软件的使用方法。
现在计算机科学在应用上得到飞速发展,因此,学习这方面的知识必须紧跟实际连接。
掌握这方面的知识更重要强调解决实际问题的能力。
该课程设计给我们提供了一个很好的机会,它要求我们结合课堂上和书本中学到的知识去独立设计一个硬件系统,它是我们迈向实践和应用的桥梁,我们学习书本上的知识是一个不断积累的过程,而该课程设计却使得我们能够尽情发挥他们,让我们更了解计算机及软硬件的结合使用,虽然课程设计的时间比较短,但它却在整个教学计划中占据了及其重要的位置。
2总体方案设计
2.1设计内容
利用温度传感器DSB18B20实现温度的测量,由单片机STC89C52控制信号并在LED或LCD上显示测量结果。
利用键盘上的数字键设置每一路的报警温度,LCD将显示4路温度值,在超温后蜂鸣器将鸣叫报警且LCD将显示超温的通道。
2.2方案比较
对同一种目的的实现,可以用不同的方案,下面就着重介绍以下三种方案对同一目的的实现方法。
并比较三种方案的优劣。
2.2.1方案一
原理框图如图2.1:
图2.1方案一的原理框图
方案一的原理简述:
该方案的各部分电源均由总电源供电,温度传感器为热电偶,热电偶的热端感受被测物体温度t,产生相应的热电势。
热电势与热端温度成单值函数关系,用模数转换器ADC将热电势转化为数字量,按照热电势与温度的函数关系将该数字量转换为对应温度值,经译码显示电路显示在数码管上,从而实现数字温度计的功能。
2.2.2方案二
原理框图如图2.2:
图2.2方案二的原理框图
方案二的原理简述:
该方案的各部分电源均由总电源供电,选择DS18B20作为本系统的温度传感器,选择单片机STC89C52为测控系统的核心来完成数据采集、处理、显示、报警等功能。
选用数字温度传感器DS18B20,数字温度传感器在采集到输出温度后直接输出数字量信号。
便于单片机处理及控制,省去传统的测温方法的很多外围电路,省略了采样、保持电路、运放、数模转换电路以及进行长距离传输时的串并转换电路,简化了电路,缩短了系统的工作时间,降低了系统的硬件成本。
当LCD1602液晶显示屏接收到来自STC89C52单片机传送来的温度信息后,分别显示当前的温度;若采集的温度超过了程序设定的报警温度,则发光二极管闪烁发光,蜂鸣器同时发出报警。
2.2.3方案三
原理框图如图2.3:
图2.3方案三的原理框图
方案三的原理简述:
该方案的各部分电源均由总电源供电,由模拟及数字元器件组成的控制电路作为核心,控制数字温度计采集温度,数字温度传感器在采集到温度后直接输出数字量,传给控制电路进行处理,控制电路将传回的二进制数据处理后转换为相应温度,由译码显示电路以十进制形式显示在数码管上。
2.3方案论证
以上三种方案都是可行的,第一种方案的优点是由纯硬件电路构成,不涉及软件编程,但是由于热电势与温度之间的函数关系较复杂,利用硬件电路完成其转化较复杂,设计该电路难度较大且电路将比较庞大。
第二种方案的难点主要是单片机程序编制,但其硬件电路相对简单,借助于微控制器的强大功能可使设计周期缩短,测量精度高,且易于扩展功能,增强了电路对各种工作要求的适应性。
第三种方案的优点是由纯硬件电路构成,不涉及软件编程,但是数字式温度传感器的工作涉及复杂的时序,用硬件电路实现将十分复杂,电路设计难度大且电路庞大。
2.4方案选择
考虑到电路的灵活性和适用性及本次课程设计的要求,经过上面三个方案的分析,第二个方案的可行性高,所以我们选择第二个方案做为本次的设计方案。
在第二个方案中,数字式温度传感器和单片机起着主导作用,单片机控制传感器测温并将其传回的数据进行处理、分析,通过改变程序,还可改变测量精度及电路的功能,因而可实现本次设计的要求。
3单元模块设计
本节主要介绍系统各单元模块的具体功能、电路结构、工作原理、以及各个单元模块之间的联接关系;同时本节也会对相关电路中的参数计算、元器件选择、以及核心器件进行必要说明。
3.1各单元模块功能介绍及电路设计
3.1.1电源电路
图3.1电源电路原理图
电源采用USB供给,通过USB接口输入至电路,S1为电源开关,发光二极管显示电路板的上电状态。
3.1.2中央处理电路
中央处理电路主要由时钟振荡电路,复位电路及STC89C52单片机构成,其中RP1为10kΩ的排阻,作为单片机P0口的上拉电阻。
中央处理电路控制数字温度传感器进行测温并对传回的数据进行处理,再控制显示电路将测得温度显示在数码管上。
3.1.3测温电路
图3.2测温电路
测温电路主要由数字温度传感器DS18B20构成。
DS18B20使用外部电源Vcc故其3脚接Vcc,I/O口2脚通过信号线与单片机相连,I/O口线要接5KΩ左右的上拉电阻。
测温电路完成温度的测量,将测得温度以二进制数据形式反馈给单片机进行处理。
3.1.4显示电路
本系统使用的是1602液晶显示模块。
1602液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧、位数多、程序简单的诸多优点,在各类仪表和低功耗系统中得到广泛的应用。
根据显示内容可以分为字符型液晶,图形液晶。
根据显示容量又可以分为单行16字,2行16字,两行20字等等。
在本系统中使用的是字符型两行16字液晶显示器。
在与单片机连接时使用接口电路(排针)相连,为并行通信。
以下是1602液晶显示器外型图和液晶显示的典型应用。
图3.3液晶显示器外形图
1602液晶显示采用标准的16脚接口,其中:
(模块背面有标注)
第1脚:
VSS为地电源
第2脚:
VDD接5V正电源
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,使用时通过一个5K的电位器调整对比度
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址;当RS为高电平、RW为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15~16脚:
空脚
1602液晶模块内部的字符发生存储器(CGROM)已经存储了不同的点阵字符图形,这些字符有,阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,其中数字与字母同ASCII码兼容。
图3.4LCD1602显示电路
在实际电路板的设计中,会考虑增加上拉电阻,以保护系统和提高系统的驱动能力。
另外有些设计中也会考虑使用排线作为单片机与液晶显示的接口,具体使用哪一种连接方式,可以根据情况而定,在本系统中使用排针连接。
3.1.5超温报警电路
本系统使用的报警模块是蜂鸣器。
当现场测得的温度值高于预先设定的最高温度值时就会发出报警信号,蜂鸣器鸣叫报警且LCD1602显示超温的通道。
以下是报警模块与单片机连接图:
图中的网络标号P13是指单片机的P1.3引脚。
图3.5报警模块与单片机连接图
该电路实现超温报警功能,在温度超过设定值时蜂鸣器发声提示温度过高,在程序中,我们将报警温度设置为33.5℃。
蜂鸣器由NPN三极管9013驱动,三极管基极作为控制极,经10k电阻与单片机P1.0口相连。
3.1.6串口下载电路
串口电路主要用于单片机程序的下载,对电平和逻辑进行变换。
EIA-RS-232是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。
因此,为了能够同计算机接口或终端的TTL器件连接,必须在EIA-RS-232与TTL电路之间进行电平和逻辑关系的变换。
本设计选用的转换芯片是MAX232,连接器选用的是DB-9的9芯插头座。
电路连线图如图3.5所示。
图3.6串口下载电路
3.2电路参数的计算及元器件的选择
3.2.1中央处理电路
考虑到功能、成本,我们选择了价格低廉、功能相对强大的51系列单片机STC89C52作为中央处理电路的处理器。
中央处理电路主要由STC89C52单片机、时钟振荡电路及复位电路构成。
时钟振荡电路及复位电路的元件选择均根据资料选取。
3.2.2测温电路
测温电路主要由数字温度计DS18B20构成,据其元件资料其数据端的上拉电阻应取5kΩ左右,取标称值4.7kΩ。
3.2.4显示电路
考虑到成本、实用性及可操作性显示电路部分的驱动元件采用三极管9012,数码管选择七段共阴数码管。
3.3特殊器件的介绍
3.3.1STC89C52单片机特点及特性
STC89C52单片机具有PDIP,TQFP和PLCC三种封装形式。
设计中采用的是PDIP封装,其引脚排列如图3.5所示。
STC89C52单片机有40个引脚,具有如下特性:
片内程序存储器含有4KB的Flash存储器,允许在线编程,擦写周期可达1000次;片内数据存储器内含128字节的RAM;I/O口具有32根可编程I/O线;具有两个16位I/O线;中断系统具有6个中断源、5个终端矢量、2个中断优先级的中断结构;串行口是一个全双工的串行通信口;具有两个数据指针DPTR0和DPTR1;低功耗节电模式有节电模式和掉电模式;包含3级程序锁定位;STC89C52的电源电压为4.0-5.5V,STC89C52的电源电压为2.7-4.0V;振荡器频率0-33MHz(STC89C52);具有片内看门狗定时器;灵活的在线片内编程模式(字节和页编程模式);具有断电标志模式POF。
STC89C52引脚功能如下:
--P0口——8位、开漏极、双向I/O口。
--P1口——8位、双向I/O口、内部含有上拉电阻。
--P2口——8位、双向I/O口、内部含有上拉电阻。
--P3口——8位、双向I/O口、内部含有上拉电阻。
P3口除了通用I/O功能外,还有替代功能。
图3.7STC89C52单片机引脚图
3.3.2DS18B20介绍
DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。
因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。
1、DS18B20产品的特点
(1)、只要求一个端口即可实现通信。
(2)、在DS18B20中的每个器件上都有独一无二的序列号。
(3)、实际应用中不需要外部任何元器件即可实现测温。
(4)、测量温度范围在-55℃到+125℃之间。
(5)、数字温度计的分辨率用户可以从9位到12位选择。
(6)、内部有温度上、下限告警设置。
2、DS18B20的引脚介绍
TO-92封装的DS18B20的引脚排列见图3.6,其引脚功能描述见表3.1。
图3.8DS18B20底视图
表3.1 DS18B20详细引脚功能描述
序号
名称
引脚功能描述
1
GND
地信号
2
DQ
数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源。
3
VDD
可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地。
3、DS18B20的使用方法
由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对STC89C52单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。
由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。
DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。
该协议定义了几种信号的时序:
初始化时序、读时序、写时序。
所有时序都是将主机作为主设备,单总线器件作为从设备。
而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。
数据和命令的传输都是低位在先。
DS18B20的复位时序
(1)先将数据线置高电平“1”。
(2)延时(该时间要求的不是很严格,但是尽可能的短一点)
(3)数据线拉到低电平“0”。
(4)延时750us(该时间的时间范围可以从480到960us)。
(5)数据线拉到高电平“1”。
(6)延时等待(如果初始化成功则在15到60us时间之内产生一个由DS18B20所返回的低电平“0”。
据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。
(7)若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480us。
(8)将数据线再次拉高到高电平“1”后结束。
DS18B20的读时序
(1)将数据线拉高“1”。
(2)延时2us。
(3)将数据线拉低“0”。
(4)延时15us。
(5)将数据线拉高“1”。
(6)延时15us。
(7)读数据线的状态得到1个状态位,并进行数据处理。
(8)延时30us。
DS18B20的写时序
(1)数据线先置低电平“0”。
(2)延时确定的时间为15us。
(3)按从低位到高位的顺序发送字节(一次只发送一位)。
(4)延时时间为45us。
(5)将数据线拉到高电平。
(6)重复上
(1)到(6)的操作直到所有的字节全部发送完为止。
(7)最后将数据线拉高。
DS18B20数据输出与对应温度关系
DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:
用16位符号扩
展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。
表3.2DS18B20温度值格式表
温度/℃
二进制表示
十六进制表示
+125
0000011111010000
07D0H
+85
0000010101010000
0550H
+25.0625
0000000110010000
0191H
+10.125
0000000010100001
00A2H
+0.5
0000000000000010
0008H
0
0000000000001000
0000H
-0.5
1111111111110000
FFF8H
-10.125
1111111101011110
FF5EH
-25.0625
1111111001101111
FE6FH
-55
1111110010010000
FC90H
LSB
23
22
21
20
2-1
2-2
2-3
2-4
MSB
MSbLSb
S
S
S
S
S
26
25
24
这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。
3.3.3矩阵键盘
本设计中采用矩阵键盘对报警温度进行设置,矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。
在行线和列线的每一个交叉点上,设置一个按键。
这样键盘中按键的个数是4×4个。
这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。
图1为矩阵键盘电路图,行线接P2.4-P2.7,列线接P2.0-P2.3。
图3.9矩阵键盘电路图
在使用时,单片机先从P2口的高四位输出高电平,低四位输出低电平,从P2口的高四位读取键盘状态。
再从P2口的低四位输出高电平,高四位输出低电平,从P2口的低四位读取键盘状态。
将两次读取结果组合起来就可以得到当前按键的编码。
程序根据该编码完成对应报警温度的设置。
3.4各单元模块的联接
详见附录1
4软件设计
4.1软件设计原理及使用工具
4.1.1设计原理
在软件设计中一共用到了三种设计软件,一种是Protel99SE,主要用于设计原理图的绘制及PCB印制电路板绘制,一种是KeilC51编译系统,主要用于调试、编译STC89C52单片机程序,一种是STC-ISPV31,主要用于向单片机下载程序。
4.1.2使用工具
1.PROTEL:
PROTEL99SE是PORTEL公司推出的EDA软件,能进行原理图的设计和PCB设计以及仿真等。
由于其学习和使用方便,受到了广大电子工作者和高校师生的青睐,在市场中占有率极高。
本次设计使用了PROTEL的原理图和PCB图绘制功能。
2.KeilC51:
KeilC51是美国KeilSoftware公司出品的51系列单片机软件开发系统。
该软件对编写的C语言源程序进行编译、汇编、连接等,还能进行相应的仿真。
本设计利用其生成HEX文件下载到单片机进行调试。
3、STC-ISP是一款单片机下载编程烧录软件,是针对STC系列单片机而设计的,可下载STC89系列、12C2052系列和12C5410等系列的STC单片机,使用简便,现已被广泛使用。
4.2系统软件设计结构图及其功能
系统使用了模块化的结构程序设计思想对软件进行设计,这样使系统控制软件便于理解和阅读系统的程序设计。
本系统的软件分四大模块:
1602显示子程序、键盘扫描子程序、测温子程序、报警子程序。
利用键盘扫描子程序对报警温度进行设置,测温子程序实现4路DS18B20的测温及测得数据的处理,显示子程序实现温度的显示等功能,报警子程序在超温后利用蜂鸣器进行报警并调用显示子程序显示超温的通道。
软件系统结构框图如图4.1所示。
图4.1软件系统结构框图
4.3主要软件设计流程框图及说明
4.3.1主程序流程及说明
图4.2主程序基本流程图
主程序负责系统的初始化及任务的创建。
主程序从开机就在不间断的循环,永不停止,直到掉电。
首先对整个系统进行初始化,包括单片机模块初始化、1602显示模块初始化等。
接下来主程序会调用键盘扫描子程序,设置好报警温度后后又调用1602显示子程序,将设置结果显示在液晶屏上。
然后进入测温子程序,反复采集4路DS18B20测得的温度值并显示在液晶屏上,如果超温则调用报警子程序如此反复执行。
主程序基本流程如图4.2所示。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 温度 采集 课程设计