首页
会员中心
到顶部
到尾部
51单片机

基于51单片机的水温自动控制系统

时间:2020/10/14 10:59:09  作者:  来源:  查看:0  评论:0
内容摘要: 基于51单片机的水温自动控制系统沈统摘  要:在现代化的工业生产中,温度是常用的测量机被控参数。本水温控制系统采用AT89C51为核心控制器件,实现对水温在30℃到96℃的自动控制。由精密摄氏温度传感器LM35D构成前置信号采集和调理电路,过零检测双向可控硅输出...

基于51单片机的水温自动控制系统
沈统

摘  要:在现代化的工业生产中,温度是常用的测量机被控参数。本水温控制系统采用AT89C51为核心控制器件,实现对水温在30℃到96℃的自动控制。由精密摄氏温度传感器LM35D构成前置信号采集和调理电路,过零检测双向可控硅输出光电耦合器MOC3041构成后向控制电路,由74LS164和LED数码管构成两位静态显示用于显示实时温度值。

关键词:89C51单片机;LM35D温度传感器;ADC0809;MOC3041光电藕耦合器;水温自动控制
0 引言
在现代的各种工业生产中 ,很多地方都需要用到温度控制系统。而智能化的控制系统成为一种发展的趋势。本文所阐述的就是一种基于89C51单片机的温度控制系统。本温控系统可应用于温度范围30℃到96℃。
1 设计任务、要求和技术指标
1.1任务
设计并制作一水温自动控制系统,可以在一定范围(30℃到96℃)内自动调节温度,使水温保持在一定的范围(30℃到96℃)内。
1.2要求
(1) 利用模拟温度传感器检测温度,要求检测电路尽可能简单。
(2) 当液位低于某一值时,停止加热。
(3) 用AD转换器把采集到的模拟温度值送入单片机。
(4) 无竞争-冒险,无抖动。
1.3技术指标
(1) 温度显示误差不超过1℃。
(2) 温度显示范围为0℃—99℃。
(3) 程序部分用PID算法实现温度自动控制。
(4) 检测信号为电压信号。
2  方案分析与论证
2.1主控系统分析与论证
根据设计要求和所学的专业知识,采用AT89C51为本系统的核心控制器件。AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压,高性能CMOS 8位微处理器。其引脚图如图1所示。

2.2显示系统分析与论证
显示模块主要用于显示时间,由于显示范围为0~99℃,因此可采用两个共阴的数码管作为显示元件。在显示驱动电路中拟订了两种设计方案:
方案一:采用静态显示的方案
    采用三片移位寄存器74LS164作为显示电路,其优点在于占用主控系统的I/O口少,编程简单且静态显示的内容无闪烁,但电路消耗的电流较大。
方案二:采用动态显示的方案
由单片机的I/O口直接带数码管实现动态显示,占用资源少,动态控制节省了驱动芯片的成本,节省了电 ,但编程比较复杂,亮度不如静态的好。
由于对电路的功耗要求不大,因此就在尽量节省I/O口线的前提下选用方案一的静态显示。

图1 AT89C51引脚图

2.3 检测系统分析与论证
1 温度检测:有选用AD590和LM35D两种温度传感器的方案,但考虑到两者价格差距较大,而本系统中对温度要求的精度不很高,因而选用比较廉价LM35D。温度传感器采用的是NS公司生产的LM35D,他具有很高的工作精度和较宽的线性工作范围,他的输出电压与摄氏温度线性成比例,且无需外部校准或微调,可以提供±1/ 4 ℃的常用的室温精度。L M35的输出电压与摄氏温度的线形关系可用下面公式表示 ,0 ℃时输出为 0 V , 每升高 1 ℃ , 输出电压增加10 mV。其电源供应模式有单电源与正负双电源两种,其接法如图2与图3所示。正负双电源的供电模式可提供负温度的测量,单电源模式在25 ℃下电流约为50 mA ,非常省电。本系统采用的是单电源模式。
Vout=10mV/℃×T(℃)
2 液位检测:同样考虑到成本问题,选用自己做一个液位传感装置。
              
