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

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

?? uop.c

?? 一些C51的源程序,KEY I2C LCD等.
?? C
?? 第 1 頁 / 共 3 頁
字號:
void      AutoWriteData( uchar dat) ;
void      ClearScreen(unsigned int ram) ;
void      draw_dot(uchar x,uchar y,uchar mode);
void      WriteCmd1(unsigned char cmd); 
void      WriteCmd2(unsigned char dat,unsigned char cmd);
void      WriteCmd3(unsigned char dat1,unsigned char dat2,unsigned char cmd);
void      CursorPosSet(unsigned char x,unsigned char y) ;

unsigned char Cursor_X,Cursor_Y;        //光標的坐標
/************************************************************ 

                       指令代碼定義 

************************************************************/ 
#define   CursorPointer    0x21          // 光標地址設置 
#define   OffsetReg        0x22          // CGRAM偏移地址設置 
#define   AddrSet          0x24          // 顯示地址設置 
#define   TextHomeAddr     0x40          // 文本首地址 
#define   TextArea         0x41          // 文本寬度設置 
#define   GraHomeAddr      0x42          // 圖形首地址設置 
#define   GraArea          0x43          // 圖形寬度設置 
#define   OrMode           0x80          // 或模式顯示 
#define   ExorMode         0x81          // 異或模式顯示 
#define   AndMode          0x83          // 與模式顯示 
#define   TextAttMode      0x84          // 文本屬性模式 
#define   InterCGROM       0             // 內部CGROM 
#define   ExCGRAM          0x08          // 外部CGRAM 
#define   DisplayOff       0x90          // 顯示關閉 
#define   CursorOn         0x92          // 光標顯示,但不閃爍 
#define   CursorBlink      0x93          // 光標閃爍 
#define   TextOn           0x94          // 文本模式打開 
#define   GraOn            0x98          // 圖形模式打開 
#define   TGAllOn          0x9c          // 文本圖形模式都打開 
#define   DataAutoWrite    0xb0          // 數據自動寫 
#define   DataAutoRead     0xb1          // 數據自動讀 
#define   ExitAutoRW       0xb2          // 退出數據自動讀寫模式 
#define   DataWAddrI       0xc0          // 數據寫,地址加1 
#define   DataWAddrD       0xc2          // 數據寫,地址減1 
#define   DataWAddrNV      0xc4          // 數據寫,地址不變 
#define   DataRAddrI       0xc1          // 數據讀,地址加1 
#define   DataRAddrD       0xc3          // 數據讀,地址減1 
#define   DataRAddrNV      0xc5          // 數據讀,地址不變 
#define   ScreenPeek       0xe0          // 屏讀 
#define   ScreenCopy       0xe1          // 屏拷貝 
#define   LineChar         32            // 設置寬度  
/******************************************************************************** 
函數名:    ReadSdate(void) 
函數功能: IOPORT輸出數據并檢查LCD忙數據。
返回數據:checkbusy
/********************************************************************************/ 
ReadSdate()
{  
    uchar   checkbusy; 
    LCD_BUS = 0xff;
    CD1=1;
    RD1=0;
    checkbusy=LCD_BUS;
    RD1=1; 
    return ( checkbusy );  
}
/******************************************************************************** 
函數名:    Void RWcheck() 
函數功能: 判斷狀態位STA1,STA0子程序(讀寫指令和讀寫數據狀態),在寫指令的讀,
           寫數據之前這兩個標志位必須同時為1 
/********************************************************************************/ 
void RWcheck(void)
{   
     uchar   databusy;
     do{   databusy=ReadSdate();}
while( !(databusy&0x03) );
}
/******************************************************************************** 
函數名:    Void AutoRcheck() 
函數功能: 判斷狀態位STA2的子程序(數據自動讀狀態),該位在數據自動讀操作過程中
           取代STA0和STA1有效。在連續讀過程中每讀一次之前都要確認STA2=1
********************************************************************************/ 
void AutoRcheck(void)
{   
     uchar   databusy;
     do{databusy=ReadSdate(); }
while( !(databusy&0x04) ); 
}
/******************************************************************************** 
函數名: Void AutoWcheck() 
函數功能: 判斷狀態位STA3子程序(數據自動寫狀態) 
********************************************************************************/ 
void AutoWcheck(void)
{    
     uchar   databusy;
     do{databusy=ReadSdate(); }
while( !(databusy&0x08) );
}
/******************************************************************************** 
函數名:    Void WriteCmd1(uchar cmd)
           Void WriteCmd2(uchar dat1,uchar cmd)
           Void WriteCmd3(uchar dat1,uchar dat2,uchar cmd)
     Void WriteData(uchar dat)
函數功能: 寫指令和寫數據子程序
********************************************************************************/ 
void WriteData(uchar dat)
{   
RWcheck();
CD1=0;                 
LCD_BUS=dat;
WR1=0;
WR1=1;
}
void WriteCmd1(unsigned char cmd)
{
RWcheck();
CD1=1;       
LCD_BUS=cmd; 
WR1=0;       
WR1=1;       
}
void WriteCmd2(uchar dat,uchar cmd)
{
    WriteData(dat);   
    WriteCmd1(cmd);      
}
void WriteCmd3(uchar dat1,uchar dat2,uchar cmd)
{       
    WriteData(dat1);  
    WriteData(dat2);
    WriteCmd1(cmd);   
}
void AutoWriteData( uchar dat)
{  
    AutoWcheck();
    CD1 = 0;    
    LCD_BUS= dat;
    WR1=0;
    WR1=1;
}
/********************************************************************************
函數名:   void lcd_init (void)
函數功能:LCD初始化設置
********************************************************************************/ 
void lcd_init (void)
{  
    WriteCmd3(0x00,0x00,0x40);   //文本首地址
    WriteCmd3(0x20,0x00,0x41);   //文本寬度設置
    WriteCmd3(0x00,0x00,0x42);   // 圖形首地址
    WriteCmd3(0x20,0x00,0x43);   //設置圖形寬度  
                                //即一行顯示所占字節數
    WriteCmd1(0xa1);             //光標設置
    WriteCmd1(0x81);             //顯示方式設置   邏輯“或”合成
    WriteCmd1(0x9f);             //顯示開關
    Cursor_X=0x08;
    Cursor_Y=0x4f; 
    CursorPosSet(Cursor_X,Cursor_Y); 
    ClearScreen(0x2000); 
   }
