亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? display.c

?? NEC527多功能電表完整源代碼,包括LCD驅動,顯示,計量,存儲,整個527驅動程序!
?? C
?? 第 1 頁 / 共 2 頁
字號:
        }
    }
    else
    {
        LCDMEM[LCD_CN_INFO_ADDR_REACTIVE]|=LCD_CN_INFO_REACTIVE;
        LCDMEM[LCD_SY_INFO_ADDR_M2]|=LCD_SY_INFO_M2;
        LCDMEM[LCD_SY_INFO_ADDR_S]|=(LCD_SY_INFO_S1|LCD_SY_INFO_S2|LCD_SY_INFO_S4|LCD_SY_INFO_S5|LCD_SY_INFO_S6|LCD_SY_INFO_S7|LCD_SY_INFO_S8);
        if( !(PowerStateFlag & PS_BREAKPOWER_FLAG ) )
        {		
            LoadEnergy( (unsigned char *)&temp, 0xFF, 30 );
            LoadEnergy( (unsigned char *)&pwrdata, 0xFF, 35 );
            pwrdata = __bcd_add_long( temp, pwrdata );			
        }
        else
        {
            pwrdata = __bcd_add_long( _SysDisplayRam.ReActivePhase1Pwr, _SysDisplayRam.ReActivePhase4Pwr );
        }        
    }
    LargeLedDisplay8Bcd( (unsigned char *)&pwrdata );
}

void DisplayPowerReqData(void)
{
    unsigned long pwrdata;
    unsigned char item;

    if( !(PowerStateFlag & PS_BREAKPOWER_FLAG ) )
    {
        LoadMaxDemandInfo( (unsigned char *)&pwrdata, 0x01, 5 );
    }
    else
    {
        pwrdata = _SysDisplayRam.ActivePosSumReq;
    }
    LargeLedDisplay6Bcd( (unsigned char *)&pwrdata );  
    LCDMEM[_LcdCnExes[0][0]] |= _LcdCnExes[0][1];
    LCDMEM[LCD_CN_INFO_ADDR_REQ] |= LCD_CN_INFO_REQ;    
    LCDMEM[LCD_SY_INFO_ADDR_P8] |= LCD_SY_INFO_P8;	
    LCDMEM[LCD_CN_INFO_ADDR_ACTIVE] |= LCD_CN_INFO_ACTIVE;
    LCDMEM[LCD_CN_INFO_ADDR_POSITIVE] |= LCD_CN_INFO_POSITIVE;
    LCDMEM[LCD_SY_INFO_ADDR_S] |= ( LCD_SY_INFO_S1|LCD_SY_INFO_S2|LCD_SY_INFO_S3|LCD_SY_INFO_S4 );	
}

void DisplayInstanPower(void)
{
    unsigned long instp;
	
    if( DisplayBitLocation == 10 )
    {
        LCDMEM[LCD_CN_INFO_ADDR_ACTIVE] |= LCD_CN_INFO_ACTIVE;    
        DISP_UNION_KW();		
        CalcInstantPower( (unsigned char *)&instp, 0 );
    }
    else
    {
        LCDMEM[LCD_CN_INFO_ADDR_REACTIVE] |= LCD_CN_INFO_REACTIVE;
        DISP_UNION_KVAR();
        CalcInstantPower( (unsigned char *)&instp, 4 );
    }
	
    LCDMEM[LCD_SY_INFO_ADDR_P8] |= LCD_SY_INFO_P8;
    LargeLedDisplay6Bcd( (unsigned char *)&instp );	
}