图2 单电源模式                           图3 双电源模式
2.4控制系统分析与论证
    由于需要用大功率加热装置对水温进行调节,故采用带过零检测双向可控硅输出光电耦合器MOC3041构成后向控制电路。

3 系统原理框图
硬件组成框图如图4所示:主要由AT89C51单片机、温度信号采集和调理、AD转换、数码显示电路、温度控制等部分组成。

图4  硬件框图

电源开启后,可以显示出实时的温度,并且可以判断出此时的温度是否需要对水进行加热操作

4 硬件电路

4.1温度信号检测和调理电路
LM35D采用单电源供电模式如图2将采集到的电压信号送入运放uA741进行放大处理,如图5。

图5 信号采集调理电路
4.2 显示电路
显示电路由两片74LS164和两个数码管构成,为了PCB中作图的方便,故采用如图6的连接方式。

图6  温度显示电路
时钟由单片机的P1.1提供,第一个数码管的数据由单片机的P1.0提供,第二个数码管的数据由第一个164的Q7提供。164的时序图如图7所示。

图7 74LS164的时序图
4.3 温度控制电路
温度控制电路由光电耦合器MOC3041和双向晶闸管BT137构成,硬件连接如图8。

图8 温度控制电路

4.4 AD转换电路
本部分电路由ADC0809和一些74系列芯片构成,其中74LS74用于对单片机的ALE信号进行分频作为0809的时钟,74LS373用做地址锁存实现单片机P0口的分时复用。该部分硬件电路如图9所示。

图9 AD转换电路
4.5主控系统电路
该系统由AT89C51构成,由5V电源供电,采用6Mhz的晶振。主控系统电路主要承担显示及对温度的PID控制的核心引用,各功能通过软件软件实现。图10为单片机的主控电路。
 
图10 单片机主控电路
4.6整体PCB图见附件A


5 软件部分
5.1主程序流程说明
主程序的任务主要是循环检测采集到的温度值,不断比较实现PID控制。流程图如下:
图11 主程序流程图

5.2各子程序模块流程
5.2.1显示部分
 显示部分主要包括三个小模块:第一、原始数据的拆分;第二、待显示数据查表;第三、待显示数据的输出。数据分配表如图12,送待显示数据流程如图13,查表流程如图14

图13 待显示数据输出流程                    图14 查表程序流程
5.2.2中断程序部分
中断部分包括定时器中断(主要实现1秒刷新一次显示)和外部中断(检测液位。为防止抖动,设置一个标志位,进入中断后判断标志位,如果一秒钟内没有出中断,则响应,否则不响应),流程图分别如图15和图16。

 

 

图15 定时器中断流程图                   图16 外中断流程图
5.3整体程序见附件才C

6 系统调试
6.1 软件调试
    调试所用软件:Keil uVision2和Proteus7。
将编写好的程序用Keil uVision2汇编编译成hex格式的文件后导入Proteus7中的原理图(附件B)内。结果正常显示,说明程序本身没有问题。
6.2 硬件调试
调试所用工具:直流稳压电源,示波器,万用表等。
6.2.1 放大电路的调试:
将信号调理部分电路的输入端接地,调节电位器,使输出电压为零(用万用表毫伏档测量)。输入一定的电压值0—1V范围内,观察电路的输出电压,调节电阻值,使输出为输入的5倍。
6.2.2 显示电路的调试:
先写一个简单的显示程序,烧入单片机内,接好电路,观察显示是否正常。
6.2.3AD转换电路的调试:
写一个简单的控制ADC0809的程序,用示波器观察ADC0809所接受到的信号是否正确,如时钟信号、开始信号等、给定输入端一个电压,给OE端持续加高电平,使允许输出,用万用表或示波器测量各个输出引脚的转换情况,结果与计算值是否相符合。
6.2.4系统的整体调试:
    将编写好的程序烧入单片机中,接好整体电路,观察输出结果是否正确。调试中显示一直是99,最后去掉373和排阻,显示正常。主要是因为加的排阻过小,只有330欧姆,而ADC0809向单片机送数据的时间有很短,所以,即使送入0也可能会被单片机认为是1,所以一直显示99。
