⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pulseparse.c

📁 个人学习参考!禁止使用到产品上! 任何人不得公开发布!
💻 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 + -