您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 房地产 > 节水型数字热表的设计
1节水型数字式热表的单片机设计一、课题简介城市供暖是基础设施,居民正常过冬的供暖问题关乎百姓生活。按供热面积收费,不利于节能,易造成资源的浪费;安装热量表及调节设备,并实施按表计量收费的工作己经成为当前供暖行业的关注热点。热量表是用于对集中供热系统中的热量分户进行计量的仪表,主要由进水和回水温度传感器、积分器、流量计等部分构成。该表安装在用户的进水和出水管上。热量表根据测量到的热水进出温度差、水流量以及供热时间,计算出采暖设备散发的热量值,并将其显示出来。随着集中采暖按热量计费的相应技术的发展,整个采暖热量计费装置向小型化、计算机化发展。本文所设计的热量表,不但实现了基本的热量计量,同时,还利用出水和进水的流量监控(若流量不平衡,单片机系统将发出报警信号),通过电磁阀对热水流量以及对用户违章用热水或用户房间漏水等进行控制。具体的总体原理图如下:EEPROMLCD主控MCUA/D转换处理信号处理暖气散热进水出水流量计温度传感器电磁阀图1、热量表原理图二、方案论证方案一:方案一框图如下,集入口和出口的温度采集和流量采集(相当于四个采集模块)于一个单片机,其中还连接了电磁阀驱动模块,LCD显示模块,电路模块以及报警部分。温度采集模块流量采集模块电磁阀驱动模块A/D转换模块单片机控制部分LCD显示模块电源电路报警部分图2、方案一原理框图方案一的优点在于集所有功能于一片单片机,硬件较简单易于理解,成本也较低,但这样设计的缺点在于单片机中断资源非常拮据并且I/O资源几乎全总被占用,给编程带来很大难度,并且还涉及到一个中断不够用的问题,虽然可以通过其他方法解决,但是显然增加了其复杂度,这是其缺点。2方案二:方案二框图如下。入口温度传感器入口流量计出口温度传感器出口流量计入口从机MCU出口从机MCU主机MCU报警模块电磁阀模块LCD显示图3、方案二原理框图方案二与方案一的区别在于把入口的温度和流量采集模块和出口的这两个模块分开,减轻了单个硬件的负担,中断不够用的问题也得以解决,但是必须得加入上位机作为主机,其他两个从机专门负责从温度以及流量采集模块采集数据,再把数据通过多机通信传输给主机,让主机处理,并根据处理结果来控制LCD的显示和电磁阀的关闭以及报警器,这样设计的缺点是利用的硬件较多,成本较高,但给编程减轻了负担,出于可实现性考虑本文选择方案二。三、硬件的设计和说明1、温度采集模块任务书中要求用Pt100热电阻作为温度传感器,在这里温度采集电路采用了Pt100的三线制接法,热电阻作为电桥的一个桥臂电阻,其连接导线(从热电阻到中控室)也成为桥臂电阻的一部分,这部分电阻是未知的且随环境温度变化,易造成测量误差。为了消除连接导线电阻引起的测量误差,热电阻采用三线制接法,即将其中的一根导线接到电桥电源端,其余两根分别接到热电阻所在桥臂及与其相邻的桥臂上,从而消除了导线的测量误差。温度采集电路下图所示。236471852DW234-9V+9V+9V8KR31.5K8KR42MR1010KR6100R510KR72MR82MR9RTPt100图4、温度采集电路2、A/D转换模块考虑到温度采集模块产生的电压信号经放大后的电压范围,本文采用A/D转换芯片ADC0809,ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。下图为其内部逻辑结构,它由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。38路模拟路开关地址锁存与译码器8路A/D转换器VREF+VREF-STCLK三态输出锁存器EOC图5、ADC0809引脚结构ADC0809各脚功能如下:D7-D0:8位数字量输出引脚。IN0-IN7:8位模拟量输入引脚。VCC:+5V工作电压。GND:地。REF(+):参考电压正端。REF(-):参考电压负端。START:A/D转换启动信号输入端。ALE:地址锁存允许信号输入端。(以上两种信号用于启动A/D转换).EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。OE:输出允许控制端,用以打开三态数据输出锁存器。CLK:时钟信号输入端(一般为500KHz)。A、B、C:地址输入线。IN3IN4IN5IN6IN7STEOCD3CLKOEVCCVREF+GNDD1IN2IN1IN0ABCALED7D6D5D4D0VREF-D2图6、管脚结构图工作原理:ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE4=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7-D0为数字量输出线。CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(+),VREF(-)为参考电压输入。硬件接线图:说明:从温度传感器出来并放大的电压信号接在ADC0809的模拟输入端IN0端,控制端口ST、OE、EOC端分别接在P1口的P1.0、P1.1、P1.2,数字输出端的八位接在P0口,由频率产生器Sun7474供给0809一个500Hz的时钟信号。IN3IN4IN5IN6IN7STEOCD3OECLKVCCVREF+GNDD1IN2IN1IN0ABCALED7D6D5D4D0VREF-D2P1.0P1.1P1.2P1.4P1.3P1.5P1.6P1.7RSTP3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7XTAL2XTAlL1GNDVCCP0.0P0.2P0.3P0.4P0.5P0.6P0.7EA/VPPALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.1VCCD2D3D4D5D6D7D1D0STEOCOECLKEOCSTOE12Y130pFC230pFC310uFCRESETRXDTXD入口从机ADC0809VCC10KR图7、ADC0809接口电路3、流量采集模块流量采集模块用来产生计量脉冲信号。当出现一个计量脉冲信号时,表示有10L热水流过。流量传感器安装在管路系统上。本文采用LWY智能涡轮流量计作为热量表流量采集部分的传感器涡轮流量计工作原理涡轮流量计是一种叶轮式仪表,其工作原理相对简单。当被测流体流过传感器时,在流体作用下,叶轮受力旋转,其转速与管道平均流速成正比,叶轮叶片使磁电转换器的磁阻值发生周期性变化。检测线圈中磁通随之发生周期性变化,产生周期性的感应电势,即电脉冲信号,经放大器放大后送出到51单片机的T0计数端,再利用T1作为计时器给出一个1S的中断,也就是说统计的脉冲数以1S为单位。电路只需把流量计的输出端接到T0计数端,再在单片机内设置一个定时中断即可,在此不再赘述。4、电磁阀模块由于阀门电机转动时电流比较大,所以专门设计一个阀门驱动电路来完成阀门的驱动。控制部分只要给出电平信号即可,同时,驱动电路给出一个电平信号,以表示阀门的状态,从而确定阀门是否处于打开、关闭或异常的状态。报警电路是指当电源电压不足、误操作、或违规用水发生时,单片机系统将发出报警信号,热量表会报警提示。电路如下:5Q1PhotoPNPQ2PhotoPNPQ6PhotoNPNQ5PhotoNPNQ4PhotoNPNQ3PhotoNPNDCF200uFC1+5vOpenCloseRecheck1KR31KR4510R530R6100R751R8Res2510R9Res21KR22.2KR1图8、电磁阀电路Open、Close、Recheck端分别接在主机的P0.0~P0.2端来控制,具体工作方式为:Open和Close为输入端;Recheck为电压反向检测端。当Open和Close均为低电平时,电磁阀不打开,此时Recheck端为低电平。当MCU发出Open信号时,Open输入端为高电平,Q1、Q3、Q5导通,电磁阀正向供电,阀门打开。此时,若Recheck端为高电平,电磁阀处于正常打开过程;若Recheck端为低电平,表示电磁阀已经打开。同时,MCU反复检测信号,以判断电磁阀状态以及是否断开Open信号。当MCU发出Close信号时,Close输入端为高电平,Q2、Q4、Q6导通,电磁阀反向供电,阀门关闭。此时,如果Recheck端为高电平,电磁阀处于正常关闭过程;如果Recheck端为低电平,表示电磁阀已经关闭。同时,MCU反复检测信号,以判断电磁阀状态以及是否断开Close信号。5、电源电路采用7812及7805配合外围电路产生5V和12V的直流输出,电路如下:图9、电源电路6、整体原理图(见附录一)四、程序设计1、总体程序框图系统总体程序框图如下,说明:系统开机后,先进行初始化,等侍A/D中断,中断产生后ADC0809把温度采集模块输出的模拟信号转换数字信号给单片机(从机),同时单片机(从机)开始从流量采集模块计数(T0作为计数器),直到T1产生1S中断,单片机把采集到的温度及流量数据发给主机,前述的过程是两个从机同时进行的,也就是入口和出口的数据采集是同步的,主机收到数据后触发串口中断的,中断子程序中对采集的数据进行处理,再根据处理之后结果来控制电磁阀门的关闭和LCD的显示以及报警器。DL1L22ABridge781278052200uFC10.27uFC210uFC310uFC33.3KR3输出5V输出12V220VAC6结束主循环开始系统初始化A/D转换中断?时钟中断?数据处理中断?显示处理结果进入等待模式A/D转换中断处理程序时钟中断处理程序数据中断处理程序是是是否否否图10、总体程序框图整个程序关键部分都由中断程序构成,中断程序又由三个子中断服务程序构成,由于时间关系,本文只写出部分程序。2、A/D转换程序如下:#includereg52.hsbitST=P1^0;sbitOE=P1^1;sbitEOC=P1^2;unsignedcharchannel=0xbc;//IN3unsignedchargetdata;voidmain(void){P1=channel;while(1){ST=0;ST=1;ST=0;while(EOC==0);7OE=1;getdata=P0;OE=0;}}3、流量计数及时钟中断程序如下:#includereg52.hunsignedlongT0count;unsignedchartimecount;bitflag;unsignedlongx;voidmain(void){unsignedchari;TMOD=0x15;TH0=0;TL0=0;TH1=(65536-4000)/256;TL1=(65536-4000)%6;TR1=1;TR0=1;ET0=1;ET1=1;EA=1;while(1){if(flag==1){flag=0;x=T0count;timecount=0;T0count=0;TH0=0;TL0=0;TR0=1;}}}voidt0(void)interrupt1using08{T0count++;}voidt1(void)interrupt3using0{TH1=(65536-4000)/256;TL1=(65536-4000)%256;timecount++;if(timecount==250){TR0=0;timecount=0;flag=1;}}五、总结与收获这次的单片机课设可以说有一定的难度,特别是对于本人这样的初学者,从拿到题目的不理解到不停的查阅各种资料,再到后来的参照别人写的文章来设计系统,中间的确学到了很多知识,原来经常用到的
本文标题:节水型数字热表的设计
链接地址:https://www.777doc.com/doc-2120630 .html