基于单片机温度控制系统的设计副本文档格式.docx
- 文档编号:6153479
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:19
- 大小:148.16KB
基于单片机温度控制系统的设计副本文档格式.docx
《基于单片机温度控制系统的设计副本文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机温度控制系统的设计副本文档格式.docx(19页珍藏版)》请在冰点文库上搜索。
且要实现题目所有的要求难度较大。
方案二:
FPGA/CPLD或采用带有IP内核的FPGA/CPLD方式。
即用FPGA/CPLD完成采集,存储,显示及A/D等功能,由IP核实现人机交互及信号测量分析等功能。
这种方案的优点在于系统结构紧凑,可以实现复杂的测量与与控制,操作方便;
缺点是调试过程复杂,成本较高。
方案三:
单片机与高精度温度传感器结合的方式。
即用单片机完成人机界面,系统控制,信号分析处理,由前端温度传感器完成信号的采集与转换。
这种方案克服了方案一、二的缺点,所以本课题任务是基于单片机和温度传感器实现对温度的控制。
2.2系统结构框图
系统主要包括数据采集模块,单片机控制模块,显示模块和温度设置模块,驱动电路五个部分。
系统框图如图1所示。
图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引脚。
1.电源引脚Vcc和Vss
Vcc(40脚):
接+5V电源正端;
Vss(20脚):
接+5V电源正端。
2.外接晶振引脚XTAL1和XTAL2
XTAL1(19脚):
接外部石英晶体的一端。
在单片机内部,它是一个反相放大器的输入端,这个放大器构成采用外部时钟时,对于HMOS单片机,该引脚接地;
对于CHOMS单片机,该引脚作为外部振荡信号的输入端。
XTAL2(18脚):
接外部晶体的另一端。
在单片机内部,接至片内振荡器的反相放大器的输出端。
当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端。
对于CHMOS芯片,该引脚悬空不接。
3.控制信号或与其它电源复用引脚有RST/VPD、ALE/P、PSEN和EA/VPP等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。
4.输入/输出(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口使用。
它的第二功能和P0口引脚的第二功能相配合,用于输出片外存储器的高8位地址。
P3口(10脚~17脚):
P3.0~P3.7统称为P3口。
它为双功能口,可以作为一般的准双向I/O接口,也可以将每1位用于第2功能,而且P3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。
P3口的第2功能见表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单片机引脚图如图2所示
图2单片机引脚图
3.1.2传感器选择
本系统采用DALLAS半导体公司生产的一线式数字温度传感器DS18B20采集温度数据,DS18B20属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。
它具有体积小,接口方便,传输距离远等特点。
DS18B20的性能特点:
①采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位),②测温范围为-55℃-+125℃,测量分辨率为0.0625℃,③内含64位经过激光修正的只读存储器ROM,④适配各种单片机或系统机,⑤用户可分别设定各路温度的上、下限,⑥内含寄生电源。
DS18B20内部结构主要由四部分组成:
64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。
DS18B20的管脚排列如图3所示。
图3
DS18B20引脚分布图
DS18B20高速暂存器共9个存存单元,如表2所示:
表2DS18B20高速暂存器
序号
寄存器名称
作
用
用
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才能得到实际温度。
表3温度高低字节存放形式
高8位
S
26
25
24
低8位
23
22
21
20
2-1
2-2
2-3
2-4
在硬件上,DS18B20与单片机的连接有两种方法,一种是Vcc接外部电源,GND接地,I/O与单片机的I/O线相连;
另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。
无论是内部寄生电源还是外部供电,I/O口线要接5KΩ左右的上拉电阻。
DS18B20有六条控制命令,如表4所示:
表4DS18B20控制命令
指
令
约定代码
操
说
明
温度转换
读暂存器
写暂存器
复制暂存器
重新调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每一步操作都要遵循严格的工作时序和通信协议。
如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:
每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
3.2单片机控制模块
控制模块是整个设计方案的核心,它控制了温度的采集、处理与显示、温度值的设定与温度越限时控制电路的启动。
本控制模块由单片机AT89S51及其外围电路组成,电路如图4所示。
图4单片机控制模块电路
该电路采用按键加上电复位,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温度数据采集模块
温度由DALLAS公司生产的一线式数字温度传感器DS18B20采集。
DS18B20测温范围为-55°
C~+125°
C,测温分辨率可达0.0625°
C,被测温度用符号扩展的16位补码形式串行输出。
CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
本设计采用三引脚PR-35封装的DS18B20,其引脚图见图3。
Vcc接外部+5V电源,GND接地,I/O与单片机的P3.4(T0)引脚相连。
3.4显示模块
显示部分采用LED静态显示方式,共阴极的数码管的公共端COM连接在一起接地,每位的段选线与74HC164的8位并口相连,只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符,考虑到节约单片机的I/O资源,因而采用串行接口方式,外接8位移位寄存器74HC164构成显示电路,电路如图5所示。
图5显示模块电路
3.5温度设置模块
温度设置部分采用独立式按键,S4为温度值加1按键,与单片机的P0.0口相连;
S3为温度值减1按键,与单片机的P0.1口相连。
当没有键按下时,单片机与之相连的输入口线为高电平,当任何一个按键按下时,与之相连的输入口线被置为低电平,产生外中断条件,在中断服务程序中读取键盘值。
温度设置电路如图7所示。
图7温度设置模块电路
3.6控制电路
控制电路与单片机的P0.2口相连,由于单片机输出控制信号非常微弱,需要用三极管来驱动外围电路,三极管选用NPN型的9014,当检测温度低于设定温度时,在单片机的P0.2口输出高电平控制信号,使三极管9014导通,使继电器两控制端产生压差,从而使继电器吸合,常开触点接通,控制外部电路对锅炉进行加热;
当检测温度高于设定温度时,单片机输出低电平信号,三极管截止,继电器不吸合,外部电路停止加热。
控制电路电路图如图8所示。
图8控制电路
4.软件设计
系统软件要实现的功能如下:
利用4只共阴数码管,LED1显示检测温度十位,LED2显示检测温度个位,LED3显示设定温度十位,LED4显示设定温度个位,显示分辨率为1℃。
单片机复位后默认设定温度为25℃,当每按下一次设定温度上升按钮ADD时,设定温度增加1℃,最高为35℃,当每按下一次设定温度下降按钮DEC时,设定温度减少1℃,最低设定为15℃。
当设定温度大于检测温度时加热输出,当设定温度小于检测温度时加热停止。
4.1主程序流程图
温度控制程序的设计应考虑如下:
1)键盘扫描、键码识别和温度显示;
2)温度采样;
3)数据处理;
4)越限报警和处理。
系统流程图如图9所示。
图9系统流程图
4.2温度传感器DS18B20工作过程及时序
DS18B20工作过程中的协议如下:
(1)初始化——
(2)ROM操作命令——(3)存储器操作命令——(4)处理数据
4.2.1初始化时序
时序如图10所示。
主机总线发送复位脉冲(最短为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
图10初始化时序图
此初始化程序功能为:
检测DS18B20是否存在,如存在,将位地址38H置1;
如不存在,将位地址38H清零。
4.2.2写时序
单片机写DS18B20的时序如图11所示,当主机总线从高拉至低电平时就产生写时间隙,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
图11单片机写DS18B20时序图
4.2.3读时序
单片机读DS18B20的时序如图12所示,单片机主动产生一个下降沿的启动信号,并维持低电平大于1μS后释放总线,15μS后DS18B20占主动权,DS18B20会将数据按位放在总线上(低位在先,当读取两个字节的温度值时,低字节在先),这时单片机可读取信号,读取一位的时间应在60μS内完成。
当需要读取下一位时再产生下降沿启动信号。
图12单片机读DS18B20的时序图
READ:
SETBRS0
MOVR4,#2
MOVR0,#36H
RE1:
MOVR5,#8
RE2:
CLRC
SETBP3.4
NOP
CLRP3.4
MOVR6,#7
DJNZR6,$
MOVC,P3.4
MOVR6,#20
RRCA
DJNZR5,RE2
MOV@R0,A
DECR0
DJNZR4,RE1
CLRRS0
RET
此程序功能为:
读取DS18B20A/D转换后的温度值,转换后的二进制存入36H、35H单元,默认为12位转换,低8位存入36H单元,高8位存入35H单元(35H单元的高5位均为符号位,所以判断符号只需判断低12位数据的最高位即可)。
1表示为零度以下,0表示零度以上,实际有效位为11位。
结论
本文详细介绍了基于单片机AT89S51的生物培养液温度控制系统的设计方案与软硬件实现。
系统包括数据采集模块,单片机控制模块,显示模块和温度设置模块,驱动电路五个部分。
文中对每个部分功能、实现过程作了详细介绍。
完成了课题既定的任务,达到了预期的目标。
系统具有如下特点:
⑴.采用智能温度传感器DS18B20采集温度数据,简化了硬件电路设计,温度采集数据更加精准;
⑵.AT89S51单片机的采用,有利于功能扩展;
⑶.电路设计充分考虑了系统可靠性和安全性。
本系统没有增加外部存储器,设定温度不能保存,断电复位后必须重新设置温度;
采用静态显示方式,从而使用了较多的驱动芯片,增加了硬件电路的复杂性;
只使用两位显示,即显示温度的十位、个位,没有充分发挥DS18B20的特性。
附录
附录1系统总原理图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于单片机温度控制系统的设计 副本 基于 单片机 温度 控制系统 设计