基于单片机得温度控制器毕业设计说明书.docx
- 文档编号:29861538
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:49
- 大小:459.50KB
基于单片机得温度控制器毕业设计说明书.docx
《基于单片机得温度控制器毕业设计说明书.docx》由会员分享,可在线阅读,更多相关《基于单片机得温度控制器毕业设计说明书.docx(49页珍藏版)》请在冰豆网上搜索。
基于单片机得温度控制器毕业设计说明书
引言
随着生产生活的需要,自动化控制越来越起到至关重要的作用。
温度控制是工业生产过程中很普遍的过程控制,人们需要对各种加热炉,热处理炉,反应炉等锅炉中温度进行测量与控制。
特别是冶金,化工、建材、食品、机械、石油等工业中,具有举足轻重的作用,其温度的控制效果直接影响着产品的质量,因而设计一种较为理想的温度控制系统是非常有价值的,工业生产中温度控制具有单向性、时滞性、大惯性和时变性的特征,同时要实现温度控制的快速性和准确性,对于对于提高产品质量具有很重要的意义。
对于不同的场所、不同的工艺、不同的产品所需要的温度范围不同、精度也不同,则采用的温度测量元件以及温度测量方法和控制方法都有所不同;产品工艺不同、温度控制的精度不同、时效不同,则对数据采集的精度和采用的控制算法也不同。
因此对温度的控制方法要多种多样。
随着电子技术和微型计算的迅速发展,微机测量和控制技术也得到了迅速的发展和广泛的应用。
利用微机对温度进行测控的技术也随之而产生。
现有的温度传感器大多为(热电偶)体积大,应用复杂,多为模拟信号,已经不在适合现代工业的灵活性要求了。
本设计是基于单片机的温度控制系统,为闭环系统,工作的可靠性高、精度高。
本设计主要围绕单片机进行设计,从实际应用出发,选取了体积小、精度相对较高的数字式温度传感器件DS18B20作为温度采集装置,以单片机89C51作为主控芯片,1602作为显示输出,实现了对温度的实时测量,当温度超出设定范围系统将会自动调节加热或者降温系统,从而实现了实时恒温控制。
第一章系统方案论证
关于温度的检测问题,通常是通过温度敏感元件(热敏电阻)通过模数转换器(A/D),将模拟量转换成数字量,利用此种方法无法可靠的保证采样的精度,所以我们选择DS18B20直接从温度信号得到数字信号,大大提高了采样的精准度。
1.1方案设计
温度的控制方法多种多样,诸如PLC控制,模拟PID调节和数字PID调节等等。
从经济性和操作的可行性,本设计选择单片机控制与PLC控制进行对比选择。
方案一:
利用单片机实现温度控制
此方案以89S51单片机为CPU进行控制,系统主要包括现场温度采集(DS18B20)、实时温度显示(LCD1602)、报警电路提示、核心(89S51)单片机。
DS18B20直接采集数据并以数字的形式传到处理器,处理器会检查现场温度并将其与用户设定的温度进行比对,采取相应的措施(LED发光二极管闪烁),以提示用户温度和所需温度不同,需采取相应的措施,直至温度达到设定的范围内,LED发光二极管不再闪烁,从而实现温度的控制。
方案二:
利用PLC实现温度控制
利用PLC实现恒温控制,采用PLC控制实现电热丝加热全通、间断导通和全断加热的自控方式,来保持温度的恒定。
智能型电偶温度表将置于被测对象中,热电偶的传感信号与恒定温度的给定电压进行比较,生成温差,自适应恒温控制电路根据差值大小控制电路的通断。
1.2方案的对比论证
方案一采用单片机实现温度调节,成本低,而且具有较高的可靠性,对于系统动态性能与稳定要求不是很高的场合非常的合适,采用DS18B20作为温度传感器,直接得到数字信号,通过单片机对偏差进行运算,若温度不在所调节的温度范围之内会以单灯闪烁的形式提醒用户,用户采取措施达到控制温度目的。
方案二采用PLC进行控制,PLC的成本比单片机高出太多,而且还要提供良好的工作环境,对周边设备的要求也很高。
综合各种因素,本设计将采用单片机来实现恒温控制。
第二章系统硬件电路的设计
2.1电路总体原理框图
声光报警
本系统以89S51为核心,系统启动,首先通过DS18B20检测温度,将信号传至单片机,在LCD1602上显示,并且将其数值与设定值进行比对,温度高于设定值或者温度低于设定值的时候,单片机会输出信号使报警指示灯闪烁,从而提醒用户温度异常采取措施使温度上升或者下降到用户所调节的范围之内,达到温度的控制。
2.2单片机的选择
AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)Flash存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:
40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,片内时钟振荡器。
此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
AT89S51在空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式。
功能有所提升加了.89S51相对于89C51增加了新功能包括:
1.ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作
环境中剥离.是一个强大易用的功能.
2.最高工作频率为33MHz,大家都知道89C51的极限工作频率是24M,就是说S51具有更
高工作频率,从而具有了更快的计算速度.
3.具有双工UART串行通道.
4.内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路.
5.双数据指示器.
6.电源关闭标识.
7.全新的加密算法,这使得对于89S51的解密变为不可能,程序的保密性大大加强,这样
就可以有效的保护知识产权不被侵犯.
8.兼容性方面:
向下完全兼容51全部字系列产品.比如8051,89C51等等早期MCS-51兼容产品。
89S51单片机性能稳定,价格便宜,能够满足恒温控制的需求,还可以装载用户程序,所以本设计选用该单片机。
2.3单片机得管脚说明
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下所示:
各口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
2.4单片机的时钟电路
MCS-51系列单片机内部的振荡电路是一个高增益反向放大器,引线XTAL1和XTAL2分别是放大器的输入端和输出端。
单片机内部虽然有振荡电路,单要形成时钟,外部还需附加电路,本设计采用内部时钟方式,即利用内部的振荡电路在XTAL1和XTAL2引线上外接定时原件,内部振荡电路便产生自己振荡,用示波器可以观察到XTAL2输出的时钟信号,最常用的是在XTAL1和XTAL2之间连接晶体振荡器与电容构成稳定的自激振荡器,晶体可在1.2-12MHz之间选择。
MCS-51单片机在通常应用情况下,使用振荡频率为6MHz的石英晶体,而12MHz频率的晶体通常是在高速下载串行通信情况下才使用。
对电容值无严格要求,但他的取值范围对振荡频率输出的稳定、大小及振荡电路振速有少许影响,C1、C2可在20-40pF之间选取,一般取30pF,电路图如下图:
2.5复位电路及其复位状态
MCS-51单片机是高电平复位,所以先看给单片机加5V电源(上电)启动时的情况:
这时电容充电相当于短路,你可以认为RST上的电压就是VCC,这是单片机就是复位状态。
随着时间推移电容两端电压升高,即造成RST上的电压降低,当低至阈值电压时,即完成复位过程。
如果按下SW,的确就是按钮把C短路了,这时电容放电,两端电压都是VCC,即RST引脚电压为VCC,如果超过规定的复位时间,单片机就复位了。
当按钮弹起后,RST引脚的电压为0,单片机处于运行状态。
51单片机复位要求是:
RST上加高电平时间大于2个机器周期,你用的12MHz晶振,所以一个机器周期就是1us,要复位就加2us的高电平即可。
2.5.1复位电路
MCS-51单片机通常采用自动复位和按键复位两种方式,设计采用的的复位电路如下图,上电后电容充电,按下复位按钮后,电容放电保证RST端保持10ms以上的高电平,这样就能够使单片机有效的复位。
复位电路
2.5.2复位状态
复位电路的作用是使单片机实行位操作,复位主要操作是把PC初始化为0000H,使单片机从程序存储器的0000H单元开始执行程序。
程序存储器的0003H单元即MCS-51单片机的外部中断0的中断处理程序的入口地址留出的0000H~00002H三个单元地址,仅能够放置一条转移指令,因此,MCS-51单片机的主程序的第一条指令通常情况下是一条转移指令。
出PC之外,复位还对其他一些特殊功能的寄存器也有影响,他们的复位状态如下表所示。
利用他们的复位状态,可以减少应该用程序中的初始化编程,
如表所示,SP=07H,P0-P4的锁存器均为FFH外,其他所有的寄存器均为0。
单片机的复位状态不影响片内RAM的状态。
寄存器
复位状态
寄存器
复位状态
PC
0000H
TMOD
00H
ACC
00H
TCON
00H
PSW
00H
TL0
00H
SP
07H
TH0
00H
DPTR
0000H
TL1
00H
P0`P3
FFH
TH1
00H
IP
0xx00000B
SCON
00H
IE
0xx00000B
PCON
0xx00000B
2.6温度采集电路的设计
选择温度传感器,首先应该考虑温度传感器的测量精度和测量范围,精度符合使用要球,所以我们直接选择数字,避免在收到模拟信号后再将其转化成数字信号,那样会扩大测量误差,影响精确度。
DS18B20包含一个10位AD转换器,是一个以0.25的分辨力将温度数字化的温度传感器,测量范围是-55摄氏度到125摄氏度,考虑其精确度与范围故选择DS18B20为测量元件。
DS18B20内部结构图
低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
2.6.1DS18B20特点介绍
(1)独特的单线接口方式,与单片机通信只需一个引脚,DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
(2)在使用中不需要任何外围元件。
(3)可用数据线供电,电压范围:
+3.0~+5.5V。
(4)测温范围为-55~+125℃。
在-10~+85℃范围内误差为0.5℃。
(5)通过编程可实现9~12位的数字读数方式。
(6)用户可自设定非易失性的报警上下限值。
(7)支持多点组网功能,通过识别芯片各自唯一的产品序列号从而实现单线多挂接,多个DS18B20可以并联在唯一的线上,简化了分布式温度检测的应用,实现多点测温。
(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
(9)告警寻找命令可以识别和寻址那些温度超出预设告警界限的器
DS18B20的内部测温电路框图
2.7键盘接口电路的设计
本设计的键盘采用独立式键盘,独立式按键是指用I/O口线构成的单个按键电路,每个独立式按键单独占有一根I/O口线,每根I/O口线上按键的工作状态不会影响其他I/O口线的工作状态,即一个按键对应着-个端口输入,每一个按键都有一个按键电路来判断其是否按下。
上拉电阻确保按键松开时,I/O口线有确定的高电平。
当I/O口线内部有上接电阻时,外电路可以不配置上拉电阻,本设计采用采用查询方式读取按键,独立式按键电路如图所
按键功能
按键
键名
功能
RESET
复位键
使系统复位
S1
位选/设置键
确定
S2
加一键
温度上下线加一
S3
减一键
温度上下线减一
2.8显示接口和报警电路的设计
TC1602是字符型液晶显示模块是一类专门用于显示字母。
数字。
符号等的点阵型液晶显示模块,它是由若干个5×7或5×11等点阵字符组成。
每一个点阵字符位都可以显示一个字符,点阵字符位之间的一个点距的间隔起字符间距和行距的作用。
目前市面上常用的有16字×1行。
16字×2行。
20字×2行和40字×2行等字符模型,这些LCD虽然显示的字数各不相同,但是都具有相同的输入输出界面。
本文介绍的TC1602是一种16字×2行的字符型液晶显示模块,其接口引脚的说明如下:
编号
符号
引脚说明
编号
符号
引脚
1
VSS
电源地
9
D2
DataI/O
2
VDD
电源正极
10
D3
DataI/O
3
VL
液晶显示偏压信号
11
D4
DataI/O
4
RS
数据/命令选择端
12
D5
DataI/O
5
R/W
读/写选择端
13
D6
DataI/O
6
E
使能信号
14
D7
DataI/O
7
D0
DataI/O
15
BLA
背光源正极
8
D1
DataI/O
16
BLK
背光源负极
各引脚作用如下:
1脚VSS:
接地;
2脚Vdd:
接+5V电源;
3脚VO:
对比度调整端,LCD驱动电压范围为Vdd~VO。
当VO接地时,对比度最强;
4脚RS:
寄存器选择端,RS为0时,选择命令寄存器IR;RS为1时,选择数据寄存器DR;
5脚:
读写控制端,为1时,选择读出;为0时,则选择写入;
6脚Enable:
使能控制端,Enable为1时,使能;Enable为0,禁止;
7脚~14脚D0~D7:
数据总线;
15脚LED+:
背景光源,接+5V;
16脚LED-:
背景光源,接地。
显示接口电路的设计
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。
要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图3-7是1602的内部显示地址。
1602的内部显示地址
在本系统中我设计了越线报警装置,控制目标温度范围。
当设定的目标温度线达到时,需用声音的形式提醒使用者,此时报警器开始发出报警声。
在本系统中,当温度高于或者低于设置的温度时报警指示灯闪烁。
当单片机P1.1输出高电平时,二极管导通,报警灯闪烁报警。
P1.1为低电平时二极管关断,报警灯不工作。
电源指示灯和报警指示灯电路
2.9通信接口电路设计
2.9.1max232原理
MAX232芯片是专门为电脑的RS-232标准串口设计的接口电使用+5v单电源供电。
内部结构基本可分三个部分:
第一部分是电荷泵电路。
由1、2、3、4、5、6脚和4只电容构成。
功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道。
由7、8、9、10、11、12、13、14脚构成两个数据通道。
其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。
8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。
TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DP9插头;DP9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
第三部分是供电。
15脚DNG、16脚VCC(+5v)。
2.9.2MAX232与单片机的接口电路
一般常用的电平转换器件有MAX232、MC1488、MC1489及等,但MC1488、MC1489需要±12V电源,这对于8051单片机系统是非常不便的,其中我所选用的是双路RS-232收发器MAX232,它需要+5V电源。
本系统采用的是PHILIPS系列的单片机,它本身具有串口通信的功能。
MCU与PC机进行通讯,由于PC机的逻辑电平与MCU的逻辑电平完全不一样。
PC机的逻辑电平:
-(3~15)V为逻辑1,+(3~15)V为逻辑0。
而本系统采用的STC系列的单片机的逻辑电平:
逻辑“1”为+5V,逻辑“0”为0V。
为了达到电平的匹配,采用了MAX232电平转换芯片。
在MAX232电平转换芯片的外围使用了4个电容作为电荷泵升压及电压反转部分电路,产生V+、V-电源供电平转换使用。
理论上还需要在VCC上接一个104的电容作为对地的去耦电容,而在本系统中直接采用了5个104的电容就能够完成电平转换的功能。
如图13所示
图13MAX232电平转换图
MAX232产品是由德州仪器公司(TI)推出的一款兼容RS-232标准的芯片。
并且可以完全兼容目前市场上使用的RS-232接口芯片该器件,它包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平。
该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5VTTL/CMOS电平。
每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。
MAX232产品的特性有:
(1)满足或超过TIA/EIA-232-F规范要求,符合ITUv.28标准。
(2)单5-V电源供电和4个1.0uF充电泵电容。
(3)包含2个驱动器和2个接收器。
(4)低工作电流典型值为8mA。
(5)2000-VESD保护。
RS-232接口芯片MAX232与单片机的接口电路设计
第三章软件系统的设计
系统的软件由三大模块组成:
主程序模块、功能实现模块和运算模块。
3.1主程序模块
主程序主要完成各部件的初始化和实现各功能子程序的调用,以及实际测量中各个功能模块的协调,单片机通过循环对外部温度进行实时显示,以便能对数字按键进行相应处理。
主程序流程图如下:
3.2温度报警模块
本模块主要是通过LED灯的闪烁来报警,以提醒用户温度异常,采取相应的措施降温或者升温,报警模块流程图如
开启报警灯
报警模块流程图
3.3参考程序
/***********************************************************************************************
实验名称:
DS18B20温度传感器+LCD+报警
实现说明:
DS18B20采集的温度范围是-55~+125度,有三个按键来设置其上线温度TH和下限温度值TL
xuanze键来选择设置TH还是TL;
up键每按一次TH或TL加1;
down键每按一次TH或TL减1;
实验现象:
当DS18B20测得的温度值>=上限温度值(TH)或者<=下限温度值(TL)时,发光二极管亮,报警;
*************************************************************************************************/
#include
#include
#include
#defineuintunsignedint
#defineucharunsignedchar
#defineLCDP0
sbitLED=P3^4;//位定义报警显示灯
sbitxuanze=P2^2;//位定义选择按键
sbitup=P2^1;//位定义极限加
sbitdown=P2^0;//位定义极限减
intth=10,tl=2,thh=0,tll=0;//初始上限值和下限值
uchari,num=0;//定义变量
/******************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 温度 控制器 毕业设计 说明书