基于 AT89C52 的智能温控仪设计
基于 AT89C52 的智能温控仪设计
一、设计任务及要求
1. 设计题目:基于 AT89C52 的智能温控仪设计
2. 设计要求:
(1)采用 Pt1000 温度传感器,测温范围 0--100℃;
(2)系统可设定温度值;
(3)设定温度值与测量温度值可实时显示;
(4)控温精度:±0.5℃。
3. 设计任务
(1)拟定电路。
(2)编制软件流程图及给出系统软件主要部分的源程序
二、设计背景简介
温度是科学技术中最基本的物理量之一,物理化学生物等学科都离不开温
度。在工业生产和实验研究中,像电力、化工、石油、冶金、航空航天、机械制
造、粮食存储、酒类生产等领域内温度往往是表征对象和过程状态的最重要的参
数之一。
本文介绍采用测温范围宽、精度高的铂热电阻进行温度系统的测量和控制。
温度控制系统具有非线性、时滞以及不确定性。单纯依靠传统的控制方式或
现代控制方式都很难以达到高质量的控制效果。而智能控制中的模糊控制通过从
专家们积累的经验中总结的控制规则,对温度进行控制,可以有效地解决温度控
制系统的非线性、时滞以及不确定性。本节采用模糊控制对温度进行控制。
三、系统总体框图
框图说明:本系统共用到两片 AT89C52 单片机,即单片机 A 和单片机 B,其
中 A 机用于现场温度采集和显示,B 机用于控制。A、B 机通过 max232 硬件连接
串口实现全双工通信。A 机采用中断方式将采集的温度值不停的发往 B 机,B 机
采用查询方式实时接受 A 机发送的温度数据并将处理后的数据送往液晶显示。B
机通过按键输入温度设定值,并可将设定温度值通过按键选择发送模式发送到 B
机,经 A 机简单处理送数码管显示。
A 机将接收到的温度值与当前温度值比较,将比较值作为控制加热丝和风扇
LED 显示
加热丝
双向可控
控制对象
单片机 A
控制输出
串
口
通
信
继电器
风 扇
A/D 采集电路
信号调理电路
设定输入
单片机 B
液晶显示
实时时钟
存储电路
图 1 系统总体框图
以及 PWM 占空比的依据,A 机通过两个四位一体的数码管现场显示当前温度
和设定温度,因此可以在现场可以动态观察到当前温度变化和当前温度与设定温
度之间的差值的大小。由于需要显示日期、时间、温度等众多信息 B 机采用液晶
显示。B 机的日期、时间等信息由实时时钟芯片 DS12887 提供,因为 DS12887 在
断电情况下可长时间运行,且时间误差极小所以省去时间调整环节。B 机的存储
电路采用 24C02 存储芯片,每次存储包括日期、时间和 A 机发送来的温度值在内
的共 5 个字节的信息,每隔一分钟存储一次信息,存储芯片写满以后地址指针指
向头地址,覆盖掉最初的温度值,由于 24C02 最多包含 256 个字节,因此最多可
以保留 51 次存储记录,即最多能记录 50 分钟内的温度值。所以在查询模式下最
多可以查询 50 分钟以内的温度。
四、电路设计
1.电路设计整体思路
在温度测量控制系统中,实际温度值由铂电阻恒流工作调理电路进行测量。
为了克服铂电阻的非线性特点,在信号调理电路加入负反馈非线性校正网络;调
理电路的输出电压经 8 通道、多量程双极性输入、串行输出、逐次逼近型 12 bit
AD 转换器 max1270 转换后送入单片机 AT89C52;对采样数据进行滤波及标度
变换处理后。由高集成化的串行输入/输出的共阴极 LED 驱动显示器 max7219 连
接两个四位一体数码管显示。输入的设定值则有 4 位的独立式键盘电路进行调
整,可分别对设定值的十位和个位进行加一减一操作,送入单片机 AT89c52 后,
有另一 4 位七段数码管显示。
本系统的模糊控制由单片机 AT89C52 的程序来实现。首先有温度采样值与
设定值之差求出温度误差,进一步求出误差变化率,经量化及限幅程序处理,得
到误差语言变量 E 和误差变化率语言变量 Ec,直接查询模糊控制表就可获的控
制量 U,然后有定时子程序处理,发出控制信号,控制加热片及风扇工作。加热
片及风扇的控制电路采用晶体管驱动的直流电磁继电器的通断时间,从而达到控
制温度的目的。若系统温度偏高,则控制风扇工作,进行降温;若温度未达到设
定值,则输出温度控制信号,控制加热电路,进行加热。从而实现自动控制温度
的目的。
2.基本硬件组成
(1)铂电阻测温调理电路
本系统采用恒流工作调理电路,铂电阻选用标称值为 1000 欧的 PT1000 作为
温度传感器,其物理、化学性能在高温和氧化性介质中非常稳定,其灵敏度远高
于 PT100,在-259.34℃~630.74℃温域内可作为温度标准。A1、A2 和 A3 采用低温
漂移运放 OP07C,由于有电流流经铂电阻传感器,所以当温度为 0℃时,载波电
阻传感器上有压降,这个电压为铂电阻传感器的偏置电压,是运放 A1 输出电压
的一部分,是恒流工作调理电路的输出实际不为零。所以需要对这个偏置电压调
零,图中 R1 为调零电阻,其作用是当温度为零度时,将恒流工作调理电路的输
出调为零。又因为铂电阻的电阻特性为非线性,铂电阻在 0~100 度变化范围内
的非线性误差为 0.4%(0.4℃),就有可能对 A/D 量化和数码管显示造成影响,
所以加入了线性化电路,图中运放 AR3、及 R5、R6 和 R7 一起构成了负反馈非线
性化校正化网络,R3 用于调整运放 A2 的增益。
电路的调整方法如下(用精密可调电阻代替铂电阻进行调整):
① 将精密可调电阻调整到相当于 0℃的阻值(1000 欧),用 R1 调零。
② 将精密可调电阻调整到相当于 50℃的阻值(1193.971 欧),用 R3 调整增
益。
③ 将精密可调电阻调整到相当于 100℃的阻值(1385.055 欧),用 R6 或 R7
调整线性。
④ 反复调整多次,在 0~100℃温度范围内适宜为止。
图 2 铂电阻恒流工作调理电路
(2)A/D 转换电路
目前A/D 转换器的种类繁多,从数据输出形式上可分为串行输出与并行输
出两大类。其中串行输出AD转换器因其硬件接口简单而得到广泛应用。另外,
从可接受的输入信号极性上看,A/D 转换器又可分为单极性输入和双极性输入。
在很多的数据采集场合常常面对极性可变的模拟信号。当然可将待转换信号进行
电位移动以将其转化为单一极性,但如此便增加了电路的复杂性。串行输出、双
极性输入A/D 转换器MAX1270不增加任何硬件电路可实现对双极性模拟信号
A/D 转换。MAX1270 是8 通道、多量程双极性输入、串行输出、逐次逼近型12
bit AD 转换器。其封装形式有24 脚Narrow PDIP 和28 脚SSOP 两种。PDIP 封
装的引脚排列如图4所示。各有用引脚功能如下:1-VDD,+5V 电源输入端;2、
4-DGND,数字地;5-SCLK,串行时钟输入端;6-/CS,片选输入端,低电平
有效;7-DIN,串行数据输入,即AD 转换控制字输入端;8-SSTRB,串行数据
输出选通输出端;10-DOUT,串行数据输出端;11-/SHDN,掉电模式控制输入
端,
图3 MAX1270 引脚排列
2
3
4
7
6
A
R
1
O
P
0
7
2
3
4
7
6
A
R
2
O
P
0
7
2
3
4
7
6
A
R
3
O
P
0
7
R
4
2
k
R
7
1
0
k
R
6
1
0
k
R
2
5
K
R
3
1
0
0
k
R
1
5
0
k
R
5
1
0
k
P
T
1
0
0
0
+
5
+
1
5
-
1
5
低电平有效;12-AGND,模拟地;13~20-CH0~CH7,模拟信号输入端;21-
REFADJ,参考电压输出/外部调节输入;23-REF,参考电压缓冲输出/ADC 的
参考输入。
① MAX1270 的控制字
MAX1270 的8 位控制字及其功能如表1 所示。最高位START 为起始位(高
电平),标志控制字的开始。/CS 为低电平期间,控制字在时钟脉冲SCLK 作用
下先高位后低位通过DIN 端输入。
表1 控制字格式
BIT7(MSB)
START
BIT6
SEL2
BIT5
SEL1
BIT4
SEL0
BIT3
RNG
BIT2
BIP
BIT1
PD1
BIT0(LSB)
PD0
② 时钟模式与转换速率
PD1PD0 为掉电/时钟模式选择位。PD1PD0=10、11 时为省电模式。正常工作
时MAX1270有外部时钟与内部时钟两种工作模式。PD1PD0=01 时为外部时钟
模式,串行数据的移入、移出以及数据采集、转换都由SLCK 端的输入脉冲控制。
PD1PD0=00 时为内部时钟模式,
数据转换时钟由芯片自己产生,减轻了微处理器的负担,使得转换后的数据可在
微处理器方便的任何时刻读取,利于提高微处理器的工作效率。外部时钟模式分
为25SCLK/s(每个数据转换需要25 个时钟周期)和18 SCLK/s 两种方式,后者
转换速率稍快的原因是在全部数
据转换期间/CS 始终维持有效电平。内部时钟模式也有20、16、13 SCLK/s 等不
同转换方式。不同的时钟模式和转换方式,其转换速率不同。在外部时钟模式、
SCLK 速率为2MHz、18SCLK/s 时MAX1270 转换速率可达110ksps。
③ 通道选择与输入范围
SEL2~SEL0 为通道选择位,000~111 分别选择输入通道CH0~CH7。RNG~BIP
为输入范围选择位,MAX1270 有4 种输入范围RNG~BIP 置00 时 0~5V 单极
性输入, 置01 时0~+10V 单极性输入; 置10 时 -5~+5V 双极性输入;置11
时-10~+10V 双极性输入。
④传输函数与输出数据格式
对单极性输入,1LSB=FS/4096,输出数据为12 位二进制码。对双极性输入,
1LSB=FS/2048,输出数据为12 位二进制补码。
⑤参考电压
MAX1270 可使用芯片内的4.096V 参考电压,也可使用外部参考。。图是使用
片外参考和片内参考时相关管脚的接法。
图4 管脚连接图 (a) 使用片内参考电压 (b)、(c)使用片外参考电压
图5
AD转换电路
(3)7219 显示电路
① MAX721 9功能和设置简介
MAX7219 是串行输出共阴极显示性能非常卓越的驱动芯片。其接口采用流行
的同步串行外设接口 SPI,可与任何一种单片机方便接口,并可同时驱动 8 位 LED,
还具有级联功能可控制更多的 LED。 MAX7219 为 24 引脚芯片,除与 LED 显示相
连的线外,与微控制器只需 3 根连线相接:芯片端管脚分别为 CLK. DIN.LOAD,
其中 CLK 为时钟输入端,DIN 为数据输入端,LOAD 为锁存信号。其工作时序为:
时钟的上升沿 MAX7219 把 DIN 引脚数据移入内部移位寄存器,在时钟下降沿
V
D
D
1
D
G
N
D
2
N
C
3
D
G
N
D
4
S
C
L
K
5
C
S
6
D
I
N
7
S
S
T
R
B
8
N
C
9
D
O
U
T
1
0
S
H
D
N
1
1
A
G
N
D
1
2
C
H
0
1
3
C
H
1
1
4
C
H
2
1
5
C
H
3
1
6
C
H
4
1
7
C
H
5
1
8
C
H
6
1
9
C
H
7
2
0
R
E
F
A
D
J
2
1
N
C
2
2
R
E
F
2
3
N
C
2
4
U
5
m
a
x
1
2
7
0
C
1
1
0
4
C
2
4
.
7
u
F
C
3
1
0
4
A
P
2
^
0
A
P
2
^
1
A
P
2
^
2
A
P
2
^
3
I
N
P
U
T
0
I
N
P
U
T
1
I
N
P
U
T
2
I
N
P
U
T
3
I
N
P
U
T
4
I
N
P
U
T
5
I
N
P
U
T
6
I
N
P
U
T
7
MAX7219 把数据移向 DOUT 端, 而 LOAD 的上升沿则锁存最后移入的 16 位串行数
据。对 MAX7219 的控制操作很方便其内部具有 15×8 位 RAM 功能控制寄存器,
可方便寻址,对每位数字可单独控制、刷新,不需要重写整个显示器。显示亮度
可数字控制。MAX7219 的这些功能,使系统编程简单方便,同时节省 I/O 口。
MAX7219的控制寄存器分别为:不工作方式寄存器、译码方式寄存器、亮度
控制寄存器、扫描个数寄存器、关闭寄存器.显示测试寄存器.寄存器的操作格
式为2字节的串行数据,第一个字节为寄存器地址,第二个字节为控制命令或待
显示数据。寄存器的地址分配及功能如下所示:
㈠ 不工作寄存器(0x00):用于MAX7219级联控制。
㈡ 位寄存器(0x01·0x08):8位LED待显示内容。
㈢ 译码方式寄存器(OxOg):决定译码方式,分B码和不译码两种。
㈣ 亮度控制寄存器(0x0A):LED段电流控制.
㈤ 扫描个数寄存器(0x0B):决定显示多少个LED。
㈥ 关闭寄存器(0xOC):决定正常工作方式或关闭LED显示。
㈦ 显示测试寄存器(0x0D):决定正常工作方式或显示测试.
2 引脚功能和功能框图: MAX1279 引脚排列如图 7 所示
引脚功能如下:
图 6
MAX7219 引脚排列图
㈠ DIN 为串行数据输入端。当 CLK 为上升沿时,数据被载入 16 b 内部移
位寄存器。
㈡ CLK 为串行时钟输入端。其最大工作频率可达 10 MHz。
㈢ LOAD 为片选端,当 LOAD 为低电平时,芯片接收来自 DIN 的数据,接
收完毕,LOAD 回到高电平时,接收的数据将被锁定。