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

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

?? main.c

?? 6029lcd驅動顯示程序,直接可以運用的
?? C
?? 第 1 頁 / 共 2 頁
字號:
        }
        Linexy( MAIN_METHOD*64,49,MAIN_METHOD*64+63,49,0,1);
        Linexy( MAIN_METHOD*64,49,MAIN_METHOD*64,51+NO_FANGFA_COMMANDS*16,0,1);
        Linexy( MAIN_METHOD*64+63,49,MAIN_METHOD*64+63,51+NO_FANGFA_COMMANDS*16,0,1);
        Linexy( MAIN_METHOD*64,51+NO_FANGFA_COMMANDS*16,MAIN_METHOD*64+63,51+NO_FANGFA_COMMANDS*16,0,1);
    }
    if (  current_command->parent == (COMMAND*)&main_menu[MAIN_FUNCTION])
    {
        WriteCommand( 0x59 );            // 寫入指令DISP ON/OFF代碼,后續參數:
        WriteData( 0x44 );               // 00 00 01 00顯示1區開顯示,其余層關閉
        for(i=0;i<NO_GONGNENG_COMMANDS;i++)
        {
            if(current_command->ID==i)
            {
                fb=1;
            }
            else
            {
                fb=0;
            }
            dprintf
(MAIN_FUNCTION*8,51+16*i,0,fb,gongneng_menu[i].name);
        }
        Linexy( MAIN_FUNCTION*64,49,MAIN_FUNCTION*64+63,49,0,1);
        Linexy( MAIN_FUNCTION*64,49,MAIN_FUNCTION*64,51+NO_GONGNENG_COMMANDS*16,0,1);
        Linexy( MAIN_FUNCTION*64+63,49,MAIN_FUNCTION*64+63,51+NO_GONGNENG_COMMANDS*16,0,1);
        Linexy( MAIN_FUNCTION*64,51+NO_GONGNENG_COMMANDS*16,MAIN_FUNCTION*64+63,51+NO_GONGNENG_COMMANDS*16,0,1);
    }
    if (  current_command->parent == (COMMAND*)&main_menu[MAIN_PPL])
    {
        WriteCommand( 0x59 );            // 寫入指令DISP ON/OFF代碼,后續參數:
        WriteData( 0x44 );               // 00 00 01 00顯示1區開顯示,其余層關閉
        for(i=0;i<NO_PLL_COMMANDS;i++)
        {
            if(current_command->ID==i)
            {
                fb=1;
            }
            else
            {
                fb=0;
            }
            dprintf(MAIN_PPL*8,51+16*i,0,fb,pll_menu[i].name);
        }
        Linexy( MAIN_PPL*64,49,MAIN_PPL*64+63,49,0,1);
        Linexy( MAIN_PPL*64,49,MAIN_PPL*64,51+NO_PLL_COMMANDS*16,0,1);
        Linexy( MAIN_PPL*64+63,49,MAIN_PPL*64+63,51+NO_PLL_COMMANDS*16,0,1);
        Linexy( MAIN_PPL*64,51+NO_PLL_COMMANDS*16,MAIN_PPL*64+63,51+NO_PLL_COMMANDS*16,0,1);
    }
    if (  current_command->parent == (COMMAND*)&main_menu[MAIN_HELP])
    {
        WriteCommand( 0x59 );             // 寫入指令DISP ON/OFF代碼,后續參數:
        WriteData( 0x44 );                // 00 00 01 00顯示1區開顯示,其余層關閉
        for(i=0;i<NO_HELP_COMMANDS;i++)
        {
            if(current_command->ID==i)
            {
                fb=1;
            }
            else
            {
                fb=0;
            }
            dprintf(MAIN_HELP*8,51+16*i,0,fb,help_menu[i].name);
        }
        Linexy( MAIN_HELP*64,49,MAIN_HELP*64+63,49,0,1);
        Linexy( MAIN_HELP*64,49,MAIN_HELP*64,51+NO_HELP_COMMANDS*16,0,1);
        Linexy( MAIN_HELP*64+63,49,MAIN_HELP*64+63,51+NO_HELP_COMMANDS*16,0,1);
        Linexy( MAIN_HELP*64,51+NO_HELP_COMMANDS*16,MAIN_HELP*64+63,51+NO_HELP_COMMANDS*16,0,1);
     
    }
}
void set(void)
{
    current_command=&set_menu[SET_DDJ];              //    BlockClr(0,50,40,170);
    return;
}

