|
1引言 流量仪表广泛应用于各工业生产过程中,为生产过程的自动化提供重要的数据。特别在蒸汽、气体、水等流量的贸易结算中,流量仪表起到仲裁的作用,流量的精确度直接关系到供方和用户之间的经济利益,这就要求流量仪表的精确度要高。流量仪表运行时的精确度可以通过对流量传感器设计、二次仪表测量电路等改进来实现。但是,普通的流量仪表大多用交流电供电,当停电时是不能进行计量的,此时的流量还存在,这就造成了累积流量很大的不确定性误差,引起供方和用户之间争议,有时引起双方很大的矛盾。为此,笔者设计的流量仪表增加了记录掉电次数和掉电时间的功能,可以估算这段时间流量来补偿累积流量,减小不确定性误差。 2DS1302简介 对掉电的记录主要是通过对实时钟DS1302进行操作来实现。为此先对其加以介绍。DS1302是串行实时钟电路,内部具有实时钟、日历和静态RAM。 2.1DS1302特点 (1)实时钟、日历提供了秒、分、时、日、星期、月和年等数据,可根据月份和闰年的情况自动调整,其中时可以采用24h或12h格式; (2)31字节静态RAM供用户使用; (3)8脚DIP或SOIC封装; (4)在2.5V工作时,芯片电流小于300μA; (5)可选的涓流充电方式; (6)简单的3线串联I/O接口; (7)工作电源和备份电源双引脚输入。 2.2基本控制操作 为了初始化数据读写操作,必须在SCLK引脚为低电平时,RST信号低变高来启动操作,先将具有地址和控制信息的8位数据(控制字节)装入芯片寄存器内,接着是读出或写入的数据。根据控制字节的命令数据的读、写可以是单字节或多字节的突发方式进行。所有的数据写入DS1302时,时钟上升沿有效,而读出的数据在时钟下降沿输出。 2.3命令字节 每次数据的传输都是由命令字节开始,最高位必须是1,传输始终从最低有效位开始。命令字节格式: (1)单字节读、写命令字节; 
2.4读写实时钟的时序及子程序 
根据上面的时序图,对DS1302操作的子程序如下,其中READ为单字节读,WRITE单字节写,BUS-TRD多字节读。 RSTBIT P1.0;P1.0接RST端 SCLK BIT P1.1;P1.1接SCLK端 DAT BIT P1.2;P1.2接I/O端 BUSTRD:CLR SCLK;多字节读 NOP ; SETB RST ;RST为1 MOV A,#0BFH ;多字节命令 ACALL WBYTE ;写入命令 RLOP:NOP ACALL RBYTE ;读出1字节 MOV@R0,A ;读出数据转存 INC R0 ;修改指针 DJNZ R3,RLOP ;直到读完为止 CLR RST ;RST为0 RET WRITE:CLR SCLK;单字节写,A写入命令,R2 NOP;为写入数据 SETB RST ;RST为1 ACALL WBYTE ;写命令字节 MOV A, R3 ;写入数据送A ACALL WBYTE ;写数据 CLR RST ;RST为0 RET READ:CLR SCLK;单字节读,A读出的命令,R NOP ;为数据 SETB RST ;RST为1 ACALL WBYTE ;写命令字节 ACALL RBYTE ;读出1字节数据 CLR RST ;RST为0 RET WBYTE:MOV R7,#08H;移入1字节数据 WBYTE1:RRC A ;输出位送C MOV DAT,C ;C送到I/O端 SETB SCLK ;SCLK上升沿 CLR SCLK DJNZ R7,WBYTE1;8位输出完为止 RET RBYTE:SETB DAT ;移出1字节 MOV R7,#08H ;R7为位数计数器 LOP:CLR SCLK ;产生下降沿 MOV C,DAT ;读取数据位 SETB SCLK RRC A ;读取数据位送A DJNZ R7,LOP ;直到8位读完 RET END 3掉电记录设计 对掉电记录的主要电路如图1所示,RAM6116和实时钟DS1302的备用电源由电池供电,DS1302内有涓流充电电路,掉电后6116可以保存数据,DS1302实时钟可以继续工作。 3.1影子时钟设计 CPU的T0作为定时器,采用方式1,设计定时时间100ms,其中断程序再计数10次,即产生一个秒的定时器。在每个秒的中断程序中将DS1302的时钟数据(7字节)读出,再写入DS1302的RAM内,程序运行时DS1302内RAM的数据(前7字节)就是影子时钟,它跟随DS1302的时钟变化而变化。 
3.2掉电次数和时间的记录 当掉电后,程序停止运行,所以,影子时钟也停止工作,影子时钟记录了掉电前1s的时刻。而DS1302的备用电池保证了其实时钟继续工作(计时)。每次上电,程序首先将实时钟数据读出和影子时钟进行比较,若二者之差大于设定值,则表明有1次掉电,此时的实时钟数据为上电的时刻,影子时钟为掉电时刻,二者之差为这次掉电时间。将掉电前后的时刻、掉电次数计数器加1后以及掉电时间累积(掉电前后之差)保存数据到6116内。估算掉电时间段的累计流量,若采用掉电前平均的瞬时流量进行计算,就要计算平均瞬时流量,为此,要记录第一次上电的时间,用现在的时间减去第一次上电时间为仪表工作时间(近似),用累计流量除以工作时间即为平均瞬时流量,平均瞬时流量乘以这次的掉电时间就是掉电时间段的累积流量。当然,估算掉电时间段流量的方法很多种,设计一个参数来确定哪一种方案,由供方和用户方协商来选择。 3.3程序框图 程序框图如图2所示,程序开始首先判断实时钟和影子时钟之差是否大于设定值,不大于说明没有掉电,继续执行;若大于设定值说明一次掉电,保存数据,估算掉电时间段的流量。 
4结束语 通过对仪表的掉电次数和时间的记录,估算掉电期间的流量,较好地解决贸易双方的矛盾,这种方法不但适应流量仪表,也可以应用于其它有需要记录掉电参数的仪表中。 摘自:中国计量测控网
|