wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

ST7920 12864 經典函數

作者:佚名   來源:不詳   點擊數:  更新時間:2014年08月17日   【字體:

 void  LCD12864Init(void)           //LCD12864字庫初始化程序

{
 Delay_nms(100); //大于40MS的延時程序             
 PSB = 1;  //設置為8BIT并口工作模式
 Delay_nus(1);
 RST = 0;
 Delay_nms(100); //大于40MS的延時程序              
 RST = 1;  //復位置高
 Delay_nms(100);
 
 
 Delay_nms(50);
 LCD12864_Write(COMMAND,0x30);  //Extended Function Set :8BIT設置,RE=0: basic instruction set, G=0 :graphic display OFF
 Delay_nms(120);         //大于100uS的延時程序
 LCD12864_Write(COMMAND,0x30);  //Function Set
 Delay_nms(40);          //大于37uS的延時程序
 LCD12864_Write(COMMAND,0xC0);  //Display on Control
 Delay_nms(120);         //大于100uS的延時程序
 LCD12864_Write(COMMAND,0x10);  //Cursor Display Control光標設置
 Delay_nms(120);         //大于100uS的延時程序
 LCD12864_Write(COMMAND,0x0C);  //Display Control,D=1,顯示開
 Delay_nms(120);         //大于100uS的延時程序
 LCD12864_Write(COMMAND,0x01);  //Display Clear
 Delay_nms(15);          //大于10mS的延時程序
 LCD12864_Write(COMMAND,0x06);  //Enry Mode Set,光標從右向左加1位移動
 Delay_nms(120);         //大于100uS的延時程序
 
 
}
 
void LCD12864WaitForReady(void)
{
    unsigned char temp;
#ifdef _Use_LCD12864OnlyWrite
 Delay_nus(30);
#else
 LCD12864_SetReadData;
 LCD12864_RS = 0;
 LCD12864_RW = 1;
   
 do
 {
        LCD12864_EN = Enable;
  Delay_nus(1); 
  temp = LCD12864_Data_PIN;
  Delay_nus(1);
  LCD12864_EN = Disable;
 }while (temp & 0x80);  //RW=1,讀PD7,為0表示空閑;
  
    LCD12864_EN = Disable;
 LCD12864_SetWriteData;
 
#endif
}
 
void LCD12864_Write(unsigned char cmdordata,unsigned char Data)  //傳送數據或者命令,當cmdordata=0是,傳送命令,當cmdordata=1,傳送數據.
{
    LCD12864WaitForReady();
 LCD12864_EN = 0;
 LCD12864_RW = 0;
 Delay_nus(1);
 if(cmdordata == 0)
 {
  LCD12864_RS = 0;
 }
 else
 {
  LCD12864_RS = 1;
 }
 Delay_nus(1);
 LCD12864_Data_Port = Data;
 LCD12864_EN = 1;
 Delay_nus(1);
 LCD12864_EN = 0;
}
 