void DisplayCurrentVi(void)
{
    unsigned short temp;
	
    if( DisplayBitLocation <= 14 )
    {
        LCDMEM[LCD_SY_INFO_ADDR_S] |= LCD_SY_INFO_S2;
        LCDMEM[LCD_SY_INFO_ADDR_P11] |= LCD_SY_INFO_P11;
    }
    else
    {
        LCDMEM[LCD_SY_INFO_ADDR_S] |= ( LCD_SY_INFO_S4 | LCD_SY_INFO_S5 );
        LCDMEM[LCD_SY_INFO_ADDR_P10] |= LCD_SY_INFO_P10;
    }
	
    temp = Hex2BcdShort( CurrentVI[DisplayBitLocation-12] );
    LargeLedDisplay4Code4Bcd( (DisplayBitLocation-12)*4, (unsigned char *)&temp );
}

void DisplayTimePot(void)
{
    unsigned char temp[3], item;

    item = DisplayBitLocation-19;
    memcpy( (unsigned char *)&temp[0], (unsigned char *)&_SysDisplayRam.TimePot[item*3], 3 );
    LargeLedDisplay6BcdSpec( (unsigned char *)&temp[0] );
    LCDMEM[LCD_CN_INFO_ADDR_POT] |= LCD_CN_INFO_POT;
}

const PROC_FUNC DisplayProc[]={
    DisplayPowerData,
    DisplayPowerData,
    DisplayPowerData,
    DisplayPowerData,
    DisplayPowerData,    
    DisplayDateTime,
    DisplayDateTime,    
    DisplayMeterNum,
    DisplayMeterNum,
    DisplayPowerReqData,
    DisplayInstanPower,
    DisplayInstanPower,
    DisplayCurrentVi,
    DisplayCurrentVi,
    DisplayCurrentVi,
    DisplayCurrentVi,
    DisplayCurrentVi,
    DisplayCurrentVi,
    DisplayBondrate,
    DisplayTimePot,
    DisplayTimePot,
    DisplayTimePot,
    DisplayTimePot,
    DisplayTimePot,
    DisplayTimePot,
    DisplayTimePot,
    DisplayTimePot
};

void DisplayProcess(void)
{
    unsigned char *_disp_info = (unsigned char *)&_SysPotInfo.dispcontent[0];
    unsigned temp1, temp2;	
    
    LcdDispFlag &= (unsigned char)(~ LCD_DISP_ALL);
    if( IsEqualSpecialData( (unsigned char *)&_SysPotInfo.dispcontent[0], 0, DISPLAY_ITEM_BYTE ) == OK )
    {
        _SysPotInfo.dispcontent[0] = 0x03;
    }

    while(1)
    {
        temp1 = DisplayBitLocation/8;
        temp2 = DisplayBitLocation %8;	    
        if( _disp_info[temp1] )
        {
            if( _disp_info[temp1] & ( BIT0 << temp2 ) )
            {
                ClearLcd();
                LcdDispFlag &=~ LCD_DISP_FLG_REFIND;
                (DisplayProc[DisplayBitLocation])();
                if( !( LcdDispFlag & LCD_DISP_FLG_REFIND ) )
                {
                    DisplayContentCode();
                    break;
                }
            }
        }
        else
        {
            if( LcdDispFlag & LCD_DISP_FLG_PAGEDOWN )
            {
                if( LcdDispFlag & LCD_DISP_FLG_PAGEUP )
                {
                    PageUpNext();
                }
            }
        }
		
        if( LcdDispFlag & LCD_DISP_FLG_PAGEDOWN )
        {
            if( LcdDispFlag & LCD_DISP_FLG_PAGEUP )
            {
                PageUpNext();
            }
            else
            {
                PageDownNext();
            }
        }
        else
        {
            DisplayPointerNext();
        }
    }
}

void DisplayRefresh(void)
{    
    unsigned short temp;

    unsigned char mrs,lvisw;
    unsigned char temp1,temp2;

    if( LcdDispFlag & LCD_DISP_TIME )
    {
        if( ( LcdInterval == 0 ) && ( !( LcdDispFlag & LCD_DISP_FLG_PAGEDOWN ) ) )
        {
            if( !( LcdDispFlag & LCD_DISP_NEXT ) )
            {
                DisplayBitLocation++;
                LcdInterval = _SysPotInfo.disptime;
                LcdDispFlag |= LCD_DISP_NEXT;
            }
            else
            {
                LcdDispFlag &=~ LCD_DISP_TIME;
                goto DISP_PROC;
            }
        }
        ClearLcd();
        LCDMEM[LCD_SY_INFO_ADDR_P2] |= LCD_SY_INFO_P2;
        LCDMEM[LCD_CODE_ADDR_01] |= _LcdCodeHex[0];
        LCDMEM[LCD_CODE_ADDR_02] |= _LcdCodeHex[0];
        LCDMEM[LCD_CODE_ADDR_03] |= _LcdCodeHex[0];
        if( LcdDispFlag & LCD_DISP_NEXT )
        {
            LCDMEM[LCD_CODE_ADDR_04] |= _LcdCodeHex[4];
        }
        else
        {
            LCDMEM[LCD_CODE_ADDR_04] |= _LcdCodeHex[3];
        }
        DisplayDateTime();
        LcdInterval--;
        goto DISP_OTHERS;
    }

    if( ( LcdDispFlag & 0x0F ) == LCD_DISP_FLG_ACTIVE )
    {
        if( LcdInterval == 0 )
        {
DISP_PROC:
            DisplayProcess();
            LcdInterval = _SysPotInfo.disptime;                   
            if( LcdDispFlag & LCD_DISP_NEXT )
            {
                DisplayPointerNext();
            }
        }
        LcdInterval--;
    }
	
    if( LcdDispFlag & LCD_DISP_ALL ) return;

DISP_OTHERS:
    if( TimerCounter[TIMER_PROC_PROG] )
    {
        LCDMEM[LCD_CN_INFO_ADDR_PGM] |= LCD_CN_INFO_PGM;
    }
    else
    {
        LCDMEM[LCD_CN_INFO_ADDR_PGM] &=(unsigned char)(~ LCD_CN_INFO_PGM);
    }
    LCDMEM[16] |= _LcdSyExes[Tariff];

    if( !( PowerStateFlag & PS_BREAKPOWER_FLAG ) )
    {
        lvisw = LowVIStateWord & 0x77;
        mrs = MeterRunningState & 0xF7;
                    
        if( ( mrs & 0x77 ) || ( lvisw ) )
        {
            temp1 = lvisw & 0x07;
            temp2 = ( ( lvisw >> 4 ) & 0x07 );
            if( mrs & 0x80 )
            {
                LCDMEM[2] |= _LcdSyUAlarm[temp1];
                LCDMEM[2] |= _LcdSyIAlarm[temp2];
                mrs &=(unsigned char)(~ 0x80);
            }
            else
            {
                LCDMEM[2] &=~ ( _LcdSyUAlarm[temp1] );
                LCDMEM[2] &=~ (_LcdSyIAlarm[temp2] );
                mrs |= 0x80;
            }
            LCDMEM[2] &=~ ( _LcdSyUAlarm[7-temp1] );
            LCDMEM[2] &=~ ( _LcdSyIAlarm[7-temp2] );
            if( PowerNetStateWord & 0x07 )
            {
                temp1 = PowerNetStateWord & 0x07;
                if( !( DisplayFlashFlag & LCD_FLASH_FLAG ) )
                {
                    DisplayFlashFlag |= LCD_FLASH_FLAG;
                    LCDMEM[2] |= _LcdSyUAlarm[temp1];
                    
                }
                else
                {
                    DisplayFlashFlag &=~ LCD_FLASH_FLAG;
                    LCDMEM[2] &=~ _LcdSyUAlarm[temp1];                        
                }                    
            }
            if( mrs & 0x70 )
            {
                temp1 = ( mrs >> 4 ) & 0x07;
                LCDMEM[2] |= _LcdSyIAlarm[temp1];
            }
        }
        else
        {
            LCDMEM[2] &=~ ( _LcdSyUAlarm[7] | _LcdSyIAlarm[7] );
        }
        MeterRunningState |= mrs;
    }
    else
    {
        LCDMEM[2] &=~ ( _LcdSyUAlarm[7] | _LcdSyIAlarm[7] );
    }        

    LcdPcf8576Operation(0,0,20);
}

