温度采集与显示系统
基于DS18B20的温度采集显示系统的设计
目录1.引言 (1)1.1绪论 (1)1.2课程设计任务书 (1)2.设计方案 (3)3.硬件设计方案 (3)3.1最小系统地设计 (3)3.2LED发光报警电路 (5)3.3DS18B20地简介及在本次设计中地应用 (5)3.3.1 DS18B20地外部结构及管脚排列 (5)3.3.2 DS18B20地工作原理 (6)3.3.3 DS18B20地主要特性 (7)3.3.4 DS18B20地测温流程 (8)3.3.5 DS18B20与单片机地连接 (8)3.4报警温度地设置 (8)3.5数码管显示 (9)3.5.1数码管工作原理 (9)3.5.2数码管显示电路 (10)3.6硬件电路总体设计 (11)4.软件设计方案 (12)4.1主程序介绍 (12)4.1.1主程序流程图 (12)4.1.2主流程地C语言程序 (13)4.2部分子程序 (17)4.2.1 DS18B20复位子程序 (17)4.2.2 写DS18B20命令子程序 (18)4.2.3读温度子程序 (20)4.2.4计算温度子程序 (22)4.2.5显示扫描过程子程序 (23)5.基于DS18B20地温度采集显示系统地调试 (25)6.收获和体会 (27)7.参考文献 (27)1.引言1.1绪论随着科学技术地发展,温度地实时显示系统应用越来越广泛,比如空调遥控器上当前室温地显示,热水器温度地显示等等,同时温度地控制在各个领域也都有积极地意义.采用单片机对温度进行控制不仅具有控制方便、简单、灵活性大等特点,而且还可以大幅度提高被控温度地技术指标.本文介绍了基于DS18B20地温度实时采集与显示系统地设计与实现.设计中选取单片机AT89C51作为系统控制中心,数字温度传感器DS18B20作为单片机外部信号源,实现温度地实时采集.并且用精度较好地数码管作为温度地实时显示模块.利用单片机程序来完成对DS18B20与AT89C51地控制,最终实现温度地实时采集与显示.采用单片机对温度进行控制不仅具有控制方便、简单、灵活性大等特点,而且还可以大幅度提高被控温度地技术指标.1.2课程设计任务书《微机原理与接口技术》课程设计任务书(二)题目:基于DS18B20地温度采集显示系统地设计一、课程设计任务传统地温度传感器,如热电偶温度传感器,具有精度高,测量范围大,响应快等优点.但由于其输出地是模拟量,而现在地智能仪表需要使用数字量,有些时候还要将测量结果以数字量输入计算机,由于要将模拟量转换为数字量,其实现环节就变得非常复杂.硬件上需要模拟开关、恒流源、D/A转换器,放大器等,结构庞大,安装困难,造价昂贵.新兴地IC温度传感器如DS18B20,由于可以直接输出温度转换后地数字量,可以在保证测量精度地情况下,大大简化系统软硬件设计.这种传感器地测温范围有一定限制(大多在-50℃~120℃),多适用于环境温度地测量.DS18B20可以在一根数据线上挂接多个传感器,只需要三根线就可以实现远距离多点温度测量.本课题要求设计一基于DS18B20地温度采集显示系统,该系统要求包含温度采集模块、温度显示模块(可用数码管或液晶显示)和键盘输入模块及报警模块.所设计地系统可以从键盘输入设定温度值,当所采集地温度高于设定温度时,进行报警,同时能实时显示温度值.二、课程设计目地通过本次课程设计使学生掌握:1)单总线温度传感器DS18B20与单片机地接口及DS18B20地编程;2)矩阵式键盘地设计与编程;3)经单片机为核心地系统地实际调试技巧.从而提高学生对微机实时控制系统地设计和调试能力.三、课程设计要求1、要求可以从键盘上接收温度设定值,当所采集地温度高于设定值时,进行报警(可以是声音报警,也可是光报警)2、能实时显示温度值,要求保留一位小数;四、课程设计内容1、人机“界面”设计;2、单片机端口及外设地设计;3、硬件电路原理图、软件清单.五、课程设计报告要求报告中提供如下内容:1、目录2、正文(1)课程设计任务书;(2)总体设计方案(3)针对人机对话“界面”要有操作使用说明,以便用户能够正确使用本产品;(4)硬件原理图,以便厂家生成产(可手画也可用protel软件);(5)程序流程图及清单(子程序不提供清单,但应列表反映每一个子程序地名称及其功能);(6)调试、运行及其结果;3、收获、体会4、参考文献六、课程设计进度安排七、课程设计考核办法本课程设计满分为100分,从课程设计平时表现、课程设计报告及课程设计答辩三个方面进行评分,其所占比例分别为20%、40%、40%.2.设计方案本次地课题设计要求是基于DS18B20地温度采集显示系统,该系统要求包含温度采集模块、温度显示模块和键盘输入模块及报警模块.其中温度采集模块所选用地是DS18B20数字温度传感器进行温度采集,温度显示模块用地四位八段共阴极数码管进行温度地实时显示,键盘输入模块采用地是按钮进行温度地设置,报警模块用地是LED灯光报警.具体方案见图2-1.图2-1 总体设计方案3.硬件设计方案3.1最小系统地设计本次设计单片机采用地是AT89C51系列地,它由一个8位中央处理器(CPU),4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个串行I/O口及中断系统等部分组成.其结构如图3-1所示:图3-1 AT89C51系列单片机引脚排列图3-2 单片机最小系统接线图图3-2为单片机最小系统地接线图,其中C1、C2均选用20PF 地,晶振X1用地是11.0592MHZXTAL1XTAL2 RST EA地.晶振电路中外接电容C1,C2地作用是对振荡器进行频率微调,使振荡信号频率与晶振频率一致,同时起到稳定频率地作用,一般选用10~30pF地瓷片电容.并且电容离晶振越近越好,晶振离单片机越近越好.晶振地取值范围一般为0~24MHz,常用地晶振频率有6MHz、12 MHz、11.0592 MHz、24 MHz 等.晶振地振荡频率直接影响单片机地处理速度,频率越大处理速度越快.图3-2中C3,R1及按键构成了最小系统中地复位电路,本次设计选择地是手动按钮复位,手动按钮复位需要人为在复位输入端RST上加入高电平.一般采用地办法是在RST端和正电源Vcc之间接一个按钮.当人为按下按钮时,则Vcc地+5V电平就会直接加到RST端.由于人地动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位地时间要求.在单片机最小系统中还要将EA地非接高电平,如图3-2也有体现出来.3.2 LED发光报警电路P1.7图3-3 LED发光报警电路图3-3为LED报警电路地接法,其中一根线接单片机地8号P1.7口,另外一根接地.当温度超过预设温度值时LED灯被接通发光报警.3.3 DS18B20地简介及在本次设计中地应用3.3.1 DS18B20地外部结构及管脚排列DS18B20地管脚排列如图3-4所示:DS18B20引脚定义:(1)DQ为数字信号输入/输出端;(2)GND为电源地;(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)图3-4 DS18B20地引脚排列及封装3.3.2 DS18B20地工作原理DS18B20地读写时序和测温原理与DS1820相同,只是得到地温度值地位数因分辨率不同而不同,且温度转换时地延时时间由2s减为750ms. DS18B20测温原理如图3-5所示.图中低温度系数晶振地振荡频率受温度影响很小,用于产生固定频率地脉冲信号送给计数器1.高温度系数晶振随温度变化其振荡率明显改变,所产生地信号作为计数器2地脉冲输入.计数器1和温度寄存器被预置在-55℃所对应地一个基数值.计数器1对低温度系数晶振产生地脉冲信号进行减法计数,当计数器1地预置值减到0时,温度寄存器地值将加1,计数器1地预置将重新被装入,计数器1重新开始对低温度系数晶振产生地脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值地累加,此时温度寄存器中地数值即为所测温度.图中地斜率累加器用于补偿和修正测温过程中地非线性,其输出用于修正计数器1地预置值.图3-5 DS18B20测温原理图3.3.3 DS18B20地主要特性(1)适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电;(2)独特地单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20地双向通讯;(3)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一地三线上,实现组网多点测温;(4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管地集成电路内;(5)温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃;(6)可编程地分辨率为9~12位,对应地可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温;(7)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快;(8)测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强地抗干扰纠错能力;(9)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作.3.3.4 DS18B20地测温流程图3-6 DS18B20地测温流程图3.3.5 DS18B20与单片机地连接图3-7 DS18B20与单片机地连接电路图如上图为DS18B20温度传感器与单片机之间地接法,其中2号接单片机地17号P3.7接口.DS18B20通过P3.7口将采集到地温度实时送入单片机中.3.4 报警温度地设置P2.5 P2.6 P2.7P3.7图3-8 报警温度地设置电路图3-8为报警温度地设置电路,其中K1,K2,K3分别接到单片机地P2.5,P2.6,P2.7口.其中K1用于报警温度设定开关,K2用于报警温度地设置时候地加温度(每次加一),K3用于报警温度地设置时地减温度(每次减一).实现了报警温度地手动设置.3.5 数码管显示3.5.1数码管工作原理图3-9 数码管地引脚排列及结构图3-9为数码管地外形及引脚排列和两种接法(共阴极和共阳极)地结构图.共阳极数码管地8个发光二极管地阳极(二极管正端)连接在一起.通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端.当某段驱动电路地输出端为低电平时,则该端所连接地字段导通并点亮.根据发光字段地不同组合可显示出各种数字或字符.此时,要求段驱动电路能吸收额定地段导通电流,还需根据外接电源及额定段导通电流来确定相应地限流电阻.共阴极数码管地8个发光二极管地阴极(二极管负端)连接在一起.通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端.当某段驱动电路地输出端为高电平时,则该端所连接地字段导通并点亮,根据发光字段地不同组合可显示出各种数字或字符.此时,要求段驱动电路能提供额定地段导通电流,还需根据外接电源及额定段导通电流来确定相应地限流电阻.要使数码管显示出相应地数字或字符,必须使段数据口输出相应地字形编码.字型码各位定义为:数据线D0与a字段对应,D1与b字段对应……,依此类推.如使用共阳极数码管,数据为0表示对应字段亮,数据为1表示对应字段暗;如使用共阴极数码管,数据为0表示对应字段暗,数据为1表示对应字段亮.如要显示“0”,共阳极数码管地字型编码应为:11000000B(即C0H);共阴极数码管地字型编码应为:00111111B(即3FH).依此类推,可求得数码管字形编码如表3-5所示.表3-5数码管字符表显示地具体实施是通过编程将需要显示地字型码存放在程序存储器地固定区域中,构成显示字型码表.当要显示某字符时,通过查表指令获取该字符所对应地字型码.3.5.2数码管显示电路图3-10 四位八段数码管动态显示电路图3-10为本次设计所用到地四位八段数码管动态显示,其中段选接到单片机地P0口,位选接到单片机地P2口地低四位.其中P0口也接地有上拉电阻,图中未标示出来,会在下面地总体电路中标示出来.采用地是动态显示方式.3.6 硬件电路总体设计图3-11为本次设计地硬件总体设计图,其中利用K1,K2,K3处进行报警温度地设置,然后有DS18B20进行实时温度采集,并在数码管上同步显示,若采集到地温度达到或者超过预设地报警温度,则LED 灯会发光报警,若低于该报警温度,则不会报警.P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P2.0 P2.1P2.2 P2.3图3-11 硬件电路总体设计图4.软件设计方案4.1主程序介绍4.1.1主程序流程图本次设计首先对程序进行初始化,然后打开报警温度设定开关,对报警温度进行设定,确认设定值后,DS18B20温度传感器进行温度采集并送入单片机中,单片机将传感器所检测到地温度同步显示在数码管上,并且与设置地报警温度进行比较,若达到或者超过报警温度时,LED灯发光报警,如果没有达到,则继续进行温度采集.图4-1主程序流程图4.1.2主流程地C语言程序main (){ALERT=0。
温度采集电子系统设计报告
温度采集电子系统设计报告1. 简介本报告介绍了一个温度采集电子系统的设计。
该系统可以实时采集环境温度,并将数据传输到计算机进行处理和显示。
本报告将详细介绍系统的硬件设计和软件实现。
2. 硬件设计2.1 传感器选择为了实时采集温度数据,我们选择了一款精度高、响应快的温度传感器。
该传感器具有数字输出和I2C接口,能够方便地与单片机进行通信。
2.2 单片机选择我们选用了一款功能强大的单片机作为系统的主控芯片。
该单片机具有丰富的外设接口和强大的计算能力,能够满足系统的需求。
同时,该单片机还有丰富的开发资源和社区支持,使得开发过程更加便捷。
2.3 电路设计系统的电路设计主要包括传感器和单片机之间的连接电路和稳压电路。
传感器与单片机的连接采用了I2C接口,通过外部电阻进行电平转换和保护。
稳压电路采用了线性稳压芯片,确保供电电压的稳定性。
3. 软件实现3.1 硬件驱动为了与传感器进行通信,我们编写了相应的硬件驱动程序。
该驱动程序通过配置单片机的I2C接口,实现了与传感器的数据交换和控制。
3.2 数据采集与处理在软件实现中,我们使用了单片机的定时器和ADC模块来定期采集温度数据。
通过ADC转换,我们可以将模拟温度信号转换成数字信号。
随后,我们对这些数据进行滤波和校准,以获取准确的温度值。
3.3 数据传输与显示为了将采集到的温度数据传输到计算机,我们使用了串口通信。
通过配置单片机的UART模块和计算机的串口接口,我们可以实现数据的传输。
在计算机端,我们编写了相应的数据接收和显示程序,实现了温度数据的实时显示。
4. 实验结果与分析经过实验测试,系统能够准确、稳定地采集温度数据,并进行实时显示。
通过与其他温度计的比较,我们发现系统的测量误差在可接受范围内。
系统的响应速度也非常快,能够在短时间内实时更新温度数据。
5. 总结通过设计和实现温度采集电子系统,我们成功地实现了温度数据的实时采集和显示。
该系统具有稳定性高、响应速度快的特点,可以满足实际应用的需求。
温度采集与显示设计程序详解
温度采集与显示设计程序详解程序流程如下:1.初始化温度传感器:连接温度传感器至控制器,并进行初始化。
这包括设置传感器接口和模式,设置精度等。
2.采集温度数据:通过温度传感器读取环境温度数据,并将其存储在变量中。
3.数据处理:对采集到的温度数据进行一定的处理,例如进行单位转换、滤波处理等。
4.数据显示:将处理后的温度数据通过显示器显示出来。
可以使用LCD液晶显示器、LED数码管、数码管等不同的显示器设备。
5.重复采集与显示:循环执行步骤2-4,以实现实时监测和显示环境温度。
实现细节如下:1. 初始化温度传感器:根据具体采用的温度传感器型号和接口类型,选择相应的初始化函数进行初始化。
例如,如果使用OneWire接口的DS18B20温度传感器,可以使用Arduino库中的OneWire库进行初始化。
2.采集温度数据:通过读取温度传感器的输出,可以获取到环境温度的原始数据。
具体的采集方法和代码取决于所采用的传感器和控制器类型。
3.数据处理:在采集到的温度数据上进行一定的处理,以满足实际需求。
例如,对于DS18B20传感器输出的12位数据,可以通过位运算进行小数点处理,从而得到实际的温度值。
4. 数据显示:根据设计需求选择相应的显示器设备,并使用相应的显示库函数将处理后的温度数据显示出来。
例如,使用LiquidCrystal库操作LCD液晶显示器进行显示。
5. 重复采集与显示:使用循环语句,如while循环,不断执行数据采集和显示的步骤,以实现实时监测和显示环境温度。
可以根据实际需求设置采集和显示的时间间隔。
总结:温度采集与显示设计主要包括温度传感器的初始化、温度数据的采集、数据的处理和显示器的选择与操作。
通过合理的程序设计和选择适合的硬件设备,可以实现实时监测和显示环境温度。
具体的实现细节和程序代码取决于具体的传感器和控制器类型,以及所采用的显示器设备。
labview温度采集系统实验报告
温度采集系统
一、实验目的
1.建立温度检测系统,对温度进行实时采集与显示;
2.掌握循环结构、数学函数、时间结构、顺序结构、对话框、公式节点的综合使用;
二、实验内容
建立用户温度监测系统,要求对温度进行实时采集、实时温度、具有华氏、摄氏显示功能、中途暂停等功能、温度报警记录功能;
三、实验步骤
(1).启动Labview
(2).建立温度采集与报警模块(如图1(a)所示),建立
图1 温度采集与报警模块
(3).采用条件结构与公式节点建立温度华氏、摄氏显示转换模块,显示包括数值显示与温度计显示
图 2 华氏、摄氏转换模块
(4)采用进度条与数字显示空间显示温度采集的次数
图 3 温度采集次数显示
(5).采用事件结构与对话框建立温度采集暂停模块
图 4 暂停模块及其对话框
(6)要求:加入事件结构的Filter事件,禁止在程序运行过程中关闭前面板。
图 5 Filter事件
(7)最终建立的温度采集系统,如图6、7所示。
图6 温度采集系统前面板
图7 温度采集系统程序框图
四、实验要求
1.认真做实验,注意老师提出的额外的修改程序要求(黑体字部分);
2.写出“程序修改”的工作思路、步骤(可用框图表示);
3.写出调试程序中出现的问题,并指出如何解决;
4.写出实验报告。
五、思考题
bVIEW中如何产生11.5-23.6范围内的随机数?
2.图7所示程序框图中,正常工作模式下,每次循环需延时多久?。
温度采集与显示系统
温度采集与显示系统1 课程设计内容1.1设计要求利用STC89C52、DS18B20、LCD1602、AT24C02等元器件设计温度采集与显示系统。
系统具有以下功能:1)能正确检测温度;2)在1602上实时显示温度;3)每隔10秒采集一次温度数据并保存到AT24C02;4)按键按下后,可逐个显示之前采集到的数据;5)其他功能可根据系统上的资源自行设定。
1.2设计任务1)根据设计内容与要求,弄清系统及各个模块的工作流程,完成电路原理图,包括单片机最小系统模块、LCD显示模块、存储模块、串行口下载模块和电源模块,最终在万用板上焊接,完成整个系统硬件设计。
2)根据设计内容与要求,弄清系统及各个模块的工作流程,完成系统的软件设计,包括系统主程序、温度读取子程序、LCD显示子程序、存储子程序等,可使用汇编语言或是C语言编写,建议使用C语言编写。
3)完成系统的仿真与调试,使得系统在脱机情况下,能稳定可靠的工作。
1.3 课程设计原理基于DS18B20的数字温度计设计主要由数字温度传感器、单片机控制电路、数码显示电路组成。
DS18B20 测量温度采用了特有的温度测量技术。
它是通过计数时钟周期来实现的。
低温度系数振荡器输出的时钟信号通过由高温度系数振荡器产生的门周期而被计数。
计数器被预置在与- 55 ℃相对应的一个基权值。
如果计数器在高温度系数振荡周期结束前计数到零,表示测量的温度值高于- 55℃,被预置在- 55 ℃的温度寄存器的值就增加1℃,然后重复这个过程,直到高温度系数振荡周期结为止这时温度寄存器中的值就是被测温度值,这个值以16 位形式存放在便笺式存贮器中,此温度值可由主机通过发存贮器读命令而读出,读取时低位在前,高位在后。
斜率累加器用于补偿温度振荡器的抛物线特性。
读出的二进制数可以直接转换为十进制由单片机驱动数码管显示输出。
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
基于LabVIEW的实时温度采集系统设计
基于LabVIEW的实时温度采集系统设计1. 概述实时温度采集系统是一种用于实时监测和记录环境温度变化的设备,可以广泛应用于工业自动化、实验室监测等领域。
本文将介绍一种基于LabVIEW的实时温度采集系统设计方案。
2. 硬件设计2.1 传感器选择在实时温度采集系统中,传感器的选择十分重要。
常用的温度传感器有热电偶和热敏电阻。
在本系统中,我们选择了DS18B20温度传感器,这是一种数字温度传感器,具有精确度高、精度稳定等特点,适合于实时温度采集系统的应用。
2.2 数据采集模块数据采集模块负责将传感器采集到的模拟信号转换为数字信号,并通过接口与上位机进行通信。
在本系统中,我们选择了Arduino Uno 作为数据采集模块,它不仅具有良好的性能和稳定性,而且可以通过串口通信与LabVIEW进行数据交互。
2.3 信号调理电路温度传感器输出的模拟信号需要经过信号调理电路进行放大和滤波处理,以提高系统的稳定性和准确性。
常用的信号调理电路包括放大电路、滤波电路等。
2.4 数据通信模块数据通信模块负责将采集到的温度数据通过网络或串口等方式实时传输给上位机。
在本系统中,我们选择了以太网模块ENC28J60与LabVIEW进行数据通信。
3. 软件设计3.1 LabVIEW界面设计LabVIEW是一种图形化编程环境,可以通过拖拽元件来组装控制面板和数据处理模块。
在本系统中,我们通过LabVIEW来实现人机交互、数据实时显示和数据存储等功能。
3.2 数据处理及算法设计在实时温度采集系统中,数据处理和算法设计是十分重要的部分。
根据采集到的温度数据,我们可以进行实时的数据处理、异常检测和报警等操作。
通过结合LabVIEW的图形化编程特点,我们可以方便地设计和调试各种数据处理算法。
4. 系统实施与测试根据以上的硬件和软件设计方案,我们可以开始进行系统的实施和测试工作。
首先,按照硬件设计要求进行电路的搭建和连接,然后进行LabVIEW程序的开发和调试。
基于单片机的温度采集与液晶显示
1 绪论1.1 本课题研究的背景和意义温度,一个在日常生活和生产过程甚至科学实验中普遍而且重要的物理参数。
近年来,随着社会的发展和科技的进步,温度控制系统以及测温仪器已经广泛应用于社会生活的各个领域,尤其是在工业自动化控制中占有非常重要的地位。
人们通过温度计来采集温度,经过人工操作进行加热、通风和降温。
从而来控制温度,但是对于这些控制对象惯性大,滞后性严重,而且还存在有许多不定的因素,从而根本难以建立精确的数学模型。
这样不仅控制精度低、实时性差,而且操作人员的劳动强度大,并且有许多工业生产环节是人们不能直接介入的。
因此智能化已然成为现代温度控制系统发展的主流方向。
针对这一种实际情况,设计个温度控制系统,具有非常广泛的应用前景和实际意义[1]。
随着电子信息技术和微型计算机技术的飞速发展。
单片机技术也得到了飞速的发展。
尤其是在高集成度、高速度、低功耗还有高性能方面取得了巨大的进展。
使得单片机在电子产品当中的应用越来越广泛。
使用单片机对温度进行控制的技术也油然而生。
它不仅可以克服温度控制系统中存在的严重的滞后现象,同时还可以在提高采样频率的基础上很大程度的提高控制的效果和控制的精度。
并且随着技术日益发展和完善,相信越来越能显现出它的优越性。
1.2 目前国内外研究现状在国内外温度控制成了一门广泛应用于很多领域的技术。
像电力、化工、石油、冶金、航空航天、机械制造、粮食存储、酒类生产等。
温度控制系统虽然在国内各行各业的应用已十分广泛,但是从温度控制器的生产角度来看,总体的发展水平仍不高。
跟美德日等先进国家相比,仍有着较大的差距。
“点位”控制和常规的PID控制器占领了成熟产品的主体份额。
但它只可以适用于一般的温度系统控制,而难于控制复杂、滞后、时变的温度控制系统。
此外,适于较高控制场合的智能化、自适应控制仪表,目前在国内还没有取得较好的研究成果。
并且,在形成商品化和仪表控制参数的自整定方面,一些先进国家虽已经有一批成熟的产品。
温度自动采集及显示器设计的硬件连接图和程序流程图.doc
BCD 数码管显示电路
多点温度采集主程序流程:
程序开始
系统初始化 温度数据采集
温度数据处理 送数码显示
系统初始化程序: 温度数据采集程序:
数码显示清零 移向主程序入口
程序指向 A/D0809 首地址
读数 存数 启动 A/D 转换
温度数据处理程序:
等待 A/D 转换完毕 数据处理部分
对数据进行标度变换 将百位数据送显示缓冲
将十位数据送显示缓冲
将个位数据送显示缓冲
送数码显示程序: 指向显示缓冲区地址
将所有结果输出显示
取出百位数,利用表格计 算 LED7 段码,并存结果
取出十位数,利用表格计 算 LED7 段码,并存结果
取出个位数,利用表格计 算 LED7 段码,并存结果
基于ZigBee技术的温度数据采集监测系统的设计
基于ZigBee技术的温度数据采集监测系统的设计一、概述随着物联网技术的飞速发展,无线传感器网络在工业生产、环境监测、智能农业等领域得到了广泛应用。
温度数据采集作为基础且关键的环境参数之一,对于保障生产安全、提高生产效率、实现智能化管理具有重要意义。
ZigBee技术作为一种短距离、低功耗的无线通信技术,凭借其低成本、易部署、高可靠性等特点,已成为无线传感器网络的主流技术之一。
本文旨在设计一种基于ZigBee技术的温度数据采集监测系统。
该系统利用ZigBee无线传感器网络采集环境温度数据,通过数据传输和处理,实现对温度信息的实时监测和分析。
系统设计注重实用性和可靠性,力求在保证数据准确性的同时,降低成本和提高效率。
本论文的主要内容包括:对ZigBee技术和无线传感器网络进行概述,分析其在温度数据采集监测系统中的应用优势详细阐述系统设计的整体架构,包括硬件选型、软件设计、网络通信协议等方面对系统的关键技术和实现方法进行深入探讨,如数据采集、传输、处理及显示等通过实验验证系统的性能和稳定性,并对实验结果进行分析和讨论。
本论文的研究成果将为无线传感器网络在温度数据采集监测领域的应用提供有益参考,对推动相关行业的技术进步和产业发展具有积极意义。
1.1 研究背景随着物联网技术的飞速发展,无线传感器网络(Wireless Sensor Networks, WSN)在环境监测、工业控制、智能农业等领域得到了广泛的应用。
作为WSN的关键技术之一,ZigBee技术因其低功耗、低成本、短距离、低速率、稳定性好等特点,成为实现WSN的重要手段。
温度数据采集监测系统作为WSN的一个重要应用,通过对环境温度的实时监测,为生产生活提供准确的数据支持,对于保障生产安全、提高生活质量具有重要意义。
传统的温度数据采集监测系统多采用有线方式,存在布线复杂、扩展性差、维护困难等问题。
为了解决这些问题,基于ZigBee技术的无线温度数据采集监测系统应运而生。
环境温湿度采集与显示功能开发介绍课件
电源设计:设计系 统电源电路,确保
系统稳定运行
结构设计:设计系统 的结构,确保系统紧 凑、易于安装和维护
软件设计
01
需求分析:明确 功能需求,分析
系统架构
02
软件架构设计: 设计软件架构, 包括模块划分、
接口定义等
03
详细设计:编写 详细设计文档, 包括流程图、数
据字典等
04
编码实现:根据 详细设计文档,
经验总结
难点一:环境温湿度传感器 的选择与安装
解决方案:选择高精度、稳 定性好的传感器,并按照说
明书正确安装。
难点二:数据采集与传输的 稳定性与准确性
解决方案:采用可靠的数据 传输协议,并优化数据采集 算法,提高数据传输的稳定
性与准确性。
难点三:数据显示界面的 设计
解决方案:根据用户需求, 设计简洁、清晰的数据显示 界面,便于用户查看和理解。
04
显示界面设计:设计易于理解和操作的显示
界面,方便用户查看和管理环境温湿度数据
解决方案
01
采用高精度传感器, 提高数据采集精度
04
采用无线传输技术, 实现远程数据传输
02
优化算法,提高数据 处理速度
05
采用可视化界面,实 现数据实时显示
03
采用低功耗设计,降 低系统功耗
06
采用安全防护措施,保 障系统安全稳定运行
应用场景
01
智能家居:实时监测室内温度和湿度,
自动调节空调、加湿器等设备
02
农业大棚:监测农作物生长环境,及时调
整温度和湿度,提高产量和质量
03
工业生产:监测生产车间环境,确保生产
过程符合标准,提高产品质量
基于STM32的温度采集系统设计
基于 STM32的温度采集系统设计摘要:本文利用STM32的一种微型处理器来当主控的CPU,通过使用一个独立的数据采集模块采集数据,在这个基础上实现了智能化的温度数据采取、然后还有传输、处理和显示等功能。
并商讨了该怎么提高系统的速度、性能和拓展性。
数据采集是获取信号对象信息的过程。
关键词:嵌入式系统;ARM;DS18B20温度传感器;STM32;温度采集;数据的处理一、引言当今社会,随着社会的不断发展,科学技术的不断进步,测温仪器在各个领域的广泛应用,智能化服务已成为这个时代温控系统发展的重要趋势。
温度控制在生活中还有在工业领域中涉及的非常多,像室内、供暖机构、天气预告等这些场所的温度控制。
像之前传统的温度控制都是手动的,操作起来很麻烦。
本文系统设计目的,首先它得是实现一种精准度高的系统来采集的温度控制系统,其应用必须得以普及,功能强大。
二、整体系统设计(一)系统方案设计第一个方案:需要使用模拟分立的元件,例如电容、电感、晶体管等非线性元件,观察采集的温度和显示的具体效果,这个方案的设计十分的好理解,特别简单,并且它的操作也不是特别的难,还有个好处,就是它的价格是非常合适的。
缺点就是如果用分立的元件,会造成它的分散性特别的大,对集成数字化是十分不好,而且最后测量之后,会存在很大的误差的,所以这个方案的可行性不太好,尽量不用。
第二个方案:选用PC机作为本次设计的主控机。
利用温度传感器来选用温度的信号,通过信号放大器之后,再送到A/D转换芯片中,然后再一次的经过拥有单片机的检测系统来进行下一步的解析和处理,然后再利用通信线路到PC机的上面,在PC的上面也可以通过对温度信号来进行很多的解析和处理的方式,所以这个方案简单来说还是不错的。
(二)系统工作原理通过了解设计需求方面确定了系统的总体方案,这个整体的系统其实是根据使用单片机、温度的传感器、显示屏的模块、报警器还有按键等五个部分来组成的。
使用者最开始得先将这个温度的报警的值输入到程序里,也就是温度的上下限。
温度采集与显示设计程序详解
温度采集与显示设计程序详解
温度采集与显示设计程序是一种基于单片机的温度测量和显示系统。
在这个系统中,温度传感器用于检测环境温度,并将温度值转换为数字信号,然后单片机通过读取数字信号并进行处理,最终把温度值显示在LCD屏幕上。
下面是详细的程序步骤:
1. 首先需要定义一些常数和变量,如温度传感器引脚、LCD屏幕引脚等。
这些信息可以在程序开头进行定义。
2. 在程序开始时,需要初始化所有的硬件设备,包括温度传感器、LCD屏幕等,以及设置各种参数。
3. 接着,在一个while循环中,程序会不断读取温度传感器的数值,并将其转换为摄氏度或华氏度等单位,根据需求进行选择。
然后,将这些温度值存储在变量中。
4. 最后,将温度值显示在LCD屏幕上。
这可以通过使用LCD库来实现。
在显示温度之前,还可以在屏幕上打印一些其他的信息,如“当前温度是:”。
5. 在每次循环结束时,程序会等待一段时间,以便给温度传感器充分的时间来获取新的温度值。
这个时间可以通过设置延迟函数来实现,一般需要根据具体的传感器来确定。
6. 最后,在程序结束时需要释放所有的资源,包括关闭LCD屏幕和温度传感器等设备。
以上是温度采集与显示设计程序的基本步骤。
在实际应用中,还
需要考虑一些特殊情况,如错误处理、异常处理等。
总之,一个好的程序应该能够稳定地运行并准确地测量温度值,并能够及时地显示在LCD屏幕上。
单片机(基于AT89C51的温度采集与显示系统设计)
基于AT89C51的温度采集与显示系统设计摘要:以AT89C51单片机为核心控制元件介绍了与DS18B20和MAX7219显示驱动组成的温度采集系统的设计方案利用单片机空余I/O口以及上述元件的特性,构成该系统。
通过Proteus进行仿真。
关键词:温度采集,AT89C51,DS18B20,MAX7219目录1、系统概述……………………………………………………………….2、硬件介绍……………………………………………………………….3、软件设计……………………………………………………………….4、仿真结果……………………………………………………………….5、小结…………………………………………………………………….6、参考文献……………………………………………………………….1、系统概述温度传感器选用目前常用的数字温度传感器DS18B20,采用数码LED显示,显示驱动为MAX7219,首先设计系统的总体原理图如下:系统可以简单地分为为5个模块,由外部提供8V-24V直流电源供电。
电源模块将输入8-24V的电源电压转换为5V,为系统中的芯片供电,可以使用7805等常用的三端稳压器芯片;温度传感器采集温度信号,温度传感器有模拟输出和数字输出两种形式,这里选择具有数字输出的DS18B20;单片机是系统的核心,选用AT89C51;系统采用LED数码显示器显示温度值,LED显示屏采用独立的显示驱动芯片MAX7219,单片机将待显示的字符写入MAX7219后,MAX7219将会动态的刷新显示内容,无需占用单片机过多的资源。
尽管DS18B20的分辨率可已达到0.0625°C,但测量精确度为0.5°C,因此设计4位数的LED数码显示管就可以了,显示3位整数,1位小数。
2、硬件介绍:1、数字温度传感器DS18B20DS18B20数字温度计提供9位-24位(二进制)温度读数,以指示器件的温度,数据经过单线接口送入DS18B20或从DS18B20送出,因此从主机CPU到DS18B20仅需要一条DQ。
温度采集与控制系统设计毕业论文.doc
第一章绪论本章介绍了温度采集与控制系统设计的背景与意义,通过本章,可以了解温度传感器和单片机的发展状况以及相关技术的发展状况。
1.1 课题背景与意义温度控制无论是在工业生产过程中,还是在日常生活中都起着非常重要的作用,而在当今,我国农村锅炉取暖,农业大棚等多数都没有实时的温度监测和控制系统,还有部分厂矿,企业还一直沿用简单的温度设备和纸质数据记录仪,无法实现温度数据的实时监测与控制。
随着社会经济的高速发展,越来越多的生产部门和生产环节对温度控制精度的可靠性和稳定性等有了更高的要求,传统的温度控制器的控制精度普遍不高,不能满足对温度要求较为苛刻的生产环节。
人们对于温度监测技术的要求日益提高,促进了温度传感器技术的不断发展进步。
温度传感器主要经历了三个发展阶段:模拟集成温度传感器、模拟集成温度控制器、智能温度传感器。
温度传感器的发展趋势:进入21世纪后,温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片机测温系统等高科技的方向迅速发展。
自从1976年Intel公司推出第一批单片机以来,80年代的单片机技术进入了快速发展的时期。
近年来,随着大规模集成电路的发展,单片机继续朝着快速,高性能的方向发展,从4位、8位单片机发展到16位、32位单片机。
单片机主要用于控制,它的应用领域遍及各个行业,大到航天飞机,小至日常生活中的冰箱、彩电,单片机都可以大显其能。
单片机在国内的主要的应用领域有三个:第一是家用电器业,例如全自动洗衣机、智能玩具;第二是通讯业,包括手机、电话和BP机等等;第三是仪器仪表和计算机外设制造,例如键盘、收银机、电表等。
除了上述应用领域外,汽车、电子行业在外国也是单片机应用很广泛的一个领域。
它成本低、集成度高、功耗低、控制功能多、能灵活的组装成各种智能控制装置,由它构成的智能仪表解决了长期以来测量仪表中的误差的修正、线性处理等问题。
11.2 本课题的研究内容与目标设计以STC89C52单片机为系统控制核心,结合DS18B20温度传感器、12864液晶显示、BM100无线模块、报警、升温和降温指示灯几部分电路,构成了一整套温度检测,报警及控制系统。
基于LM35的单片机温度采集显示系统
基于LM35的单片机温度采集显示系统王思淼;陈战胜;胡正坤【期刊名称】《佳木斯大学学报(自然科学版)》【年(卷),期】2012(000)006【摘要】基于 AT89S51单片机开发了温度控制采集显示系统,着重介绍了系统核心硬件设计和软件设计。
利用 LM35温度传感器采集温度、经 LM358放大10倍后输入到 A/D 采样电路,由TLC549将数字值传送给 AT89S52单片机,最后由单片机驱动数码管显示温度。
测试结果表明,在外部环境温度变化较大时该系统响应时间短,灵敏度较高,工作稳定可靠。
% A temperature control acquisition and display system was developed based on AT 89S51 single-chip microcomputer(SCM).The core hardware design and software design were mainly discussed .The system uses LM35 temperature sensor to collect temperature .The acquisition temperature was input into the A /D sam-pling circuit by magnified 10 times through LM358, the digital value was passed to the AT89S51 SCM by TLC549 , and the digital tube was used to display temperature .Furthermore, the results demonstrate the system have short response time, high sensitivity, stable and reliable operation when large temperature changes in the external environment.【总页数】4页(P900-902,906)【作者】王思淼;陈战胜;胡正坤【作者单位】北京联合大学应用科技学院,北京 102200;北京联合大学应用科技学院,北京 102200; 北京交通大学计算机与信息技术学院,北京 100044;北京联合大学应用科技学院,北京 102200【正文语种】中文【中图分类】TP277【相关文献】1.基于935单片机的多点温度采集及显示系统的设计 [J], 裴勇生2.基于Android系统与单片机的无线蓝牙温度采集系统 [J], 常喜;贺五洋;王立忠;车艳蕊;王广德3.基于ARM7和LM35的温度采集系统设计 [J], 沈瑞;于海勋;王耀文4.一种基于8051单片机的温度采集显示系统设计 [J], 魏磊;刘曌5.基于单片机的多点定时温度采集与图形显示 [J], 汤正新;刘哲;方成栋因版权原因,仅展示原文概要,查看原文内容请购买。
温度采集与显示系统讲解
温度采集与显示系统的设计姓名:学号:摘要:由于人体不能精准的感受到环境中的温度,而温度采集系统能够准确、及时、全面地反映环境质量现状及发展趋势,因而本论文设计了基于8051单片机控制技术的温度采集与显示系统。
该系统通过温度传感器将检测到的温度信号转换成电压信号,该模拟量电压经8路AD0809输出数字量电压值送给单片机。
根据AD值与温度之间的关系利用查表和插值法得出温度值。
并且这些数值都能实时显示在显示屏上。
一、设计内容及意义温度采集与显示系统在人们的日常生活中的应用越来越广泛,如花卉栽培温湿度控制、大棚温室控制系统、粮库温室控制系统、现代化居室温湿度控制等等。
随着半导体技术的不断发展,热敏电阻作为一种新型感温元件应用越来越广泛。
他具有体积小、灵敏度高、重量轻、热惯性小、寿命长以及价格便宜等优点。
单片机在测控系统中的作用是对信息进行处理、运算和发出控制命令等,但所要处理的信息是从外界拾取的,拾取的信号可以分为开关量和模拟量两种。
开关量只需放大、整形和电平转换等处理后,即可直接送入单片机系统。
但输入量如果是模拟量,处理的复杂程度就大大地增加了,由于模拟输入信号一般很微弱,需要进行放大,对于一个测控范围较大的仪器,还要有多级可变放大电路。
另外,在放大有用信号的同时,干扰信号也被同时放大,还要进行必要的滤波处理。
所以要设计出一个真正实用的单片机测控系统,必须先设计好适用的前向通道。
根据被测对象输出信号的类型、大小、数量不同,前向通道的结构类型也各不相同。
本系统基于51单片机设计的温度采集与显示系统是A/D转换器、热敏电阻温度传感器、LCD显示屏及相应接口的综合应用。
二、整体设计原理及方案图2.1 整体系统框图该系统是以NTC型热敏电阻为传感器的信号采集端,将温度信号转换成电压信号,再经ADC0809进行模数转换,进一步将电压信号转换成单片机可以处理的00H~FFH数字信号,并保证温度与数字信号实时同步,经单片机8051进行数据处理(查表和线性插值法),再进一步转换成与实际温度相符合的数字信号,并在LCD显示屏上实时跟踪显示。
温度数据采集系统设计
温度数据采集系统论文目录一、问题的提出二、系统功能分析三、硬件设计1、单片机2、温度传感器3、压力传感器4、程控放大器5、多路模拟开关6、A/D转换器7、三态缓冲器8、LED显示数码管9、简易键盘10、声光报警器11、总电路图四、软件设计1.程序流程图2.程序设计五、结论一、问题提出设计一个以单片机为核心的数据采集系统对温度、压力等参数进行实时采集与处理性能指标:1)温度:0℃-120℃,超范围时声光报警。
2)温度检测精度:0.5℃3) 压力检测范围:0Pa—3.92×10^5Pa;4)压力检测精度:±1.96×10^3Pa5)用9位LED显示数值,其中4位显示温度值(3位整数,1位小数),1位显示温度代号T,1位显示压力代号,3位显示压力值6)每分钟检测一次7)A/D转换器(不带三态缓冲)二、系统功能分析本系统为温度压力数据采集系统。
系统需求功能如下:1)温度测量范围为0℃-120℃,压力测量范围为0Pa—3.92×10^5Pa2)温度测量精度0.5℃,压力测量精度为±1.96×10^3Pa3)每分钟采样一次4)超温度范围或压力范围时以声、光的方式发生报警信号5)有简单的键盘功能和数码显示功能6)其他功能三、硬件选择与设计1、单片机:(选用AT89C52)AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。
AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。
温度 采集
温度采集
温度采集是获取环境或设备温度信息的过程,这对于监测和控制系统至关重要。
在许多工业、科研和日常生活中,准确的温度控制和记录对于保证操作效率、确保安全和提高舒适度是必不可少的。
进行温度采集时,首先需要选择合适的温度传感器。
常见的温度传感器包括热电偶、热敏电阻(如PT100或NTC)、红外传感器等。
这些传感器各有特点,比如热电偶适用于高温测量,而热敏电阻则适合常温下的精确测量。
温度数据采集可以通过手动或自动方式进行。
手动采集通常涉及使用手持式温度计或传感器读取并将数据记录下来。
自动采集则通过安装传感器并与数据采集器相连,连续或周期性地记录温度信息。
现代的数据采集系统往往与计算机系统集成,能够实时监控、存储并分析温度数据。
在自动化系统中,温度数据常用于监控和控制过程,比如调节房间的温度、监测机器的工作状态或者化工反应的温度。
此外,温度数据的长期记录也对科学研究和技术分析具有重要价值。
随着物联网技术的发展,远程温度监控变得越来越普遍。
这使得用户可以在任何地点通过互联网访问温度数据,并可以远程控制相关设备。
例如,智能家居系统中的温度采集可以用来自动调节室内空调,以保持舒适的居住环境。
温度采集是一个多学科交叉的领域,它结合了传感器技术、数据采集与处理、通信技术和控制系统设计等多个方面。
随着技术的不断进步,温度采集的应用将更加广泛和智能化。
第10章 AT89C51单片机应用实例【精选】
10.1 单片机系统设计方法
单片机系统本身就是一个硬件和软件结合非常紧密的系统, 要求设计者具有硬件设计和软件设计方面的综合能力,具有对单片机 以及各种外围设备的接口电路和驱动电路的应用能力。
单片机应用系统的设计应按照以下几个步骤来进行。
总体方பைடு நூலகம்设计
可行性分析、单片机的选型、对系统各项功能的划分。
系统硬件设计
各个模块的硬件部分设计、硬件系统功能框图、电路图及PCB板
系统软件设计
单片机系统的软件设计
系统调试
可使用仿真器进行系统功能的调试
系统完善与升级
10.2 温度采集与显示系统的设计
电源输入 8V~24VDC
电源模块
显示驱动
LED显示屏
温度传感器
单片机
温度采集与显示系统原理框图
第十章at89c51单片机应用实例101单片机系统设计方法102温度采集与显示系统的设计1021温度采集与显示系统原理1022一总线1wire数字温度传感器ds18b201023at89c51单片机与ds18b20的接口1024at89c51单片机读取ds18b20温度值的编程1025显示驱动芯片max72191026at89c51单片机与max7219的接口与编程1027温度的采集处理与显示程序101单片机系统设计方法单片机系统本身就是一个硬件和软件结合非常紧密的系统要求设计者具有硬件设计和软件设计方面的综合能力具有对单片机以及各种外围设备的接口电路和驱动电路的应用能力
第十章 AT89C51单片机应用实例
10.1 单片机系统设计方法 10.2 温度采集与显示系统的设计
10.2.1 温度采集与显示系统原理 10.2.2 一总线(1-Wire)数字温度传感器DS18B20 10.2.3 AT89C51单片机与DS18B20的接口 10.2.4 AT89C51单片机读取DS18B20温度值的编程 10.2.5 显示驱动芯片MAX7219 10.2.6 AT89C51单片机与MAX7219的接口与编程 10.2.7 温度的采集处理与显示程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
温度采集与显示系统的设计:学号:摘要:由于人体不能精准的感受到环境中的温度,而温度采集系统能够准确、及时、全面地反映环境质量现状及发展趋势,因而本论文设计了基于8051单片机控制技术的温度采集与显示系统。
该系统通过温度传感器将检测到的温度信号转换成电压信号,该模拟量电压经8路AD0809输出数字量电压值送给单片机。
根据AD值与温度之间的关系利用查表和插值法得出温度值。
并且这些数值都能实时显示在显示屏上。
一、设计容及意义温度采集与显示系统在人们的日常生活中的应用越来越广泛,如花卉栽培温湿度控制、大棚温室控制系统、粮库温室控制系统、现代化居室温湿度控制等等。
随着半导体技术的不断发展,热敏电阻作为一种新型感温元件应用越来越广泛。
他具有体积小、灵敏度高、重量轻、热惯性小、寿命长以及价格便宜等优点。
单片机在测控系统中的作用是对信息进行处理、运算和发出控制命令等,但所要处理的信息是从外界拾取的,拾取的信号可以分为开关量和模拟量两种。
开关量只需放大、整形和电平转换等处理后,即可直接送入单片机系统。
但输入量如果是模拟量,处理的复杂程度就大增加了,由于模拟输入信号一般很微弱,需要进行放大,对于一个测控围较大的仪器,还要有多级可变放大电路。
另外,在放大有用信号的同时,干扰信号也被同时放大,还要进行必要的滤波处理。
所以要设计出一个真正实用的单片机测控系统,必须先设计好适用的前向通道。
根据被测对象输出信号的类型、大小、数量不同,前向通道的结构类型也各不相同。
本系统基于51单片机设计的温度采集与显示系统是A/D转换器、热敏电阻温度传感器、LCD显示屏及相应接口的综合应用。
二、整体设计原理及方案图2.1 整体系统框图该系统是以NTC型热敏电阻为传感器的信号采集端,将温度信号转换成电压信号,再经ADC0809进行模数转换,进一步将电压信号转换成单片机可以处理的00H~FFH数字信号,并保证温度与数字信号实时同步,经单片机8051进行数据处理(查表和线性插值法),再进一步转换成与实际温度相符合的数字信号,并在LCD显示屏上实时跟踪显示。
1、显示模块方案选择:方案一:数码管显示,采用动态扫描的方式。
优点是编程容易,硬件电路调试简单,显示两部分也比较好控制。
缺点是显示的容不够丰富,本系统需要实时显示电压AD值,放大后的十进制值以及温度值,实验台上提供的数码管数就达不到实时显示的效果。
方案二:用LCD液晶显示器显示,优点是功耗低,还能显示更多的字符,有着良好的人机界面,缺点是控制比较复杂。
实验台上提供的是OCMJ2*8的中文模块系列液晶显示器,含汉字字库和英文字库,可以实汉字、ASCII码的同屏显示,能够达到实时显示的效果。
2、AD0809设计AD0809型8位MOS型A/D转换器,可实现8路模拟信号的分时采集,片有8路模拟选通开关,以及相应的通道地址锁存用译码电路,其转换时间为100微秒左右。
图2.2 AD0809逻辑图由图2.2可知,该输出公式为:255⨯--=-+-REFREF REFIN V V V V AD (实验台上基准电压为5V )图2.3 AD0809时序图如图2.3,其工作过程是:1) 在IN0-IN7上可分别接上要测量转换的8路模拟量信号。
该系统只需要将热敏电阻温度传感器的电压输出端接IN0。
2) 将ADDA -ADDC 端给上代表选择测量通道的代码。
该系统选通通道0。
3)将ALE由低电平置为高电平,从而将ADDA-ADDC送进的通道代码锁存,经译码后通道0的模拟量送给部转换单元。
4)给START一个正脉冲。
当上升沿时,所有部寄存器清零。
下降沿时,开始进行A/D转换;在转换期间,START保持低电平。
5)EOC为转换结束信号。
在上述的A/D转换期间,可以对EOC进行不断测量,当EOC为高电平时,表明转换结束。
否则,表明正在进行A/D转换。
6)当A/D转换结束后,将OE设置为1,这时D0-D7的数据便可以读取了。
OE=0,D0-D7输出端为高阻态,OE=1,D0-D7端输出转换的数据。
3、数据处理部分----查表和线性插值法热敏电阻为一种阻值随温度变化的电阻,按其变化关系可分为两类:正温度系数(简称PTC)和负温度系数(简称NTC)。
PTC元件的阻值随温度的上升而上升,NTC元件的阻值随温度的上升而下降。
本模块中使用的为NTC 型热敏电阻,在常温(25℃)下其阻值为10K,其阻值与温度的关系、阻值与电压的关系、电压值与电压AD值得关系如下表所示:在上面列的表格中,温度与阻值的关系是已知的,电压是根据式3-1得出的,电压的AD值是根据式2-1得出的。
电压V与电压AD的关系:195)1000*(VAD (2-1)图2.4 电压AD 值与温度关系折线图根据图2.4可用线性插值法在线性区间建立函数关系,随着电压的改变输出温度值。
三、硬件电路图图3.1 热敏电阻温度采集电路图图3.1中J1、J2、J3分别对应于模块上的V1、Vzero 、Vout 插孔,R3对应与 ZERO 电位器,用于偏置电压调节;R9对应于GAIN 电位器,用于增益调节。
使用时,可先将电路增益调节为1,具体做法如下:调节ZERO 电位器,使Vzero=0V ,用万用表分别测量V1、Vout 端电压,调节GAIN 电位器,使V1=Vout ,此时电路增益为1。
由此可得出电压与电阻之间的关系:1015010110*52121+=+=+•=R R R R R VCC V (3-1)四、程序设计流程图图4.1 主函数程序流程图图4.2 LCD显示流程图图4.3 A/D转换流程图图4.3 中断服务程序五、问题和不足出现的问题及解决方法:在数据处理部分,之前是建立电压值V与温度值T的关系来显示温度,发现再怎么细分线性部分,输出的温度误差还是很大,而且显示的温度值一直在跳变。
于是决定找电压值AD与温度之间的关系,这样减小了误差,显示的温度值也几乎不再跳变了。
不足之处:实验台提供的可调输出电压的围是0-4.5V,正确来说显示的温度围应为-35C︒至90C︒。
这样选定的线性区间才能较小误差,更趋近与表格提供的数值。
所以,更细分的取线性部分得到的数值会更好。
六、总结通过此次实习,使我对所学知识进行了实践。
掌握了A/D转换芯片性能及编程方法、单片机系统中扩展LCD显示的方法以及温度传感器和LCD的工作原理及综合应用。
在数据处理部分学会了线性插值法。
在编写程序时,也发现对一些程序中的函数的处理不够合理,在自己的多次运行下,还是能够实现温度监控的功能。
本次单片机实训让我很有成就感,并对以前所学的单片机知识做了一个小结。
附件#include <reg51.h>#include <stdio.h>#include <intrins.h>#include <absacc.h>#define uchar unsigned char#define ulong unsigned long#define uint unsigned int#define Port_address XBYTE[0X0CFA0]sbit REQ=P3^5; //请求信号,高电平有效sbit BUSY=P3^4; //忙检测sbit EOC=P3^2;//转换结束信号,EOC=1-转换结束,EOC=0-正在转换void delay1ms(uint time) //延迟子程序1{uint ii;uint jj;for (ii=0;ii<time;ii++)for(jj=0;jj<200;jj++);}void delay(uint time) //延迟子程序2{uint ii;uint jj;for (ii=0;ii<time;ii++)for(jj=0;jj<110;jj++);}void write_dat(uchar dat) //OCMJ2X8写时序操作{if(BUSY==0){delay1ms(1);P1=dat;REQ=1;delay1ms(1);REQ=0;}}void write_chinese(uchar x,uchar y,uchar h,uchar l) //OCMJ2X8写汉字操作{write_dat(0xF0);//写汉字命令write_dat(x);//写横坐标(取值围:00-07,02-09,00-09)write_dat(y);//写纵坐标(取值围:00-01,00-03,00-04)write_dat(h);//写汉字码-高位write_dat(l);//写汉字码-低位}void write_ASCII_8x16(uchar x,uchar y,uchar a) //OCMJ2X8写ASCII字符(8x16)操作{write_dat(0xF9);//写ASCII字符(8x16)命令write_dat(x);//写横坐标(取值围:00-0F,04-13,00-13)write_dat(y);//写纵坐标(取值围:00-1F,00-3F,00-4F)write_dat(a);//写ASCII码}void write_point(uchar x,uchar y) //OCMJ2X8 画点(1x1)操作{write_dat(0xF2);//写画点命令write_dat(x);//写横坐标(取值围:00-7F,20-9F,00-9F)write_dat(y);//写纵坐标(取值围:00-40,00-40,00-40)}void clear_lcd() //OCMJ2X8 清屏操作{write_dat(0xF4);}void lcd_init(){REQ=0;BUSY=1;clear_lcd();}/********电压AD显示函数*******/void display_digit(uint date) //分离任意三位数,给LCD送数{uchar bai,shi,ge;bai=date/100;shi=date%100/10;ge=date%10;write_ASCII_8x16(0,16,0x41); //显示"AD"write_ASCII_8x16(1,16,0x44);write_ASCII_8x16(2,16,0x3A); //显示":"write_ASCII_8x16(3,16,0x30+bai);write_ASCII_8x16(4,16,0x30+shi);write_ASCII_8x16(5,16,0x30+ge);}/*******电压V显示函数*********/void display_voltage(uint date) //分离任意五位数,给LCD送数{uchar wan,qian,bai,shi,ge;wan=date/10000;qian=date%10000/1000;bai=date%10000%1000/100;shi=date%10000%1000%100/10;ge=date%10;write_chinese(0,0,18,41); //显示"采集电压"write_chinese(1,0,28,15);write_chinese(2,0,21,71);write_chinese(3,0,49,25);write_ASCII_8x16(8,0,0x3A); //显示":"write_ASCII_8x16(9,0,0x30+wan);write_ASCII_8x16(10,0,0x2E); //显示小数点write_ASCII_8x16(11,0,0x30+qian);write_ASCII_8x16(12,0,0x56); //显示电压符号V }/******温度值显示函数**********/void display_temperature(int date) //分离任意四位数,方便给LCD送数{uchar qian,bai,shi,ge;write_chinese(3,1,46,34);write_chinese(4,1,22,40); //显示"温度"if(date>=0){qian=date/1000;bai=date%1000/100;shi=date%1000%100/10;ge=date%10;write_ASCII_8x16(10,16,0x2b); //显示正号+ write_ASCII_8x16(11,16,0x30+qian);write_ASCII_8x16(12,16,0x30+bai);write_ASCII_8x16(13,16,0x2E); //显示小数点write_ASCII_8x16(14,16,0x30+shi);write_ASCII_8x16(15,16,0x30+ge);}if(date<0){date=-date;qian=date/1000;bai=date%1000/100;shi=date%1000%100/10;ge=date%10;write_ASCII_8x16(10,16,0x2d); //显示负号- write_ASCII_8x16(11,16,0x30+qian);write_ASCII_8x16(12,16,0x30+bai);write_ASCII_8x16(13,16,0x2E); //显示小数点write_ASCII_8x16(14,16,0x30+shi);write_ASCII_8x16(15,16,0x30+ge);}}/*****中断初始化函数*********/void config(void){IT0=1; //INT0下降沿中断EX0=1; //允许INT1中断EA=1;}void AD_init(void){Port_address=0x00; //虚写一次,启动通道0 }/***********AD转换函数**********/uchar AD(void){uchar ad_date; //保存经AD转换后的数据ad_date=Port_address;return ad_date; //返回数据}/*******温度处理函数***********/int deal_wendu(){int v,t;uint da;da=AD();v=da*195;if(da>=14&&da<=24){t=da*100-4400;}if(da>=24&&da<=39){t=67*da-3600;}if(da>=39&&da<=60){t=48*da-2800;}if(da>=60&&da<=86){t=38*da-2300;}if(da>=86&&da<=142){t=36*da-2100;}if(da>=142&&da<=167){t=40*da-2700;}if(da>=167&&da<=188){t=48*da-4000;}if(da>=188&&da<=209){t=da*59-5341;}if(da>=209&&da<=248){t=46*da-3341;}if(da>=248){t=15000;}return t;}void main(){int r=0;uint v,da;config(); //中断初始化lcd_init(); //显示屏初始化AD_init(); //启动通道0delay(700);clear_lcd();delay(700);write_chinese(0,0,46,34); //显示"温度采集系统"write_chinese(1,0,22,40);write_chinese(2,0,18,41);write_chinese(3,0,28,15);write_chinese(4,0,47,21);write_chinese(5,0,45,19);delay(700);clear_lcd();delay(700);while(1){if(r==0){da=AD();v=da*195;display_voltage(v);display_digit(da);display_temperature(deal_wendu());AD_init();}}}void int0(void) interrupt 0{int r=1;EX0 = 0;EX0 = 1;}。