unsigned char LCD12864_Read(void)
{
 unsigned char data;
    LCD12864WaitForReady();
 LCD12864_SetReadData;
 LCD12864_RS = 1;
 Delay_nus(1);
 LCD12864_RW = 1;
    Delay_nus(1);
 LCD12864_EN = 1;
 Delay_nus(1);
 data = LCD12864_Data_PIN;
 LCD12864_EN = 0;
 LCD12864_SetWriteData;
 return data;
}
void LCD12864_Clean(void)
{
    unsigned char x,y;
    LCD12864_Write(COMMAND,GRAPH_ON);
    LCD12864Init();     //設置擴展指令集,按手冊說明,僅設置了繪圖位,
    LCD12864_Write(COMMAND,GRAPH_ON); //需要兩次,本次設置擴展指令集。
 
    for (y=0;y<32;y++)
    {
        LCD12864_Write(COMMAND,0x80+y); //設置y=0000+000x,y+1則往下一行
        LCD12864_Write(COMMAND,0x80); //設置x=0000 0000
        for (x=0;x<16;x++)
        {
            LCD12864_Write(DATA,0x00);   //高字節數據
            LCD12864_Write(DATA,0x00); //低字節數據
        }
    }
}
void Serial_DDRAM_Address_Set(unsigned char ucDDramAdd)
{
 LCD12864_Write(COMMAND,BASIC_FUNCTION);   //基本指令集
 LCD12864_Write(COMMAND,ucDDramAdd);    //設定DDRAM地址到地址計數器AC
}
void Overturn_Char(unsigned char x,unsigned char y,unsigned char wide,unsigned char cor)
{
    unsigned char i,base_x,colour;
 if(cor == 1) colour = 0xFF;
 if(cor == 0) colour = 0x00;
 LCD12864_Write(COMMAND,GRAPH_OFF);
 if(y == 1 || y == 2)    base_x = 0x80;
 if(y == 3 || y == 4)    base_x = 0x88;
    if(x % 2)
 {
     for(i = 0;i < wide; i ++)
  {
         LCD12864_Write(COMMAND,0X80 - 16 + y * 16 + i);
         LCD12864_Write(COMMAND,base_x+(x/2));
      LCD12864_Write(DATA,colour);
      LCD12864_Write(DATA,0x00);
  }
 }
 else
 {
     for(i = 0;i < wide; i ++)
  {
         LCD12864_Write(COMMAND,0X80 - 16 + y * 16 + i);
         LCD12864_Write(COMMAND,base_x+(x/2)-1);
      LCD12864_Write(DATA,0x00);
      LCD12864_Write(DATA,colour);
  }
 } 
 LCD12864_Write(COMMAND,GRAPH_ON);  
}
void Overturn_Font(unsigned char x,unsigned char y,unsigned char wide,unsigned char cor)
{
    unsigned char i,base_x,colour;
 if(cor == 1) colour = 0xFF;
 if(cor == 0) colour = 0x00;
 LCD12864_Write(COMMAND,GRAPH_OFF);
 if(y == 1 || y == 2)    base_x = 0x80;
 if(y == 3 || y == 4)    base_x = 0x88;
 
    for(i = 0;i < wide;i ++)
 {
     LCD12864_Write(COMMAND,0X80 - 16 + y * 16 + i); //- 16 + y * 16 + i);
     LCD12864_Write(COMMAND,base_x+x-1);
  LCD12864_Write(DATA,colour);
  LCD12864_Write(DATA,colour);
 }
 LCD12864_Write(COMMAND,GRAPH_ON);
}
void GUI_Point(unsigned char y,unsigned char x,unsigned colour)
{
    unsigned char GDRAM_hbit,GDRAM_lbit;
    unsigned char x_Dyte,x_byte;                 //定義列地址的字節位,及在字節中的哪1位
    unsigned char y_Dyte,y_byte;       
    x--;y--;          //定義為上下兩個屏(取值為0,1),行地址(取值為0~31)
   
    x_Dyte=y/16;                                         //計算在16個字節中的哪一個
    x_byte=y&0x0f;                                     //計算在該字節中的哪一位
    y_Dyte=x/32;                                         //0為上半屏,1為下半屏
    y_byte=x&0x1f;                                     //計算在0~31當中的哪一行
   
    LCD12864_Write(COMMAND,0x80+y_byte);                     //設定行地址(y坐標)
    LCD12864_Write(COMMAND,0x80+x_Dyte+8*y_Dyte);         //設定列地址(x坐標),并通過8*y_Dyte選定上下屏
                           
    LCD12864_Read();
    GDRAM_hbit=LCD12864_Read();                         //讀取當前顯示高8位數據
    GDRAM_lbit=LCD12864_Read();                         //讀取當前顯示低8位數據
    Delay_nus(1);
   
    if(colour==1)
    {
  LCD12864_Write(COMMAND,0x80+y_byte);                     //設定行地址(y坐標)
  LCD12864_Write(COMMAND,0x80+x_Dyte+8*y_Dyte);         //設定列地址(x坐標),并通過8*y_Dyte選定上下屏
  Delay_nus(1);
 
        if(x_byte<8)                                             //判斷其在高8位,還是在低8位
  {
   LCD12864_Write(DATA,GDRAM_hbit|(0X01<<(7-x_byte)));     //顯示GDRAM區高8位數據
   LCD12864_Write(DATA,GDRAM_lbit);                             //顯示GDRAM區低8位數據
        }
        else
        {
   LCD12864_Write(DATA,GDRAM_hbit);
   LCD12864_Write(DATA,GDRAM_lbit|(0x01<<(15-x_byte)));
        }
    }
    else
    {
  LCD12864_Write(COMMAND,0x80+y_byte);                     //設定行地址(y坐標)
  LCD12864_Write(COMMAND,0x80+x_Dyte+8*y_Dyte);         //設定列地址(x坐標),并通過8*y_Dyte選定上下屏
  Delay_nus(1);
 
        if(x_byte<8)                                             //判斷其在高8位,還是在低8位
  {
   LCD12864_Write(DATA,GDRAM_hbit & ~(0X01<<(7-x_byte)));     //顯示GDRAM區高8位數據
   LCD12864_Write(DATA,GDRAM_lbit);                             //顯示GDRAM區低8位數據
        }
        else
        {
   LCD12864_Write(DATA,GDRAM_hbit);
   LCD12864_Write(DATA,GDRAM_lbit & ~(0x01<<(15-x_byte)));
        }
 }
 
}
 
void GUI_Line(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char colour)
{
    int temp;
    int dx,dy;               //定義起點到終點的橫、縱坐標增加值
    int s1,s2,status,i;
    int Dx,Dy,sub;
 
    dx = x1 - x0;
    if(dx >= 0)                 //X的方向是增加的
        s1 = 1;
    else                     //X的方向是降低的
        s1 = -1;    
    dy = y1 - y0;                 //判斷Y的方向是增加還是降到的
    if(dy >= 0)
        s2 = 1;
    else
        s2 =- 1;
 
    Dx = abs(x1-x0);             //計算橫、縱標志增加值的絕對值
    Dy = abs(y1-y0);
      
    if(Dy > Dx)                             
    {                     //以45度角為分界線,靠進Y軸是status=1,靠近X軸是status=0
        temp = Dx;
        Dx = Dy;
        Dy = temp;
    status = 1;
    }
    else
        status = 0;
 
 
 
    sub = Dy + Dy - Dx;                 //第1次判斷下個點的位置
    for(i = 0;i < Dx;i ++)
    {
        GUI_Point(x0,y0,colour);           //畫點
        if(sub >= 0)                              
        {
            if(status == 1)               //在靠近Y軸區,x值加1
                x0 += s1;
            else                     //在靠近X軸區,y值加1              
                y0 += s2;
            sub -= (Dx + Dx);                 //判斷下下個點的位置
        }
        if(status == 1)
            y0 += s2;
        else      
            x0 += s1;
        sub += Dy + Dy;
       
    }
}
 
void plotC(int x,int y,int xc,int yc,unsigned char colour)
{
    GUI_Point(xc+x,yc+y,colour);
    GUI_Point(xc+x,yc-y,colour);
    GUI_Point(xc-x,yc+y,colour);
    GUI_Point(xc-x,yc-y,colour);
    GUI_Point(xc+y,yc+x,colour);
    GUI_Point(xc+y,yc-x,colour);
    GUI_Point(xc-y,yc+x,colour);
    GUI_Point(xc-y,yc-x,colour);
}
 
