📄 pulseparse.c
字号:
/*========================================*/
/*系统名称:DDSF-CECG-JiangSu */
/*函数名称:脉冲采集 */
/*程序编写:步爱军 */
/*开始日期:2005-01-01 */
/*完成日期: */
/*修改记录: */
/*软件版本:DDSF-CECG-002 */
/*版本说明:用户数据保存在外部 */
/*外部器件:LM75、AT24C02、HT1621、LPC932 */
/* R8025、ADE7755 */
/*========================================*/
#include <REG932.H>
#include <define.h>
#include <Stdio.h>
#include <Intrins.h>
//数据累加
void SumData(void)
{
//总电量累加
PulseData=PulseData+1;
if(PulseData==16)
{
SumPulseData[0]=SumPulseData[0]+1;
if(SumPulseData[0]==0x64)
{
SumPulseData[0]=0x00;
SumPulseData[1]=SumPulseData[1]+1;
if(SumPulseData[1]==0x64)
{
SumPulseData[1]=0x00;
SumPulseData[2]=SumPulseData[2]+1;
if(SumPulseData[2]==0x64)
{
SumPulseData[2]=0x00;
SumPulseData[3]=SumPulseData[3]+1;
if(SumPulseData[3]==0x64)
{
SumPulseData[0]=0x00;
SumPulseData[1]=0x00;
SumPulseData[2]=0x00;
SumPulseData[3]=0x00;
}
}
}
}
}
//反向电量累加
if(ReverseFgToData)
{
if(PulseData==16)
{
ReversePulseData[0]=ReversePulseData[0]+1;
if(ReversePulseData[0]==0x64)
{
ReversePulseData[0]=0x00;
ReversePulseData[1]=ReversePulseData[1]+1;
if(ReversePulseData[1]==0x64)
{
ReversePulseData[1]=0x00;
ReversePulseData[2]=ReversePulseData[2]+1;
if(ReversePulseData[2]==0x64)
{
ReversePulseData[2]=0x00;
ReversePulseData[3]=ReversePulseData[3]+1;
if(ReversePulseData[3]==0x64)
{
ReversePulseData[0]=0x00;
ReversePulseData[1]=0x00;
ReversePulseData[2]=0x00;
ReversePulseData[3]=0x00;
}
}
}
}
}
}
//峰电量累加
if(FengFg)
{
if(PulseData==16)
{
FengPulseData[0]=FengPulseData[0]+1;
if(FengPulseData[0]==0x64)
{
FengPulseData[0]=0x00;
FengPulseData[1]=FengPulseData[1]+1;
if(ReversePulseData[1]==0x64)
{
FengPulseData[1]=0x00;
FengPulseData[2]=FengPulseData[2]+1;
if(ReversePulseData[2]==0x64)
{
FengPulseData[2]=0x00;
FengPulseData[3]=FengPulseData[3]+1;
if(FengPulseData[3]==0x64)
{
FengPulseData[0]=0x00;
FengPulseData[1]=0x00;
FengPulseData[2]=0x00;
FengPulseData[3]=0x00;
}
}
}
}
}
}
//平电量累加
if(PingFg)
{
if(PulseData==16)
{
PingPulseData[0]=PingPulseData[0]+1;
if(PingPulseData[0]==0x64)
{
PingPulseData[0]=0x00;
PingPulseData[1]=PingPulseData[1]+1;
if(PingPulseData[1]==0x64)
{
PingPulseData[1]=0x00;
PingPulseData[2]=PingPulseData[2]+1;
if(PingPulseData[2]==0x64)
{
PingPulseData[2]=0x00;
PingPulseData[3]=PingPulseData[3]+1;
if(PingPulseData[3]==0x64)
{
PingPulseData[0]=0x00;
PingPulseData[1]=0x00;
PingPulseData[2]=0x00;
PingPulseData[3]=0x00;
}
}
}
}
}
}
//谷电量累加
if(GuFg)
{
if(PulseData==16)
{
GuPulseData[0]=GuPulseData[0]+1;
if(GuPulseData[0]==0x64)
{
GuPulseData[0]=0x00;
GuPulseData[1]=GuPulseData[1]+1;
if(GuPulseData[1]==0x64)
{
GuPulseData[1]=0x00;
GuPulseData[2]=GuPulseData[2]+1;
if(GuPulseData[2]==0x64)
{
GuPulseData[2]=0x00;
GuPulseData[3]=GuPulseData[3]+1;
if(GuPulseData[3]==0x64)
{
GuPulseData[0]=0x00;
GuPulseData[1]=0x00;
GuPulseData[2]=0x00;
GuPulseData[3]=0x00;
}
}
}
}
}
}
if(PulseData==16)
{
PulseData=0;
}
}
void PulseParse(void)
{
if(PulseParseFg)
{
PulseParseFg=0;
Delay(300);
KeyTemp=~P0&0x30;
switch(KeyTemp)
{
case 0x00 : //正向电量脉冲采集---累积正向电量
SumData();
KBMASK=KBMASK|0x30;
EKBI=1;
ReverseFgToData=0;
ReverseFgToLcd=0;
break;
case 0x01 : //正向电量脉冲有效标志
KBMASK=KBMASK|0x10;
EKBI=1;
ReverseFgToData=0;
ReverseFgToLcd=0;
break;
case 0x02 : //反向电量脉冲标志+脉冲有效---累积标志---反向电量
KBMASK=KBMASK|0x20;
EKBI=1;
ReverseFgToData=1;
ReverseFgToLcd=1;
break;
case 0x03 :
SumData();
ReverseFgToData=0;
ReverseFgToLcd=1;
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -