基于MSP430的温度控制报警系统
- 格式:doc
- 大小:203.00 KB
- 文档页数:21
基于MSP430单片机的温度测控装置的设计与开发设计与开发基于MSP430单片机的温度测控装置一、引言随着科技的不断进步,温度测控装置在生活和工业中扮演着重要的角色。
本文将介绍基于MSP430单片机的温度测控装置的设计与开发。
该装置可以用于实时监测环境温度,并根据设定的阈值控制温度。
二、硬件设计1.传感器选择:本设计采用温度传感器DS18B20。
它是一种数字式温度传感器,通过一根串行线来与单片机通信。
2.电路连接:将传感器与MSP430单片机连接。
传感器的VCC引脚接单片机的3.3V电源,GND引脚接地,DQ引脚接到单片机的GPIO引脚。
3.LCD模块:为了显示当前温度和控制参数,我们需要一个LCD模块。
将LCD模块的数据引脚接到单片机的GPIO引脚。
4.电源:设计一个适当的电源电路,以提供所需的电压和电流。
三、软件设计1.硬件初始化:在程序开始时,初始化MSP430单片机的GPIO引脚,配置传感器引脚为输入模式和LCD数据引脚为输出模式。
2.温度采集:通过传感器的引脚与单片机通信,获取当前温度数据。
传感器采用一线式通信协议,在读取温度数据之前,先向传感器发送读取命令,然后从传感器接收数据。
单片机通过GPIO引脚进行数据的收发。
3.温度显示:将获取到的当前温度数据通过LCD模块显示出来。
4.温度控制:设定一个温度阈值,当实际温度超过阈值时,单片机控制继电器等设备进行温度调节。
可以采用PID控制算法,根据当前温度与设定温度的差异,调整控制设备的输出。
5.程序循环:通过一个无限循环来保持程序运行。
四、测试与验证1.硬件测试:对硬件电路进行测试,确保传感器和LCD模块的接线正确,电源电压稳定。
2.软件测试:通过模拟不同温度值,确认温度采集、显示和控制功能正常。
3.综合测试:将温度测控装置放置在实际环境中,观察温度采集和控制性能,根据需要进行调整。
五、结论本文设计与开发了基于MSP430单片机的温度测控装置。
2012年5月农机化研究第5期基于M SP430的温室大棚温度远程监控系统赵方1,吴必瑞2,卢青波h3(1.郑州职业技术学院电气电子工程系,郑州450121;2.宁德师范学院物理与电气工程系。
福建宁德352100;3.太原科技大学,太原030024)摘要:研制了一种温室大棚的温度远程监控系统,系统以M sP430F149为控制终端的核心控制器,采用D s l8820作为温度传感器,利用G SM通信网络传输温度、故障等信息至农户手机或监控中心上位机。
同时,详细阐述了系统温度采集、控制终端系统、G sM短信息系统和上位机监控系统等硬件设计思想。
试验样机在某农户的蔬菜大棚中进行了试验,结果表明:系统能很好地完成温度控制、故障报警、G SM短信息传输功能,具有操作简单、智能化和人机界面友好等特点,在农业领域有良好的推广价值和应用前景。
关键词:温室大棚;温度远程监控;M SP430F149;G s M;PC机监控中图分类号:s625.5+1文献标识码:A文章编号:1003—188×(2012105一们82—060引言近年来,全国都在想方设法增加农民收入,而大棚蔬菜生产已成为增加农民收入的有效途径,目前我国温室大棚总面积占全球的80%,而温室大棚管理的一个重要因素就是温度的控制。
将温室大棚的温度控制在适合蔬菜生长的范围内是大棚种植的关键,温度太低,会使大棚内蔬菜停止生长甚至冻死;温度太高也会使蔬菜的生长受到影响,并且不同蔬菜品种及其不同生长期所需要的温度也不同且要求稳定在一定的温度范围内。
经多方实地考察,目前温室大棚的温度控制基本都是在大棚内装设温度计,人工不断检查温度计,根据温度计的温度人工去启动加热设备或制冷设备。
这种仅靠人工控制的方法既耗人力,又容易出错。
因此,要求有一种能对温室温度的检测具有足够精度和实时控制的远程温度控制系统来代替人工操作,从而实现农业生产的智能化和现代化。
随着G sM通信网络的大面积普及以及单片机控制技术的发展,对温室大棚温度的实时远程监控已成为可能,本文采用智能控制技术、单片机和检测技术、G sM短信息技术和R S232串行通信技术及V c++技术等研制了基于M SP430F149单片机的温室温度远程监控及实时控制系统。
微控制器应用及系统设计课程设计报告南京理工大学2010 年 5 月目次1 引言 (3)2 系统总体设计 (3)2.1 系统组成结构及工作原理 (3)2.2 系统工作流程 (3)2.3 系统核心器件选型 (4)3 系统硬件设计 (4)3.1 电源模块设计 (4)3.2 LED显示模块设计 (4)3.3 键盘输入模块设计 (5)3.4 温度采集模块设计 (5)3.5 报警模块设计 (6)4 系统软件设计 (6)4.1 系统软件总体结构及总流程图 (7)4.2 LED显示模块程序设计 (9)4.3 键盘输入模块程序设计 (9)4.4 温度采集模块程序设计 (10)4.5 报警模块程序设计 (10)4.6 主模块程序设计 (10)5 系统调试与结果分析 (10)5.1 系统调试步骤 (10)5.2 遇到的问题及解决方案 (12)5.3 实验结果 (13)6 结论与心得体会 (13)参考文献 (13)附录 (14)1 引言温度是一个非常重要的物理量,因为它直接影响燃烧、化学反应、发酵、烘烤、煅烧、蒸馏、浓度、挤压成形、结晶以及空气流动等物理和化学过程。
温度控制失误就可能引起生产安全、产品质量、产品产量等一系列问题。
因此对温度的检测的意义就越来越大。
温度采集控制系统在工业生产、科学研究和人们的生活领域中,得到了广泛应用。
在工业生产过程中,很多时候都需要对温度进行严格的监控,以使得生产能够顺利的进行,产品的质量才能够得到充分的保证。
使用自动温度控制系统可以对生产环境的温度进行自动控制,保证生产的自动化、智能化能够顺利、安全进行,从而提高企业的生产效率。
温度的检测与控制是工业生产过程中比较典型的应用之一,随着传感器在生产和生活中的更加广泛的应用,利用新型单总线式数字温度传感器实现对温度的测试与控制得到更快的开发。
现在的生活中,所用到的电器,家具设备,包括工业产品等对温度的要求日益增高,灵敏的温度控制报警系统已成为日常生活中必不可少的产品。
例如冰箱的温控系统,锅炉等等,无不都用到了这一功能部件。
对于此,我们设计了基于MSP430F149单片机的温度控制报警系统,来模拟实现现实中的温度控制系统。
此系统具有设计和布线简单,结构紧凑,体积小,重量轻,抗干扰能力强,性价比高,扩展方便,在大型仓库,工厂,智能化建筑等领域的多点温度检测中有广阔的应用前景。
2 系统总体设计2.1系统组成结构及工作原理该系统主要由5大模块组成,其中包括DS18B20温度传感器,MSP430F149微控制器,LED显示模块,4X4矩阵键盘输入模块,报警模块5大部分组成。
由温度传感器负责数据采集,经微处理器转换后由LED显示模块输出,同时由键盘模块负责输入温度报警的上下限。
当到达设定的温度限定值时就报警。
其组成框图如下所示:2.2 系统工作流程首先设定温度报警的上下限值,然后由温度传感器进行温度数据的采集,当微处理器检测到温度超过设定的范围值时就实行报警,提醒用户做相关操作。
2.3 系统核心器件选型MSP430F149单片机,DS18B20温度传感器,6个LED数码显示管,4x4矩阵键盘。
3 系统硬件设计3.1 电源模块设计整个系统采用3.3V供电,考虑到硬件系统对电源要求具有稳压功能和波纹小等特点,其使用LT1117芯片,将电压输出为3.3V。
其硬件电路原理图如下:3.2 LED显示模块设计考虑到系统的成本,同时由于综合设计的时间限制,我们采用了最简单的LED显示方式,这样的方式能满足该系统的要求,同时也可以减低系统的成本。
LED 显示器是由8只发光二极管构成的8段数码显示显示器。
其中a——g用于构成7笔字形,h用于构成小数点。
本次设计中采用的是共阳极数码管,当其接低电平时点亮相应LED灯。
其硬件原理图如下:其中共有6位,温度显示时显示2位整数,四位小数。
其位选端分别与MSP430F149的P6.2——P6.7相连,显示端分别与单片机的P4.0——P4.7相连。
3.3 键盘输入模块设计键盘输入电路主要用于输入数据,从而实现人机交互。
该系统的键盘设计是采用扫描方式实现的矩阵键盘。
其电路原理图如下:由上图可以看出该矩阵键盘由行线和列线组成,P1.0——P1.3为行线,P5.4——P5.7为列线。
键盘的行线作为键盘的控制输出端,键盘的列线作为键盘的输入端。
同时考虑到P1端口具有中断功能,因此键盘的处理程序可以由中断产生。
键盘的列线通过上拉电路将两个管脚拉高,这样在没有按键按下的情况下,该两个管脚的电平为高电平,如果有按键按下时,相应的列线管脚为低电平,这时通过设置P1口为中断方式,低电平就出发中断而进入中断服务子程序,从而获得输入的数据。
同注意到,键盘的扫描时间是很短的,仅仅几微妙的时间,然而按键的时间一次至少需要几十毫秒,所以只要有键按下的话是都可以被扫描到的,但是按键按下时有一定的时间抖动,一定要加入键盘的抖动处理。
3.4 温度采集模块设计本次系统设计采用的温度转换模块采用的是DS18B20温度传感器,其原理图如下:其只有一个端口要接,与单片机的P3.0口相接,简化了分布式温度传感应用无需外部元件可用数据总线供电,电压范围为3.0 V至5.5 V 无需备用电源测量温度范围为-55 ° C至+125 ℃。
华氏相当于是-67 ° F到257华氏度-10 ° C至+85 ° C范围内精度为±0.5 ° CDS18B20的初始化:(1)先将数据线置高电平“1”。
(2)延时(该时间要求的不是很严格,但是尽可能的短一点)(3)数据线拉到低电平“0”。
(4)延时750微秒(该时间的时间范围可以从480到960微秒)。
(5)数据线拉到高电平“1”。
(6)延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。
据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。
(7)若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。
(8)将数据线再次拉高到高电平“1”后结束。
DS18B20的写操作:(1)数据线先置低电平“0”。
(2)延时确定的时间为15微秒。
(3)按从低位到高位的顺序发送字节(一次只发送一位)。
(4)延时时间为45微秒。
(5)将数据线拉到高电平。
(6)重复上(1)到(6)的操作直到所有的字节全部发送完为止。
(7)最后将数据线拉高。
DS18B20的读操作:(1)将数据线拉高“1”。
(2)延时2微秒。
(3)将数据线拉低“0”。
(4)延时15微秒。
(5)将数据线拉高“1”。
(6)延时15微秒。
(7)读数据线的状态得到1个状态位,并进行数据处理。
(8)延时30微秒。
3.5 报警模块设计该部分电路主要是驱动一个蜂鸣器,这样只需要将蜂鸣器的一段接地,另一端与单片机进行相接就可以了,其与单片机的P6.1口相接。
其电路原理图如下:同时考虑到可以分级警报,因此将LED灯加进去,从而在报警时也会将相应的LED灯点亮,以显示不同的报警级别。
4 系统软件设计4.1 系统软件总体结构及流程图(主程序流程图)(按键中断服务子程序流程图)4.2 LED显示模块程序设计本次实验的显示是由LED数码管显示的,而温度传感器返回的是11位的二进制数值,因此如何把这11位二进制数值转换为数码管的10进制数值是这块程序的重点。
经过查阅资料,了解到可以逐位进行转换。
一共11位数据,7位作为整数部分,4位作为小数部分,每次取出一位,若为第一位,若为1,则其值为0.0625,因此设置相应的数码管显示,再取出第二位,若为1,则其十进制0.125,累加上去,一次类推,最后完成整个温度的数码转换。
同时在显示温度时采用的是动显温度,是通过看门狗定时器来实现的,设置看门狗定时器为1.9ms中断,当时间到达时自动进入中断实现移位显示,由于时间间隔短,因此人眼看上去就像是数码管一起显示的一样。
4.3 键盘输入模块程序设计键盘的功能为输入数值,此次设计采用的是4x4矩阵键盘,其功能面板如下:其中0——9为10个数字键;UPSET为上限温度设定选择键,完成上限温度位选功能;DSET为下限温度设定选择键,完成上限温度位选功能;UPS为上限温度设定完成确定键,输入完成后按下;DWS为下限温度输入完成确定键,输入完成后按下。
按键输入程序设计时主要是确定输入的键的键值,然后与预先设定的键码表对照,在用一个选择判断语句switch,选择相应键时即执行相应的操作。
在确定键值时用的是行列式扫描法,同时考虑到如果不先按位选键,直接按其他键也会进入按键中断服务子程序,因此特别加入了消除此缺陷的语句,使得在按错键时系统也能执行显示温度的操作,使系统运行更可靠,更稳定。
其实现方法如下:default:{ //实现按其他键时不会出现死循环,无法正常显示温度 if((presskey11 == 0) && (presskey10 == 0)){IE1 |= WDTIE; //看门狗中断使能开TBCCTL0 |= CCIE; //定时器中断使能开}break;按键程序的主要思想是首先判断是否按下功能选择键,如果按下,则置相应的功能选择键标志为1,然后再判断是否是在功能选择键标志为1(即先按了功能选择键)的情况下再按了数字键,此时才能进入温度设定程序,否则按键无效,正常显示温度。
同时温度设定完后将相应的功能选择键标志位归0。
4.4 温度采集模块程序设计温度采集模块主要是运用了温度传感器DS18B20,这款温度传感器具有温度转换功能,能通过指令将电压值转换为当前的温度值,同时还可以多个传感器一起工作,由于本次系统设计只需要一个就行,因此忽略了取产品ID号的过程,在编程时,主要是根据传感器的芯片说明的流程来思考的,通过写入函数Write_18B20()将相应的指令写进去,同时通过读出函数ReadTemp()将相应的温度数值读出来,返回给系统,从而实现温度的转换和显示。
4.5 报警模块程序设计本次报警模块的处理相当简单,有两个部件组成,一个是蜂鸣器,通过I/O 口上送出数据来驱动蜂鸣器,而LED灯也是只要通过端口送出数据就可以。
此模块包括初始化端口和数据产生两个部分,初始化端口部分只要设置相应的端口为输出方向,数据输出只要执行相应的输出操作即可。
同时在扫描检测温度情况是用到了TimerB的中断处理,用3ms中断,每过3ms检测一下温度是否在设定的范围内,若不在,则实行相应的报警参数设置,返回后,主程序通过判断报警参数实行相应的报警操作。
4.6 主模块程序设计主模块程序的设计很简单,就包括各端口,键盘,还有时钟的初始化操作,然后就一个While()循环,此循环实现的是动显温度值,同时用于判断温度报警参数实现温度报警,其他就当相应的中断产生时转到相应的中断服务子程序中执行相应的操作。