void GUI_Circle(int xc,int yc,int r,unsigned char colour)
{
    int x,y,d;
    y = r;
    d = 3 - (r + r);
    x = 0;
    while(x <= y)
    {
        plotC(x,y,xc,yc,colour);
        if(d < 0)
            d += (x + x + x + x) + 6;
        else
        {
            d+=((x - y) + (x - y) + (x - y) + (x - y)) + 10;
            y = y - 1;
        }
        x = x + 1;
    }
}
void GUI_Full(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char colour)
{
    unsigned char i,j;
 for(j = y0;j <= y1;j ++)
     for(i = x0;i <= x1;i ++)
      GUI_Point(i,j,colour);
}
 
 
 
 
關閉窗口
写真福利片hd在线观看| 精品视频国产| 国产精品伦一区二区三区级视频频| 日本美女黄色一级片| 欧美日韩午夜爽爽| 久久影院视频免费| 欧美hd在线| 免费色片视频| 小泽玛利亚一区二区三区视频| 一级黄色在线播放| 亚洲电影网站| 日韩精品在线观看一区| 中文字幕国产一区二区| 午夜一级在线看亚洲| 国偷自产av一区二区三区| 超碰在线无需免费| jizzjizz中文| 欧美在线中文| 欧美亚一区二区三区| 成年在线观看视频| 成人国产1314www色视频| 欧美日韩午夜在线| 日本中文字幕不卡| 日韩1区2区| 日本亚洲精品| 国产91大片| 热99re久久精品这里都是免费| 永久免费无码av网站在线观看| 久久亚洲精品无码va白人极品| 91亚洲一区精品| 欧美成人小视频| 亚洲风情亚aⅴ在线发布| 国产99精品国产| 99精品99| 亚洲精品小说| 日韩影视高清在线观看| 亚洲精品66| 国产女呦网站| 国产乱在线观看完整版视频| 精品国产99久久久久久宅男i| www.毛片com| 看全色黄大色黄女片18| 噼里啪啦国语在线观看免费版高清版| 亚洲欧美日韩图片| 欧美丝袜丝交足nylons图片| 一区二区三区欧美激情| 久久亚洲风情| 亚洲精品2区| 久久不见久久见中文字幕免费 | 欧美成熟视频| 国产调教一区二区三区| 国产精品日本一区二区三区在线 | 久久久激情视频| 成人在线一区二区三区| 久久精品免费观看| 裸体一区二区| 亚洲欧美日本日韩| 亚洲国产精品一区制服丝袜| 欧美激情日韩| 欧美日韩精品| 国产一区二区三区四区三区四| 成人精品中文字幕| 日本精品黄色| 久久性感美女视频| 国产精品99视频| 成人黄色视屏网站| 中文字幕 在线观看| 激情av网站| h网站免费在线观看| www.av黄色| 国产精品视频一区二区三| 日韩人妻无码精品综合区| 日韩成人av一区二区| 精品国产免费久久久久久婷婷| www.久久av.com| 日本成人性视频| 亚洲成人自拍| 免费看污污视频| 色婷婷777777仙踪林| 97中文字幕在线| 欧美大片在线播放| 国产精品无码一本二本三本色| 激情视频免费网站| 日本高清免费在线视频| av高清在线免费观看| 欧美精品卡一卡二| 人妻熟女一二三区夜夜爱| 一区二区三区|亚洲午夜| 午夜精品区一区二区三| 亚洲最大免费| 国产精品videossex国产高清 | 午夜精品亚洲| 一本色道久久综合亚洲精品不卡 | 最近中文在线观看| 国内老熟妇对白xxxxhd| 天堂在线资源库| 日本久久国产| h在线观看视频免费网站| 夜色福利刺激| av在线之家电影网站| 污视频网站在线免费| 亚洲人成午夜免电影费观看| 国产不卡精品| 精品国产一区二区三区香蕉沈先生| 一区二区影院| 全部av―极品视觉盛宴亚洲| 成人av网站在线观看免费| 欧美国产一区在线| 国产精品99久| 久久精品亚洲一区二区三区浴池| 综合av第一页| 黄色成人在线播放| 亚洲精品成人在线| 91国在线观看| 欧美成人免费网站| 日韩一区二区三区在线播放| 欧洲成人在线视频| 国产三级精品在线不卡| 欧美久久久久久久久久久久久久| 三上悠亚av一区二区三区| 精品黑人一区二区三区观看时间| 欧美色图亚洲天堂| 91高潮大合集爽到抽搐| 国产综合图区| 性欧美16一18| 阿v视频在线| 色老板在线视频一区二区| 精品成人国产| 99久久久久免费精品国产| 亚洲妇女屁股眼交7| 伊人色综合久久天天人手人婷| 色94色欧美sute亚洲13| 一本色道久久综合亚洲精品小说| 日韩美女视频在线观看| 日韩免费视频在线观看| 欧美综合激情| 九热视频在线观看| 日本黄色录像视频| 国产高清精品软件丝瓜软件| www.91av...| 日本不卡免费播放| 久久er热在这里只有精品66| 欧美伊人影院| 国产夜色精品一区二区av| 国产欧美一区二区三区在线老狼| 色综合久久久久综合体桃花网| 亚洲欧美日韩国产精品| 亚洲xxxxx性| 东京热加勒比无码少妇| 三上悠亚作品在线观看| 色呦呦中文字幕| 蜜芽视频在线观看| 成人国产精选| 亚洲免费黄色| 亚洲精品成人a在线观看| 亚洲色图美腿丝袜| 成人看片在线| 污污的视频免费观看| 亚洲精品www久久久久久| 国产精品一区二区午夜嘿嘿嘿小说| 国产黄色在线| 婷婷综合成人| 成人三级在线视频| 日韩一级黄色片| 国产在线高清精品| 99视频精品免费| 可以免费在线观看的av| 色橹橹高清视频在线播放 | 色先锋资源网| 黄在线免费看| 欧美mv日韩| 国产欧美日韩另类一区| 亚洲女成人图区| 欧美18视频| 亚洲精品视频大全| 亚洲图片小说综合| h视频在线免费| 久久国产小视频| 国产欧美一区二区在线| 在线观看视频亚洲| 少妇免费毛片久久久久久久久| www.超碰97| 顶级嫩模一区二区三区| eeuss影院www在线观看| 亚洲系列另类av| 亚洲一区一卡| 亚洲一级不卡视频| 韩国19禁主播vip福利视频| 成人免费网站入口| 亚洲日本韩国在线| 成人午夜天堂| 2020国产精品极品色在线观看| 韩国理伦片一区二区三区在线播放| 91精品久久久久久久99蜜桃| 亚洲一区二区三区香蕉| 亚洲成年人在线观看| 亚洲欧美综合在线观看| 看黄网站在线观看| 9国产精品视频| 欧美又粗又大又爽| 91在线视频九色| 国产xxxxxxxxx| 四虎成人欧美精品在永久在线| 福利在线导航136| 欧美理论电影在线精品| 91在线精品一区二区三区| 日韩精品久久久久久久玫瑰园| 久久久久天天天天| 日韩欧美一区二区在线观看| 午夜成人亚洲理伦片在线观看| 一区 二区 三区| 菠萝蜜一区二区| 欧美日韩精品一区二区三区四区| 亚洲伊人一本大道中文字幕| 色哟哟一一国产精品| 人操人视频在线观看| 免费看欧美美女黄的网站| 精品国产网站在线观看| 噜噜噜久久亚洲精品国产品麻豆 | 国产免费一区二区三区在线观看 | 精品久久久久久久人人人人传媒| 国产精品无码电影在线观看| www男人的天堂| 99久久婷婷国产综合精品首页| 亚洲精品国产精品乱码不99 | 成人手机在线电影| 国内精品久久久久久久97牛牛| 日韩精品视频免费专区在线播放| 男人插女人下面免费视频| 在线看污网站| 欧美日本久久| www.99久久热国产日韩欧美.com | 五月天婷婷在线视频| 菠萝蜜视频在线观看一区| 成人国产精品av| 久久黄色精品视频| 91av亚洲| 欧美日韩免费网站| 超碰97国产在线| 国产主播第一页| 欧美专区日韩| 国产高清久久| 色多多国产成人永久免费网站| 中日韩精品一区二区三区| 国产小视频免费在线观看| 成人av在线播放网站| 精品国产乱码久久久久久丨区2区| 国产白浆在线观看| 另类ts人妖一区二区三区| 日韩午夜精品电影| 色黄视频免费看| 人与牲动交xxxxbbb| 海角社区69精品视频| 美女视频黄免费的亚洲男人天堂| 国产农村妇女精品一区| 97超碰在线公开在线看免费| 亚洲丝袜另类动漫二区| 国产av不卡一区二区| 一个人免费观看在线视频www| 国产一区二区三区的电影 | 久久一区亚洲| 国产精品欧美激情| 中文字幕+乱码+中文乱码91| 91午夜精品| 日韩精品中文字幕有码专区 | 日本精品在线| 亚洲啪啪综合av一区二区三区| 777久久精品一区二区三区无码| 五月天黄色网址| 视频一区二区三区入口| 成人性生交大片免费看视频直播| 精品国产乱码一区二区三| av亚洲免费| 欧美另类极品videosbest最新版本 | 在线观看污视频| 黄色网战在线观看| 国产精品福利在线观看播放| 丝袜亚洲另类欧美重口| 欧美成人一二三区| 四虎国产精品免费久久| 精品久久久三级丝袜| 无码h肉动漫在线观看| www.8ⅹ8ⅹ羞羞漫画在线看| 91国产福利在线| 韩国三级hd中文字幕有哪些| 男人影院在线观看| 狠狠色狠狠色综合日日小说| www.污网站| 成人黄视频在线观看| 色婷婷综合视频在线观看| 小日子的在线观看免费第8集| 麻豆传媒在线免费看| 精品夜夜嗨av一区二区三区| 精品蜜桃传媒| 天堂视频在线免费观看| 国产剧情一区二区三区| 欧美日韩喷水| blackedav金发美女大战黑人| 99久久亚洲一区二区三区青草| 99热都是精品| 免费免费啪视频在线观看| 国产精品国产三级国产aⅴ中文| 成人在线免费在线观看| 高h视频在线| 一本大道久久a久久精品综合| 亚洲中文字幕无码一区| 亚洲校园激情春色| 亚洲精品美女网站| 久久久久亚洲av无码专区体验| 一区二区亚洲视频| 欧美激情精品久久久久久大尺度| 91福利在线观看视频| 黄色成人在线网址| 国产区日韩欧美| 岛国片免费看| 中文字幕精品综合| 一级做a免费视频| 丁香花在线电影| 亚洲黄色在线看| 日本黄色免费观看| 国产精品伦理一区| 在线视频观看日韩| 国产一区免费在线观看| jizzz18| 综合网在线视频| 日本黄色三级网站| 久九九久频精品短视频| 在线观看亚洲视频| 亚洲产国偷v产偷v自拍涩爱| 日本成人在线一区| 无码人妻精品一区二区三区99v| 牛牛澡牛牛爽一区二区| 欧美日韩大陆一区二区| 免费在线观看亚洲| 羞羞色午夜精品一区二区三区| 2020国产精品久久精品不卡| 蜜桃av网站| 亚洲一区二区三区激情| 永久免费看mv网站入口78| 成人香蕉社区| 国产高清在线不卡| 污污视频在线免费观看| 亚洲欧洲成人自拍| 影音先锋人妻啪啪av资源网站| 欧美一区一区| 日本一区二区不卡| 天堂在线网站| 亚洲女人****多毛耸耸8| 国产真实乱人偷精品| 国产精伦一区二区三区| 国产精品女人网站| 天天搞夜夜操| 欧美日韩亚洲精品一区二区三区| 久久久精品少妇| 欧美手机视频| 久久综合给合久久狠狠色| 三级在线播放| 亚洲精品一区二区三区香蕉 | 九九视频免费在线观看| 欧美阿v一级看视频| 亚洲国产另类久久久精品极度| 国家队第一季免费高清在线观看| 自拍偷拍视频亚洲| 国产高潮在线| 一本色道久久88精品综合| 天堂网视频在线| 国产主播精品| 麻豆精品视频| 国产视频青青| 天天综合色天天综合色h| 国产免费看av| 成人福利免费在线观看| 97av在线影院| 欧美18一14sex性处hd| 99久久精品久久久久久清纯| 国产v亚洲v天堂无码久久久| 国产三线在线| 中文字幕日韩欧美| 黄色aaa大片| 国产成人一区二区精品非洲| 亚洲人成无码网站久久99热国产| 香蕉视频网站在线观看| 欧美不卡在线视频| 亚洲熟女综合色一区二区三区| 欧美日本不卡| 日本成人性视频| 精品麻豆一区二区三区| 日韩精品在线免费观看| 国产aⅴ爽av久久久久成人| 蜜桃免费网站一区二区三区| 国产一区 在线播放| av在线网址观看| 一区二区三区精品99久久| www.五月激情| 成人综合在线视频| 久久6免费视频| 国产免费av国片精品草莓男男| 日韩暖暖在线视频| china中国猛gary| 欧美日韩一区二区精品|