基于AT89C52单片机的智能电烤箱系统此电烤箱温度控制系统利用单片机的中断功能来设计一种智能的烤箱系统,避免电烤箱加热过程中发生安全事故。
本文以AT89C52单片机最小系统为主控芯片,利用DS18B20数字温度传感器采集温度。
这种温度控制系统能过通过LCD1602显示屏直观的来观察电烤箱温度,通过按钮调节上限和下限温度的值。
一、系统设计1.1系统设计思路采用AT89C52单片机控制整个系统,温度采集由DALLAS公司生产的一线式数字温度传感器DS18B20采集。
DS18B20测温范围为-55°C~+125°C,测温分辨率可达0.0625°C,被测温度用符号扩展的16位补码形式串行输出。
CPU 只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
当DS18B20检测到温度超过设定的值时,发出信号到单片机AT89C52的中断端口,由AT89C52单片机控制加热系统断电,这样就能过很好的解决温度过高的问题,起到一个很好的保护的作用。
当DS18B20传感器检测到温度低于设定的下限值时,又会给AT89C52单片机一个启动信号,AT89C52就又会重启加热系统开始工作,这样,就能保证电烤箱能正常加热了。
当DS18B20传感器检测温度达到燃烧的临界点时,会给AT89C52输入一个预报警信号,AT89C52就会控制报警系统报警,这样,就起到一个很好的保护作用,避免了因为电烤箱温度过高而引起的火灾。
1.2方案总体框架图系统主要包括单片机控制模块,温度采集模块,温度显示模块,温度上下限调整模块,电机驱动模块和外部存储模块等六大部分。
控制模块主要由单片机AT89C52构成,温度采集由DS18B20传感器采集。
稳压电源为整个系统提供+5V的直流电压。
其系统总体框架如图1.2所示:单片机控制模块温度检测模块外部存储显示模块温度调整模块温度显示模块语音报警模块图1.2系统框架图二、硬件设计2.1单片机电路设计根据温度控制特点,本次设计采用AT89C51。
AT89C51单片机是美国Intel 公司的8位高档单片机的系列。
也是目前应用最为广泛的一种单片机系列。
其内部结构简化框图如下所示。
AT89C51系列单片机主要有CPU、存储器,I\O接口电路及时钟电路等部分组成。
2.1.3 AT89C51单片机引脚功能AT89C51系列单片机的封装形式有两种:一种是双列直插方式的封装;另一种是方形的封装。
AT89C51单片机40个引脚及总线结构图如下所示。
其CMOS工艺制造的低地功耗芯片也有采用方形的封装。
但为44个引脚,其中4个引脚是不使用的。
由于at89C51单片机是高性能的单片机。
同时受到引脚数目的限制,所以有部分引脚具有第二功能。
如图2.1.3-1单片机引脚图。
a.主电源引脚主电源引脚两根:VCC接+5V电源正端;VSS接+5V电源地端。
b.外接晶体引脚两根XTAL1:接外部石英体和微调电源一端。
XTAL2:接外部晶体和微调电容另一端。
其中,对用外部时钟时,对于HMOS单片机,XTAL1脚接地,XTAL2脚作为外部振荡信号输入端。
对CHMOS单片机XTAL1脚作为外部振荡信号的输入端,XTAL2脚空不接。
图2.1.3-1 单片机引脚图2.1.4 引脚功能I\O引脚共32根。
A.PO口:P0.0-P0.7统称为PO口是8位双向I/O口线。
P0口即可作为地址/数据总线使用,又可作为通用的I/O口线。
在不接片外存储器与不扩展I/O 口时,可作为准双向输入/输出口。
在接有片外存储器或扩展I/O时,P0口分时复用为低8位地址总线和双向数据的总线。
B.P1口:P1.0-P1.7统称为P1口。
是8位准双向I/O口线。
P1口作为通用I/O口使用。
C.P2口:P2.0-P2.7统称为P2口。
是8位准双向I/O口线。
P2口即可作为通用的I/O口使用。
也可作为片外存储器的高8位地址线。
与P0口组成16位片外存储器单元地址。
P3口的第二功能如下表所示:P3口的第二功能P3.0 RXD 串行口输入P3.1 TXD 串行口输出IM外部中断0输入P3.2 0IM外部中断1输入P3.3 1P3.4 T0 定时/计数器0计数输入P3.5 T1 定时/计数器1输入P3.6 WR片外RAM写选通信号(输出)P3.7 RD片外RAM读选通信号(输出)2.1.5 控制线控制线共四根。
A:ALE/PROG 地址锁存有效信号输出率。
B:PSEN 片外程序存储器读选通信号输出端低电平有效。
C:RST/VPD 复位信号备用电源输入信号。
D:EA/VPP 片外程序存储器选用端。
2.1.6 AT89C51单片机的存储器结构AT89C51单片机的存储器物理结构上分为片内数据存储器、片内程序存储器、片外数据存储器和片外程序存储器等4个存储空间。
2.1.7 AT89C51单片机的并行I/O端口AT89C51单片机有4个8位并行I/O端口(P0、P1、P2、P3)每个端口都各有8条I/O口线,每条I/O口线都独立地用作输入输出,在具有片外扩展存储器的系统中,P2口送出高8位地址,P0口分时送出低8位地址和8位数据。
a.P0口,P0口是一个三态双向口,可作为地址/数据分时复用口,也可作为通用I/O接口。
b.P1口,P1口为准双向口,它在结构上与P0口的区别在与输出驱动部分。
其输出驱动部分由场效应管V1与内部上拉电阻组成,当某位输出高电平时,可以提供上拉电流负载,不必像P0口上那样需要外接上拉电阻。
c.P2口,P2口也为准双向口。
其具有通用I/O接口或高8位地址总线输出两种功能,所以其输出驱动结构比P1口输出驱动结构多了一个输出模拟转换开关MUX和反相器3。
d.P3口,P3口的输出驱动由与非门3和V1组成,比P0、P1、P2口结构多了一个缓冲器4。
P3口除了可为通用准双向I/O接口外,每一根线还具有第二功能。
2.1.8 AT89C51单片机时钟电路及时序a.时钟电路AT89C51单片机的时钟信号通常有两种方式产生:一种是内部的方式,一种是外部的方式。
图2.1.8-1、2.1.8-2所示。
b.时序AT89C51单片机指令字节数和机器周期数可分为六类。
即单字节单机器周期指令、单字节双机器周期指令、单字节四机器周期指令、双字节单机器指令、双字节双机器周期指令和三字节双机器周期指令。
图2.1.8-1 内部方式时钟电路图2.1.8-2 外部方式时钟电路2.1.9 复位电路复位是通过某种方式,使单片机内各寄存器的值变为初值状态操作,AT89C51单片机在时钟电路工作以后,在RST/VPD端持续给出两个机器周期的高电平就可以完成复位操作。
复位分为上电复位和按键手动复位两种方式。
AT89C51单片机复位状态如下所示:寄存器复位状态寄存器复位状态PC 0000H ACC 00HB 00H PSW 00HSP 07H DPTR 0000HP0-P1 OFFH IP XXX00000BIE 0XX00000B TMOD 00HTCON 00H TL0、TL1 00HTH0、TH1 00H SCON 00HSBUF 不定 PCON 0XXX0000B2.3温度检测模块温度检测模块主要是由DS18B20传感器构成。
该产品采用美国DALLAS公司生产的DS18B20可组网数字温度传感器芯片封装而成,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。
因而使用DS18B20可使系统结构更趋简单,可靠性更高。
其电路图如2.3所示: DS18B2031.5DQ2VCC3GND 1U3DS18B20+5V图2.3温度检测电路3.2 .2 DS18B20芯片的内部结构和功能DS18B20的内部结构图(1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
(2)在使用中不需要任何外围元件。
(3)可用数据线供电,电压范围:+3.0~ +5.5 V 。
(4)测温范围:-55 ~+125 ℃。
固有测温分辨率为0.5 ℃。
(5)通过编程可实现9~12位的数字读数方式。
(6)用户可自设定非易失性的报警上下限值。
(7)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。
3.2 .2 DS18B20的测温原理DS18B20的测温原理如图2所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 ℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在 -55 ℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图2中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。
图23.2 .3 DS18B20的测温过程由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作必须按协议进行。
操作协议为:初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
3.2 .4 DS18B20数据处理DS18B20的高速暂存存储器由9个字节组成,其分配如图3所示。
当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。
单片机可通过单线接口读到该数据,读取时低位在前,高位在后。
DS18B20温度数据表上表是DS18B20温度采集转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于或等于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。