/******************************************************************************** 
函數名: Void ClearScreen(unsigned int ram) 
函數功能: 清除整個屏幕 
     ram : 需要清零的單元數
********************************************************************************/ 
void ClearScreen(uint ram) 
{ 
     unsigned int i; 
                                                            // 清顯示 RAM 區 0000h--2000h (8k) 
     WriteCmd3(0x00,0x00,0x24);                              // 設置指針地址0000H 
     WriteCmd1(0xb0);                                        // 設置自動寫狀態 
     for(i=0x00;i<ram;i++) AutoWriteData(0x00);                  // data=0; 
     WriteCmd1(0xb2);                                        // 自動寫結束 
} 
/********************************************************************************
函數原型: void draw_dot(x,y)
功     能; T6963屏上打點
入口參數: 橫坐標(x),樅坐標(y)
出口參數: 
********************************************************************************/ 
void draw_dot(uchar x,uchar y,uchar mode)
{   uchar dat11,dat22;
    uchar n,t;

    dat11=(y*32)%256 +x/8; 
    dat22=(y*32)/256;
    delay(20);
    WriteCmd3(dat11,dat22,0x24);
    if(mode)    n=0xf8;
    else        n=0xf0; 
    t=n|((~(x%8))&0x07);
    WriteCmd1(t);
}
/******************************************************************************** 
函數名: Void CursorPosSet(uchar X,uchar Y) 
函數功能:   光標位置設置 
********************************************************************************/ 
void CursorPosSet(unsigned char x,unsigned char y) 
{ 
    WriteCmd3(x,y,CursorPointer);          //X的取值范圍0-20;Y的取值范圍0-15; 
} 
/******************************************************************************** 
函數名: Void CursorUp() 
函數功能:   光標向上移動一格 
********************************************************************************/ 
void CursorUp() 
{ 
         if(Cursor_Y>0)Cursor_Y-=1;  
         WriteCmd3(Cursor_X,Cursor_Y,CursorPointer); 
} 
/******************************************************************************** 
函數名: Void CursorDown() 
函數功能:   光標向下移動一格 
********************************************************************************/ 
void CursorDown() 
{ 
         if(Cursor_Y<8)Cursor_Y+=1; 
         WriteCmd3(Cursor_X,Cursor_Y,CursorPointer); 
} 
/******************************************************************************** 
函數名: Void CursorRight() 
函數功能:   光標向右移動一格 
********************************************************************************/ 
void CursorRight() 
{ 
         if(Cursor_X<20)Cursor_X+=1; 
         WriteCmd3(Cursor_X,Cursor_Y,CursorPointer); 
} 
/******************************************************************************** 
函數名: Void CursorLeft() 
函數功能:   光標向左移動一格 
********************************************************************************/ 
void CursorLeft() 
{ 
         if(Cursor_X>0)Cursor_X-=1; 
         WriteCmd3(Cursor_X,Cursor_Y,CursorPointer); 
} 
/******************************************************************************** 
函數名: Void CursorEnter() 
函數功能:   光標換行
********************************************************************************/ 
void CursorEnter() 
{ 
    Cursor_X=0; 
    Cursor_Y+=1; 
    WriteCmd3(Cursor_X,Cursor_Y,CursorPointer); 
} 
/********************************************************************************
函數原型: void delay(uchar t)
功     能; (1)延時 T*10 (2) 1MS*k
入口參數: (1) uchar t   (2)uint k
出口參數: 
********************************************************************************/ 
void delay(uchar t)
{ 
   uchar i,j;
   for(i=0;i<t;i++) {   for(j=0;j<10;j++);   }
}
void delay1(uint k)
{ 
   uchar j;
   while ((k--)!=0) {   for (j=0;j<125;j++);}
}
/******************************************************************************** 
函數名:Void ShowHZ16x16(unsigned char column,unsigned char lin,unsigned int hzcode) 
函數功能:顯示一個漢字(16*16點陣)
           column:漢字起始列(0-30) (240/8=30)
           lin: 漢字起始行(0-7)     (128/16=8)
        hzcode: 漢字代碼(自定義的) 
注:超出范圍的將直接寫到RAM中,可以實現卷屏效果
********************************************************************************/ 
void ShowHZ16x16(unsigned char column,unsigned char lin,unsigned int hzcode) 
{ 
     unsigned char temp1,temp2; 
     unsigned int StartAddr; 
     unsigned char i=0;
     unsigned int * temp;
     temp=&HZK16x16[hzcode][0];
     StartAddr=16*lin*LineChar+ column;        //定位起始行
     for(i=0;i<16;i++) 
     { 
       WriteCmd3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), AddrSet); 
       temp1=HZK16x16[hzcode][i*2+*temp];
       WriteCmd2(temp1, DataWAddrI);              // 左半部 地址加一 
       temp2=HZK16x16[hzcode][i*2+1+*temp]; 
       WriteCmd2(temp2, DataWAddrNV);             // 右半部 顯示地址不變
       StartAddr=StartAddr + LineChar;            // 換到下一行
     } 
} 
//***********************************************************
//         主函數
//***********************************************************
main()
{ /*
   uchar   x;
   uchar   m;
   
   
      for(x=0;x<240;x++)
      {
        draw_dot(2*x,94,1);
        draw_dot(2*x,47,1);
        draw_dot(2*x,0,1);
       }
       for(m=0;m<128;m++)
       {
         draw_dot(0,m*2,1);
         draw_dot(239,m*2,1);
         draw_dot(120,m*2,1);
          }*/
          
      lcd_init();    
         CursorPosSet(15,2);
        ShowHZ16x16(12,1, 2);
        ShowHZ16x16(12,2, 0);
//        ShowHZ16x16(10,7, 0x03);
//        ShowHZ16x16(12,7, 0x04);
//        ShowHZ16x16(15,6, 0x05);
//        ShowHZ16x16(17,6, 0x16);-
//        ShowHZ16x16(15,7, 0x17);
//        ShowHZ16x16(17,7, 0x18);
    while(1);
}
 




