基于AT89C52的温度控制系统设计.docx
- 文档编号:24576006
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:32
- 大小:329.38KB
基于AT89C52的温度控制系统设计.docx
《基于AT89C52的温度控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于AT89C52的温度控制系统设计.docx(32页珍藏版)》请在冰豆网上搜索。
基于AT89C52的温度控制系统设计
基于AT89C52的温度控制系统设计
摘要
本课题介绍了基于AT89C52单片机的温度控制系统的硬件电路组成和软件的设计。
分别阐述了单片机模块的组成和主要的器件AT89C52芯片的特性、工作原理,温度传感模块的组成和主要芯片DS18B20的特性和工作原理,键盘及显示电路的工作原理和设计方法及其主要的元器件8279,控制器件-继电器的选用和工作原理。
同时介绍了主程序流程框图和相应的子程序流程框图,并给出了具体的程序。
关键词:
AT89C52;DS18B20;单片机;温度控制
TheDesignofTemperatureControlSystembasedonAT89C52
Liumeiying
(Collegeof PhysicsScienceandInformationEngineering,JishouUniversity,Jishou,Hunan416000)
Abstract
ThistopicintroducedbasedonatAT89C52monolithicintegratedcircuit'stemperaturecontrolsystem'shardwarecircuitcompositionandsoftware'sdesign.Elaboratedseparatelythemonolithicintegratedcircuitmodule'scompositionandthemaincomponentAT89C52chip'scharacteristic,theprincipleofwork,thetemperaturesensingmodule'scompositionandthemainchipDS18B20characteristicandtheprincipleofwork,thekeyboardanddisplaycircuit'sprincipleofworkandthedesignmethodandthemainprimarydevice8279,controlcomponentairrelay'sselectionwiththeprincipleofwork.Simultaneouslyintroducedthemasterroutineflowdiagramandthecorrespondingsubroutineflowdiagram,andhasgiventheconcreteprocedure.
Keywords:
AT89C52;DS18B20;SCM;Temperaturecontrol
引言
第一章系统原理及结构框图……………………………………………………1
1.1系统原理………………………………………………………………1
1.2系统原理框图…………………………………………………………1
1.3系统硬件电路设计……………………………………………………2
第二章系统组成模块……………………………………………………………3
2.1单片机模块……………………………………………………………3
2.2温度传感模块…………………………………………………………6
2.3键盘、显示模块………………………………………………………8
2.4继电器控制模块………………………………………………………12
第三章系统软件部分……………………………………………………………13
3.1系统主程序框图………………………………………………………13
3.2键盘处理子程序框图…………………………………………………14
3.3DS18B20子程序框图……………………………………………………15
总结…………………………………………………………………………………16
参考文献……………………………………………………………………………17
附录…………………………………………………………………………………18
引言
随着电子技术的迅速发展,特别是超大规模集成电路产生而出现的微型计算机,给人类生活带来了根本性的改变。
如果说微型计算机的出现使现代科学研究得到了质的飞跃,那么可以毫不夸张的说,单片机技术的出现则给现代工业测控领域带来了一次新的技术革命。
目前,单片机以其高可靠性、高性能价格比,在工业控制系统、数据采集系统、智能化仪器仪表、办公自动化等诸多领域得到极为广泛的应用,并已走入普通家庭,从洗衣机、微波炉到音响、汽车,到处都可见到单片机的踪影,因此,单片机技术开发和应用水平已逐步成为一个国家工业发展水平的标志之一。
许多物质的特性与温度有很大的依赖关系,温度的影响甚至是起决定作用的。
传统的温度控制系统采用模拟电路设计,存在不可避免的缺陷,如系统的电路结构复杂,操作困难,系统电路所需的功率较大,温度控制的精度差,易出现温度的漂移,电路结构复杂,缺乏友好的人机界面,温度控制的实时性差等。
单片机的出现使得温度的采集和数据处理等问题能够得到很好的解决,温度是工业对象中的一个重要的被控参数,然而所采用的测温元件和测量方法也不相同,产品的工艺不同,控制温度的精度也不相同。
因此对数据采集的精度和采用的控制方法也不相同。
本课题使用单片机作为核心进行控制,单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。
本课题介绍的温度控制系统采用AT89C52单片机控制技术对温度进行调节,具有操作简单便捷、采集方便准确、适应性强、成本低以及节省能源等特点,可明显增加使用者的经济效益。
该系统不但可以推行到温室中,还可以应用于其它进行温度调节的场合。
本文共分三章:
第一章是温度控制系统方案简介;第二章是主芯片的选择以及温度控制模块的介绍;第三章软件系统的设计及程序的流程图,并在附录中给出了具体的程序段。
第一章系统原理及结构框图
1.1系统原理
本文从硬件和软件两个方面介绍了单片机的温度控制系统的设计思路,对硬件原理图和程序框图作了简单的描述,此温度控制系统是采用AT89C52单片机为核心进行控制。
该系统运用单线数字温度传感器DS18B20检测实际温度,并在数码管上显示。
用户可以通过键盘,在允许的温度范围内设定预定温度。
单片机通过读入DS18B20所测的温度值,进而与设定温度进行比较,最后判断采取降温措施(打开控制220V电源的继电器驱动电风扇)还是升温措施(打开控制220V电源的继电器驱动电加热器)。
系统在每延时一定的时间后,重复地判断是否有新的温度设定值的输入,若有按键则读入新的设定温度,然后进行循环判断;若无按键则读入DS18B20所测的温度值,进行比较判断,再将其温度在数码管上显示出来。
如此循环,确保控制系统的温度保持在设定值。
1.2系统原理框图
图1.1系统原理框图
1.3系统硬件电路设计
图1.2系统总电路图
第二章系统组成模块
2.1单片机模块
单片机模块主要由单片机芯片AT89C52组成,本模块负责与温度传感器、键盘显示驱动传递命令和数据,并进行数据的处理。
单片机从8279读入键盘扫描得到的温度设定值,并将数据保存在存储器某一单元。
单片机还负责从DS18B20的数据引脚读入实际的温度值,保存在某一单元。
最后,单片机对两者进行比较,从而确定执行的操作。
图2.189C52单片机引脚图
2.1.1主要性能参数
·与MCS-51产品指令和引脚完全兼容
·256*8位内部RAM
·32可编程I/O线
·3个16位定时器/计数器
·8个中断源
·可编程串行UART通道
·片内振荡器和时钟电路
·8K字节可重擦写flash闪烁存储器
·全静态工作:
0Hz-24Hz
·三级加密程序存储器
·1000次擦写周期
2.1.2功能特性概述
AT89C52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
2.1.3管脚说明
(1)VCC:
供电电压。
(2)GND:
接地。
(3)P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0口能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
(4)P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高电平,可用作输入,P1口被外部下拉为低电平时,将输出电流。
在FLASH编程和校验时,P1口作为第八位地址接收。
(5)P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
P2口的管脚被外部拉低,将输出电流,这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
(6)P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。
P3口也可作为AT89C52的一些特殊功能口,管脚备选功能如下:
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口同时为闪烁编程和编程校验接收一些控制信号。
(7)RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平。
(8)ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
(9)/PSEN:
外部程序存储器的选通信号。
在外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,两次有效的/PSEN信号将不出现。
(10)/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH)工作,不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
(11)XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
(12)XTAL2:
来自反向振荡器的输出。
2.1.4定时与记数
89C52单片机内部设有3个16位的可编程定时器/计数器,简称为定时器O(T0)、定时器l(T1)和定时器2(T2)。
可编程是指其功能(如工作方式,定肘时间、量程、启动方式等)均可由指令来确定和改变。
在定时器/计数器中除了有3个16位的计数器之外,还有两个特殊功能寄存器(控制寄存器和方式寄存器)。
2.1.5复位电路
AT89C52单片机复位是使CPU和系统中的其他芯片处于一个确定的初始状态,无论在系统刚开始接通电源时,还是在断开电源或者发生故障后都需要复位。
单片机的复位条件是在复位引脚RST加上持续的2个机器周期以上的高电位。
图2.2复位电路
2.1.6时钟电路
时钟电路是系统的心脏,它控制着系统的工作节奏,时钟频率因型号而异,典型值为12MHz。
AT89C52单片机内部有一个带反馈的线形反相放大器,XTAL1,XTAL2分别为反相器输入和输出端,外接晶振和电容组成震荡器。
震荡器在加电以后延迟一段时间(约10ms)起振产生时钟。
图2.3时钟电路图
2.2温度传感模块
温度传感模块主要由单线数字温度传感器DS18B20组成,主要完成温度的测量,并将其转换成数字量,传送给单片机。
图2.4温度传感模块图
2.2.1DS18B20性能特点
1采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位)
2测温范围为-55℃-+125℃,测量分辨率为0.0625℃
3内含64位经过激光修正的只读存储器ROM
4适配各种单片机或系统机
5用户可分别设定各路温度的上、下限
6内含寄生电源。
2.2.2DS18B20控制方法
在硬件上,DS18B20与单片机的连接有两种方法,一种是Vcc接外部电源,GND接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时Vcc、GND接地,I/O接单片机I/O。
无论是内部寄生电源还是外部供电,I/O口线要接5KΩ左右的上拉电阻。
DS18B20有六条控制命令,如表2.1所示:
指 令
约定代码
操 作 说 明
温度转换
44H
启动DS18B20进行温度转换
读暂存器
BEH
读暂存器9个字节内容
写暂存器
4EH
将数据写入暂存器的TH、TL字节
复制暂存器
48H
把暂存器的TH、TL字节写到E2RAM中
重新调E2RAM
B8H
把E2RAM中的TH、TL字节写到暂存器TH、TL字节
读电源供电方式
B4H
启动DS18B20发送电源供电方式的信号给主CPU
表2.1DS18B20的六条控制命令
2.2.3高速暂存存储器
在DS18B20内部结构中有一个高速暂存存储器,该存储器由9个字节组成,其分配如表2.2所示。
当温度转换命令发布后,经转换所得的温度值以二进制补码形式存放在高速暂存存储器的第0和第1个字节。
单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如表2.2所示。
对应的温度计算:
当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算成十进制值。
表2.2DS18B20暂存器分布
CPU对DS18B20的访问流程是:
先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器和数据进行操作。
DS18B20每一步操作都要遵循严格的工作时序和通信协议。
如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:
每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
2.3键盘、显示模块
键盘、显示模块主要由键盘、显示驱动芯片8279、数码管、3×4键盘矩阵、反相驱动器74LS06组成,完成温度设定数值的输入和温度的显示功能。
键盘、显示驱动芯片8279主要完成和单片机芯片进行数据的交换,将单片机送来的、需要显示的数据经反相驱动器74LS06反相后驱动数码管,译码扫描输出信号SL0-SL3完成对数码管的选择,并且自动刷新显示数据。
8279还负责扫描键盘,形成键码,并将其送至单片机。
数码管显示设定温度和实际温度,键盘完成温度数据的设定。
总体电路如图2.5所示:
图2.5键盘、显示模块电路图
2.3.1键盘、显示驱动芯片8279
8279芯片是一种通用的可编程键盘显示器接口器件,单个芯片就能完成键盘输入和七段码显示控制两种功能。
引脚如图2.6
IRQ:
中断请求,高电平有效。
为输出线。
D0~D7:
数据总线,为双向三态总线,和单片机的数据总线相连接,用于传送CPU和8279之间的命令、数据和状态等信息。
图2.68279芯片引脚图
、
:
读写选通信号,来自CPU,低电平有效。
控制8279读、写操作。
:
片选信号。
=0时选中8279,为输入线。
A0:
数据选择线,A0=1时,CPU写入8279的数据为命令字、从8279读出的数据为状态;A0=0时,CPU读写的字节均为数据。
RESET:
复位端。
RESET=1时8279复位,复位时芯片有关状态是:
程序时钟编程为31、外部译码键扫描方式,双键互锁,16个字符显示。
CLK:
系统时钟。
外部时钟输入,经分频后产生100kHz,作为8279的内部时钟。
RL0~RL7:
反馈输入线。
平时保持“1”,当键盘矩阵结点上有键闭合时,边为“0”。
在选通方式时作为8位输入线。
SHIFT:
移位信号。
高电平有效,可用它扩充键盘功能,作为上、下档功能选择键。
在传感器方式或选通方式中无效。
CNTL/STB:
控制/选通输入线。
高电平有效,常用于扩充键的控制功能,该信号的上升沿可将来自RL0~RL7的数据存入FIFORAM中。
SL0~SL7:
扫描输出线,用于键盘、显示器或传感器的扫描线。
OUTA0~OUTA3:
A组段显示数据输出线。
OUTB0~OUTB3:
B组段显示数据输出线。
A、B两组可以单独使用,也可合并使用。
与多位数字显示的扫描线SL0~SL3同步。
:
消隐输出线,低电平有效。
当有显示切换或消隐命令时,使显示器消灭。
2.3.28279内部结构
1.I/O控制和数据缓冲器
数据缓冲器是双向缓冲器,连接内部总线和外部总线D7~D0,用于传送CPU和8279之间的命令状态和数据。
I/O控制线是CPU对8279进行控制的引线,
是片选信号,A0用于区别信息的特征。
2.控制逻辑
控制与定时寄存器用来寄存键盘和显示器的工作方式以及由CPU编程的其他操作方式。
这些寄存器一旦接受锁存送来的命令,就通过译码产生相应的信号,从而完成相应的控制功能。
定时和控制包含一些计数器,其中有一个5位计数器,对CLK引线输入的时钟信号进行分频,产生100kHz的定时信号,然后再经过分频为键盘扫描提供适当的逐行扫描频率和显示扫描时间。
3.扫描计数器
扫描计数器有编码和译码两种工作方式。
按编码方式工作时,扫描计数器的状态从SL0~SL3输出,通过外部译码器,可以外接16位显示器和8×8键盘;按译码方式工作时,扫描计数器的低2位的状态从SL0~SL3输出,状态为00,SL0输出低电平,SL1~SL3输出高电平;状态为01,SL1输出为低电平,其他输出为高电平…此时只能外接4位显示器和4×8键盘。
4.键输入控制和FIFO(先进先出)RAM
这部分电路可以完成对键盘的自动扫描,锁存RL0~RL7的输入信号,搜索闭合键,去除键抖动,并将键输入数据写入先进先出存储器(FIFORAM)。
8279具有8个字节先进先出的键输入存储器,当FIFORAM中存有键盘上闭合键的键码时,IRQ变为高电平,向CPU请求中断:
当CPU从FIFORAM中读取数据时,IRQ变为低电平。
若RAM中仍有数据,则IRQ再次恢复高电平;当CPU将RAM中的输入数据全部读出时,IRQ下降为低电平。
键盘扫描方式中,8279输入数据按下列格式存放:
D7D6D5D4D3D2D1D0
CNTL
SHITF
SCAN
RETURN
CNTL(D7):
控制键CNTL的状态
SHITF(D6):
控制键SHITF的状态
SCAN(D5~D3):
输入键的行数,由SLO~SL2的状态确定
RETURN(D2~D0):
指出输入键的列数,由RL0~RL7状态确定
5.显示RAM和显示地址寄存器
8279中有16个字节的显示寄存器。
CPU将段数据写入显示存储器,存储的显示数据轮流从显示寄存器输出,CPU将显示数据写入存储器有左端送入和右端送入两种方式。
左端送入为依次填入方式,右端送入为移位方式,显示寄存器的输出与显示扫描配合,不断的将显示RAM中的数据在显示器上显示出来,也可以合送一个8位的二进制数据。
显示地址寄存器用来寄存由CPU进行读/写显示RAM的地址,它可以由命令设定,也可以设置成每次读出或写入之后自动递增。
2.3.3键盘和数码管
在本模块中键盘向单片机芯片输入用户准备设定的温度值,显示部分的数码管显示设定的温度值和实际温度值。
现规定设定温度值在0℃到99℃之间,故需要显示的数码位数为两位数,需要的数码管总数为4,用于温度设定的键盘采用3×4键盘矩阵。
结合上述8279芯片的介绍,显示电路采用译码扫描、4字符显示、左进工作方式,数码管采用共阳极LED数码管。
扫描输出SL0~SL3已经过译码,故可直接作为4个数码管的选通信号,轮流刷新4个数码管。
OUTA0~3与OUTB0~3共同作为显示输出,经74LS06反相驱动后接至LED显示器,每个输出驱动一段,各个数码管相同的段连接在一起。
显示内容来自显示RAM。
现规定第一位数码管显示设定温度的十位数字,第二位数码管显示设定温度的个位数字,第三位数码管显示实际温度的十位数字,第四位显示实际温度的个位数字。
键盘的12个键中,10个键用于设定温度值的0-9这10个数,一个键用于删除输入错误的数字,一个用于确定所输入的温度值。
按键及相关说明如表2.3所示:
表2.3按键及相关说明
按键
行扫描信号
列扫描信号
键盘扫描数据
键码
SL2
SL1
SL0
RL3
RL2
RL1
RL0
S0
1
1
0
1
1
1
0
11000000
0
S1
1
0
1
1
1
1
0
11001000
1
S2
0
1
1
1
1
1
0
11010000
2
S3
1
1
0
1
1
0
1
11000001
3
S4
1
0
1
1
1
0
1
11001001
4
S5
0
1
1
1
1
0
1
11010001
5
S6
1
1
0
1
0
1
1
11000010
6
S7
1
0
1
1
0
1
1
11001010
7
S8
0
1
1
1
0
1
1
11010010
8
S9
1
1
0
0
1
1
1
11000011
9
S10
1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89C52 温度 控制系统 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)