void method(void)
{
    current_command=&fangfa_menu[FANGFA_FANGFA1];    //    BlockClr(0,50,40,170);
    return;
}
void function(void)
{
    current_command=&gongneng_menu[GONGNENG_analyse];//    BlockClr(0,50,40,170);
    return;
}
void pll(void)
{
      current_command=&pll_menu[PLL_PLL1];            //    BlockClr(0,50,40,170);
    return;
}
void help(void)
{
     current_command=&help_menu[HELP_HELP1];           //    BlockClr(0,50,40,170);
    return;
}
void help2(void)
{
}
void help1(void)
{
}
void pll3(void)
{
}
void pll2(void)
{
}
void pll1(void)
{
}
//-------------------------------------------
// 函數: void analyse(void)
//-------------------------------------------
void analyse(void)
{
    
}
//--------------------------------------------
//函數: void gongneng2(void)
//-------------------------------------------
void gongneng2(void)
{

}
//---------------------------------------------
// 函數: void gongneng3(void)
//--------------------------------------------
void gongneng3(void)
{

}
//---------------------------------------------
// 函數: void gongneng4(void)
//---------------------------------------------
void gongneng4(void)
{

}
void gongneng5(void)
{
}
void fang1(void)
{
    
}
void fang2(void)
{
    
}
void fang3(void)
{

}
void fang4(void)
{

}
void fang5(void)
{

}
void shezi(void)
{
}
void mainfangfa(void)
{
}
void biaoyang(void)
{
}
void brj(void)
{
}
//------------------------------------------
// 函數: void ddj(void)
//------------------------------------------
void ddj(void)
{

}

void clockset(void)
{

}
void Linexy(Uint x0,Uchar y0,Uint xt,Uchar yt,Uchar att,Uchar att1)
{
    Uint t;
    int    xerr=0,yerr=0,delta_x,delta_y,distance;
    int    incx,incy;
    Uint row,col;
    delta_x    = xt-x0;                    //計算坐標增量
    delta_y    = yt-y0;
    col    = x0;
    row    = y0;
    if(delta_x>0) incx=1;                    //設置單步方向
    else 
    {
        if( delta_x==0    ) incx=0;               //垂
直線
        else {incx=-1;delta_x=-delta_x;}
    }
    if(delta_y>0) incy=1;
    else
    {
        if( delta_y==0    ) incy=0;                //水平線
        else {incy=-1;delta_y=-delta_y;}
    }
    if(    delta_x    > delta_y )    distance=delta_x;    //選取基本增量坐標軸
    else distance=delta_y;

    for( t=0;t <= distance+1; t++ )
    {                        
                                                           //畫線輸出
        Point((Uint)col,row,att,att1);            
                                                           //畫點
        xerr +=    delta_x    ;
        yerr +=    delta_y    ;
        
        if(    xerr > distance    )
        {
            xerr-=distance;
            col+=incx;
        }
        if(    yerr > distance    )
        {
            yerr-=distance;
            row+=incy;
        }
    }
}

//-----------------------------------------
// 寫指令代碼子程序pr1
//-----------------------------------------
void WriteCommand( Uchar CommandByte ) {

    LcmCmdPort = CommandByte;
}

//------------------------------------------
// 寫參數及顯示數據子程序
//------------------------------------------
void WriteData( Uchar dataW ) {

    LcmWdataPort = dataW;
}

//-------------------------------------------
// 讀參數及顯示數據子程序
//-------------------------------------------
Uchar ReadDataLcm( void ) 
{

    return LcmRdataPort;
}