//   TGLCMLIMIT64A接口程序(模擬方式)
/***************************************************************************
;連線圖:
;*LCM---89C52*  *LCM---89C52*   *LCM-------89C52*     *LCM----------89C52* *
;*DB0---P0.0*   *DB4---P0.4*    *D/I-------P2.6*      *CS1----------P2.4*  *
;*DB1---P0.1*   *DB5---P0.5*    *R/W-------P2.7*      *CS2----------P2.5*  *
;*DB2---P0.2*   *DB6---P0.6*    *RST--------VCC*      *CS3----------P3.2*  * 
;*DB3---P0.3*   *DB7---P0.7*    *E---------P2.3*                           *
;注:89C52的晶振頻率為12MHz                                                 *
***************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天天综合日日夜夜精品| 亚洲一区av在线| 91福利视频网站| 久久99精品国产.久久久久| 亚洲蜜臀av乱码久久精品| 欧美成人在线直播| 在线视频欧美精品| 国产成人av一区二区三区在线| 亚洲午夜免费电影| ㊣最新国产の精品bt伙计久久| 日韩亚洲电影在线| 欧美日韩专区在线| 91年精品国产| 成人av电影免费观看| 精品亚洲成a人在线观看| 日韩精品三区四区| 亚洲欧美经典视频| 久久免费看少妇高潮| 欧美丰满一区二区免费视频 | 免费在线观看不卡| 一区二区三区毛片| 国产欧美一区二区精品忘忧草| 欧美一区二区私人影院日本| 色偷偷久久一区二区三区| 国产99久久精品| 国产综合色视频| 日本不卡视频一二三区| 亚洲国产欧美另类丝袜| 亚洲欧美区自拍先锋| 中文字幕一区av| 欧美国产禁国产网站cc| 久久久精品国产免大香伊 | 亚洲视频中文字幕| 国产欧美日韩另类视频免费观看 | 欧美一区三区四区| 欧美伦理影视网| 欧美剧情片在线观看| 欧美日韩aaa| 欧美精品一二三区| 91精品国产综合久久久蜜臀粉嫩 | 国产三级精品在线| 久久影院午夜片一区| 久久新电视剧免费观看| 久久久99精品免费观看不卡| 国产天堂亚洲国产碰碰| 蜜桃av一区二区三区| 偷拍一区二区三区四区| 午夜成人免费视频| 蜜臀av亚洲一区中文字幕| 久草在线在线精品观看| 国产黄色精品视频| 99精品国产一区二区三区不卡| 91亚洲精华国产精华精华液| 日本韩国欧美在线| 欧美日韩激情一区| 日韩免费视频一区| 久久久久国产精品厨房| 国产精品免费av| 亚洲美女免费在线| 三级欧美韩日大片在线看| 久久99精品视频| 成人黄色大片在线观看| 欧美艳星brazzers| 欧美不卡在线视频| 国产精品区一区二区三区| 亚洲精品自拍动漫在线| 婷婷综合在线观看| 狠狠色丁香婷综合久久| 99久久国产综合色|国产精品| 欧美在线视频你懂得| 日韩一本二本av| 国产日韩综合av| 亚洲午夜激情av| 国产麻豆视频精品| 91国在线观看| 欧美成人女星排名| 自拍偷拍亚洲综合| 美国一区二区三区在线播放| a级精品国产片在线观看| 欧洲精品一区二区| 久久综合网色—综合色88| 综合久久国产九一剧情麻豆| 爽爽淫人综合网网站| 国产盗摄一区二区| 欧美日韩一本到| 国产日韩欧美精品综合| 午夜视频在线观看一区| 国产精品一区二区免费不卡 | 制服丝袜日韩国产| 国产亚洲午夜高清国产拍精品| 亚洲精品免费在线观看| 国产在线一区二区| 日本韩国一区二区三区视频| 久久久久久毛片| 天天影视网天天综合色在线播放| 粉嫩av亚洲一区二区图片| 欧美一区二区高清| 亚洲免费观看高清完整| 国产suv精品一区二区三区| 欧美一区二区三区免费在线看| 亚洲精品写真福利| 国产不卡视频一区| 精品电影一区二区| 天天综合色天天综合色h| 99久久久免费精品国产一区二区| 精品国产三级a在线观看| 亚洲一级二级三级在线免费观看| 国产91精品在线观看| 欧美一区在线视频| 亚洲电影视频在线| 色先锋资源久久综合| 亚洲国产经典视频| 国产最新精品免费| 日韩一区二区三区在线| 午夜影院久久久| 在线观看av一区| 亚洲精品大片www| 99久久免费视频.com| 国产欧美日韩不卡| 国产高清成人在线| 欧美精品一区二区三区视频| 日韩vs国产vs欧美| 欧美裸体bbwbbwbbw| 亚洲国产日产av| 欧美在线小视频| 亚洲精品国产成人久久av盗摄| 成人不卡免费av| 亚洲欧洲无码一区二区三区| 国产91清纯白嫩初高中在线观看| 久久久影院官网| 国产乱人伦偷精品视频免下载 | 色哟哟亚洲精品| 国产亲近乱来精品视频| 国产九色sp调教91| 国产欧美日韩精品a在线观看| 国产不卡免费视频| 国产精品美女久久福利网站| 成人少妇影院yyyy| 国产精品欧美久久久久一区二区| 成人精品gif动图一区| 国产精品毛片久久久久久久| 不卡一区二区在线| 亚洲精品国产品国语在线app| 欧美综合亚洲图片综合区| 亚洲自拍偷拍欧美| 欧美一级搡bbbb搡bbbb| 久久精品国产精品亚洲综合| 久久综合狠狠综合| www.欧美精品一二区| 亚洲欧美日韩久久| 欧美日韩国产首页| 美女爽到高潮91| 久久久久综合网| 91最新地址在线播放| 亚洲成人av电影在线| 日韩欧美自拍偷拍| 国产夫妻精品视频| 亚洲女性喷水在线观看一区| 欧美伊人久久久久久久久影院 | 欧美aⅴ一区二区三区视频| 欧美videofree性高清杂交| 国产福利91精品| 亚洲一区在线观看免费观看电影高清 | 精品在线亚洲视频| 亚洲国产成人在线| 在线观看日产精品| 激情伊人五月天久久综合| 国产精品久久看| 欧美日韩久久一区二区| 国内一区二区在线| 亚洲精品视频免费看| 日韩欧美一级二级| 97超碰欧美中文字幕| 免费在线观看不卡| 国产精品的网站| 欧美一区二区三区视频免费| 粗大黑人巨茎大战欧美成人| 亚洲h在线观看| 国产欧美日韩视频在线观看| 欧美日韩国产高清一区二区| 国产99久久久精品| 日韩有码一区二区三区| 欧美国产亚洲另类动漫| 91精品国产麻豆国产自产在线 | 蜜臀久久99精品久久久久宅男| 国产精品免费网站在线观看| 51精品国自产在线| 波多野结衣中文字幕一区二区三区 | 久久精品欧美日韩精品| 欧美老肥妇做.爰bbww| 成人教育av在线| 久久国产尿小便嘘嘘尿| 亚洲一级二级三级在线免费观看| 国产日韩欧美精品综合| 制服视频三区第一页精品| 一本到不卡精品视频在线观看| 国产在线精品视频| 男男gaygay亚洲| 亚洲成人三级小说| 亚洲激情在线播放|