void LcdDisplayOpen(void)
{
    if( !( DisplayFlashFlag & LCD_DISPLAY_ON_FLAG ) )
    {
        DisplayFlashFlag &=~ LCD_DISPLAY_OFF_FLAG;
        DisplayFlashFlag |= LCD_DISPLAY_ON_FLAG;
        LcdOpenOrClose(LCD_DISPLAY_ON);
    }
}

void LcdDisplayClose(void)
{
    if( ( !( DisplayFlashFlag & LCD_DISPLAY_OFF_FLAG ) ) && ( !TimerCounter[TIMER_PROC_LCD_RESET] ) )
    {
        DisplayFlashFlag |= LCD_DISPLAY_OFF_FLAG;
        DisplayFlashFlag &=~ LCD_DISPLAY_ON_FLAG;
        LcdOpenOrClose(LCD_DISPLAY_OFF);
    }
}
void LcdDisplayControl(uchar time)
{
    if( LcdDispFlag & ( LCD_DISP_FLG_PAGEUP + LCD_DISP_FLG_PAGEDOWN ) )
    {
        LcdDisplayOpen();
        goto DisplayAgain;
    }

    if( IsPowerOn() )
    {
        LcdDisplayOpen();
        goto DisplayAgain;
    }

    if( DisplayFlashFlag & LCD_DISPLAY_ON_FLAG )
    {
        LcdOpenInterval = UsignedCharSub(LcdOpenInterval,time) ;
    }

    if( DisplayFlashFlag & LCD_DISPLAY_OFF_FLAG )
    {
        LcdStopInterval = UsignedCharSub(LcdStopInterval,time);
    }        
    
    if( (DisplayFlashFlag & LCD_DISPLAY_OFF_FLAG) &&(LcdStopInterval == 0))
    {
        LcdDisplayOpen();
        LcdOpenInterval = _SysPotInfo.disptime;
        LcdInterval = 0;
    }

    if( (DisplayFlashFlag & LCD_DISPLAY_ON_FLAG)&&(LcdOpenInterval == 0) )
    {
        LcdStopInterval = _SysPotInfo.dispstoptime;
        LcdDisplayClose();
    }  
   
    if( !(DisplayFlashFlag & LCD_DISPLAY_ON_FLAG) )
    {  
        return;
    }
	
DisplayAgain:
    DisplayRefresh();
}

void InitDisplayPageInfo(void)
{
    MemSet0xFF( (unsigned char *)&_SysPotInfo.dispcontent[0], DISPLAY_ITEM_BYTE );
}

void InitDispPage(void)
{
    DisplayBitLocation = 0;
    LcdInterval = 0;
    LcdStopInterval = 0;
    LcdOpenInterval = 0;
    InitDisplayPageInfo();
    _SysPotInfo.chksum = SysDoCheckSum( (unsigned char *)&_SysPotInfo.regv_con[0], sizeof(_sys_potinfo_s)-4 );
}

void OnDisplayPageUp(void)
{
    LcdDispPageOn();
    if( !( LcdDispFlag & LCD_DISP_FLG_PAGEUP ) )
    {
        InitDispPage();
    }		
    PageUpNext();
    LcdDispFlag |= ( LCD_DISP_FLG_PAGEUP+LCD_DISP_NEXT );
    LcdDispFlag &=~ LCD_DISP_TIME;
    DisplayProcess();
}