//--------------------------------------------
// 初始化子程序
//--------------------------------------------
void LcmInition( void ) {

    Uchar i;
    WriteCommand( SystemSet );            // 系統參數設置
    for (i=0;i<8;i++) {                
        WriteData( ParaSysTable8[i] );    //
    }
    WriteCommand( Scroll );              //設定顯示區域起始地址
    for (i=0;i<10;i++) {
        WriteData( ParaScrTableA[i] );
    }
    WriteCommand( HdotScr );            // 寫入點位移指令代碼
    WriteData( 0 );                     // 寫入P1參數
    WriteCommand( Ovlay );              // 顯示合成方式設置
    WriteData( 0x4 );                    // 
//0000 0100 顯示一區圖形,三區文本屬性,二重"或"合成
    WriteCommand( DispOn );              // 寫入指令代碼
    WriteData( 0x54 );                   // 顯示 1~4 區開顯示,光標關顯示
}
//-------------------------------------------------
//漢字寫入子程序(圖形方式)。每次調用輸出一個漢字
//支持圖形方式使用,完成漢字點陣碼的輸出。
//攜入參數: Ox,Oy....寫入顯示的左上角坐標,Ox是以字節單位,Oy以行掃描線單位
//Ptr......漢字碼,庫內的排列編碼,大型程序時請改用unsigned int類型
//無返回數據。
//---------------------------------------------------
void PutCdotInGraph( Uint Ox, Uchar Oy, Uchar Cnumber, Uchar DotWidth ) {

    Uint tempPtr,Optr;
    Uchar tempCount1,tempCount2,nByte;    
    Optr = (Uint)Oy * paraP9 + Ox;
    nByte = DotWidth/8;
    WriteCommand( CsrDirD );                          // 自動右移。
    tempPtr = (Uint)Cnumber * DotWidth*nByte;
    for (tempCount1=0;tempCount1<nByte;tempCount1++) {
        WriteCommand( CsrW );                         // 光標定位指令
        WriteData( (Uchar)(Optr &0xff) );             // 設置光標地址CSR
        WriteData( (Uchar)(Optr /256 ) );
        WriteCommand( mWrite );                       // ram寫指令
        switch(DotWidth){
            case 16:    for
(tempCount2=0;tempCount2<DotWidth;tempCount2++) {
                        WriteData( 
Cdotlib[Cnumber].Msk[tempCount2*2+tempCount1] );        // 寫入數據
                        }
                        break;
            case 24:    for
(tempCount2=0;tempCount2<DotWidth;tempCount2++) {
                        WriteData( 
Cdot24lib[tempPtr] );                                   // 寫入數據
                        tempPtr += 
nByte;
                        }
                        break;
        }
        tempPtr = Cnumber * DotWidth*nByte + tempCount1 + 1;
        Optr++;
    }
}
 //--------------------------------------------------
 //函數名稱:void Point(Uint Px, Uchar Py, Uchar attr )
 //入口參數:橫坐標x,縱坐標y,畫點或擦點
 //出口參數:無
 //其它調用:WriteCommand(),WriteData()
 //函數說明:用于在屏幕上任意一點畫點
 //---------------------------------------------------
void Point(Uint Px, Uchar Py, Uchar attr,Uchar attr1 ) 
{
    Uint tempPtr;
    Uchar tempD,tempP;    
    tempPtr = (Uint)Py * paraP9 + (Px & 0x7fff)/8;    // 去除最高位(顯示屬性)
    if(attr) tempPtr+=BasePart2*256;
    WriteCommand( CsrDirD );                          // CSRDIR 代碼(光標自動下移)
    WriteCommand( CsrW );                             // 設置光標地址
    WriteData( (Uchar)(tempPtr & 0xff) );
    WriteData( (Uchar)(tempPtr /256) );
    WriteCommand( mRead );                            // 讀顯示ram指令
    tempD = ReadDataLcm();                            // 讀取當前顯示數據
    tempP = 1<<(Uchar)(7-Px & 0x0007);                // 根據預定屬性決定寫點或擦除
    if( attr1 )tempD |= tempP;                        // 畫點
    else tempD &= ~tempP;                             // 消點
    WriteCommand( CsrW );                             // 重新設置光標地址
    WriteData( (Uchar)(tempPtr & 0xff) );
    WriteData( (Uchar)(tempPtr /256) );
    WriteCommand( mWrite );                           // 代碼0x42,數據寫入指令
    WriteData( tempD );                               // 寫入合成數據
}