6.2.5 系统存在的问题:
    由于实验调试时,只是观察led灯的亮灭变化,没有接上实际的光耦驱动大功率加热器件,而实际测试时,led灯的亮度不高说明驱动电流太小,因而在驱动光耦时还需加入74LS07以增大P1.2口的驱动电流,使之能够驱动光耦。调试的过程中发现所购买的ADC0809的IN0输入端直接与地短接,所以,真正做成的系统用的是通道1。又加上调试时去掉了排阻和74LS373,因而选地址时是直接把地址选择端接成了高低电平,虽然实现了功能但是与初衷不符。

7 结束语
通过本次专业课程设计,我学会PID算法的软件实现方法,也了解了一些常识性的东西如上拉电阻的选取等。另外也认识到了单片机控制的优势——识别控制简单、方便、快捷。这样一来,单片机就可以充分发挥其速度快、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点,可用附加电路实现电路的扩展。
最后感谢指导教师李建法老师给予我大力支持与帮助,并提供了有利的实验条件,在此表示由衷的感谢。


参考资料:
【1】谢自美  电子线路综合设计  华中科技大学出版社
【2】张毅刚  单片机原理及应用
附件A:

整体PCB图

附件B:

PROTEUS仿真图
附件C:本系统所用程序:
  DIN  BIT P1.0
      CLK  BIT P1.1
      JR BIT P1.2
      F1   BIT 21H

      ORG  0000H
      SJMP MAIN
      ORG  0003H
      LJMP INT00
      ORG  000BH
      LJMP INTDISP
      ORG  0030H
MAIN: SETB EA
      SETB EX0
      SETB ET0
      MOV  TMOD,#01H
      MOV  TH0,#3CH
      MOV  TL0,#0B0H
      mov  20h,#10
      SETB TR0               ;中断初始化
      CLR F1
CJ1:  MOV R0,#30H
      LCALL D1S
      LCALL AD0809
      MOV B,A
     
CJ2:  MOV R0,#31H
      LCALL D1S
      LCALL AD0809
      CJNE A,B,COMP                      
      LJMP CJ2                         

COMP: CJNE A,#30H,N30                  
      SETB CTRO                        
      LJMP CJ1                            
N30:  JNC COM96                              
      SETB JR
 LJMP CJ1
COM96:CJNE A,#96H,N96
      CLR JR
      LJMP CJ1
N96:  JC COMAB
      CLR JR
      LJMP CJ1
COMAB:CJNE A,B,DR
      LJMP CJ2
DR:   JC  DOWN
RISE: SETB JR
      LJMP CJ1
DOWN: CLR JR
      LJMP CJ1

AD0809:                        ;数据采集转换
      MOV DPTR,#0FFF8H
LOOP:
      MOVX @DPTR,A
      MOV R7,#0AH
DELAY:
      NOP
      NOP
      NOP
      DJNZ R7,DELAY
      MOVX A,@DPTR     
      MOV DPTR,#TBCD
      MOVC A,@A+DPTR
      MOV @R0,A
      RET

DISP0:                      ;拆分
      MOV R1,#40H
      MOV A,@R0
      MOV B,A
      ANL A,#0F0H
      SWAP A
      MOV @R1,A
      inc R1
      MOV A,B
      ANL A,#0FH
      MOV @R1,A
      RET
DISP1:                       ;查表
      MOV R0,#40H
      MOV R1,#50H
      MOV R7,#2 
   L1:MOV DPTR,#SEGTAB
      MOV A,@R0
      MOVC A,@A+DPTR
      MOV @R1,A
      INC R0
      INC R1
      DJNZ R7,L1
      RET
