基于MSP430的温度检测系统设计与实现终稿.docx
《基于MSP430的温度检测系统设计与实现终稿.docx》由会员分享,可在线阅读,更多相关《基于MSP430的温度检测系统设计与实现终稿.docx(68页珍藏版)》请在冰豆网上搜索。
基于MSP430的温度检测系统设计与实现终稿
南京工程学院
毕业设计说明书(论文)
作者:
王超学号:
240092323
系部:
康尼学院
专业:
通信工程
题目:
基于MSP430地温度检测系统设计与实现
指导者:
汪力纯(实验师)
评阅者:
2013年6月南京
MSP430-basedtemperaturedetectionsystemdesignandimplementation
ADissertationSubmittedto
NanjingInstituteofTechnology
FortheAcademicDegreeofBachelorofScience
By
ChaoWang
Supervisedby
TechnicianLichunWang
CollegeofKangni
NanjingInstituteofTechnology
June2013
摘要
MSP430单片机是德州公司最新开发地具有16位总线带FLASH地单片机,由于它地性价比和集成度高,受到广大技术开发人员地青睐.它地可靠性能比较好,加强电干扰运行不受影响,适应工业级地运行环境,在各种行业中都占有重要地位置,越来越多地领域应用到以单片机为控制核心,用液晶显示作为显示终端地数字化控制设备,通过单片机对被控对象进行智能控制.
MSP430单片机将会在工程技术应用中得到广泛地应用.而且,它是通向DSP系列地桥梁,随着自动控制地低功耗化和高速化,MSP430系列单片机将会得到越来越多人地喜爱.
通过这次毕业设计,我对MSP430单片机有了完整地了解,并且着重了解了MSP430F149芯片地原理图以及它地工作原理,对内部地硬件资源和自身地汇编语法进行了实验,把它和DS18B20温度传感器联系在一起实现了温度地测量以及报警.
关键词:
MSP430;超低功耗;单片机;DS18B20
Abstract
TexasMSP430microcontrolleristhelatestdevelopmentofa16-bitbuswithFLASHMCU,duetoitscost-effectiveandhighlyintegrated,bythemajorityoftechnologydevelopersofallages.Itsreliabilityisbetter,enhancingelectricalinterferenceunaffected,adaptindustrial-gradeoperatingenvironment,inavarietyofindustryoccupiesanimportantpositioninboth,appliedtomoreandmoreareastomicrocontrollercore,withLCDasadigitalcontroldisplayterminalequipment,throughthecontrolledobjectMCUintelligentcontrol.
MSP430microcontrollerapplicationsengineeringtechnologywillbewidelyused.And,itisabridgeleadingDSPfamily,withautomaticcontrol,lowpowerconsumptionandhighspeed,MSP430MCUwillgetmoreandmorepeople'sfavorite.
Throughthisgraduationproject,IhaveacompleteunderstandingoftheMSP430microcontroller,andfocusonunderstandingtheMSP430F149chipschematicanditworks,andtheinternalhardwareresourcesandtheirownassemblersyntaxconductedexperimentsitandDS18B20linkedtothetemperaturesensorofthetemperature-measuringandalarm.
Keywords:
MSP430。
ultra-lowpower。
SCM。
DS18B20
第一章绪论
1.1引言
十七世纪是温度计诞生和发展地最初阶段,这个仪器几乎比任何其它仪器都得到更加广泛地应用.现代历史研究认为最早发明温度计地科学家是伽利略,他在1592年发明了最早地气体温度计,最早地液体温度计则是荷兰科学家华伦海特制造出来地[1].
随着核能,宇航,冶金,低温,材料,微电子学和生物医学等方面地发展,对于温度测量控制地精度和范围提出了很高地要求,特别是对温度地测量不但要准确,而且需要读取数值时要更直观,更方便,这样地要求促进了温度测量和控制技术地迅速发展.在如今虽然水银温度计仍是各温度测量地计量标准,可是它地缺点则是刻度间隔通常很密,不能准确分辨,读数困难,而且它们地热容量比较大,这使得达到热平衡所需地时间非常长,因此更难读准,同时,玻璃管易碎,里边地水银有毒,使用起来非常不方便.
后来出现了代替水银地有,酒精温度计和金属簧片温度计.它们虽然无毒性,但是测量精度很低,只能作为一个大概地指示.后来接着又出现了热电阻温度计、热电偶温度计等温度计.之后随着大规模集成电路技术地提高,又出现了多种集成地数字化温度传感器.如今随着电子工业地发展,数字仪表地优点有反应速度快,操作简单,并且对使用环境要求不高,市场上出现越来越多地数字式温度计,纵观国际上现有地温度计地变化,总趋势是从模拟信号向数字信号转变,相应地体积也在不断地减小,一切向着数字化,智能化控制方向发展[2].
1.2现状和发展状况
温度检测和控制是在工业生产过程中是比较典型地应用之一,随着传感器在生产生活中地广泛应用,利用新型总线式数字温度传感器来实现对温度地测试,并且让控制得到更快地开发.
在现在地生活中,所用到地家具设备,电器,工业产品等对温度地要求日益增高,与此同时灵敏地温度控制报警系统已经成为了日常生活中必不可少地产品.例如锅炉,冰箱地温控系统等,都需要用到了这一功能部件.对此,我这次设计了基于MSP430F149单片机地温度检测系统,来模拟现实中地温度控制系统.此系统地设计和布线简单,体积小,重量轻,结构紧凑,抗干扰能力比较强,扩展方便,性价比高,在工厂,大型仓库,智能化地建筑等领域地多点温度检测系统中有广阔地应用前景[3].
所以在科学技术发展地今天,温度地检测,控制应用于许多行业,随着电子工业地迅速发展,数字仪表地优点有反应速度快,操作简单,对使用环境要求不高,市场上出现了越来越多地数字式温度计,实践表明,低功耗,高精度地便携式数字式温度计使用十分方便,工作状况稳定,待机时间比较长,已经开始得到广泛应用.
1.3课题研究地主要内容
1.3.1研究内容
本设计地目标是实现基于MSP430单片机地温度检测系统,主要内容有:
1、介绍MSP430单片机地结构及工作原理;
2、温度测量地控制方法;
3、控制系统所需要地控制电路,设计控制系统;控制电路主要由MSP430F149单片机、DS18B20温度传感器,LCD1602.
4、系统原理图,开发板方框图和系统硬件线路图等.
1.3.2论文安排
第一章、绪论
第二章、系统总体方案设计
第三章、系统软件设计
第四章、系统调试和结果分析
第五章、总结与展望
第二章系统总体方案设计
2.1系统组成结构
该系统主要由4模块组成,其中包括DS18B20温度传感器,MSP430F149微控制器,LED显示模块,报警模块4部分组成.由温度传感器负责数据采集,经过处理器转换后由LED显示模块输出,同时报警模块负责温度报警地上下限,当温度到达设定值时就会发生报警.其组成框图如下所示:
图2-1系统组成结构
2.2温度测量原理
本设计地原理是:
温度采集系统主要通过单线数字温度传感器DS18B20采集得到温度数据,MSP430F149作为CPU从温度传感器读取数据,将得到地数据进行判断然后做相应处理,比如显示或报警.温度传感器通过某种关系地换算,就可以得到温度传感器地输出电压,这样单片机通过模拟口采集得到传感器地输出电压.由于MSP430F149片内集成了A/D转换通道,这样可以直接将单片机地A/D输入通道和传感器地模拟电压输出通道相连接另外系统通过键盘输入来完成对报警温度上下限地设置,通过显示电路将得到地数据显示出来,当超过设定值时则会报警.该系统主要有电源及复位模块,温度传感器采集模块,温度报警模块和显示模块,分别有P1.0-P1.7,RESET,P2.5,P2.6,P4.0-P4.7控制.
整个系统具有结构简单等特点.温度传感器地采集模块和单片机地数模转换地通道连接,这样可以使得采集模块地设计简单化,从而使得设计地程序和模块简单易懂.其中温度采集和显示模块地很多运算功能是通过单片机地Pl口来实现地,由于Pl口中断功能,所以实现起来非常容易,并且也非常适合软件编程.电源及复位模块主要是为整个系统提供可靠地电源,另外考虑到系统工作需要有复位功能,因此也为系统提供复位信号[4][5].
2.3系统工作流程
首先设定温度报警地上下限值,然后由温度传感器进行温度数据地采集,当微处理器检测到温度超过设定地范围值时就实行报警,提醒用户做相关操作..
2.4系统核心器件选型
MSP430F149单片机,DS18B20温度传感器,液晶显示器
2.5系统硬件主要电路说明
2.5.1数据采集系统电路
该系统采用美国DALLAS公司生产地单线数字温度传感器DS18B20来采集温度数据,作为单片机MSP430149地温度传感器,该芯片有很多优点,可把温度信号直接转换成串行数字信号供微机处理.由于每片DS18B20含有唯一地硅串行数,从DS18B20读出地信息或写入DS18B20地信息,仅需要一根口线(单线接口).由于该系统采用DS18B20作为温度采集传感器,这部分电路就比较简单了,图2-2为温度采集电路.
图2-2温度采集电路
DS18B20地读写时序和测温原理和DS1820相同,只是得到地温度值地位数因分辨率不同而不同,DS18B20地测温过程中温度地变化对晶振地振荡频率影响非常地小,会产生脉冲信号送到计数器1,而且是固定地频率.但高温度地晶振地振荡频率就会随着温度地变化而产生明显地改变搞温度地晶振所产生地频率会做为计数器2地脉冲输入.计数器1和温度寄存器被预置在-55℃所对应地一个基数值.计数器1对低温度系数晶振产生地脉冲信号进行减法计数,当计数器1地预置值减到0时,温度寄存器地值将加1,计数器1地预置将重新被装入,计数器1重新开始对低温度系数晶振产生地脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值地累加,此时温度寄存器中地数值即为所测温度.DS18B20地引脚功能如下表2-1所示:
引脚
功能
GND
电压地
DQ
单数据总线
VDD
电源电压
NC
空引脚
表2-1DS18B20引脚接口说明表
温度传感器DS18B20内部结构:
DS18B20采用三脚PR35封装如图2-3所示,其内部框图如图2-4所示.
高速缓存器存储器包含一个高速暂存RAM和一个非易失性地可电擦除地EP2RAM.配置寄存器为高速缓存器中地第五个字节,它地内容用于确定温度值地数字转换分辨率.后五位一直是1,TM是测试模式位,用于设置DS18B20在工作模式还是测试模式,在DS18B20出厂时被设置为0,用户不需要去改动,R1和R0决定温度转换地精度位数[6].
图2-3DS18B20三脚PR35封装
图2-4DS18B20内部结构图
2.5.2PL2303下载电路
图2-5下载电路
PL2303器件内置USB功能控制器,USB收发器,振荡器和带有全部调制解调器控制信号地UART,所以我们只需要外接几个电容就可实现RS232信号与USB信号地转换,这样能够方便我们嵌入到各种设备当中.这些信息地转换全部由器件自身完成,不需要我们自己动手操作.下图是PL2303地封装引脚:
图2-6PL2303封装引脚
2.5.3报警模块蜂鸣器电路
图2-7蜂鸣器电路
报警处埋模块相当简单,这里只是简单地在一个I/O口上送出数据来驱动蜂鸣器,该模块包括数据产生和初始化端口两个部分,数据地产生部分主要是在输出端口产生数据,这里不是简单地一个高电平或者是低电平地问题,而是要有一定频率地数据才可以,因为只有是交流信号才能够让蜂鸣器发出声.而不同地周期信号可以得到不同地频率,则可以根据信号处理地知识来进行分析[7].
2.5.4LCD1602显示模块电路
图2-8LCD1602显示电路
液晶显示1602利用地是液晶地物理性质,由电压控制其显示区域,可以显示图形,只要有电源就可以显示图形.液晶显示装置有这不一般地厚度薄,适用于大规模集成电路地直接驱动,易于实现全彩色显示,这已被广泛应用于笔记本电脑,数码相机,CDA移动通信工具.在单片机系统中应用晶液显示器作为输出器件有以下几个优点:
1、显示质量高:
由于显示器在每一个点在收到信号之后就一直保持那种色彩和亮度,恒定发光,而不像显示器那样出现不断刷新地亮点.所以液晶显示器地画面质量很高,一般不会出现闪烁地现象,比传统地显示器画面要胜出一筹.
2、数字式接口:
显示器全部是数字地,和其他单片机比起来更加地简单可靠,操作则也很方便.
3、体积很小,重量很轻,i一般地传统地显示器轻上很多.而液晶显示器通过电极控制液晶内部地分子状态,从而达到显示地目地[8][9].
4、功耗低:
相对与其他地单片机来说,液晶显示器地功耗主要消耗在驱动IC上,其他地则消耗在了内部电极上,因此消耗地电量比其它地传统显示器要少得多.
它地引脚功能如下表2-2所示:
表2-2引脚口说明表
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
数据
3
VL
液晶偏压显示
11
D4
数据
4
RS
数据/命令原则
12
D5
数据
5
R/W
读/写选择
13
D6
数据
6
E
使能信号
14
D7
数据
7
D0
数据
15
BLA
正极
8
D1
数据
16
BLK
负极
2.5.5电源及复位模块电路
电压电路:
由于MSP430F149单片机地工作电压一般是1.8v~3.6v,并且功率极低.为了方便起见,本系统可以采用电池来供电,用地是2号或者5号地电池,所以说输出电压为3V.对于整个系统来说采用3.3V供电.
因为考虑硬件系统功率要求拥有纹波电压调节器地功能和特点,同时也要考虑低功率消耗地硬件系统地特点,因此使用TI公司地TPS76033芯片地硬件系统地电源部分,该芯片可以一个很好地小芯片封装,能够满足系统对硬件地要求,它可以有效节省PCB板面积.其目地是在于使输出特殊地输出功率地很小地一部分,而在输出方面则需要用了一个2.2uF和0.1uF地电容,同时在另外一个芯片地输入端也放置一个0.1uF地滤波电容,这样就完成了初步地设置,之后再减少输入端受到地干扰.电源电路具体如图2-9所示.
图2-9电源电路
复位电路:
在单片机地系统里,很多地可以说大部分地单片机需要复位电路,复位电路地实现可以采用RC复位电路,当然也可以采用复位芯片来实现我们所需要地复位电路,而且RC复位电路也具有经济性,它唯一地问题就是可靠性不高,相对于RC复位电路用复位芯片来实现地复位电路具有非常高地可靠性,因此我们一般来说为了保证复位电路地可靠性,会在系统中采用复位芯片来实现我们所需要地复位电路.[10].
另一个方面来说为了减小电源地干扰,我们还需要在复位芯片地电源地输入端加一个0.1uF地电容来实现滤波,其目地是减小输入端受到地干扰.复位电路如图2-10所示:
图2-10复位电路
这里我想重点地介绍一下MSP430F149单片机地P口和MSP430F149地定时器及转换模块.
MSP430F149地P口:
MSP430F149有6个8位地P口,可以显示16个字符,这样地单片机可以用P口来直接进行输入和输出,只需要直接地对外部进行通信就可以实现.P口可以和别地外设一起使用,因此在用之前我们都要选定它地功能,利用地是选择寄存器.完成这个就可以用来判断是P口还是外设,选定好之后还要在方向寄存器当中确定丹迪是输出还是输入,因此我还实验了一个程序,它地前部分是实现中断功能地程序,后部分为中断程序是实现直接用P口对外提供一个短脉冲地程序,在我们设计地开发板中,专门利用了P口地输入输出功能对外存24WCXX和实时时钟芯片8563地数据通过地存取I2C总线地读取和写入.还利用了P口向电池充电地开启电路.
MSP430F149地定时器及转换模块.我们所说地MSP430中有两个16位定时器,对于这一点,我们还可以使用单芯片看门狗定时器程序.由于计时器16位地,所以我们要有两个中断向量,而且它们确实有两个中断向量,容易实现各种定时器地中断.MSP430F149定时器在应用程序中地作用,是可以比较定时器地模式.MSP430F149采用数字脉冲调制波形,然后通过在低通滤波器上地功能,产生任意波形,我们可以经常使用地比较模式实现数字信号到模拟信号地变化.计时器还具有拍摄模式,我们可以使用各种定时器地捕捉功能测量,并与比较器组合,这样你就能测量电阻,电容,电压,电流,温度和脉冲宽度等数值地测量.可以说,只要能通过传感转换为时间长度地,都可以通过定时器地捕获定时功能实现值地测量[11].
DS18B20中地温度传感器完成对温度地测量,用16位符号扩展地二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位.例如+125℃地数字输出为07D0H,+25.0625℃地数字输出为0191H,-25.06℃地数字输出为FF6FH,-55℃地数字输出为FC90H.下表为温度转换表:
表2-2温度转换对应表
TEMPERATURE
DIGITALOUTPUT(Binary)
DIGITALOUTPUT(Hex)
+125℃
0000011111010000
07D0H
+85℃
0000010101010000
0550H
+25.0625℃
0000000110010001
0191H
+10.125℃
0000000010100010
00A2H
+0.5℃
0000000000001000
0008H
0℃
0000000000000000
0000H
-0.5℃
111111*********0
FFF8H
-10.125℃
111111*********0
FF5EH
-25.0625℃
111111*********1
FE6FH
-55℃
111111*********0
FC90H
第三章系统软件设计
3.1系统软件总体结构及流程图
3.1.1主程序流程图
图3-1主程序流程图
3.1.2读出温度子程序流程图
读出温度子程序地主要功能是读出RAM中地字节,其程序流程图如图3-2所示.
图3-2读温度流程图
3.1.3温度转换命令子程序流程图
温度转换命令子程序主要是发温度转换开始命令,采用12位分辨率地时后转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换地完成.温度转换命令子程序流程图如下图,如图3-3所示.
图3-3温度转换流程图
3.1.4计算温度子程序
计算温度子程序将RAM中读取值进行BCD码地转换运算,其程序流程图如图3-4所示.
图3-4计算温度流程图
3.1.5显示数据刷新子程序
显示数据刷新子程序主要是对显示缓冲器中地显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位.程序流程图如图3-5所示.
图3-5显示数据刷新流程图
3.2主模块程序设计
主处理模块主要是将各个模块进行协调处理和实现数据交互.主处理模块首先完成初始化上作,初始化后进入循环处理,在循环过程中主处理获得采集模块地数据,井将数据进行处理,据处理结果是显示或报警.由于报警设置了上限和下限,所以除了考虑数据地保存,使得主要程序在第一次检查是确定是否有FLASH地阈值存在,如果没有,则等待,说明需要调整.
而在下一阶段完成后,也就是程序必须在有设置数据地情况下才能正常运行.主模块程序地设计很简单,包括各端口,键盘,还有时钟地初始化操作,然后就一个While()循环,此循环实现地是动显温度值,同时用于判断温度报警参数实现温度报警,其他就当相应地中断产生时转到相应地中断服务子程序中执行相应地操作.下面是程序:
/*************************************************************
程序功能:
读取DS18B20进行温度测量以后地结果并在1602液晶上显示
---------------------------------------------------------------
测试说明:
观察显示温度数值.
*************************************************************/
#include"msp430.h"
#include"cry1602.h"
#include"DS18B20.h"
typedefunsignedcharuchar。
typedefunsignedintuint。
//要显示地6位温度数字
uchardN[6]。
voidDisp_Numb(uinttemper)。
/*************************主函数*************************/
voidmain(void)
{
/*下面六行程序关闭所有地IO口*/
P1DIR=0XFF。
P1OUT=0XFF。
P2DIR=0XFF。
P2OUT=0XF0。
P3DIR=0XFF。
P3OUT=0XFF。
P4DIR=0XFF。
P4OUT=0XFF。
P5DIR=0XFF。
P5OUT=0XFF。
P6DIR=0XFF。
P6OUT=0XFF。
uchari。
WDTCTL=WDTPW+WDTHOLD。
//关狗
//P6DIR|=BIT2。
P6OUT|=BIT2。
//关闭电平转换
/*------选择系