www.pudn.com > DDS485.rar > pulse.c


#include  
#include  
#include  
#include  
 
//-----***-电量小数累加-***-----// 
void PulseAdd(void) 
{ 	 
       unsigned char i; 
       EDatafg=0; 
       //EA=0; 
       EX1=0; 
       ES=0; 
       EData[0]++; 
       if(EData[0]>=0x64) 
       {            
           EData[0]=0; 
           wbyteiic(0xa0,0x00,0x00); 
           EData[1]++; 
           ET0=0; 
           iicEDatasave(1); 
           if(EData[1]>=0x64) 
           {    
               EData[1]=0; 
               wbyteiic(0xa0,0x01,0x00); 
               EData[2]++; 
               iicEDatasave(2); 
               if(EData[2]>=0x64) 
               {    
                   //ET0=1; 
                   EData[2]=0; 
                   wbyteiic(0xa0,0x02,0x00); 
                   EData[3]++; 
                   iicEDatasave(3); 
                   if(EData[3]>=0x0a) 
                   { 
                       inpulse=0; 
                       EData[0]=EData[1]=EData[2]=EData[3]=0; 
                       for(i=0;i<4;i++) 
                       { 
                            wbyteiic(0xa0,i,0x00); 
                       } 
                       ET0=1; 
                   } 
                   else 
                   { 
                        ET0=1; 
                   } 
               } 
               else 
               { 
                   ET0=1; 
               } 
            } 
            else 
            { 
                ET0=1; 
            } 
        } 
        else 
        { 
             _nop_(); 
        } 
        //EA=1; 
        EX1=1; 
        ES=1; 
} 
/* 
//-----***-7755状态电量信息状态采集-***-----// 
void PulseParse(void) 
{ 
    if(PulseParseFg) 
    { 
		PulseParseFg=0; 
		if(AdDir) 
        { 
            ReverseSt=1; 
            KBMASK &= 0xBF;//--------------------------------------关闭方向中断功能 
            RevTimeStrSt = 1; 
    		RevTimeEndSt = 0; 
    		ShowBit[0]|=0x10;//------------------------------------液晶点亮反向 
    		PulseParseFg=1; 
        } 
        else 
        { 
            ReverseSt=0;//-----------------------------------------清楚反向状态 
            KBMASK |= 0x40;//--------------------------------------打开方向中断功能 
            if(RevTimeStrSt) 
            { 
                RevTimeStrSt=0; 
                RevTimeEndSt=1; 
            }             
            ShowBit[0]&=0xEF;//------------------------------------液晶消隐反向 
        } 
        if(AdPulse) 
        { 
            PulseLedFg=1; 
            KBMASK &= 0x7F;//--------------------------------------关闭脉冲中断功能一直到低电平后 
            PulseParseFg=1; 
        } 
        else 
        { 
            PulseLedFg=0; 
            KBMASK |= 0x80;//--------------------------------------打开方向中断功能 
            PulseAddFg=1;  
        } 
        if(RevTimeStrSt)//-----------------------------------------反向开始时间记录 
        { 
            if(RevTimeEndFg==0) 
            { 
                PgIIcEn=1; 
                RevTimeEndFg=1; 
                RevTimeStrFg=0; 
                IicMuchByteWrite(0xa2,0x10,&TimeBuf[1],2);//-------写反向开始时间(分时) 
                IicMuchByteWrite(0xa2,0x12,&TimeBuf[4],2);//-------写反向开始时间(日月) 
                PgIIcEn=0; 
            }  
        } 
        if(RevTimeEndSt)//-----------------------------------------反向结束时间记录 
        { 
            if(RevTimeStrFg==0) 
            { 
                PgIIcEn=1; 
                RevTimeStrFg=1; 
                RevTimeEndFg=0; 
                IicMuchByteWrite(0xa2,0x16,&TimeBuf[1],2);//-------写反向结束时间(分时) 
                IicMuchByteWrite(0xa2,0x18,&TimeBuf[4],2);//-------写反向结束时间(日月) 
                IicMuchByteWrite(0xa2,0x1c,RevTimeAdd,4);//--------写反向累计时间 
                PgIIcEn=0; 
            }  
        } 
    }    
} 
*/