基于单片机的多点无线温度监控系统设计毕业设计文档格式.docx
《基于单片机的多点无线温度监控系统设计毕业设计文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的多点无线温度监控系统设计毕业设计文档格式.docx(29页珍藏版)》请在冰豆网上搜索。
本课题采用51单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标。
作为控制系统中的一个典型实验设计,单片机温度控制系统综合运用了微机原理、自动控制原理、传感器原理、模拟电子技术、数字控制技术、键盘显示技术等诸多方面的知识,是对所学知识的一次综合测试。
1.2课题研究现状分析
由于现代工艺越来越多的需要对实时温度进行监测和控制,而且需要的精度越来越高。
所以温度控制系统国内外许多有关人员的重视,得到了十分广泛的应用。
温度控制系统发展迅速,而且成果显著。
由于单片微处理器的性能日益提高、价格又不断降低,使其性能价格比的优势非常明显。
因此,如何将单片微处理器应用到锅炉温度自动控制领域,为越来越多的生产厂家所重视。
目前先进国家各种炉窑自动化水平较高,装备有完善的检测仪表和计算机控制系统。
其计算机控制系统已采用集散系统和分布式系统的形式,大部分配有先进的控制算法,能够获得较好的工艺性能指标。
单片微型计算机是随着超大规模集成电路的技术的发展而诞生的。
由于它具有体积小,功能强,性价比高等优点,所以广泛应用于电子仪表,家用电器,节能装置,军事装置,机器人,工业控制等诸多领域,使产品小型化,智能化,既提高了产品的功能和质量又降低了成本,简化了设计。
1.3技术指标
设计并制作一个基于单片机的温度控制系统,能够对炉温进行控制。
炉温可以在一定范围内由人工设定,并能在炉温变化时实现自动控制。
若测量值高于温度设定范围,由单片机发出控制信号,经过驱动电路使加热器停止工作。
当温度低于设定值时,单片机发出一个控制信号,启动加热器。
通过继电器的反复开启和关闭,使炉温保持在设定的温度范围内。
◆温度设定范围为0~99℃,最小区分度为1℃,温度控制的误差≤1℃
◆能够用数码管精确显示当前实际温度值
◆按键控制:
设置复位键、加一键、减一键
◆越限报警
2总体设计
2.1系统设计方案论证
实现温度控制的方法主要有以下几种。
方案一:
采用纯硬件的闭环控制系统。
该系统的优点在于速度较快,但可靠性比较差控制精度比较低、灵活性小、线路复杂、调试、安装都不方便。
且要实现题目所有的要求难度较大。
方案二:
FPGA/CPLD或采用带有IP内核的FPGA/CPLD方式。
即用FPGA/CPLD完成采集,存储,显示及A/D等功能,由IP核实现人机交互及信号测量分析等功能。
这种方案的优点在于系统结构紧凑,可以实现复杂的测量与与控制,操作方便;
缺点是调试过程复杂,成本较高。
方案三:
单片机与高精度温度传感器结合的方式。
即用单片机完成人机界面,系统控制,信号分析处理,由前端温度传感器完成信号的采集与转换。
这种方案克服了方案一、二的缺点,所以本课题任务是基于单片机和温度传感器实现对温度的控制。
2.2系统结构框图
系统主要包括数据采集模块,单片机控制模块,显示模块和温度设置模块,驱动电路五个部分。
系统框图如图2.2-1所示
图2.2-1系统框图
其中数据采集模块负责实时采集温度数据,采集到的温度数据传输到单片机,由单片机处理后的数据送显示部分显示。
设置模块可设置预定温度,当检测到的温度低于设定温度时,单片机控制驱动电路启动加热,并发出报警声;
当检测温度高于设定温度时,停止加热。
3硬件设计
3.1元器件的选择
3.1.1单片机选择
单片机的选择在整个系统设计中至关重要,要满足大内存、高速率、通用性、价格便宜等要求,本课题选择AT89S51作为主控芯片。
AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51芯片具有以下特性:
◆指令集和芯片引脚与Intel公司的8051兼容;
◆4KB片内在系统可编程Flash程序存储器;
◆时钟频率为0~33MHz;
◆128字节片内随机读写存储器(RAM);
◆32个可编程输入/输出引脚;
◆2个16位定时/计数器;
◆6个中断源,2级优先级;
◆全双工串行通信接口;
◆监视定时器;
◆2个数据指针。
AT89S51单片机的40个引脚中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚。
◆电源引脚Vcc和Vss
Vcc(40脚):
接+5V电源正端;
Vss(20脚):
接+5V电源正端。
◆外接晶振引脚XTAL1和XTAL2
XTAL1(19脚):
接外部石英晶体的一端。
在单片机内部,它是一个反相放大器的输入端,这个放大器构成采用外部时钟时,对于HMOS单片机,该引脚接地;
对于CHOMS单片机,该引脚作为外部振荡信号的输入端。
XTAL2(18脚):
接外部晶体的另一端。
在单片机内部,接至片内振荡器的反相放大器的输出端。
当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端。
对于CHMOS芯片,该引脚悬空不接。
◆控制信号或与其它电源复用引脚有RST/VPD、ALE/P、PSE等4种形式。
RST/VPD(9脚):
RST即为RESET,VPD为备用电源,所以该引脚为单片机的上电复位或掉电保护端。
当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机复位到初始状态。
当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部RAM供电,以保证RAM中的数据不丢失。
ALE/P(30脚):
当访问外部存储器时,ALE(允许地址锁存信号)以每机器周期两次的信号输出,用于锁存出现在P0口的地址信号。
PSEN(29脚):
片外程序存储器读选通输出端,低电平有效。
当从外部程序存储器读取指令或常数期间,每个机器周期PESN两次有效,以通过数据总线口读回指令或常数。
当访问外部数据存储器期间,PESN信号将不出现。
EA/Vpp(31脚):
EA为访问外部程序储器控制信号,低电平有效。
当EA端保持高电平时,单片机访问片内程序存储器4KB(MS—52子系列为8KB)。
若超出该范围时,自动转去执行外部程序存储器的程序。
当EA端保持低电平时,无论片内有无程序存储器,均只访问外部程序存储器。
对于片内含有EPROM的单片机,在EPROM编程期间,该引脚用于接21V的编程电源Vpp。
◆输入/输出(I/O)引脚P0口、P1口、P2口及P3口
P0口(39脚~22脚):
这8条引脚有两种不同功能,分别适用于两种不同情况。
第一种情况是89S51不带片外存储器,P0口可以作为通用I/O口使用,P0.0-P0.7用于传送CPU的输入/输出数据。
第二种情况是89S51带片外存储器,P0.0-P0.7在CPU访问片外存储器时用于传送片外存储器的低8位地址,然后传送CPU对片外存储器的读写数据。
P1口(1脚~8脚):
这8条引脚和P0口的8条引脚类似,P1.7为最高位,P1.0为最低位。
当P1口作为通用I/O口使用时,P1.0-P1.7的功能和P0口的第一功能相同,也用于传送用户的输入和输出数据。
P2口(21脚~28脚):
这组引脚的第一功能和上述两组引脚的第一功能相同,既它可以作为通用I/O口使用。
P3口(10脚~17脚):
P3.0~P3.7统称为P3口。
而且P3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。
P3口的第2功能见表3.1.1-1。
表3.1.1-1单片机P3口管脚第2功能
引脚
第2功能
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
RXD(串行口输入端0)
TXD(串行口输出端)
INT0(部中断0请求输入端,低电平有效)
INT1(中断1请求输入端,低电平有效)
T0(时器/计数器0计数脉冲端)
T1(时器/计数器1数脉冲端)
WR(部数据存储器写选通信号输出端,低电平有效)
RD(部数据存储器读选通信号输出端,低电平有效)
AT89S51单片机引脚图如图3.1.1-1所示
图3.1.1-1单片机引脚图
3.1.2传感器选择
本系统采用DALLAS半导体公司生产的一线式数字温度传感器DS18B20采集温度数据、测控系统和大型设备中。
它具有体积小,接口方便,传输距离远等特点。
DS18B20的性能特点:
采用单总线专用技术,直接输出被测温度值(9位二进制数,含符号位),测温范围为-55℃-+125℃,测量分辨率为0.0625℃。
DS18B20内部结构主要由四部分组成:
64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。
DS18B20的管脚排列如图3.1.2-2所示。
图3.1.2-2
DS18B20引脚分布图
DS18B20高速暂存器共9个存存单元,如表3.1.2-1所示:
表3.1.2-1DS18B20高速暂存器
序号
寄存器名称
作
用
用
1
2
3
温度低字节
温度高字节
TH/用户字节1
HL/用户字节2
以16位补码形式存放
存放温度上限
存放温度下限
4、5
6
7
8
保留字节1、2
计数器余值
计数器/℃
CRC
以12位转化为例说明温度高低字节存放形式及计算:
12位转化后得到的12位数据,存储在18B20的两个高低两个8位的RAM中,二进制中的前面5位是符号位。
如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;
如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625才能得到实际温度。
温度由DALLAS公司生产的一线式数字温度传感器DS18B20采集。
DS18B20测温范围为-55°
C~+125°
C,测温分辨率可达0.0625°
C,被测温度用符号扩展的16位补码形式串行输出。
CPU只需一根端口线就能与诸多DS18B20通信。
公司生产的一线式数字温度传感器DS18B20采集。
在硬件上,DS18B20与单片机的连接有两种方法,一种是Vcc接外部电源,GND接地,I/O与单片机的I/O线相连;
另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。
无论是内部寄生电源还是外部供电,I/O口线要接5KΩ左右的上拉电阻。
DS18B20有六条控制命令,如表3.1.2-3所示:
表3.1.2-3DS18B20控制命令
指
令
约定代码
操
说
明
温度转换
读暂存器
写暂存器
复制暂存器
重新调E2RAM
读电源供电方式
44H
BEH
4EH
48H
B8H
B4H
启动DS18B20进行温度转换
读暂存器9个字节内容
将数据写入暂存器的TH、TL字节
把暂存器的TH、TL字节写到E2RAM中
把E2RAM中的TH、TL字节写到暂存器TH、TL字节
启动DS18B20发送电源供电方式的信号给主CPU
CPU对DS18B20的访问流程是:
先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。
DS18B20每一步操作都要遵循严格的工作时序和通信协议。
如主机控制DS18B,须经三个步骤:
每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
3.2单片机控制模块
控制模块是整个设计方案的核心,它控制了温度的采集、处理与显示、温度值的设定与温度越限时控制电路的启动。
本控制模块由单片机AT89S51及其外围电路组成,电路如图3.2-1所示。
图3.2-1单片机控制模块电路
该电路采用按键加上电复位,S2为复位按键,复位按键按下后,复位端通过51Ω的小电阻与电源接通,迅速放电,使RST引脚为高电平,复位按键弹起后,电源通过8.2KΩ的电阻对10KμF的电容C5重新充电,RST引脚端出现复位正脉冲.
AT89S51内部有一个高增益反相放大器,用于构成振荡器,但要形成时钟脉冲,外部还需附加电路,本设计采用内部时钟方式,利用芯片内部的振荡器,然后在引脚XTAL1和XTAL2两端跨接晶体振荡器,就构成了稳定的自激振荡器,发出的脉冲直接送入内部时钟电路,C6和C7的值通常选择为30pF左右,晶振Y1选择12MHz.为了减小寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器电容应尽可能安装得与单片机引脚XTAL1和XTAL2靠近。
单片机的31脚(EA)接+5V电源,表示允许使用片内ROM。
3.3温度数据采集模块
CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
本设计采用三引脚PR-35封装的DS18B20,其引脚图见图3。
Vcc接外部+5V电源,GND接地,I/O与单片机的P3.4(T0)引脚相连。
3.4显示模块
显示部分采用LED静态显示方式,共阴极的数码管的公共端COM连接在一起接地,每位的段选线与74HC164的8位并口相连,只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符,考虑到节约单片机的I/O资源,因而采用串行接口方式,外接8位移位寄存器74HC164构成显示电路,电路如图3.4-1所示。
图3.4-1显示模块电路
74HC164的逻辑功能介绍如下:
当清除端(CLEAR)为低电平时,输出端(QA-QH)均为低电平。
串行数据输入端(A,B)可控制数据当A、B有一个为高电平,则另一个就允许输入数据,并在CLOCK上升沿作用下决定Q0的状态。
H-高电平L-低电平X-任意电平↑-低到高电平跳变QA0,QB0,QH0-规定的稳态条件建立前的电平QAn,QGn-时钟最近的↑前的电平。
。
图3.4-274HC164时序图
在单片机的TXD(P3.1)运行时钟信号,将显示数据由RXD(P3.0)口串行输出至74HC164的A、B端。
3.5温度设置模块
温度设置部分采用独立式按键,S4为温度值加1按键,与单片机的P0.0口相连;
S3为温度值减1按键,与单片机的P0.1口相连。
当没有键按下时,单片机与之相连的输入口线为高电平,当任何一个按键按下时,与之相连的输入口线被置为低电平,产生外中断条件,在中断服务程序中读取键盘值。
温度设置电路如图3.5-1所示。
图3.5-1温度设置模块电路
3.6控制电路
控制电路与单片机的P0.2口相连,由于单片机输出控制信号非常微弱,需要用三极管来驱动外围电路,三极管选用NPN型的9014,当检测温度低于设定温度时,在单片机的P0.2口输出高电平控制信号,使三极管9014导通,使继电器两控制端产生压差,从而使继电器吸合,常开触点接通,控制外部电路对锅炉进行加热;
当检测温度高于设定温度时,单片机输出低电平信号,三极管截止,继电器不吸合,外部电路停止加热。
控制电路电路图如图3.6-1所示。
图3.6-1控制电路
4软件设计
系统软件要实现的功能如下:
利用4只共阴数码管,LED1显示检测温度十位,LED2显示检测温度个位,LED3显示设定温度十位,LED4显示设定温度个位,显示分辨率为1℃。
单片机复位后默认设定温度为40℃,当每按下一次设定温度上升按钮ADD时,设定温度增加1℃,最高为120℃,当每按下一次设定温度下降按钮DEC时,设定温度减少1℃,最低设定为0℃。
当设定温度大于检测温度时加热输出,当设定温度小于检测温度时加热停止。
4.1主程序流程图
温度控制程序的设计应考虑如下:
◆键盘扫描、键码识别和温度显示;
◆炉温采样;
◆数据处理;
◆越限报警和处理。
系统流程图如图4.1-1所示。
图4.1-1系统流程图
4.2温度传感器DS18B20工作过程及时序
DS18B20工作过程中的协议如下:
初始化——ROM操作命令——存储器操作命令——处理数据
4.2.1初始化时序
时序如图4.2.1-1所示。
主机总线发送复位脉冲(最短为480μS,最高时间为960μS的低电平信号),接着再释放总线(置总线为高电平)并进入接收状态。
DS18B20在检测到总线的上升沿后等待15—60μS发出器件存在脉冲(低电平持续60—240μS)。
初始化程序如下所示:
INIT:
SETBP3.4
NOP
CLRP3.4
MOVR0,#0FFH
DJNZR0,$
SETBP3.4
MOVR0,#100
LIU:
JNBP3.4,IT3
DJNZR0,LIU
CLR38H
SJMPIT7
IT3:
SETB38H
IT7:
MOVR0,#240
DJNZR0,$
SETBP3.4
RET
图4.2.1-1初始化时序图
此初始化程序功能为:
检测DS18B20是否存在,如存在,将位地址38H置1;
如不存在,将位地址38H清零。
4.2.2写时序
单片机写DS18B20的时序如图4.2.2-2所示,当主机总线从高拉至低电平时就产生写时间隙,DS18B20在检测到下降沿后15μS时开始采样总线上的电平,所以15μS之内应将所需写的位送到总线上,DS18B20再15—60μS间对总线采样,每写一位总时间必须在60—120μS之间完成。
若低电平写入的位是0,高电平写入的位是1,连续写时位间的间隙应大于1μS。
程序如下所示:
WRITER:
MOVR0,#8
WR1:
CLRP3.4
MOVR4,#6
DJNZR4,$
RRCA
MOVP3.4,C
MOVR4,#40
NOP
DJNZR0,WR1
图4.2.2-1单片机写DS18B20时序图
4.2.3读时序
单片机读DS18B20的时序如图4.2.3-1所示,单片机主动产生一个下降沿的启动信号,并维持低电平大于1μS后释放总线,15μS后DS18B20占主动权,DS18B20会将数据按位放在总线上(低位在先,当读取两个字节的温度值时,低字节在先),这时单片机可读取信号,读取一位的时间应在60μS内完成。
当需要读取下一位时再产生下降沿启动信号。
图4.2.3-1单片机读DS18B20的时序图
READ:
SETBRS0
MOVR4,#2
MOVR0,#36H
RE1:
MOVR5,#8
RE2:
CLRC
SETBP3.4
CLRP3.4
MOVR6,#7
DJNZR6,$
MOVC,P3.4
MOVR6,#20
RRCA
DJNZR5,RE2
MOV@R0,A