//----------------------------------------------
//函數名稱:void LcmClear( void )
//其它調用:WriteCommand(),WriteData()
//函數說明:用于清顯示32K RAM區清屏字程序
//----------------------------------------------
void LcmClear( void ) {

uint i1=32768;
    WriteCommand( CsrDirR );             // 光標移動方向定義:自動右移
    WriteCommand( CsrW );                // 光標Locate,定位
    WriteData( 0 );                      // 寫入參數CSRL設置參數光標指針低8位
    WriteData( 0 );                      // 寫入參數CSRH設置參數光標指針高8位
    WriteCommand( mWrite );              // 數據寫入指令,代碼0x42
    while(i1--)    {

        WriteData( 0x0 );    // 寫入數據0
    }
}
//-------------------------------------------------------
//函數名稱:void Locatexy(Uchar x,Uchar y, Uchar attribs)
//入口參數:橫坐標x,縱坐標y,所在的區attribs
//出口參數:無
//其它調用:WriteCommand(),WriteData()
//函數說明:用于光標位定位
//--------------------------------------------------------
void Locatexy(uchar x,uchar y, uchar attribs) 
{
    uint temp;
    temp = (uint)y*paraP9+x;
    if(attribs==1)
    temp += BasePart2*256;                // 如果需要就指向第二區,加上第二區首地址
    if(attribs==2)
    temp +=BasePart3*256;
    WriteCommand( CsrW );                 // 光標Locate,定位
    WriteData( (uchar)(temp & 0xff) );    // 寫入參數CSRL設置參數光標指針低8位
    WriteData( (uchar)(temp /256 ) );     // 寫入參數CSRH設置參數光標指針高8位
}
//-------------------------------------------------------
//函數名稱:Uchar dprintf(Uchar x, Uchar y, Uchar att,bit fb, char *fmt, ...)
//入口參數:橫坐標x,縱坐標y,所在的層att,是否反白fb,所要顯示在屏幕上的字符串
//出口參數:字符串長度
//其它調用:太多了,自己看吧。
//函數說明:用于漢字及英文字符的混合顯示,英文字符為8*16,漢字為16*16
//--------------------------------------------------------
Uchar dprintf(uchar x, uchar y, uchar att,bit fb, char *fmt, ...) 
{
    va_list arg_ptr;
    char  c1,c2,cData;
    Uchar i= 0,j,uLen,uRow,uCol,temp;
    Uint  k;
    uRow = x;
    uCol = y;
    uLen = 0;
    WriteCommand( CsrDirD );                // 光標移動方向定義:自動下移
    Locatexy(uRow,uCol,att);                //起點定位
    va_start(arg_ptr, fmt);
    uLen = (Uchar)vsprintf(tmpBuf, fmt, arg_ptr);
    va_end(arg_ptr);
    while(i<uLen)
    {
        c1 = tmpBuf[i];
        c2 = tmpBuf[i+1];
        if(c1 >= 0)
        {    // ASCII
            if(c1 < 0x20)
            {
                switch(c1)
                {
                    case CR:
                    case LF:            // 回車或換行
                        i++;
                        if(uRow < 224)
                        Locatexy(uRow+16,uCol,att);
                        else
                        Locatexy(0,0,att);
                        continue;
                    case BS:            // 退格
                        if(uCol > 0)
                            uCol--;
                        Locatexy(uRow,uCol,att);
                        cData = 0x00;
                        break;
                    default:            // 其他
                        c1 = 0x1f;
                }
            }
            for(j=0;j<16;j++)
            {
                WriteCommand( mWrite );  // 寫數據
                if(c1 >= 0x1f)
                {
                  if(fb)
                  {
                   WriteData(255-ASC_MSK[(c1-0x20)*16+j]);
                  }
                  else
                  {
                   WriteData(ASC_MSK[(c1-0x20)*16+j]);
                  }
                        
                }
                else
                    WriteData(cData);
                
            }
                uRow++;
        }
        else                              // 中文
        {
            for(j=0;j<sizeof(Cdotlib)/sizeof(Cdotlib[0]);j++)    // 查找定位
            {
                if((c1 == Cdotlib[j].Index[0]) && (c2 == Cdotlib[j].Index[1]))
                    break;
            }
            for(k=0;k<2;k++)               // 分16行輸出
            {
                Locatexy(uRow+k,uCol,att);
                WriteCommand( mWrite );    // 寫數據(命令)

                for(temp=0;temp<16;temp++) 
                {
                 if(fb)
                 {
                  WriteData( 255-Cdotlib[j].Msk[temp*2 + k]);
                 }
                 else
                 {
                  WriteData( Cdotlib[j].Msk[temp*2 + k]);
                 }
               }     
              }
            uRow +=2;                 // 光標右移一大格
            i++;
        }
        if(uRow >= 40)                // 光標后移
        {
            uCol += 16;               // Y坐標
            uRow = 0;                 // X坐標
            if( uCol >= 240 ) uCol = 0;
        }

        Locatexy(uRow,uCol,att);
        i++;
    }
    return uLen;                    //返回字串長度,漢字按2字節計算
}
main()
{

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人爱爱电影网址| 一区二区三区中文字幕在线观看| 天堂蜜桃91精品| 欧美日韩视频在线观看一区二区三区 | 日本中文在线一区| 日韩欧美一级精品久久| 国产真实乱对白精彩久久| ww久久中文字幕| 9人人澡人人爽人人精品| 国产精品免费视频一区| 不卡一区二区中文字幕| 最新日韩在线视频| 欧美日韩一区二区三区高清| 日韩综合小视频| 精品国产髙清在线看国产毛片 | 久久人人超碰精品| www.亚洲国产| 亚洲v日本v欧美v久久精品| 欧美一区午夜视频在线观看| 韩日精品视频一区| 亚洲视频1区2区| 91麻豆精品91久久久久久清纯 | 亚洲大片一区二区三区| 91精品福利在线一区二区三区| 国产在线播放一区三区四| 欧美韩国一区二区| 欧洲av一区二区嗯嗯嗯啊| 老司机免费视频一区二区三区| 久久久久9999亚洲精品| 色88888久久久久久影院野外| 日韩精品一二区| 日日夜夜一区二区| 国产婷婷一区二区| 欧美色图激情小说| 国产夫妻精品视频| 日韩精品电影在线| 国产精品蜜臀av| 欧美一区二区三区在线观看| 成人午夜激情影院| 男女性色大片免费观看一区二区| 中文文精品字幕一区二区| 欧美日韩国产免费| 成人午夜视频免费看| 日本亚洲三级在线| 亚洲免费观看高清在线观看| 日韩美女一区二区三区四区| 色成年激情久久综合| 国产不卡视频在线观看| 奇米一区二区三区av| 亚洲黄色免费电影| 中文字幕av资源一区| 日韩欧美激情一区| 在线视频欧美区| 风间由美中文字幕在线看视频国产欧美| 亚洲国产精品久久久久秋霞影院| 国产欧美一区二区三区沐欲| 欧美精品在线一区二区| 色综合一区二区| 国产精品18久久久| 蜜臀久久久久久久| 午夜精品久久一牛影视| 亚洲美女精品一区| 国产精品乱码人人做人人爱| 国产亚洲福利社区一区| 26uuu久久天堂性欧美| 欧美精品久久一区二区三区| 国产欧美久久久精品影院| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲男同性视频| 国产精品久久久久久久久久久免费看 | 91精品国产乱| 日韩一区二区三| 欧美一区二区三区免费在线看| 欧美特级限制片免费在线观看| 91猫先生在线| 91香蕉国产在线观看软件| 成人av一区二区三区| 大胆亚洲人体视频| 福利一区二区在线观看| 大胆欧美人体老妇| 成人午夜视频在线| 欧美一区二区三区四区高清| 欧美日本免费一区二区三区| 欧美视频日韩视频在线观看| 欧美视频自拍偷拍| 3d成人动漫网站| 日韩视频在线永久播放| 欧美大片日本大片免费观看| 日韩欧美二区三区| 精品国产亚洲在线| 久久九九久久九九| 亚洲欧洲成人精品av97| 亚洲欧美日韩电影| 亚洲国产欧美一区二区三区丁香婷| 亚洲精品ww久久久久久p站| 亚洲一级不卡视频| 日日摸夜夜添夜夜添精品视频| 人人精品人人爱| 国精产品一区一区三区mba桃花| 韩国成人福利片在线播放| 国产成人福利片| 色欧美日韩亚洲| 欧美日本免费一区二区三区| 欧美成人免费网站| 国产精品你懂的| 亚洲综合精品自拍| 美国十次了思思久久精品导航| 国产一区三区三区| 91色视频在线| 欧美一级高清片| 国产精品久久免费看| 亚洲午夜久久久久久久久久久 | 亚洲另类在线一区| 日本免费新一区视频| 激情五月婷婷综合网| 99re视频这里只有精品| 精品视频一区二区三区免费| 欧美电影免费观看完整版| 国产精品久久一级| 日韩精品一二三| 成人白浆超碰人人人人| 欧美精品第一页| 欧美国产日本韩| 午夜亚洲国产au精品一区二区 | 成+人+亚洲+综合天堂| 欧美日精品一区视频| 精品福利在线导航| 亚洲精品国产品国语在线app| 日韩精品91亚洲二区在线观看 | 美女任你摸久久| 色综合久久综合网| 亚洲精品在线电影| 亚洲影视在线播放| 国产河南妇女毛片精品久久久| 欧美视频在线不卡| 国产性色一区二区| 日本网站在线观看一区二区三区| 成人午夜视频免费看| 日韩一级免费观看| 一区二区三区蜜桃网| 国产99精品视频| 国产精品不卡在线| 激情六月婷婷久久| 欧美日韩中文字幕一区| 中文字幕va一区二区三区| 久久99精品国产.久久久久久| 欧美午夜不卡在线观看免费| 中文字幕精品一区| 国产制服丝袜一区| 日韩三级视频中文字幕| 夜夜亚洲天天久久| 99免费精品在线观看| 久久免费偷拍视频| 另类小说图片综合网| 欧美日韩精品三区| 伊人一区二区三区| www..com久久爱| 国产人成亚洲第一网站在线播放 | 国产婷婷色一区二区三区在线| 午夜成人免费视频| 欧美视频一区二区三区| 1000精品久久久久久久久| 国产乱码字幕精品高清av| 亚洲精品一区二区三区蜜桃下载| 午夜av电影一区| 欧美福利视频一区| 亚洲成人综合网站| 欧美日韩免费一区二区三区 | 中文字幕在线不卡一区二区三区| 国产精品一区二区视频| 精品精品欲导航| 加勒比av一区二区| 久久一区二区三区国产精品| 久草中文综合在线| xvideos.蜜桃一区二区| 国产成人综合自拍| 国产精品午夜在线| www.在线成人| 一区二区三区四区高清精品免费观看| 99免费精品视频| 亚洲男人的天堂在线aⅴ视频| 91啪亚洲精品| 五月综合激情日本mⅴ| 日韩一区二区在线看片| 极品少妇xxxx精品少妇| 久久久青草青青国产亚洲免观| 国产乱人伦偷精品视频免下载 | 在线免费不卡电影| 亚洲成人动漫精品| 精品国产精品一区二区夜夜嗨| 国产老妇另类xxxxx| 国产精品国产三级国产普通话99 | 久久亚洲影视婷婷| 成人国产精品免费观看视频| 亚洲三级小视频| 欧美乱熟臀69xxxxxx| 韩国一区二区三区| 中文字幕一区日韩精品欧美| 色综合久久综合中文综合网| 三级成人在线视频|