基于MSP的温度控制报警系统.doc
- 文档编号:236054
- 上传时间:2022-10-07
- 格式:DOC
- 页数:21
- 大小:176KB
基于MSP的温度控制报警系统.doc
《基于MSP的温度控制报警系统.doc》由会员分享,可在线阅读,更多相关《基于MSP的温度控制报警系统.doc(21页珍藏版)》请在冰豆网上搜索。
微控制器应用及系统设计
课程设计报告
姓名
学号
学院(系)
专业
标题
温度控制报警系统
南京理工大学
2010年5月
目次
1 引言 3
2系统总体设计 3
2.1系统组成结构及工作原理 3
2.2系统工作流程 3
2.3系统核心器件选型 4
3系统硬件设计 4
3.1电源模块设计 4
3.2LED显示模块设计 4
3.3键盘输入模块设计 5
3.4温度采集模块设计 5
3.5报警模块设计 6
4系统软件设计 6
4.1系统软件总体结构及总流程图 7
4.2LED显示模块程序设计 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
3
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.2LED显示模块设计
考虑到系统的成本,同时由于综合设计的时间限制,我们采用了最简单的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.0V至5.5V无需备用电源测量温度范围为-55°C至+125℃。
华氏相当于是-67°F到257华氏度-10°C至+85°C范围内精度为±0.5°C
DS18B20的初始化:
(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系统软件总体结构及流程图
初始化时钟
开始
初始化各硬件外围模块端口
初始化键盘
初始化看门狗定时器,1.9ms中断,用于动显
初始化timerA,用于延时
初始化timerB,用于报警判断
使能打开
否
否
TimerB中断?
看门狗中断?
While()主循环
是
是
Uprin,dwring=?
Timer_B()
温度数据比较处理
非1,2,3
watchdog_timer()
动显温度数值
1,2或3
执行相应报警程序
P1_ISR()
按键输入程序
键盘中断?
是
否
(主程序流程图)
开始
键盘初始化
/
看门狗使能关闭,定时器中断使能关闭,全局使能关闭
key_Event()
按键键值获得程序
否
key_Flag=1?
是
key_val=?
其他,看门狗中断开,定时器终端开
key_val=10
下限温度设定程序
key_val=11
上限温度设定程序
(按键中断服务子程序流程图)
开始
初始化DS18B20
否
初始化成功?
输入转换温度指令,转换温度
是
杜温度数值,11位数据
(DS18B20温度传感流程图)
4.2LED显示模块程序设计
本次实验的显示是由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,这款温度传感器具有温度转换功能,能通过指令将电压值转换为当
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MSP 温度 控制 报警 系统