DS18B20与单片机的接口电路
如图3.4所示。单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。
图3.4 DS18 B20采用寄生电源的电路图
当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us.采用寄生电源供电方式时VDD和GND端均接地。由于单线制只有一根线,因此发送接口是三态的。它与单片机的连接电路请看附录。
(2)水流检测电路
由于本热水器的贮水箱容积非常小,必须做到通水通电,断水断电,因此必须对水流进行检测,防止干烧发生事故。在本设计中采用了霍尔传感器。霍尔器件是一种磁传感器,用它们可以检测磁场及其变化。
图3.6 水流检测电路
水流检测电路的结构如图3.6所示,由开关型霍尔器件、放大电路和光电藕合器组成。当没有接通水源时,因磁钢离霍尔器件有一定的距离,无法在霍尔器
11
件上形成足够的磁场强度,霍尔器件输出高电平,三极管Q5截止,输出控制信号为高电平,该控制信号经或非门输出低电平,切断了加热控制回路。当接通水源时,磁钢随水流上升至霍尔器件位置,并在霍尔器件上形成足够的磁场强度,此时,霍尔器件输出低电平,三极管导通,通过光藕输出低电平的控制信号,此信号和单片机发出的低电平控制信号或非后,输出高电平,接通了加热控制回路。 (3) 输出控制电路
输出控制电路如图3.7所示,主要由光电耦合器OPTOIS01,OPTOTRIAC、双问可控硅Q7、继电器和加热管等器件组成。利用光电耦合器隔离交直流信号,以保证由单片机输出的信号与外部设备之间的电隔离。当单片机发出的控制信号为高电平时,光电耦合器U2导通,输出低电平,继电器导通,接通加热控制回路。此时,单片机将检测到Pl.7 引脚变为低电平,输出干烧报警信号。
P1.7U4FUSED2U2+12VOPTOISO1+5VR301KJ421R25OPTOTRIAC1K22uFD3K1控制信号OPTOISO1P1.6U3C13R241KD4LED6Q7AC 220V
图3.7 输出控制电路图
(4) 键盘与显示电路
键盘接口电路由按键SB1-SB3组成,这3个按键分别接到单片机的输入引脚P1.2, P1.3 和Pl.4, 按键SB1作为整个控制系统的启/停键,按键SB2、SB3作为设定键,用于设置温度的增减。单片机的输出引脚P2.0和P2.1分别通过限流电阻和三极管与数码管的阳极相连向它们提供选通信号。当端口输出低电平时,相应的三极管导通,从而使相应的7段数码管选通。
12
(5) 核心部件单片机 系统采用单片机AT89S52作为模糊处理的核心, AT89S52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM), 32个外部双向输入了输出(v0)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
其晶振电路与复位电路如图3.9所示
图3.9单片机复位与晶振电路
(6) 整流和稳压电路
在本控制器中使用了三种电源,它们分别是系统电源+5V,测温放大电路中UA741的供电电源和PWM输出电源±12V。采用如图3.10所示的稳压电路。
1T1AC 220V4D5VOLTREG21+12VVout31VOLTREG+5VVout3GNDGNDVinVinC4C8C5C9C7C11C6C12320.1uF2200uF0.1uF\\100uF0.1uF2200uF20.1uF
图3.10 整流与稳压电路
13
第4章 系统软件设计
单片机控制系统的整个程序由主程序、TO,T1定时中断服务程序、INT1过零触发中断服务程序(包括以上五个模块)组成。在整个程序中使用了三个中断,T0,T1定时中断为内部中断,主要是为了控制采样时间和控制双向可控硅的导通时间。INT1中断主要为了检测过零信号而设的外部中断,每检测到一个过零信号,就产生一个中断请求。
4.1 主程序
在主程序中,先进行各部分的初始化,包括单片机的初始化、定时器、外部中断及数据单元的初始化等。TO中断服务程序的运行时间必须小于采样时间,采样时间设计为0.5s。主程序的流程图如图4.1所示
图4.1 主程序流程图
14
4.2 T0、T1中断服务程序
TO中断服务程序用于等待DS18B20进行温度转换所需的时间。TO定时/计数器的初值由DS18B20的延时时间以及TO溢出中断次数来决定。因为本设计中时钟频率为6MHz,即使采用16位的定时方式,也无法实现0.5s的定时,故必须在硬件定时的基础上再用软件计数的方式来完成。先在定时器中设计一个时间常数,使其每隔20ms产生一次溢出中断,CPU响应中断后将R1中计数值加一,当R1中内容为25时,即可实现0.5 s的定时。其流程图如图4.2
图4.2 T0中断服务程序
T1中断服务程序用于控制双向可控硅触发脉冲的延时时间。本次设计T1做为计数器,计过零脉冲个数。
4.3 数据采集模块
数据采集模块主要用来采集电热水器出水口的温度,其框图如图4.3、图4.4所示。在一次采集中,对二个通道连续各采集3次数据,经DS18B20转换成数字量后并经过数字中值滤波消除干扰,存入相应寄存器,再送入单片机内进行数据处
15