DISP2:                        ;显示
      MOV R0,#50H
      MOV R1,#2
   L2:MOV A,@R0
      MOV R7,#8
   L3:RLC A
      MOV DIN,C
      CLR CLK
      SETB CLK
      DJNZ R7,L3
      INC R0
      DJNZ R1,L2
      RET
DISP:PUSH ACC
     PUSH B
     mov 33h,r0
     LCALL DISP0
     LCALL DISP1
     LCALL DISP2
     mov r0,33h
     POP B
     POP ACC
     RET

D100MS:MOV R3,#200
DEL0:  MOV R4,#125
DEL1:  DJNZ R4,DEL1
       DJNZ R3,DEL0
      RET
D1S:  MOV R5,#10
DEL2: CALL D100MS
      DJNZ R5,DEL2
      RET
 
INT00:
     JNB F1,LINT
     CLR JR
     SJMP RETURN
LINT:SETB F1
     LCALL D1S
RETURN:
     RETI

INTDISP:
     PUSH ACC
     PUSH B
     MOV TH0,#3CH
     MOV TL0,#0B0H
     djnz 20h,back
     mov 20h,#10
     LCALL DISP
back:POP  B
     POP  ACC
     RETI

TBCD:DB 00H,00H,01H,01H,02H,02H,02H,03H
     DB 03H,04H,04H,04H,05H,05H,05H,06H
     DB 06H,07H,07H,07H,08H,08H,09H,09H
     DB 09H,10H,10H,11H,11H,11H,12H,12H
     DB 12H,13H,13H,14H,14H,14H,15H,15H
     DB 16H,16H,16H,17H,17H,18H,18H,18H
     DB 19H,19H,20H,20H,20H,21H,21H,21H
     DB 22H,22H,23H,23H,23H,24H,24H,25H
     DB 25H,25H,26H,26H,27H,27H,27H,28H
     DB 28H,28H,29H,29H,30H,30H,30H,31H
     DB 31H,32H,32H,32H,33H,33H,34H,34H
     DB 34H,35H,35H,35H,36H,36H,37H,37H
     DB 37H,38H,38H,39H,39H,39H,40H,40H
     DB 41H,41H,41H,42H,42H,43H,43H,43H
     DB 44H,44H,44H,45H,45H,46H,46H,46H
     DB 47H,47H,48H,48H,49H,49H,49H,50H
     DB 50H,50H,51H,51H,51H,52H,52H,53H
     DB 53H,53H,54H,54H,55H,55H,55H,56H
     DB 56H,57H,57H,57H,58H,58H,59H,59H
     DB 59H,60H,60H,60H,61H,61H,62H,62H
     DB 62H,63H,63H,64H,64H,64H,65H,65H
     DB 66H,66H,66H,67H,67H,67H,68H,68H
     DB 69H,69H,69H,70H,70H,71H,71H,71H
     DB 72H,72H,73H,73H,73H,74H,74H,74H
     DB 75H,75H,76H,76H,76H,77H,77H,78H
     DB 78H,78H,79H,79H,80H,80H,80H,81H
     DB 81H,82H,82H,82H,83H,83H,83H,84H
     DB 84H,85H,85H,85H,86H,86H,87H,87H
     DB 87H,88H,88H,89H,89H,89H,90H,90H
     DB 90H,91H,91H,92H,92H,92H,93H,93H
     DB 94H,94H,94H,95H,95H,96H,96H,96H
     DB 97H,97H,98H,98H,98H,99H,99H,99H
    
SEGTAB:  DB 77H,14H,0B3H,0B6H,0D4H
         DB 0E6H,0E7H,34H,0F7H,0F6H
END

  


相关评论
本类推荐
    广告联系QQ:45157718 点击这里给我发消息 电话:13516821613 杭州余杭东港路118号雷恩国际科技创新园  网站技术支持:黄菊华互联网工作室 浙ICP备06056032号