void OnDisplayPageDown(void)
{
    LcdDispPageOn();
    if( !( LcdDispFlag & LCD_DISP_FLG_PAGEDOWN ) )
    {	
        InitDispPage();
    }		
    PageDownNext();
    LcdDispFlag |= ( LCD_DISP_FLG_PAGEDOWN+LCD_DISP_NEXT );
    LcdDispFlag &=~ LCD_DISP_TIME;	
    DisplayProcess();
}

const unsigned char _rc_value[]=
{
    0x14,
    0x15,
    ERROR
};

const PROC_FUNC _rc_proc[]=
{
    OnDisplayPageUp,
    OnDisplayPageDown
};

void IrKeyDispose(void)
{
    unsigned char item;

    item = FindCmdItem( _rc_value, RcKeyCode );
    if( item != ERROR )
    {
        (*(_rc_proc+item))();
        DisplayRefresh();
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美夫妻性生活| 成人app软件下载大全免费| 一区二区三区中文字幕精品精品| 综合分类小说区另类春色亚洲小说欧美| 久久蜜臀中文字幕| 国产精品国产三级国产三级人妇| 国产精品视频一区二区三区不卡| 久久久久久久综合日本| 日本一区二区三区国色天香 | 国产精品国产三级国产aⅴ入口| 中文字幕一区二区三区不卡在线 | 91丨九色丨蝌蚪丨老版| 欧美日韩1区2区| wwwwww.欧美系列| 亚洲视频免费观看| 美国欧美日韩国产在线播放| 成人精品鲁一区一区二区| 欧美一卡在线观看| 日韩毛片高清在线播放| 久久精品免费观看| 欧洲视频一区二区| 国产精品美女久久久久久2018| 婷婷久久综合九色综合绿巨人| gogogo免费视频观看亚洲一| 日韩欧美自拍偷拍| 性感美女久久精品| 色婷婷综合久久久久中文| 久久美女高清视频| 韩国v欧美v日本v亚洲v| 欧美色中文字幕| 亚洲精品国产精华液| 9l国产精品久久久久麻豆| 久久精品亚洲精品国产欧美| 免费一级欧美片在线观看| 欧美影院精品一区| 亚洲一区二区三区三| 91黄色激情网站| 亚洲永久免费视频| 欧美精品1区2区3区| 日一区二区三区| 日韩精品一区二区三区四区| 蜜臀久久99精品久久久久宅男| 91麻豆精品91久久久久久清纯| 偷拍亚洲欧洲综合| 日韩三级伦理片妻子的秘密按摩| 精品中文字幕一区二区| 国产亚洲短视频| 波波电影院一区二区三区| 亚洲日本成人在线观看| 欧美日韩不卡在线| 国产资源精品在线观看| 国产精品三级久久久久三级| 色婷婷激情综合| 免费人成精品欧美精品| 国产清纯白嫩初高生在线观看91 | 一区二区在线免费观看| 欧美一区二区三区视频| 粉嫩13p一区二区三区| 亚洲一线二线三线久久久| 精品国产伦理网| 91香蕉视频mp4| 国产suv一区二区三区88区| 亚洲色图一区二区| 欧美变态tickling挠脚心| 99r国产精品| 成人在线视频一区| 日本人妖一区二区| 亚洲免费在线视频| 中文字幕免费不卡| 欧美一级日韩免费不卡| 欧美中文字幕久久| 色综合久久久久综合体桃花网| 久久精品99国产精品| 免费的成人av| 丝袜亚洲另类欧美| 亚洲日本一区二区| 中文字幕一区二区三区精华液| 国产亚洲欧美日韩在线一区| 欧美成人伊人久久综合网| 91精品国产综合久久精品性色| 欧美日韩国产片| 欧美日韩综合在线免费观看| 一本色道久久加勒比精品| 99麻豆久久久国产精品免费| 一本色道a无线码一区v| 欧美日韩精品一区二区天天拍小说| 在线一区二区三区四区五区| 欧美性高清videossexo| 欧美精品精品一区| 欧美日本韩国一区二区三区视频 | 亚洲精品乱码久久久久久久久 | 色偷偷久久人人79超碰人人澡| 欧美日韩你懂得| 欧美电影免费观看完整版| 国产欧美日韩亚州综合 | 粉嫩高潮美女一区二区三区| 99久久伊人久久99| 欧美怡红院视频| 欧美xxxx在线观看| 亚洲美女屁股眼交3| 免费成人性网站| 91免费视频网| 久久精品男人天堂av| 一区二区视频免费在线观看| 精久久久久久久久久久| 91在线观看下载| 日韩久久精品一区| 成人欧美一区二区三区黑人麻豆 | 久久蜜桃av一区二区天堂| 一区二区三区国产精品| 国产mv日韩mv欧美| 91精品国产综合久久久久久久 | 国产成人午夜视频| 欧美老肥妇做.爰bbww视频| 国产人成亚洲第一网站在线播放 | 日韩欧美亚洲国产另类| 亚洲一二三四区不卡| 不卡的av在线| 国产亚洲美州欧州综合国| 免费在线视频一区| 欧美日本在线观看| 亚洲国产精品自拍| 91原创在线视频| 亚洲视频电影在线| 91久久精品一区二区三区| 国产精品理论在线观看| 国产精选一区二区三区| 国产欧美一区二区三区在线老狼| 精品在线观看免费| 久久色在线观看| 韩国av一区二区三区四区 | 日韩电影在线看| 亚洲精品一区二区三区香蕉 | 国产视频一区二区在线观看| 国产成人av福利| 亚洲欧美另类图片小说| 欧美日韩国产美女| 免费在线观看成人| 亚洲欧美在线视频观看| 色婷婷精品久久二区二区蜜臂av| 亚洲第一主播视频| 欧美精品一区二区久久婷婷| 国产91精品一区二区麻豆亚洲| 久久久国产精品午夜一区ai换脸| 成人国产在线观看| 五月激情综合网| xfplay精品久久| 欧美午夜精品久久久久久孕妇 | 欧美久久久久久久久中文字幕| 九九九精品视频| 亚洲一区视频在线观看视频| 精品蜜桃在线看| 在线视频欧美精品| 成人自拍视频在线| 久久精品国产免费| 亚洲一区免费观看| 欧美—级在线免费片| 欧美一区二区三区啪啪| 99久久久久免费精品国产 | 欧美成人精品福利| 欧美日韩在线不卡| 9色porny自拍视频一区二区| 狠狠色狠狠色综合系列| 日本在线播放一区二区三区| 夜夜夜精品看看| 亚洲欧美另类综合偷拍| 免费观看一级欧美片| 日本麻豆一区二区三区视频| 亚洲午夜私人影院| 亚洲美女电影在线| 亚洲精品亚洲人成人网| 国产精品视频一区二区三区不卡| 国产日本亚洲高清| 中文字幕在线观看不卡| 日本一区二区三区久久久久久久久不| 精品久久久久久久久久久久包黑料| 欧美剧情片在线观看| 日韩色在线观看| 国产精品色在线| 亚洲欧美另类图片小说| 亚洲韩国一区二区三区| 美女视频一区在线观看| 国产精品资源在线| 99r国产精品| 制服丝袜中文字幕一区| 欧美大片在线观看一区| 中文字幕第一区第二区| 玉足女爽爽91| 久久av老司机精品网站导航| 粉嫩av一区二区三区在线播放| 日本精品视频一区二区| www一区二区| 有码一区二区三区| 狠狠狠色丁香婷婷综合久久五月| 国产v日产∨综合v精品视频| 91精品国产高清一区二区三区蜜臀 | 久久亚洲欧美国产精品乐播| 亚洲男同性视频| 精彩视频一区二区| 欧美日韩一区在线观看|