当前位置

首页 > 公文文书 > 事务文书写作 > 工作总结 > 单片机温度控制器实训总结

单片机温度控制器实训总结

推荐人: 来源: 博学咖 阅读: 1.87W 次

一、功能要求

单片机温度控制器实训总结

设计并制作一个温度控制器,用于自动接通或断开室内的电加热设备,从而使室内温度达到设定温度要求,并能实时显示室内温度。当室内温度大于等于设定温度时,控制器断开电加热设备;当室内温度比设定温度小2?C时,控制器接通电加热设备。 控温范围:0~51?C 控温精度:≤ 1?C

二、硬件系统设计

1.硬件系统由七部分组成,即单片机及看门狗电路、温度检测电路、控制输出电路、键盘电路、显示电路、设置温度储存电路及电源电路。 (1)单片机及看门狗电路

根据设计所需的单片机的内部资源(程序存储器的容量、数据存储器的容量及I/O口数量),选择AT89C51-24PC较合适。为了防止程序跑飞,导致温度失控,进而引起可怕的后果,本设计加入了硬件看门狗电路IMP813L,如果它的WDI脚不处于浮空状态,在1.6秒内WDI不被触发(即没有检测到上什沿或下降沿),就说明程序已经跑飞,看门狗输出端

WDO将输出低电平到手动复位端,使复位输出端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供电。当然这里还可以选择现成的开关型稳压电源,但

3.参考程序:

;---------------------------- ;温度控制器源程序

;----------------------------

s1 bit p1.0 ;s1按键控制口位 s2 bit p1.1 ;s2按键控制口位 s3 bit p1.2 ;s3按键控制口位 s4 bit p1.3 ;s4按键控制口位 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 setb ea

;--------------开中断(INT1和T0中断) cyc: lcall adzh mov a,adpj lcall bcdzh lcall disp lcall tembj jnb sbz,$ clr sbz lcall wdog sjmp cyc

;--------------------------- ;模数转换子程序名:adzh ;入口参数:无 ;出口参数:adpj

;--------------------------- adzh: push psw push acc mov r1,#adwz mov r2,#5 adzh1: movx @r0,a jb intr,$ movx a,@r0 mov @r1,a inc r1

djnz r2,adzh1

;--------------5次A/D值完成 mov r0,#adwz mov r2,#5 lcall paix

;--------------5次A/D值排序 mov r5,#00h mov r6,#00h mov r7,#3 mov a,#adwz add a,#1 mov r1,a