智能温度报警系统的软件设计毕业论文及程序文档格式.docx
- 文档编号:8406150
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:76
- 大小:1.25MB
智能温度报警系统的软件设计毕业论文及程序文档格式.docx
《智能温度报警系统的软件设计毕业论文及程序文档格式.docx》由会员分享,可在线阅读,更多相关《智能温度报警系统的软件设计毕业论文及程序文档格式.docx(76页珍藏版)》请在冰点文库上搜索。
1.2课题背景
随着现代科学技术的发展,为了提高向现代化生产的效率和经济效益,越来越多的行业生产都在向智能化和自动化方向发展。
而以单片机为核心的数字控制系统在现代化生产中的智能化和自动化运用方面,也受到了人们越来越多的应用[1]。
智能化和自动化的现代化生产方式能够减少对人力资源的浪费,提高产品工艺,以及提高生产安全增加经济利益等优点。
而且单片机具有体积小,数据处理强等特点。
所以本设计采用PIC单片机来控制温度传感器实时的测量环境温度,当温度超过限制时能及时报警,并且能通过按键对报警温度和日历时钟进行设置。
沩氣嘮戇苌鑿鑿槠谔應。
1.3课题意义
随着现代工农业技术的发展及人们对生活环境要求的提高,工农业生产中的很多流程都需要实时精确的测量和控制温度,而一些生产流程中采用人工测量可能要面临危险或测量不及时等问题。
采用智能温度报警系统能在危险环境中实时测量温度,并在超出警戒温度值时做出报警,提醒人们做出相应的措施以控制温度,这样不仅有助于提高产品的质量和效率,同时也有利于生产设备和人身的安全。
钡嵐縣緱虜荣产涛團蔺。
1.4软件设计的要求
本论文是设计智能温度报警系统的软件设计。
因此当设计出的软件在PIC单片机上运行时,要能够实现实时的测量周围的温度,并判断其是否超出限定温度,做到在超出限定时做出及时报警。
同时,能够通过按键控制功能实现对上下限温度和实时时钟以及日历的修改设置。
实时温度、上下限温度、实时时钟和日历上的信息都需要显示在液晶显示器上。
懨俠劑鈍触乐鹇烬觶騮。
1.5论文主要内容
1.确定设计方案,熟悉设计所需芯片的C语言编程。
2.在仿真软件上设计系统所需的仿真电路,介绍电路的各个模块的功能,并根据仿真电路原理图设计出系统所需软件的主程序框架,再根据主程序框架完成各个功能模块的程序设计。
謾饱兗争詣繚鮐癞别瀘。
3.对设计的系统软件与仿真电路进行联调测试,验证所设计的系统软件的正确性和可行性。
1.6论文结构安排
第一章主要介绍设计的目标、课题背景和意义以及对设计的要求。
第二章介绍设计所需的开发平台和设计方案的确定。
第三章介绍各个模块的仿真电路设计及其功能
第四章介绍对温度报警系统软件的具体设计流程。
第五章对设计的系统软件在仿真电路上进行调试。
第2章开发平台及设计方案
2.1编程开发环境
2.2.1MPLABIDE集成开发环境
这款软件集成开发环境MPLABIDE是薇芯公司为PIC单片机的嵌入式应用进行开发所配备的一种单片机开发应用平台。
MPLABIDE可以直接使用汇编语言编写源程序,也选择MPLABC编译器使用C语言编写单片机的源程序,或者用C语言和汇编语言进行混合嵌入式编写源程序的代码。
使用MPLABIDE编写C语言的代码在经过编译可生成*.cof和*.hex两个文件。
可用*.hex文件加载到仿真电路中进行联调。
呙铉們欤谦鸪饺竞荡赚。
2.2.2编程步骤
因为本次设计用的是MPLABIDE8.33的版本,所采用的是用C语言来编写源程序代码,所以具体的编程步骤如下:
莹谐龌蕲賞组靄绉嚴减。
(1)打开MPLABIDE8.33软件,选择菜单命令Project中的ProjectWizard,出现的窗口点击下一步。
出现选择芯片型号的界面,选择PIC16F877,再点击下一步。
麸肃鹏镟轿騍镣缚縟糶。
(2)在
(1)后选择名为HI-TECHPICCToolsuite的编译工具,选完后,点击下一步。
(3)选择项目所要保存的目录以及项目的名称,点击下一步。
再次点击下一步,直到出现完成后,点击完成退出工程向导。
納畴鳗吶鄖禎銣腻鰲锬。
(4)点击NewFile新建一个文本编辑窗口,并在其上编写源程序代码,完成后保存到指定的目录下,保存为*.c格式。
風撵鲔貓铁频钙蓟纠庙。
(5)将已保存的源程序添加到当前工程名下的SourceFiles文件夹内。
(6)对源程序进行编译、调试,最终编译生成*.cof和*hex文件。
完成系统软件的编译工作。
2.2电路仿真开发环境
Proteus软件是英国LabCenter公司开发的电路分析与实物仿真及印制电路板设计软件,它可以仿真、分析各种模拟电路与集成电路,同时提供了大量模拟与数字元器件及外部设备,各种虚拟仪器,具有对单片机及其外围电路组成的综合系统的交互仿真功能[2]。
灭嗳骇諗鋅猎輛觏馊藹。
Proteus软件支持多款市面上主流的单片机,其中就有PIC18系列单片机。
随着Proteus软件版本的升级,它所支持的单片机系列及型号也在持续增加。
在编译方面,它也支持IAR、Keil和MATLAB等多种编译器[3]。
铹鸝饷飾镡閌赀诨癱骝。
在本设计中,主要是用Proteus7Professional版本来仿真本课题软件系统设计所需的仿真电路,并利用它与用MPLABIDE8.33进行源程序编写和编译后生成的*.hex文件进行联调仿真,测试所设计的智能温度报警软件系统软件的是否能够实现课题所要求的功能。
攙閿频嵘陣澇諗谴隴泸。
2.3温度采集原件方案
2.3.1方案一
对于热电偶温度传感器,虽然它耐用,价格低而且不用外接电源,但其电压与所测温度是成非线性关系,需要二次测量,而且不能直接转化为数字信号。
趕輾雏纨颗锊讨跃满賺。
对于热电阻温度传感器,其电阻值与温度的关系也是非线性的,制造商也无法给出标准化的热敏电阻曲线,同时原件容易老化,电压值转化为温度值比较麻烦。
虽然它灵敏度较高,体积小。
与热电偶相比,其测量范围要小,价格也贵。
夹覡闾辁駁档驀迁锬減。
2.3.2方案二
半导体数字式温度传感器DS18B20也是常用的温度传感器,选其作为采集温度的原件,具有体积小,硬件开销低,抗干扰能力强,精度高的特点[4]。
它能将所测得的温度值直接转化为数字信号,不需要进行AD转换,其所能测量的温度范围在-55℃~125℃。
测量结果可以以9~12位数字量方式串行传送[4]。
以12位作为寄存器配置时,分辨率可以达到0.0625℃。
视絀镘鸸鲚鐘脑钧欖粝。
2.4主控芯片方案
现在市面上的单片机芯片种类繁多,按功能分为多种型号,不同的型号系价格也有所不同。
对于本设计因功能比较简单,所以选择的芯片价格不需要高,芯片的功能能满足设计要求即可。
考虑到学过PIC单片机原理这门课程,对PIC单片机更加了解,而且中级PIC系列单片机中的PIC16F877型价格只要十几元,同时PIC系列单片机也是市面上主流的单片机芯片。
所以本设计就选用了中PIC16F877型号芯片作为本设计的主控芯片。
偽澀锟攢鴛擋緬铹鈞錠。
2.5总体方案设计
2.5.1方案的确定
考虑到设计电路尽可能的简单,所以温度采集原件就选用了方案二的DS18B20温度传感器来设计温度模块。
以PIC16F877设计最小系统模块,液晶显示模块采用LCD1602来设计,实时时钟模块用实时时钟芯片DS1302来实现,用按键开关来设计按键控制模块实现对系统的设置控制,报警模块采用蜂鸣器和发光二极管(红光)设计。
緦徑铫膾龋轿级镗挢廟。
2.5.2总体设计框图
图2.1总体设计框图
2.5.3系统主程序设计思路流程图
图2.2系统主程序设计思路流程图
第三章仿真电路设计
3.1最小系统仿真设计
3.1.1PIC16F877简介
PIC16F877采用的总线结构是哈弗结构,其程序存储器Flash空间大小为8K*14位,数据存储器RAM有512个字节(00f~1FFh),可以进行重复烧录程序。
騅憑钶銘侥张礫阵轸蔼。
其外围由多个功能模块构成,分别是5个位宽不都相同的可编程输入/输出端口模块、3个定时器模块、多通道10位分辨率ADC模块、捕捉/比较/脉宽调制CCP1和CCP2模块和MSSP模块等其他模块。
其常用的PDIP40引脚排列如图3.1所示[5]。
疠骐錾农剎貯狱颢幗騮。
图3.1PDIP40脚的PIC16F877引脚全功能图
3.1.2设计中的应用
本次设计主要用到PIC16F877芯片外围功能模块有RA、RB、RC和RD端口,RA和RD端口用于与液晶显示器相连,RB端口作为按键输入端,RC端口用于与报警模块、温度模块和时钟模块相连。
最小系统的仿真电路的复位方式使用的是人工复位,PIC16F877的工作电压为2.0V到5.5V。
时钟电路本应该使用的是XT模式下用震荡频率为4MHz的石英晶体和两个电容构成,但因为是仿真电路,所以可以不用画出,可直接在加载程序时设定时钟频率。
镞锊过润启婭澗骆讕瀘。
因此本设计中的最小系统模块的仿真电路如下图3.2所示。
图3.2最小系统模块的仿真电路
3.2液晶显示模块仿真电路
3.2.1LCD1602简介
LCD1602液晶显示器是一种功耗低、体积小以及具有数字式接口等优点工业字符型液晶,他能够显示出160个不同的字符图形包括字母、数字、符号等[6]。
LCD1602液晶显示器分为两行显示,每一行能够显示16个字符图形,一共能显示32个字符。
它共有16个引脚,其第15和第16引脚为空脚不需要链接,第7到第14引脚为双向数据引脚。
榿贰轲誊壟该槛鲻垲赛。
3.2.2LCD1602在设计中的应用
在仿真电路中LCD1602液晶显示器的第1脚接地,第2脚接5V正电源,第3脚空置,第4脚、第5脚和第6脚分别与PIC16F877的RA1、RA2和RA3引脚相连。
第7到第14引脚分别与PIC16F877的RD端口引脚按顺序相连。
其连接图如图3.3所示。
邁茑赚陉宾呗擷鹪讼凑。
图3.3
3.3温度采集模块仿真电路
本设计采用的是半导体数字式温度传感器DS18B20,它属于接触式温度传感器能测量的温度范围为-55℃~+125℃。
其内部就能完成A/D转换,可根据用户自己定义转为9位到12位的精度,所以不需要利用PIC16F877的ACD功能,可直接接收温度传感器DS18B20采集转换的数据,再经过程序转为十进制数在LCD1602液晶显示器上输出显示。
温度传感器DS18B20的数据输入和输出都是通过其数据总线(DQ)引脚传输,所以在本设计中DQ引脚是与PIC16F877的RC4引脚相连。
VCC接入的是寄生电源,其具体的仿真电路设计如下图3.4所示。
嵝硖贪塒廩袞悯倉華糲。
图3.4DS18B20仿真电路连接图
3.4时钟模块仿真电路
DS1302时钟芯片能够提供年月日、时分秒和星期BCD码数据,而且它的时间能够自动计时增加,能实现自动判断润平年同时可自动调整年月日。
对于年DS1302时钟芯片只能从00年到99年,存储年的寄存器只是一个8位的字节,所以它保存的BCD码只能表示两位数。
月、日、时、分、秒和星期也只有一个与自己对应的数据寄存器,都是以BCD码的形式来保存数据。
DS1302时钟芯片除了这些寄存器之外还有其他5个寄存器。
该栎谖碼戆沖巋鳧薩锭。
本次设计是利用DS1302时钟芯片的简单串行接口跟PIC16F877单片机进行数据通信,实现课题中增加的实时时钟内容。
在设计仿真电路中为DS1302时钟芯片供电的主电源和后备电源都使用同一个电源供电,其工作电压为2.5V到5.5V。
芯片的振荡源使用的是外接一个32.768KHz的晶振[7]。
实时时钟模块的仿真电路的具体连接如下图图3.5所示。
劇妆诨貰攖苹埘呂仑庙。
图3.5时钟模块仿真电路连接图
3.5按键控制模块仿真电路
按键模块的设计主要是用PIC16F877单片机RB口的弱上拉功能来判断按键是否有下。
在设计中采用了5个按键开关来实现设计的控制模块功能,每个开关所控制的功能分别是:
进入/退出修改功能、选择所修改参数功能、加的功能、减的功能和屏幕切换功能。
具体的仿真电路如图3.6所示。
臠龍讹驄桠业變墊罗蘄。
图3.6按键控制模块仿真电路
3.6报警模块仿真电路
本设计的报警模块采用的是蜂鸣器和发光二极管共同构成,当系统判断出温度传感器所采集的温度超过上下限温度时,蜂鸣器就能发出嘀嘀地警报声音,之后发光二极管发出闪烁的红色[8]。
通过这种形式的循环报警,来提醒周围的人温度超过了限定,需要采取降温措施来降低温度。
直到温度降低到警戒线内,报警信号才会停止。
报警模块的仿真电路连接图如图3.7所示。
鰻順褛悦漚縫冁屜鸭骞。
图3.7报警模块的仿真电路
3.7总体仿真电路设计图
图3.8总体仿真电路连接图
第四章系统软件设计
4.1编程前的准备
在开始编写代码之前,我们要先确定编程所需的数据类型和各个数据类型所占用的字节长度以及它们的值域是多少。
因为本设计所用的主控芯片是PIC16F877,它是一款8位的单片机,所以在编写程序时所用的数据类型、数据长度和值域如表4.1所示。
穑釓虚绺滟鳗絲懷紓泺。
表4.1设计所需的数据类型表
数据类型
数据长度(位数)
值域
char
8
-128~127
int
16
-32768~32767
longint
32
-2147483648~2147483647
unsignedchar
0~255
unsignedint
0~65535
unsignedlongint
0~4294967295
4.2系统主程序设计
在本设计的软件系统主函数除了对PIC16F877单片机中所要用到的端口,以及LCD液晶显示器进行初始化外,还包括需要调用的8个相应的子程序。
这些子程序分别是:
温度采集和转化子程序、DS1302初始化子程序、判断温度报警子程序、切屏控制功能子程序、修改设定功能子程序、实时温度显示子程序、上下限温度显示子程序、实时时钟显示子程序。
隶誆荧鉴獫纲鴣攣駘賽。
对单片机中所要用到端口的具体初始化内容为:
设置RA口全部为普通数字IO端口且A口的方向为输出,用于控制液晶显示器的读写功能;
设置RB端口为弱上拉功能,用于实现按键控制模块与单片机的功能联系;
定义RC口的RC4引脚作输入口,其它作为为输出口,用于实现单片机与温度采集模块、实时时钟模块和报警模块的功能联系。
浹繢腻叢着駕骠構砀湊。
对于用到的子程序:
温度采集和转化子程序用于启动温度传感器采集外界温度并将温度值送给单片机用于下一步处理;
DS1302初始化子程序是用于初始化DS1302的日历和时钟内容;
判断温度报警子程序是实现判断温度是否超过上下限,若超过则会掉用与报警有关的函数实现报警;
切屏控制功能子程序和修改设定功能子程序都属于系统的控制功能模块,用于对系统的控制;
实时温度显示子程序和上下限温度显示子程序以及实时时钟显示子程序,都是处理需要显示的数据,并显示在液晶显示器的相应位置。
鈀燭罚櫝箋礱颼畢韫粝。
整个软件系统的主函数通过如图4.1的循环结构,实现了各个模块在设计中的功能。
图4.1系统主程序流程图
4.3液晶显示程序设计
设计液晶显示相关程序之前,我们先要了解LCD1602的控制指令。
其具体的指令如图4.2所示。
图4.2LCD1602控制命令
其中,指令3是通过高低电平来设置光标和显示模式I/D;
指令4是高电平工作,低电平不工作;
指令5的D3位为1时移动文字,为0时移动光标。
惬執缉蘿绅颀阳灣熗鍵。
因此根据LCD1602控制命令,在主程序的LCD初始化语句为:
PORTD=1;
//清屏
ENABLE();
//LCD写入控制命令的子程序
PORTD=0x38;
//8位2行5x7点阵
PORTD=0x0c;
//显示器开、光标关、闪烁关
PORTD=0x06;
//文字不动,光标自动右移
因为LCD1602只能显示32个字符,而需要显示的内容又比较多,又要考虑到显示字符位置的合理性和美观性,所以液晶显示的程序内容分为两大部分。
一部分用于显示与温度有关的内容,另一部分用于显示与DS1302有关的内容,它们通过按键控制模块来控制显示内容。
贞廈给鏌綞牵鎮獵鎦龐。
显示与温度有关的内容时,LCD的显示格式如下图图4.3所示,其中以H开头的数字为上限温度值,L开头的数字为下限温度值。
第一行为温度传感器采集到的温度值,这里只显示到十分位。
调用显示这些内容的子函数为display_18b20()和display_Temperature(),程序流程图分别如图4.4和4.5所示。
嚌鲭级厨胀鑲铟礦毁蕲。
图4.3显示与温度有关的内容
图4.4display_18b20()程序流程图
图4.5display_Temperature()程序流程图
显示与DS1302有关的内容时,LCD的显示格式如下图图4.6所示。
其调用子函数为display_ds1302(),其程序流程图如图4.7所示。
薊镔竖牍熒浹醬籬铃騫。
图4.6显示与DS1302有关的内容
图4.7display_ds1302()程序流程图
4.4温度采集和转换程序设计
完成温度采集和转换程序设计之前,要先了解DS18B20的复位时序图和读写时序图。
在其可工作的时序内编写程序,就能正确的实现对DS18B20读数据和写命令,驱动DS18B20工作。
其各个时序图如下图4.8、4.9、4.10所示。
齡践砚语蜗铸转絹攤濼。
图4.8DS18B20复位时序图
图4.9DS18B20写0和写1时序图
图4.10DS18B20读0和读1时序图
因此,在本设计中的对DS18B20的复位程序具体如下,而对DS18B20的读写程序具体内容见附录源程序的read_byte()和write_byte()函数。
绅薮疮颧訝标販繯轅赛。
DS18B20复位程序:
voidreset()//
{
charpresence=1;
while(presence)
{
DQ_HIGH();
//拉高电平
delay
(1);
//稍作延时
DQ_LOW();
//主机拉至低电平
delay(63);
//延时773us
//释放总线等电阻拉高总线,
delay
(2);
//延时41us
if(DQ==0)
{presence=0;
//接收到应答信号
delay(40);
//延时496us
DQ_HIGH();
//再次拉高电,释放总线平;
}
elsepresence=0;
//没有接收到应答信号,继续复位
}
本设计中DS18B20采用的是出厂配置位为12位,即将采集到的温度转换为12位的数字信号,此时的温度分辨率为0.0625℃,转化温度的最大时间需要750ms。
其存储格式如下图4.11所示,其中高8位的前5位即bit15到bit10表示符号位。
如果S=0则温度大于0,否则温度小于0。
温度大于0时,只要将数值乘于0.0625就能得到实际的温度值[9]。
小于0时,就需要先取反加一,再按大于零的情况处理。
饪箩狞屬诺釙诬苧径凛。
图4.11温度值存储格式
下表4.1是DS18B20的部分温度值和与之对应的数字输出内容。
由表中的二进制数据可以看出数据的第十一位到第五位表示温度值的整数部分,第四位表示温度的小数部分。
烴毙潜籬賢擔視蠶贲粵。
表4.1温度值和与之对应的数字
温度(℃)
输出数据(二进制)
输出数据(十六进制)
125
0000
0111
1101
000
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 温度 报警 系统 软件设计 毕业论文 程序