基于单片机的恒温箱温度控制系统毕业论文
更新时间:2024-05-04 10:38:01 阅读量: 综合文库 文档下载
第1章 绪 论
1.1研究的目的和意义
温度是工业生产中主要被控参数之一,温度控制自然是生产的重要控制过程。工业生产中温度很难控制,对于要求严格的的场合,温度过高或过低将严重影响工业生产的产质量及生产效率,降低生产效益。这就需要设计一个良好温度控制器,随时向用户显示温度,而且能够较好控制。单片机具有和普通计算机类似的强大数据处理能力,结合PID,程序控制可大大提高控制效力,提高生产效益。
本文采用单片机STC89C52设计了温度实时测量及控制系统。单片机STC89C52 能够根据温度传感器DS18B20所采集的温度在LCD1602液晶屏上实时显示,通过PID控制从而把温度控制在设定的范围之内。通过本次课程实践,我们更加的明确了单片机的广泛用途和使用方法,以及其工作的原理。
1.2国内外发展状况
温度控制采用单片机设计的全数字仪表,是常规仪表的升级产品。温度控制的发展引入单片机之后,有可能降低对某些硬件电路的要求,但这绝不是说可以忽略测试电路本身的重要性,尤其是直接获取被测信号的传感器部分,仍应给予充分的重视,有时提高整台仪器的性能的关键仍然在于测试电路,尤其是传感器的改进。现在传感器也正在受着微电子技术的影响,不断发展变化。
恒温系统的传递函数事先难以精确获得,因而很难判断哪一种控制方法能够满足系统对控制品质的要求。但从对控制方法的分析来看,PID控制方法最适合本例采用。另一方面,由于可以采用单片机实现控制过程,无论采用上述哪一种控制方法都不会增加系统硬件成本,而只需对软件作相应改变即可实现不同的控制方案。因此本系统可以采用PID的控制方式,以最大限度地满足系统对诸如控制精度、调节时间和超调量等控制品质的要求。 现在国内外一般采用经典的温度控制系统。采用模拟温度传感器对加热杯的温度进行采样,通过放大电路变换为 0~5V 的电压信号,经过A/D 转换,保存在采样值单元;利用键盘输入设定温度,经温度标度转换转化成二进制数,保存在片内设定值单元;然后调显示子程序,多次显示设定温度和采样温度,再把采样值与设定值进行 PID 运算得出控制量,用其去调节可控硅触发端的通断,实现对电阻丝加热时间的控制, 以此来调节温度使其基本保持恒定。
1.3温度控制系统的设计内容
本系统从硬件和软件两方面来讲述恒温箱温度自动控制过程,在控制过程中主要应用STC89C52、LCD1602液晶显示器,而主要是通过 DS18B20数字温度传感器采集环境温度,以单片机为核心控制部件,并通过LCD1602显示实时温度的一种数字温度计。软件方面采用C语言来进行程序设计,使指令的执行速度快,节省存储空间。而系统的过程则是:首先,通过设置按键,设定恒温运行时的温度值,并且用LCD1602显示这个温度值.然后,在运行过程中将DS18B20采样的温度经过处理后的数字量用LCD1602进行显示,结合PID控制得出的信号传给单片机,用单片机的相应引脚来控制加热器,进行加热或停止加热,直到能在规定的温度下恒温加热,如果温度超过了恒温设定值,用单片机控制制冷片对
恒温箱进行降温,最后保证恒温箱在设定的温度下运行。
第2章 总体方案设计
2.1 方案一
测温电路的设计,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。
2.2 方案二
考虑使用温度传感器,结合单片机电路设计,温度传感器的选择,采用温度芯片DS18B20测量温度,该芯片的物理化学性能很稳定,它能用做工业测温元件,且此元件线性较好。在0-100摄氏度时,最大线性偏差小于1摄氏度。该芯片直接向单片机传输数字信号,便于单片机处理及控制。本制作的最大特点之一是直接采用温度芯片对为温度进行测量,使数据传输和处理简单化,直接读取被测温度值,之后进行转换,依次完成设计要求。
比较以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计容易实现,故实际设计中拟采用方案二。电路设计方框图如图2-1所示,它主要由五部分组成:控制部分主芯片采用单片机STC89C52;显示部分采用LCD1602液晶显示;温度设定部分采用按键设定;温度温度采集部分采用DS18B20温度传感器;加温部分采用光电可控硅MOC3061控制制大功率加热器;降温部分采用继电器控制TEC1-12706半导体制冷片。
晶振电路 复位电路 按键电路 DS18B20 温度采集
图2-1 温度控制系统的总体设计方案
STC89C52 LCD1602 显示电路 光电双向可控硅控制加热器工作 半 导 体 制冷片工作
第3章 温度控制系统的器件和模块选用
3.1单片机的选择
3.1.1 STC89C52简介
STC89C52单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。 主要特性如下:
(1)增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051。
(2)工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)。 (3)工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz。
(4)用户应用程序空间为8K字节,片上集成512字节RAM。 (5)通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
(6)具有EEPROM功能,具有看门狗功能。
(7)共3个16位定时器/计数器,即定时器T0、T1、T2。
(8)外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒。
(9)通用异步串行口(UART),还可用定时器软件实现多个UART。 (10)工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)。 3.1.2 STC89C52单片机的工作模式
(1)掉电模式:典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序。
(2)空闲模式:典型功耗2mA;正常工作模式:典型功耗4Ma~7mA。 (3)掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备。
3.1.3 单片机最小系统结构
本系统以STC89C52单片机为核心,本系统选用11.05926MHZ的晶振,使得单片机有合理的运行速度,复位电路为按键高电平复位。STC89C52单片机最小系统电路设计如图3-1所示。
图3-1 单片机最小系统框
3.1.4 STC89C52的引脚说明
STC89C52的引脚图如图3-2:
图3-2 STC89C52引脚图
VCC(40引脚):电源电压。 VSS(20引脚):接地。
P0端口(P0.0~P0.7,39~32引脚):P0口是一个漏极开路的8位双向I/O
口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。此时,P0口内部上拉电阻有效。在Flash ROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要求外接上拉电阻。
P1端口(P1.0~P1.7,1~8引脚):P1口是一个带内部上拉电阻的8位双向I/O口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。
此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体参见表3-1。在对Flash ROM编程和程序校验时,P1接收低8位地址。
表3-1 P1.0和P1.1引脚复用功能
引脚号 P1.0 P1.1 功能特性 T2(定时器/计数器2外部计数输入),时钟输出 T2EX(定时器/计数器2捕获/重装触发和方向控制) P2端口(P2.0~P2.7,21~28引脚):P2口是一个带内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。
P3端口(P3.0~P3.7,10~17引脚):P3是一个带内部上拉电阻的8位双向I/O端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。
在对Flash ROM编程或程序校验时,P3还接收一些控制信号。
P3口除作为一般I/O口外,还有其他一些复用功能,如表3-2所示。
表3-2 P3口引脚复用功能 引脚号 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 复用功能 RXD(串行输入口) TXD(串行输出口) INT0(外部中断0) INT1(外部中断1) T0(定时器0的外部输入) T1(定时器1的外部输入) WR(外部数据存储器写选通) RD(外部数据存储器读选通) RST(9引脚):复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。看门狗计时完成后,RST引脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。
ALE/PROG(30引脚):地址锁存控制信号(ALE)是访问外部程序存储器
时,锁存低8位地址的输出脉冲。在Flash编程时,此引脚(PROG)也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址位8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOV指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址位8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
PSEN(29引脚):外部程序存储器选通信号PSEN是外部程序存储器选通信号。当STC89C52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而访问外部数据存储器时,PSEN将不被激活。
EA/VPP(31引脚):访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。注意加密方式1时,将内部锁定位RESET。为了执行内部程序指令,EA应该接VCC。在Flash编程期间,EA也接收12伏VPP电压。
XTAL1(19引脚):振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2(18引脚):振荡器反相放大器的输入端。
3.2温度传感器的选择
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温。这一部分主要完成对温度信号的采集和转换工作,由DS18B20数字温度传感器及其与单片机的接口部分组成。数字温度传感器DS18B20把采集到的温度通过数据引脚传到单片机的P3.7口,单片机接受温度并存储。此部分只用到DS18B20和单片机,硬件很简单,DS18B20引脚图如3-3所示。
图3-3 DS18B20引脚图如
3.2.1 DS18B20主要性能特点
(1) 用户可自设定报警上下限温度值。
(2)不需要外部组件,能测量-55~+125℃ 范围内的温度。
(3)-10℃ ~+85℃ 范围内的测温准确度为±0.5℃ 。通过编程可实现9~l2位的数字读数方式,可在至多750 ms内将温度转换成12 位的数字,测温分辨率可达0.0625℃。
(4)独特的单总线接口方式,与微处理器连接时仅需要一条线即可实现与微处理器双向通讯。
(5)测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。
(6)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
3.2.2 DS18B20的工作原理
根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:
(1)每一次读写之前都必须要对DS18B20进行复位。 (2)复位成功后发送一条ROM指令。
(3)最后发送RAM指令,这样才能对DS18B20进行预定的操作。
复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待15~60微秒左右后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。其工作时序包括初始化时序、写时序和读时序,具体工作方法如图3-4,3-5,3-6所示。
① 初始化时序
等待15-60主机主机复位脉冲最小480US最小480响应脉冲60~240
图3-4 初始化时序图
总线上的所有传输过程都是以初始化开始的,主机响应应答脉冲。应答脉冲使主机知道,总线上有从机设备,且准备就绪。主机输出低电平,保持低电平时间至少480us,以产生复位脉冲。接着主机释放总线,4.7KΩ上拉电阻将总线拉高,延时15~60us,并进入接受模式,以产生低电平应答脉冲,若为低电平,再延时480us。
② 写时序
>60us
>1us
15-45us 15us
T1 T0
图3-5 (a)写0时序
>60us >1us
15-45us T0 15us
T1 图3-5 (b)写1时序
写时序包括写0时序和写1时序。所有写时序至少需要60us,且在2次独立的写时序之间至少需要1us的恢复时间,都是以总线拉低开始。写1时序,主机输出低电平,延时2us,然后释放总线,延时60us。写0时序,主机输出低电平,延时60us,然后释放总线,延时2us。 ③ 读时序
主机写\>1>1主机写\主机采样45主机采样45
图3-6 读时序
总线器件仅在主机发出读时序是,才向主机传输数据,在主机发出读数据命令后,必须马上产生读时序,以便从机能够传输数据。所有读时序至少需要60us,且在2次独立的读时序之间至少需要1us的恢复时间。每个读时序都由主机发起,至少拉低总线1us。主机在读时序期间必须释放总线,并且在时序起始后的15us之内采样总线状态。主机输出低电平延时2us,然后主机转入输入模式延时12us,
然后读取总线当前电平,然后延时50us。
DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同DS18B20 为9位~12位A/D转换精度,而DS1820为9位A/D转换,虽然我们采用了高精度的芯片,但在实际情况上由于技术问题比较难实现,而实际精度此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。如下3-7的测温原理图不同,且温度转换时的延时时间由2s减为750ms。 DS18B20测温原理如图3-7所示。
图3-7 DS18B20的测温原理框图
3.3液晶显示屏输出
液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。 3.3.1 LCD1602的基本参数及引脚功能
LCD1602分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图3-8所示。
图3-8 LCD1602尺寸图
LCD1602参数:
显示容量:16×2个字符 芯片工作电压:4.5—5.5V 工作电流:2.0mA(5.0V) 模块最佳工作电压:5.0V
字符尺寸:2.95×4.35(W×H)mm 引脚功能说明
LCD1602采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表3-3所示。
表3-3 引脚接口说明 编号 符号 1 2 3 4 5 VSS VDD VL RS R/W 引脚说明 电源地 电源正极 液晶显示偏压 数据/命令选择 读/写选择 编号 9 10 11 12 13 符号 D2 D3 D4 D5 D6 引脚说明 数据 数据 数据 数据 数据 6 7 8 E D0 D1 使能信号 数据 数据 14 15 16 D7 BLA BLK 数据 背光源正极 背光源负极 第1脚:VSS为地电源。 第2脚:VDD接5V正电源。
第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。 第15脚:背光源正极。 第16脚:背光源负极。
3.3.2 LCD1602的指令说明及时序
1602液晶模块内部的控制器共有11条控制指令,如表3-4所示:
表3-4 控制命令表 序号 1 2 3 4 5 6 8 9 指令 清显示 光标返回 置输入模式 显示开/关控制 光标或字符移位 置功能 置数据存贮器地址 读忙标志或地址 RS R/W D7 D6 D5 D4 D3 D2 D1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 BF 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 DL 0 0 0 1 N 0 0 D F 0 1 C * D0 1 * S B * * 1 I/D 1 S/C R/L * 字符发生存贮器地址 7 置字符发生存贮器地址 0 显示数据存贮器地址 计数器地址 要写的数据内容 读出的数据内容 10 写数到CGRAM或DDRAM) 1 11 从CGRAM或DDRAM读数 1 1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)
指令1:清显示,指令码01H,光标复位到地址00H位置。 指令2:光标复位,光标返回到地址00H。
指令3:光标和显示模式设置 I/D,光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。
指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光
标。
指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
指令7:字符发生器RAM地址设置。 指令8:DDRAM地址设置。
指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:写数据。 指令11:读数据。
与HD44780相兼容的芯片时序表3-5如下:
表3-5 基本操作时序表 读状态 输入 读数据 输入 RS=L,R/W=H,E=H RS=H,R/W=H,E=H 输出 输出 D0—D7=状态字 无 D0—D7=数据 无 写指令 输入 RS=L,R/W=L,D0—D7=指令码,E=高脉冲 输出 写数据 输入 RS=H,R/W=L,D0—D7=数据,E=高脉冲 输出 读写操作时序如图3-9和3-10所示:
图3-9读操作时序
图3-10 写操作时序
第4章 系统的硬件设计
4.1 复位电路
计算机在启动运行的时候都需要复位,使中央处理器CPU和系统中的其他部件都处于一个确定的初始状态,并且从这个初始状态开始工作。单片机的复位是靠外部电路实现的,STC89C52单片机有一个复位引脚RST,高电平有效。STC89C52单片机通常采用上电自动复位和按钮复位两种。复位电路的基本功能是系统上电时,RC电路充电,RST引脚出现正脉冲,提供复位信号直至系统电源稳定后,撤销复位信号,为可靠起见,电源稳定后还要经一定的延时,才撤销复位信号,以防电源开关或电源插头分合过程中引起的抖动而影响复位。RC复位电路可以实现上述基本功能[4]。调整RC常数会令对驱动能力产生影响。复位电路如下图4-1所示。
图4-1 复位电路
4.2 晶振电路
晶振电路提供单片机的时钟控制信号,单片机时钟产生方式有内部时钟方式和外部时钟方式。最常用的内部时钟方式是采用外接晶振和电容组成,时钟振荡电路如图4-2所示。
图4-2 时钟震荡电路
单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTAL1和引脚XTAL2分别是反相放大器的输入端和输出端,由这个放大器与作为反馈元件的片外晶体或陶瓷谐振器一起构成一个自己振荡器,这种方式形成的时钟信号称为内部时钟方式。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。因此,此系统电路的晶体振荡器的值为11.05926MHz,电容应尽可能的选择陶瓷电容,电容值为30μF。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。
4.3供电系统与下载通信
供电部分采用220V转12V的变压器,将输入的交流电降成12V,在利用桥式全波整流电路把交流电转变成脉动的直流电,利用滤波电路出去脉动的直流电的交流成分,接着通过设计二个三段稳压电路,选用7812把电压转化为12V,选用7805将12V转变成5V给单片机供电。
串行通信的主要功能是实现单片机与PC机的数据交换,当需要进行数据记录、数据统计、数据分析的时候,可以把数据发送给上位机,使用上位机进行数据处理,并且将数据处理的结果又发送给单片机。这样可以大大提高系统数据处理速度,还可以方便的对单片机进行控制。计算机与外界的数据传送大部分都是串行的,其传送距离可以从几米到几千米。
程序的烧录通过CH430芯片与单片机相连进行通信。其供电电路如4-3图所示,USB供电和下载通信电路如图4-4。
图 4-3 电源供电电路
图4-4 USB供电和下载通信
4.4 温度采集单元
在本系统要采用一条总线上挂单个DS18B20器件。在P3.7口接DS18B20温度传感器。由于只采用单个传感器,故无需读出DS18B20温度传感器的序列号,在程序中直接跳过ROM。其温度采集电路如图4-5所示。
图4-5 温度采集电路
4.5显示电路的设计
LCD1602液晶显示部分,采用与单片机相连接,将温度传感器采集到的信息迅速转化为可视温度,硬件设计简单,增加了可读性,其示电路如图4-6所示。
图4-6 LCD1602液晶温度显示电路
4.6按键电路
按键是现阶段电子设计中最常用、最实用的输入设备。按键能够成为最普遍
的输入设备,主要是其具备了以下几个优点:工作原理、硬件电路连接简单、操作实用性强、价格便宜,程序编写简单。缺点:机械抖动比较严重、外型不够美观。
按键部分实现的主要原理是单片机读取与按键相连接的I/O口状态,来判定按键是否按下,达到系统参数设置的目的。键盘在单片机应用系统中的作用是实现数据输入、命令输入,是人工干预的主要手段。各按键开关均需要采用了上拉电阻,是为了保证在按键断开时,各I/O有确定的高电平。当输入口线内部已有上拉电阻,外电路的上拉电阻可省去。因此,通过检测输入线的电平状态就可以很容易判断是哪个按键被按下了。优点:电路配置灵活,软件结构简单。缺点:每个按键需占用一根I/O口线,在按键数量较多时,I/O口浪费大,电路结构显得复杂。因此,此键盘适用于按键较少或操作速度较高的场合。在本设计当中,由于只需要三个按键,所以采用独立式键盘结构,电路连接图如图4-7所示。
图4-7 按键电路
当用手按下一个键时,往往按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,也回会出现类似的情况。这就是抖动。抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于10ms。很容易想到,抖动问题不解决就会引起对闭合键的识别。用软件方法可以很容易地解决抖动问题,这就是通过延迟10ms来等待抖动消失,再读入键盘码。按键控制电路分别接在单片机P1.0—P1.2口。它由3个按键构成,直接与单片机I/O口相连。
当用于温度调节时,按键S2用于控制设定温度的使能,当按下S2,显示出了设定温度,然后按S3键可增加设定温度,按S3键可减少设定温度,当再次按下S2键时,不显示设定温度,则S2,S3键处于屏蔽状态,无法设定温度。
4.7降温电路
本设计中,采用NPN三极管驱动继电器,并且带有一发光二极管作为指示灯,系统中采用了电阻代替半导体制冷片。降温系统接到单片机P2.0口上,当高电平时,三极管饱和导通,+5V电源分压加到继电器线圈两端,继电器吸合,同时状态指示的发光二极管也点亮,继电器的常开触点闭合,相当于开关闭合。当单片机的P2.0脚为低电平时,三极管截止,继电器线圈两端没有电位差,继电器衔铁释放,同时状态指示的发光二极管也熄灭,继电器的常开触点释放,相当于开关断开。在三极管截止的瞬间,由于线圈中的电流不能突变为零,继电器线圈两端会产生一个较高电压的感应电动势,线圈产生的感应电动势则可以通过二极管释放,从而保护了三极管免被击穿,也消除了感应电动势对其他电路的干扰,这就是二极管的保护作用,降温控制模块的电路图如图4-8。
图4-8降温控制模块
4.8升温电路
MOC3061系列光电双向可控硅驱动器是一种新型的光电耦合器件,它可用直流低电压、小电流来控制交流高电压、大电流。单片机引脚P3.4接与非门到红外发光二极管阴极,当P3.4为高电平时红外发光二极管导通发射红外光,光控双向可控硅触发导通,进而控制电阻丝加热。图中R16为限流电阻,使LED工作在所需电流内,R17是双向可控硅的门极电阻,当可控硅灵敏度较高时,门极阻抗也很高,并上R17可提高抗干扰能力,R19是触发功率双向可控硅的限流电阻,另外R18和C12电容组成浪涌吸收电路,防止浪涌电压损坏双向可控硅。升温控制模块如图4-9所示。
图4-9 升温控制模块
4.9 部分PCB设计及布线规则
2005年年底,Protel软件的原厂商 Altium公 司推出了Protel系列的最新高端版本Altium Designer 6.0。 Altium Designer 6.0,它是完全一体化电子产品开发系统的一个新版本,也是业界第一款也是唯一一种完整的板级设计解决方案。Altium Designer 是业界首例将设计流程、集成化 PCB 设计、可编程器件(如 FPGA)设计和基于处理器设计的嵌入式软件开发功能整合在一起的产品,一种同时进行PCB和FPGA设计以及嵌入式设计的解决方案,具有将设计方案从概念转变为最终成品所需的全部功能。
本设计采用PCB双层板对温控系统的电路设计,其布线规则如下:
(1) 按电路模块进行布局,实现同一功能的相关电路称为一个模块,电路模块中的元件应采用就近集中原则,同时数字电路和模拟电路分开。
(2)螺钉等安装孔周围3.5mm(对于M2.5)、4mm(对于M3)内不得贴装元器件。 卧装电阻、电感(插件)、电解电容等元件的下方避免布过孔,以免波峰焊后过孔与元件壳体短路。元器件的外侧距板边的距离为5mm, 贴装元件焊盘的外侧与相邻插装元件的外侧距离大于2mm,贴片焊盘上不能有通孔,以免焊膏流失造成元件虚焊。重要信号线不准从插座脚间穿过,贴片单边对齐,字符方向一致,封装方向一致。
(3)画定布线区域距PCB板边≤1mm的区域内,以及安装孔周围1mm内,禁止布线。电源线尽可能的宽,不应低于18mil,本设计采用20mil。信号线宽不应低于12mil,本设计采用15mil,信号线之间应尽可能的平行走线,顶层与底层信号线应垂直走线,以便减少信号干扰。CPU入出线不应低于10mil(或8mil);线间距不低于10mil,正常过孔不低于30mil。
(4)注意电源线与地线应尽可能呈放射状,以及信号线不能出现回环走线。 整体PCB设计图如图4-8所示:
图4-8 整体温控系统PCB设计
4.10 数字PID算法
PID调节的一般步骤: (1)确定比例增益P:确定比例增益P时,首先去掉PID的积分项和微分项,一般是令Ti=0、Td=0(具体见PID的参数设定说明),使PID为纯比例调节。输入设定为系统允许的最大值的60%~70%,由0逐渐加大比例增益P,直至系统出现振荡;再反过来,从此时的比例增益P逐渐减小,直至系统振荡消失,记录此时的比例增益P,设定PID的比例增益P为当前值的60%~70%。比例增益P调试完成。
(2)确定积分时间常数Ti
比例增益P确定后,设定一个较大的积分时间常数Ti的初值,然后逐渐减小Ti,直至系统出现振荡,之后在反过来,逐渐加大Ti,直至系统振荡消失。记录此时的Ti,设定PID的积分时间常数Ti为当前值的150%~180%。积分时间常数Ti调试完成。
(3)确定积分时间常数Td
积分时间常数Td一般不用设定,为0即可。若要设定,与确定P和Ti的方法相同,取不振荡时的30%。
(4)系统空载、带载联调,再对PID参数进行微调,直至满足要求。
温控系统采用数字PID算法,并由软件实现,所谓PID控制就是按设定值与测量值之间偏差的比例、偏差的积累和偏差变化的趋势进行控制。它根据采样
时刻的偏差值计算控制量。因此PID控制律的实现,必须用数值逼近法。当采样周期相当短时,可以用求和代替积分,用差商代替微分,即做如下近似变换:
t?kT?e(t)dt?T?e(jT)?T?e(j)0j?0j?0tkk (4-1)
de(t)e(kT)?e[(k?1)T]e(k)?e(k?1)??dtTT式中,k为采样序号,k=l,2,3,??;T为采样周期。显然,上述离散化过程中,采样时间T必须足够短,才能保证有足够的精度。为了书写方便,将e(kT)简化表示成e(k)等,即省去T。可以得到离散的PID表达式为:
u(k)?Kpe(k)?KI?e(j)?KD[e(k)?e(k?1)] (4-2)
j?0k式中,k为采样序号,k=1,2,3,??;u(k)为第k次采样时刻的计算机输出值;e(k)为第k次采样时刻输入的偏差值;e(k-1)为第(k-1)次采样时刻输入的偏差值;KI为积分系数;KD为积分系数。 本系统采用增量式PID控制算法,是指数字控制器输出只是控制量的增量,该算法编程简单,数据可以递推使用,占用存储空间少,运算快。根据递推原理可得:
u(k?1)?Kpe(k?1)?kI?e(j)?KD[e(k?1)?e(k?2)] (4-3)
j?0k用式(4-2)减去式(4-3),可得增量式PID控制算法如下:
?u(k)?Kp[e(k)?e(k?1)]?KIe(k)?KD[e(k)?2e(k?1)?e(k?2)] (4-5)
第 5 章 系统软件设计
5.1 设计思路
本部分详细介绍基于STC89C52单片机的恒温箱温度控制系统的软件设计。根据系统功能,可以将系统设计分为若干个子程序进行设计,如温度采集子程序,数据处理子程序、显示子程序、PID控制子程序。采用Keil uVision3集成编译环境和C语言来进行系统软件的设计。本章从设计思路、软件系统框图出发,先介绍整体的思路,再逐一分析各模块程序算法的实现,最终编写出满足任务需求的程序,流程图如图5-1所示。
开 始 系统各模块初始化 调取温度子程序 显示当前温度 调取键盘子程序
图5-1 控制系统程序流程图
5.2 子程序流程图及程序内容
5.2.1 DS18B20初始化子程序流程图
DS18B20在初始化序列期间,总线控制器拉低总线并保持480us以发出(TX)一个复位脉冲,然后释放总线,进入接收状态(RX)。单总线由5K上拉电阻拉到高电平。当DS18B20探测到I/O引脚上的上升沿后,等待15~60us,然后发出一个由60~240us低电平信号构成的存在脉冲。完成对DS18B20的初始化操作,在每次测温前必须对其进行初始化,否则系统无法正常运行。所以这个步骤很重要,DS18B20初始化子程序流程如图5-2所示。
拉低总线 低电平复位脉冲持续480~960us 释放总线 DS18B20响应? N
图5-2 DS18B20初始化子程序流程图
5.2.2 DS18B20写字节子程序
DS18B20写字节由两种写时序组成:写1时序和写0时序。总线控制器通过写1时序写逻辑1到DS18B20,写0时序写逻辑0到DS18B20。所有写时序必须最少持续60us,包括两个写周期之间至少1us的恢复时间。当总线控制器把数据线从逻辑高电平拉到低电平的时候,写时序开始总线控制器要生产一个写时序,必须把数据线拉到低电平然后释放,在写时序开始后的15us释放总线。当总线被释放的时候,5K的上拉电阻将拉高总线。总控制器要生成一个写0时序,必须把数据线拉到低电平并持续保持(至少60us)。总线控制器初始化写时序后,DS18B20在一个15us到60us的时间内对I/O线采样。如果线上是高电平,就是写1。如果线上是低电平,就是写0,DS18B20写字节程序流程图如图5-3所示。
拉低总线 延时15~60us 写入数据 释放总线 1字节? 写完N Y 返回
正在阅读:
基于单片机的恒温箱温度控制系统毕业论文05-04
封层、透层、粘层专项施工方案03-14
水泥护栏项目可行性研究报告(发改立项备案+2013年最新案例范文)详细编制方案01-12
奖励与激励机制办法05-24
2015高考文言文断句100练(含答案和翻译最方便完整版)03-25
英语国家概况资料精讲笔记10-01
2013年春季开学教研组长工作会议议程05-09
浅论事业单位会计制度改革04-15
风景矢量图02-09
唐山市小学英语首字母填空复习题(附答案)04-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 恒温
- 单片机
- 控制系统
- 毕业论文
- 温度
- 基于
- 为什么要让孩子学音乐
- 从公司治理角度谈企业理财目标与财务决策
- 化纤毛纺织厂总配电及配电系统设计
- 第二讲 诗情画意的中国画
- 水温水位控制系统毕业论文
- 2018年衢州市中考语文试题(含解析)
- 全县审计工作会议讲话
- 教师节学生代表发言稿
- 最新合同协议中外合资经营企业合同(缆索)范本
- 孕期相关检查和注意事项
- C语言考试必备习题集&答案
- 江苏省2009年青少年比赛裁判员名单
- 机关作风建设存在主要问题及其对策
- 竹山县“十三五”绿松石产业发展研究
- 基于4P营销理论的中国新能源汽车营销策略探究——以比亚迪新能源
- 小学生2二分钟演讲稿1
- 山东测绘检验细则修改稿(G) - 图文
- 培养研究型教师 - 芬兰以研究为基础的教师教育探析
- 信号处理仿真及应用实验指导书(最新)
- “优势”与“发展”:自闭症儿童康复的社会工作干预策略研究