基于MSP430的皮带机的超温保护系统.docx
《基于MSP430的皮带机的超温保护系统.docx》由会员分享,可在线阅读,更多相关《基于MSP430的皮带机的超温保护系统.docx(25页珍藏版)》请在冰豆网上搜索。
基于MSP430的皮带机的超温保护系统
1绪论
1.1选题的背景
随着矿井大型化,机械化,自动化水平的不断提高,煤矿井下皮带机的使用越来越广泛,皮带机的运行就是传动滚筒与传送带之间的摩擦传递运动,由于载荷和拉紧装置张紧力的变化,传送带的运行速度将发生波动。
当驱动装置正常运转而带速降低时,意味着传送带在传送滚筒上打滑,这种打滑会使传送带的温度升高,当温度升高到一定程度会释放出CO等有毒气体,严重时会烧坏传送带。
由此可见,监控传送带的温度对于提高皮带机工作的安全性,保护井下人员的生命安全有重大意义,本文设计的温度上限为100℃,当温度超过100℃时,皮带机将停止工作。
随着人们生活水平的不断提高和科学技术的快速发展,利用单片机控制生活中的各种因素,已毋庸置疑已经是人们追求的目标之一,它给人们生活各个方面带来的方便也是不可否定的,由单片机构成的温度检测、温度控制系统可广泛应用于很多领域里。
今天,我们在有越来越多称之为单片机的小电脑在为我们服务的世界里,当下,家用电器和办公设备的智能化、遥控化已成为世界主流之一,而这些高性能的设备大都是靠单片机来实现的。
单片机凭借其体积小、功能强、造价低、可靠性高和开发周期短等优点,成为自动化和各个测控领域中广泛应用且必不可少的元器件,而且它在人们日常生活中也发挥着独一无二的作用。
人们的生活环境与温度的关系非常之大,在农业生产、畜牧业、工业生产和医疗方面都离不开温度的测量。
在工业生产过程中尤其需要对温度实行实时测量,以保证工业生产安全、高效的进行,本设计基于MSP430单片机的皮带机超温保护系统就是单片机在工业生产中的一个应用,因此研究温度的测量方法和装置具有极其重要的意义。
测量温度的关键是温度传感器,传感器属于信息技术的前沿高端产品,尤其是温度传感器技术,在我国各个领域的作用非常之大,可以说是渗透到社会生活的各个领域、各个方面。
关于温度传感器,其发展经历了三个阶段:
由最初的传统的分立式温度传感器到模拟集成温度传感器,最后到智能集成温度传感器。
目前应用较为广泛的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE)综合在一起的结晶,特点是能输出温度控制量及相关的温度数据,且能适配各种微控制器(MCU)。
随着社会的进步,科学技术的发展及人们知识水平的提高,人们对传感器的要求也越来越高,现在温度传感器正在以基于单片机的基础之上,从模拟式向数字式,从集成化向智能化、网络化的方向迅猛发展,并朝着多功能、高精度、总线标准化、安全性及高可靠性、网络传感器和开发虚拟传感器、研制单片测温系统等高科技的方向迅速发展。
1.2选题的目的及意义
随着科学技术的日益发展,传统工业改造的逐步实现和现代信息技术的快速发展,能够单独工作的温度检测系统和显示系统已逐渐应用于诸多领域。
无论是在工业方面、农业方面、医疗方面或者是在平民大众的日常生活当中,我们都能看到温度计的影子。
传统的温度检测系统以热敏电阻和AD590为基础发展起来的温度敏感元件。
虽然热敏电阻具有成本低的优点,但其工作电路需要加后续信号处理电路,而且可靠性相对较低、测温准确度低,这样使得检测系统也存在一定的误差。
因此,利用新型温度传感器取代旧式的温度传感器是科学技术发展的必然趋势,新型的温度传感器的优势越来越得到体现,其应用也越来越普及。
本设计所采用的温度计与传统的温度计相比较而言,具有读数方便、测温准确、测温范围广、控制方便、组态简单和灵活性大等优点,它可以有效地提高被控温度的技术指标,从而能够大大提高产品的质量和数量。
其输出温度采用数字显示,方便用户直接读取温度值。
本设计系统使用测温传感器DS18B20采集温度数据,MSP430单片机处理DS18B20发送过来的数据并通过LCD实现温度显示,同时设有温度报警装置。
1.3论文结构
本论文介绍了基于MSP430的单片机的超温保护系统,共分为五个章节,每个章节的设计如下:
第一章主要介绍了此设计的选题背景、目的和意义;
第二章主要通过叙述设计的基本原理和设计框图,即将单片机,温度传感器和LCD显示器结合在一起以达到设计目的及为什么选择MSP430单片机和DS18B20温度传感器,还简要叙述了显示设备LCD及引脚功能;
第三章主要介绍系统软件设计。
在系统的软件设计中,采用逐块设计的方法,使得程序结构清晰明了,更有助于以后系统功能的进一步扩展;
第四章主要用Proteus软件进行仿真;
第五章记录了在做论文过程中遇到的问题及对这次论文的总结。
2设计原理
本文所设计的整个系统主要由五个部分组成,这六个部分分别为温度传感器采集模块、键盘输入模块、单片机处理模块、报警模块和显示模块组成,系统的原理框图如图2.1所示。
图2.1系统的原理框图
首先通过键盘输入模块输入温度上限值,系统通过测温传感器采集温度DS18B20数据,利用MSP430单片机处理温度传感器DS18B20发送过来的数据并通过LCD实现温度显示,同时设有温度报警装置,当温度超过所设定的范围,报警模块开始工作。
2.1MSP430控制处理模块
图2.2即为一个MSP430单片机的最小系统原理图。
图2.2MSP430单片机的最小系统原理图
2.1.1MSP430单片机概述
MSP430单片机是一种16位的超低功耗、具有精简指令集的混合信号处理器,这款单片机由于针对实际应用需求,将多个不同功能的微处理器、模拟电路和数字电路模块集成到一个芯片上,以提供单片机解决方案。
该处理器具有如下特点:
(1)运算速度快;
(2)处理能力强;
(3)超低功耗;
(4)片内资源丰富。
2.2温度传感器采集模块
温度传感器采集模块主要指MSP430单片机的接口电路与温度传感器DS18B20,如图2.3所示。
DS18B20有三只引脚:
OUT,VCC,和GND。
其中OUT通过上拉电路接单片机的P2.3,VCC接5V电源,GND接地。
温度传感器将采集到的温度数据通过OUT引脚发给单片机,上接一个10K的上拉电阻是为了增加电路的驱动能力。
图2.3MSP430单片机与DS18B20的连接图
2.2.1温度传感器DS18B20简介
DSl8B20是一种单总线数字式温度传感器,其内部结构如图2.4所示,它具有的优点如下:
(1)操作灵活;
(2)结构简单;
(3)无须外接电路。
图2.4DS18B20内部结构图
它主要7个部分组成,这7部分分别为:
64位ROM和单片机接口、存储器和控制器、8位CRC生成器、高速缓存器、温度传感器、低温触发器TL和高温触发器TH、配置寄存器。
2.3键盘输入模块
由于单片机引脚资源较为丰富,在这里我们可以直接采用独立式键盘,设有2个按键,k1按键用于下调温度报警值,k2按键用于上调温度报警值。
它们分别接在单片机的P6.1,P6.0端口上,连接图如图2.5所示。
图2.5按键电路
2.4LCD显示模块
图2.6LCD显示电路
液晶显示器LCD是一种将液晶显示器件、连接器件、集成电路、PCB线路板、背光源、结构器件连接在一起的器件。
在显示电路中,VDD接+5V电源,VSS接地,VEE是液晶显示器对比度的调整端,接地电源时对比度最大,接正电源时对比度最小,为了获得使液晶显示器获得最好的对比度,此处将VEE接地电源。
RS为寄存器选择,低电平时选择IP,高电平时选择数据寄存器。
R/W为读写引脚,该引脚在低电平时进行写操作,高电平时进行读操作。
当RS和R/W共同为低电平时,可以写入指令或者显示地址,当RS为低电平且R/W为高电平时可以读忙信号,当RS为高电平且R/W为低电平时可以写入数据。
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
RS和R/W选用不同的高低电平,将影响寄存器的选择,选择不同所造成的具体影响如表2-1所示。
表2-1寄存器选择控制表
RS
R/W
操作说明
0
0
写入指令寄存器(清除屏等)
0
1
读busyflag(DB7),以及读取位址计数器(DB0~DB6)值
1
0
写入数据寄存器(显示各字型等)
1
1
从数据寄存器读取数据
由于液晶显示器的功能是显示各字符,所以RS置高电平,R/W接地。
8位双向数据线D0-D7与双向I/O口相连。
2.4.1LCD液晶显示屏
在本设计中要求LCD液晶显示屏同时显示测试温度值、温度上下限值,所以首先要求LCD显示屏能一次性容纳所有的这些字符,以确保显示的准确度,而且要求工作电压不能太高,以防烧坏显示屏,其次还要要求LCD液晶显示屏与MSP430单片机的连接方式需要简单,以简化设计,本设计中采用的是1602型的LCD液晶屏能够满足这些要求。
此液晶属于工业字符型液晶的一种,能够同时显示32个字符。
LCD液晶显示器是一种微功耗、低压的显示器件,只要2~3V就可以工作,工作电流仅为几uA,是任何显示器无法比拟的,同时可以显示数字、显示文字、曲线大量信息,它还比传统的数码LED显示器显示的界面有了质量上的提高。
1602拥有很多出色的优点:
(1)显示质量高、清晰度高;
(2)数字式接口,与单片机的连接简单;
(3)功率消耗低。
2.5报警模块
图2.7报警电路图
该报警电路采用直流供电,当所测温度值超过或低于所预设的温度值时,数据口相应拉高电平,使三极管导通,这样有源蜂鸣器进行报警输出。
3系统软件设计
系统的全部软件是用C语言编写完成的,因为C语言拥有完善的模块程序结构,因此C语言程序的可读性强,且便于修改和扩展。
在系统的软件设计过程中,采用模块化设计的设计思想,使得程序结构变得简洁、清晰,有利于进一步系统功能的修改与扩展。
该模块程序主要由温度采集模块、按键处理模块、数据存储模块和显示模块组成。
主程序流程图如图3.1所示:
图3.1主程序流程图
3.1温度采集模块程序设计
温度采集模块程序设计流程图如图3.2所示,DS18B20温度传感器有许多与温度转换、温度值读取、匹配序列号等相关的指令,这些指令都是以寄存器的操作为基础发展起来的,并且这些寄存器操作都是通过对DS18B20温度传感器的读/写操作来完成的,其中每一个指令都是八个字节。
图3.2温度采集模块程序图
/*******************************************
函数名称Write_18B20
功能向DS18B20写入一个字节的数据
参数wdata--写入的数据
返回值无
********************************************/
voidWrite_18B20(ucharwdata)
{uchari;
_DINT();
for(i=0;i<8;i++)
{DQ0;
DelayNus(6);//延时6us
if(wdata&0X01)DQ1;
elseDQ0;
wdata>>=1;
DelayNus(50);//延时50us
DQ1;
DelayNus(10);//延时10us
}
_EINT();
}
/*******************************************
函数名称Read_18B20
功能从DS18B20读取一个字节的数据
参数无
返回值读出的一个字节数据
********************************************/
ucharRead_18B20(void)
{uchari;
uchartemp=0;
_DINT();
for(i=0;i<8;i++)
{
temp>>=1;
DQ0;
DelayNus(6);//延时6us
DQ1;
DelayNus(8);//延时9us
P1DIR&=~BIT6;
_NOP();
if(P1IN&BIT6)
temp|=0x80;
DelayNus(45);//延时45us
P1DIR|=BIT6;DQ1;
DelayNus(10);//延时10us
}
_EINT();
returntemp;
}
/*读取温度*/
uintRead_Temperature(void)
{
uchara,b;
while(Init_18B20());
Write_18B20(0xCC);
Write_18B20(0x44);
while(Init_18B20());
Write_18B20(0xCC);
Write_18B20(0xBE);
//读取温度数据
a=Read_18B20();
b=Read_18B20();
tvalue=b;
tvalue=tvalue<<8;
tvalue=tvalue|a;
if(tvalue<0x0fff)
tflag=0;
else
{tvalue=~tvalue+1;
tflag=1;
}
tvalue=(uint)(tvalue*(0.0625));//温度值扩大10倍,精确到1位小数
returntvalue;
}
3.2键盘处理模块程序设计
该系统可以手动设置报警温度的上限值,设有2个按键,k2按键用于下调温度报警值,k2按键用于上调温度报警值。
程序设计流程图如图3.3所示:
图3.3程序设计流程图
3.3数据存储模块程序设计
数据存储器AT24C02能够支持I2C总线数据传送协议,该协议规定任何将数据传送到总线的器件可作为发送器件,任何从总线接收数据的器件可为接收器件,数据传送是由产生串行时钟和所有起始停止信号的主器件来控制的。
/********************************************************************
*名称:
writex()
*功能:
写一个字节
*输入:
j(需要写入的值)
*输出:
无
***********************************************************************/
voidwritex(ucharj)
{
uchari,temp;
temp=j;
for(i=0;i<8;i++)
{
temp=temp<<1;
scl=0;
sda=CY;
flash();
scl=1;
flash();
}
scl=0;
flash();
sda=1;
flash();
}
/********************************************************************
*名称:
readx()
*功能:
读一个字节
*输入:
无
*输出:
读出的值
***********************************************************************/
ucharreadx(void)
{
uchari,j,k=0;
scl=0;
flash();
sda=1;
for(i=0;i<8;i++)
{
flash();
scl=1;
flash();
if(sda==1)
{
j=1;
}
elsej=0;
k=(k<<1)|j;
scl=0;
}
flash();
return(k);
}
3.4LCD显示模块程序设计
LCD软件设计思路:
LCD是用来显示温度信息的,提供可视化工作界面,设计重点在与实现数据显示。
根据LCD的指令表和数据读写操作时序,从编写基本的液晶屏显示函数出发,例如向LCD写数据函数、向LCD寄存器写指令函数、LCD写字符串函数、LCD光标定位函数等,工作界面设计都是由以上基本函数发展而来。
1602LCD采用标准的16脚(带背光)接口,各引脚接口说明如表3-1所示。
表3-11602LCD引脚接口说明
编号
符号
引脚说明
编号
符号
引脚说明
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
背光源负极
voidds1820disp()//温度值显示
{ucharflagdat;
uinttemp;
temp=Read_Temperature();
disdata[0]=temp/100+0x30;//百位数
disdata[1]=temp%100/10+0x30;//十位数
disdata[2]=temp%10+0x30;//个位数
disdata[3]=temp%1+0x30;//小数位
if(tflag==0)
flagdat=0x20;//正温度不显示符号
else
flagdat=0x2d;//负温度显示负号:
-
if(disdata[0]==0x30)
{disdata[0]=0x20;//如果百位为0,不显示
if(disdata[1]==0x30)
{disdata[1]=0x20;//如果百位为0,十位为0也不显示
}
}
LCD_write_command(0xc3);
LCD_write_dat(flagdat);//显示符号位
LCD_write_command(0xc4);
LCD_write_dat(disdata[0]);//显示百位
LCD_write_command(0xc5);
LCD_write_dat(disdata[1]);//显示十位
LCD_write_command(0xc6);
LCD_write_dat(disdata[2]);//显示个位
LCD_write_command(0xc7);
LCD_write_dat(0x2e);//显示小数点
LCD_write_command(0xc8);
LCD_write_dat(disdata[3]);//显示小数位
}
4软件仿真
4.1软件介绍
Proteus软件是一款EDA工具软件,它不仅具有其它EDA工具软件的仿真功能,而且还能仿真单片机及其外围元器件,它是目前较好的仿真单片机及其外围元器件的工具之一。
Proteus主要由ARES和ISIS两部分组成,ARES主要用于印制电路板的设计,ISIS的主要功能是原理图设计及与电路原理图的交互仿真。
4.2仿真过程
在Proteus中仿真如图4.1所示,主要包括三部分:
温度采集,LCD显示,报警电路。
图4.1测试温度仿真
在仿真过程中,主要检测温度传感器DS18B20是否能快速地检测出皮带机的温度,能否随着温度的变化而变化,这是检验是否能检验温度的重要标准。
温度传感器采集温度显示如图4.2所示。
图4.2温度采集仿真图
由仿真结果可以看出,温度传感器显示的温度和LCD上显示的温度是相同的,并且正确测出了皮带机的温度,这就有效地验证了本设计具有准确的检测出皮带机的温度并且能正确地显示的功能。
图4.3温度上限设置的仿真演示
设置温度上限时,主要通过两个按键k1、k2来实现的,举例演示了温度上限的设置方法。
举例设置了三个上限温度值,按k1键时,上限温度增大,按k2键时,设置温度减小,这样就可以随意设置上限温度。
图4.4报警电路仿真
当温度传感器采集到的温度高于所设定的最高温度100℃时,报警电路开始启动,报警灯Bu由蓝色变为红色且持续闪烁,报警声不断响起,皮带机停止工作,采取降温措施,等温度降下来,皮带机又开始工作。
5总结与展望
在工业生产和日常生活中,对温度控制系统的要求,主要是保证温度在一定温度范围内变化。
超出这个范围,皮带机将无法正常工作,在论文中简单分析了单片机温度控制系统设计过程及实现方法。
温度检测系统根据用户设定的温度范围完成一定范围的温度控制,本设计采用数字温度传感器DS18B20进行温度测量,该传感器操作简单、精度高、测试范围广,且DS18B20器件的具有唯一的序列号,还可扩展为多点温度采集系统,将采集的多点温度值求平均值,所得的值作为皮带机的工作时的温度值,再通过485通信协议与网络连接,以实现远程温度监控。
本次毕业论文中设计的超温保护系统主要由MSP430单片机和温度传感器DS18B20来实现功能的,因此需要通过查阅资料来了解这些器件的基本结构、主要功能和注意事项等等。
通过了解更多器件,能够知道所选器件与相似器件的区别,比较彼此之间的优缺点,来最终确定设计选择的器件是否最合适,因此如何更好的利用器件的特点成为了本次设计的一个重要方面。
在确定了器件之后,如何利用这些器件使该系统能发挥其最大的功能是本设计的最终目标,为了完成设计目标,是需要花大量时间去思考的。
在整体设计完成之后,编写正确的程序和通过Proteus仿真软件模拟仿真,检验了设计是否正确。
整个设计从确定题目,到寻找相关资料,再到思考设计原理,选择合适的器件,程序的编写,仿真的进行,一步步地走过来,一点点的进步,花了大量的时间和精力,最终还是有很大的收获的。
经过四个多月的方案论证、原理的设计、程序的编写和仿真,查阅了大量的关于传感器、单片机、显示器、数据存储器等的理论知识,还学习了使用Visio画系统框图和Proteus软件进行仿真,在这过程中经历了失败的痛苦,也尝到了成功的喜悦。
第一次靠用所学的专业知识来解决实际应用问题。
既检查了自己的知识水平,也使我对自己有一个全新的认识,我所掌握的知识远远不够,还需要进一步学习。
通过这次毕业设计,不仅锻炼自己分析问题还提高了处理问题的能力,这些锻炼对于我们这些即将走向工作岗位和继续读研生造的大学生来说,都很重要。
总之,本设计简便实用,以上就是基于MSP430单片机设计的温度控制系统,主要从三大模块出发,分别陈述了本设计的整体思路及器件的选择、系统的软件设计、使用Proteus软件进行仿真。
致谢
在本次毕业设计中,从选定题目到查询相关材料,原理的设计,再到程序设计,模拟仿真,这些我都付出了不少汗水与努力,但每个人的知识储备并非都那么全面,仅仅一个人的努力与闭门造车是远远不够的,因此,只有在得到了许多老师和同学们的支持、帮助之下,我才能完成这个设计。
在这里,我要特别感谢我的导师汪青老师,在毕业设计的开始,老师就给了我很多帮助,指导我了解了很多单片机及温度传感器的相关知识,并在当我设计遇到困难时,及时给予我