一、功能要求
设计并制作一个温度控制器,用于自动接通或断开室内的电加热设备,从而使室内温度达到设定温度要求,并能实时显示室内温度。当室内温度大于等于设定温度时,控制器断开电加热设备;当室内温度比设定温度小2时,控制器接通电加热设备。 控温范围:0~51
控温精度:≤ 1
二、硬件系统设计
1.硬件系统由七部分组成,即单片机及看门狗电路、温度检测电路、控制输出电路、键盘电路、显示电路、设置温度储存电路及电源电路。 (1)单片机及看门狗电路
根据设计所需的单片机的内部资源(程序存储器的容量、数据存储器的容量及I/O口数量),选择AT89C51-24PC较合适。为了防止程序跑飞,导致温度失控,进而引起可怕的后果,本设计加入了硬件看门狗电路IMP813L,如果它的WDI脚不处于浮空状态,在1.6秒内WDI不被触发(即没有检测到上什沿或下降沿),就说明程序已经跑飞,看门狗输出端将输出低电平到手动复位端,使复位输出端RST发出复位信号,使单片机可靠复位,即程序重新开始执行。(注:如果选用AT89S51,由于其内部已具有看门狗电路,就不需外加IMP813L)
(2)温度检测电路
温度传感器采用AD590,它实际上是一个与绝对温度成正比的电流源,它的工作电压为4~30V,感测的温度范围为-550C~+1500C,具有良好的线性输出,其输出电流与温度成正比,即1μA/K。因此在00C时的输出电流为273.2μA,在1000C时输出电流为373.2μA。温度传感器将温度的变化转变为电流信号,通过电阻后转变电压信号,经过运算放大器JRC4558运算处理,处理后得到的模拟电压信号传输给A/D转换部分。A/D转换器选用ADC0804,它是用CMOS集成工艺制成的逐次逼近型模数转换芯片,分辨率8位,转换时
间100μs,基准电压0~5V,输入模拟电压0~5V。
(3)控制输出电路
控制信号由单片机的P1.4引脚输出,经过光耦TLP521-1隔离后,经三极管C8550直接驱动继电器WJ108-1C-05VDC,如果所接的电加热设备的功率≤2KW,则可利用继电器的常开触点直接控制加热设备,如果加热设备的功率>2KW,可以继电器控制接触器,由接触器直接控制加热设备。
(4)键盘电路
键盘共有四个按键,分别是S1(设置)、S2(+)、S3(-)、S4(储存)。通过键盘来设置室内应达到的温度,键盘采用中断方式控制。
(5)显示电路
显示电路由两位E10501_AR数码管组成,由两片74LS164驱动,实现静态显示,74LS164所需的串行数据和时钟由单片机的P3.0和P3.1提供。对于学过“串行口”知识的班
级,实习时,可以采用串行口工作于方式0,即同步移位寄存器的输出方式,通过串行口输出显示数据(实时温度值或设置温度值);对于没学过“串行口”知识的班级,实习时,可以采用模拟串行口的输出方式,实现显示数据的串行输出。
(6)设置温度存储电路
为了防止设定温度在电源断电后丢失,此设计加入了储存电路,储存器选用具有I2C总线功能的AT24C01或FM24C01均可。每次通过键盘设置的室内设定温度都通过储存器储存起来,即使是电源断电,储存器存储的设定温度也不丢失,在电源来电后,单片机自动将设定温度从储存器中读出,一方面避免了断电后的更新设置工作;另一方面也保护了控制器控制的安全性,可靠性。
(7)电源电路
电源采用了串联型集成稳压器电路,电源有两路输出,一路由L7805CV稳压输出+5V,除JRC4558、AD590外,电路的其它部分均由+5V供电;一路由MC78L12和LM79L12稳压输出±12V,给JRC4558、AD590供电。当然这里还可以选择现成的开关型稳压电源,但它的价格相对来说要高一些。
2.硬件系统电路原理图:
3.材料表
型号 | 数量 | 对应元件序号 | 种类 |
330Ω | 1 | R26 | 电阻 |
470Ω | 19 | R1~R17、R28、R29 |
820Ω | 2 | R20、R25 |
1K | 2 | R22、R23 |
2K | 1 | R27 |
3K | 2 | R21、R24 |
10K | 2 | R18、R19 |
2K | 2 | RP3、RP4 | 电位器 | 割礼龙凤斗
5K | 2 | RP1、RP2 |
10P | 1 | C9 | 瓷片电容 |
30P | 2 | 农业产业化C17、C18 |
100μ/25V | 4 | C1、C2、C3、C4 | 电解电容 |
470μ/16V | 2 | C5、C6 |
1N4148 | 2 | D2、D3 | 整流二极管 |
3.9V/1W | 1 | D1 | 稳定二极管 |
红、φ3 | 2 | D4、D5 | 发光二极管 |
DB107 | 1 | ZLQ1 | 整流桥 |
KBP206 一氧化氮合成酶 | 1 | ZLQ2 |
C8550 | 1 | Q1 | 三极管 |
| | | |
12M | 1 | Y1 | 晶振 |
74LS164 | 2 | U11、U12 | IC |
AD590 | 1 | U9 |
ADC0804 | 1 | U5 |
AT24C01 | 1 | U6 |
AT89C51 | 1 | U4 |
IMP813L | 1 | U7 |
JRC4558 | 1 | U8 |
L7805CV | 1 | U3 |
LM79L12 | 1 | U2 |
MC78L12 | 1 | U1 |
TLP521-1 | 1 | U10 |
E10501-AR | 2 | DS1、DS2 | 数码管 |
WJ108-1C-05VDC | 1 | K1 | 继电器 |
220V/8V/ 2×15V/2.5W | 1 | T1 | 应力强度因子电源变压器 |
VH-2 | 2 | CN1、CN2 | 连接座 |
| | | |
三、软件系统设计
1.温控系统采用模块化程序结构,可分为四大模块:
(1)系统初始化模块:完成变量的设定、中断入口的设定、各变量赋初值、堆栈设定、读设置温度、定时器T0工作方式及初值的设定并启动、开中断。
(2)循环模块:完成A/D转换及温度值的换算、温度值显示、温度比较、看门狗的触发。
(3)定时器T0中断模块:完成1秒的定时。
(4)外部中断INT1中断模块:完成键盘对温度值的设定。
2.软件流程框图:
3.参考程序:
;----------------------------
;温度控制器源程序
;----------------------------
s1 bit p1.0 ;s1按键控制口位
s2 bit p1.1 ;s2按键控制口位
s3 bit p1.2 ;s3按键控制口位
s4 bit p1.3 ;s4按键控制口位
东方神起 still
wdkz bit p1.4 ;温度控制口位
wdi bit p1.5 ;看门狗触发端
sda bit p1.7 ;AT24C01的数据线
scl bit p1.6 ;AT24C01的时钟线
drxd bit p3.0 ;74LS164数据
dtxd bit p3.1 ;74ls164时钟
intr bit p3.2 ;A/D转换结束信号控制口位
szled bit p3.5 ;设置LED
sbz bit 00h ;秒标志位
swwd equ 30h ;十位温度的BCD码存储单元
gwwd equ 31h ;个位温度的BCD码存储单元
adpj equ 32h ;A/D转换后的平滑滤波值存储单元
szwd equ 33h ;设置温度值存储单元
adwz equ 34h ;5次A/D值的初始位置,即34h~38h
mjsz equ 39h ;1秒记数值(50ms次数)
smjsz equ 3ah ;3秒记数值(200ms次数)婚制
shmjsz equ 3bh ;10秒记数值(200ms次数)
org 0000h
ljmp start
org 000bh
ljmp timezd ;T0中断
org 0013h
ljmp temszzd ;INT1中断
org 0030h
start: clr sbz
mov mjsz,#20
mov smjsz,#15
mov shmjsz,#50
mov sp,#60h
;--------------赋初值
;lcall durom
mov szwd,a
;--------------读设置温度
mov tmod,#01h
mov th0,#3ch
mov tl0,#0b0h
setb tr0
;--------------定时器T0的设定及启动
setb it1
setb ex1
setb et0