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

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

?? lcd.c

?? 利用KEIL C51語言編寫的T6963C液晶驅動程序,頭文件有具體的連接定義和漢字字庫,只要硬件連接好,一定可以運行,不象有人純粹為了下載別人的代碼
?? C
字號:
/*----------------------------------------------------------------------------------------*/
//240*128液晶顯示驅動程序
//控制器件為:AT89S52 
//T6963C接口:直接訪問形式
//程序設計:盧印舉
/*----------------------------------------------------------------------------------------*/
#include <reg51.h>
#include <math.h>
#include <hzk.c>

//信號管腳定義(全局變量)(注意:因為液晶數據口接P0,直接訪問方式)
unsigned char xdata Lcd_Cmd_Reg _at_ 0xfdff;    // C/D-P2.0   CE-P2.1  p2.0=1 p2.1=0
unsigned char xdata Lcd_Data_Reg _at_ 0xfcff;   // C/D-P2.0   CE-P2.1  p2.0=0 p2.1=0

//以8*8字符計算,顯示屏橫向、縱向可以顯示的點陣坐標;左、上、右、下以及當前的位置坐標
#define LCD_LEFT 0
#define LCD_TOP  0
#define LCD_RIGHT 239
#define LCD_BOTTOM 127
unsigned char data Lcd_CurrentX,Lcd_CurrentY,Lcd_Mask;

unsigned char data LeftMask[]={0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01};
unsigned char data RightMask[]={0xff,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe};

/*----------------------------------------------------------------------------------------*/
//延時子程序
/*----------------------------------------------------------------------------------------*/
void Lcddelay(unsigned int t)  
{  unsigned int i,j;
   for(i=0;i<t;i++)
      for(j=0;j<10;j++)
         ;
}

void lcdwc(unsigned char cmdcode)
{  while((Lcd_Cmd_Reg & 0x3) != 0x3) ;  //當Lcd_Cmd_Reg低兩位不同時為1
      Lcd_Cmd_Reg = cmdcode;
}

void lcdwc2(unsigned char cmdcode,unsigned char cmddata)
{  while((Lcd_Cmd_Reg & 0x3) != 0x3) ;
      Lcd_Data_Reg = cmddata;
   while((Lcd_Cmd_Reg & 0x3) != 0x3) ;
      Lcd_Cmd_Reg = cmdcode;
}

void lcdwc3(unsigned char cmdcode,unsigned char cmddata,unsigned char cmddata2)
{  while((Lcd_Cmd_Reg & 0x3) != 0x3) ;
      Lcd_Data_Reg = cmddata;
   while((Lcd_Cmd_Reg & 0x3) != 0x3) ;
      Lcd_Data_Reg = cmddata2;
   while((Lcd_Cmd_Reg & 0x3) != 0x3) ;
      Lcd_Cmd_Reg = cmdcode;
}

void lcdwd(unsigned char dispdata)           //寫數據
{  while((Lcd_Cmd_Reg & 0x3) != 0x3) ;
      Lcd_Data_Reg = dispdata;
   while((Lcd_Cmd_Reg & 0x3) != 0x3) ;
      Lcd_Cmd_Reg = 0xc0;
}

unsigned char lcdrdata(void)                 //讀數據
{  while((Lcd_Cmd_Reg & 0x3) != 0x3) ;
      Lcd_Cmd_Reg = 0xc5;
   while((Lcd_Cmd_Reg & 0x3) != 0x3) ;
      return Lcd_Data_Reg;
}

void lcdpos(void)                            //內部寫數指針定位
{  unsigned int CurrentAddress;
   CurrentAddress = Lcd_CurrentY * 30 ;
   CurrentAddress += Lcd_CurrentX/8;
   lcdwc3(0x24,CurrentAddress & 0xff,CurrentAddress/256);
}

unsigned char lcdrd(void)                    //讀數據
{  lcdpos();
   return lcdrdata();
}

void lcdcursornextbyte(void)  //當前坐標移動到下一個點
{  Lcd_CurrentX+=8;
   if(Lcd_CurrentX > LCD_RIGHT)
   {  Lcd_CurrentX = LCD_LEFT;
      Lcd_CurrentY++;
      if(Lcd_CurrentY > LCD_BOTTOM) Lcd_CurrentY = LCD_TOP;
   }
}

void displaybyte(unsigned char dispdata)
{  lcdpos();
   if(Lcd_Mask == 0xff) lcdwd(dispdata);
   else
   {  unsigned char d=lcdrd();
      d&=(~Lcd_Mask);
      d|=(dispdata & Lcd_Mask);
      lcdwd(d);
   }
   lcdcursornextbyte();
}

void Fill_Scr(unsigned char FillData)    //LCD整屏顯示
{  Lcd_Mask=0xff;
   for(Lcd_CurrentX = LCD_LEFT,Lcd_CurrentY = LCD_TOP;1;)
   {  displaybyte(FillData);
      if((Lcd_CurrentX == LCD_LEFT) && (Lcd_CurrentY == LCD_TOP)) break;
   }
}

void lcdreset()             //初始化LCD屏
{  lcdwc(0x80);
   lcdwc(0x98);
   lcdwc3(0x42,0,0);
   lcdwc3(0x43,30,0);
}

void displaychinesechardot(unsigned int Index);
void displayenglishchardot(unsigned int Index);
void putsizeimage(unsigned char XSIZE,unsigned char YSIZE,unsigned char code *s);

void putchar(unsigned int uChar)  //信息顯示
{  unsigned int i;
   if(uChar<128)
      for(i=0;i != ENGLISHCHARNUMBER;i++)
      {  if(uChar ==EnglishCode[i])
         {  displayenglishchardot(i);
            break;
         }
      }
   else
      for(i=0;i != CHINESECHARNUMBER;i++)
      {  if(uChar ==ChineseCode[i])
         {  displaychinesechardot(i);
            break;
         }
      }
}

void put_str(unsigned char code *s) //顯示漢字或英文字符
{  unsigned int i;
   for (;*s != 0;s++)
   {  i=*s;
      if(*s > 127)
      {  s++;
         i=i*256+*s;
      }
      if(i == '\n')
      {  Lcd_CurrentX = LCD_LEFT;
         if(Lcd_CurrentY > LCD_BOTTOM-CHINESECHARSIZE+1)
            Lcd_CurrentY=LCD_TOP;
         else
            Lcd_CurrentY+=CHINESECHARSIZE;
      }
      putchar(i);
   }
}

void put_str_xy(unsigned char x,unsigned char y,unsigned char code *s)//顯示漢字或英文字符
{  Lcd_CurrentX=x;
   Lcd_CurrentY=y;
   put_str(s);
}

void displaychinesechardot(unsigned int Index)
{  unsigned char code *s;
   s=ChineseCharDot+Index*CHINESECHARDOTSIZE;
   if(Lcd_CurrentX > LCD_RIGHT-CHINESECHARSIZE+1)
   {   Lcd_CurrentX = LCD_LEFT;
       Lcd_CurrentY+=CHINESECHARSIZE;
       if(Lcd_CurrentY > LCD_BOTTOM-CHINESECHARSIZE+1) Lcd_CurrentY=LCD_TOP;
   }
   putsizeimage(CHINESECHARSIZE,CHINESECHARSIZE,s);
}

void displayenglishchardot(unsigned int Index)
{  unsigned char code *s;
   s=EnglishCharDot+Index*ENGLISHCHARDOTSIZE;
   if(Lcd_CurrentX > LCD_RIGHT-ENGLISHCHARSIZE+1)
   {  Lcd_CurrentX = LCD_LEFT;
      Lcd_CurrentY+=CHINESECHARSIZE;
      if(Lcd_CurrentY > LCD_BOTTOM-CHINESECHARSIZE+1)
         Lcd_CurrentY=LCD_TOP;
   }
   putsizeimage(ENGLISHCHARSIZE,CHINESECHARSIZE,s);
}

void point(unsigned char bitdata)
{  if(bitdata==0)
      bitdata=0xf0+(0x7-(Lcd_CurrentX & 0x7));
   else
      bitdata=0xf8+(0x7-(Lcd_CurrentX & 0x7));
   while((Lcd_Cmd_Reg & 0x3) != 0x3) ;
      Lcd_Cmd_Reg = bitdata;
}

/*----------------------------------------------------------------------------------------*/
//繪制點子程序,最后一位為像素大小
/*----------------------------------------------------------------------------------------*/
void pointxy(unsigned char x,unsigned char y,unsigned char bitdata)      
{  Lcd_CurrentX=x;
   Lcd_CurrentY=y;
   lcdpos();
   point(bitdata);
}

/*----------------------------------------------------------------------------------------*/
//畫線子程序:最后一位為線條的像素寬度
/*----------------------------------------------------------------------------------------*/
void linexy(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char bitdata)
{                                                       //線
   unsigned char i,k;
   if(abs(y1-y0)>abs(x1-x0))
   {  if(y1>y0)
         for(i=y0;i<=y1;i++)
         {  if(x1>x0)
            {  k=x1-x0;
               k*=(i-y0);
               k/=y1-y0;
               pointxy(x0+k,i,bitdata);
            }
            else  //x1<x0
            {  k=x0-x1;
               k*=(i-y0);
               k/=y1-y0;
               pointxy(x0-k,i,bitdata);
            }
         }
      else        //y1<y0
         for(i=y0;i>=y1;i--)
         {  if(x1>x0)
            {  k=x1-x0;
               k*=(y0-i);
               k/=y0-y1;
               pointxy(x0+k,i,bitdata);
            }
            else   //x1<x0
            {  k=x0-x1;
               k*=(y0-i);
               k/=y0-y1;
               pointxy(x0-k,i,bitdata);
            }
         }
   }
   else            //abs(y1-y0)<abs(x1-x0)
   {  if(x1>x0)
         for(i=x0;i<=x1;i++)
         {  if(y1==y0)
               pointxy(i,y0,bitdata);
            else if(y1>y0)
            {  k=y1-y0;
               k*=(i-x0);
               k/=x1-x0;
               pointxy(i,y0+k,bitdata);
            }
            else     //y1<y0
            {  k=y0-y1;
               k*=(i-x0);
               k/=x1-x0;
               pointxy(i,y0-k,bitdata);
            }
         }
      else
         for(i=x0;i>=x1;i--)
         {  if(y1==y0)
               pointxy(i,y0,bitdata);
            else if(y1>y0)
            {  k=y1-y0;
               k*=(x0-i);
               k/=x0-x1;
               pointxy(i,y0+k,bitdata);
            }
            else     //y1<y0
            {  k=y0-y1;
               k*=(x0-i);
               k/=x0-x1;
               pointxy(i,y0-k,bitdata);
            }
       }
  }
}

void rect(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char bitdata)
{                                                      //矩形
   linexy(x0,y0,x0,y1,bitdata);
   linexy(x0,y0,x1,y0,bitdata);
   linexy(x0,y1,x1,y1,bitdata);
   linexy(x1,y0,x1,y1,bitdata);
}

void putsizeimage(unsigned char XSIZE,unsigned char YSIZE,unsigned char code *s)
{  unsigned char k,lx,ly,a1,a2,x;
   Lcddelay(1000);
   k=Lcd_CurrentX&0X7;
   XSIZE+=k;
   x=Lcd_CurrentX;
   for(ly=0;ly<YSIZE;ly++,Lcd_CurrentY++)
      for(Lcd_CurrentX=x,lx=k,a1=0;lx<XSIZE;s++)
      {  unsigned char p;
         a2=*s;
         for(p=0;p<k;p++)
         {  a2>>=1;
            if((a1&0x1)==1) a2+=0x80;
            a1>>=1;
         }
         lcdpos();
         p=XSIZE&0X7;
         if(lx<8)
         {  if(XSIZE<8)
            {  Lcd_Mask=LeftMask[k] & RightMask[p];
               a1=lcdrd();
               a1&=(~Lcd_Mask);
               a1|=(a2 & Lcd_Mask);
               lcdwd(a1);
               lx=XSIZE;
                Lcd_CurrentX+=XSIZE-k;
            }
            else   //XSIZE>=8
            {  Lcd_Mask=LeftMask[k];
               a1=lcdrd();
               a1&=(~Lcd_Mask);
               a1|=(a2 & Lcd_Mask);
               lcdwd(a1);
               lx+=8-k;
               Lcd_CurrentX+=8-k;
            }
         }
         else if(lx>=XSIZE-p)  //lx>=8
         {  if(k>=p)
            {  s--;
               a1=*s;
               a2=0;
               for(p=0;p<k;p++)
               {  a2>>=1;
                  if((a1&0x1)==1) a2+=0x80;
                     a1>>=1;
               }
               p=XSIZE&0X7;
            }
            Lcd_Mask=RightMask[p];
            a1=lcdrd();
            a1&=(~Lcd_Mask);
            a1|=(a2 & Lcd_Mask);
            lcdwd(a1);
            lx+=p;
            Lcd_CurrentX+=p;
         }
         else    //lx>=8 and lx<XSIZE-p
         {  lcdwd(a2);
            lx+=8;
            Lcd_CurrentX+=8;
         }
         a1=*s;
      }
  Lcd_CurrentY-=YSIZE;
}

void main()
{ 
   lcdreset();
   Fill_Scr(0x55);            //顯示豎條
   Lcddelay(6000);            //系統延時
   Fill_Scr(0xff);            //顯示黑屏
   Lcddelay(6000);
//   put_str_xy(0,0,"創新科技檢測技術有限公司,聯系電話0512-86163888");//顯示漢字
   put_str("創新科技檢測技術有限公司,聯系電話0512-86163888");
   Fill_Scr(0x00);
//     
   rect(12,12,88,88,6);
   Lcddelay(5000);
   //Fill_Scr(0xff);
   //rect(12,12,88,120,0);
   lcdreset(); 
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜视频久久久久久| 国产精品久久毛片| 欧美高清一级片在线| 99re亚洲国产精品| jiyouzz国产精品久久| jvid福利写真一区二区三区| 成人性视频网站| av爱爱亚洲一区| 91福利国产精品| 91精品婷婷国产综合久久竹菊| 在线成人午夜影院| 久久亚洲捆绑美女| 国产精品久久久久久久久免费桃花 | 亚洲综合视频在线| 午夜日韩在线观看| 久久精工是国产品牌吗| 国产精品1区2区| 91视频国产资源| 制服.丝袜.亚洲.中文.综合| 日韩欧美色电影| 中文字幕一区日韩精品欧美| 一级中文字幕一区二区| 婷婷中文字幕一区三区| 国产精品综合在线视频| 日韩欧美中文一区二区| 精品国产三级电影在线观看| 中文在线资源观看网站视频免费不卡| 亚洲丝袜精品丝袜在线| 日本在线不卡视频一二三区| 国产乱国产乱300精品| 色婷婷激情久久| 日韩欧美资源站| 亚洲天堂福利av| 免费观看成人av| 99久久国产综合精品色伊| 欧美一区二区三区在线电影| 欧美国产亚洲另类动漫| 亚洲电影第三页| 成人激情视频网站| 在线观看91精品国产麻豆| 亚洲国产精品国自产拍av| 亚洲激情自拍视频| 国产剧情一区二区| 欧美日韩不卡一区二区| 一区在线中文字幕| 久久精工是国产品牌吗| 欧美专区日韩专区| 国产欧美视频在线观看| 日产国产欧美视频一区精品 | 国产视频一区二区在线| 亚洲狠狠爱一区二区三区| 国产成人一区二区精品非洲| 91麻豆精品国产无毒不卡在线观看| 国产日产欧产精品推荐色| 秋霞午夜av一区二区三区 | 一区二区国产视频| 丰满放荡岳乱妇91ww| 精品日韩成人av| 三级在线观看一区二区| 欧美优质美女网站| 蜜臀av国产精品久久久久| 日本韩国一区二区| 中文字幕一区视频| 99久久国产综合精品色伊| 久久久国产精品午夜一区ai换脸| 男男gaygay亚洲| 欧美三电影在线| 亚洲综合男人的天堂| 99久久久免费精品国产一区二区| 久久精品视频一区二区| 韩国成人精品a∨在线观看| 91精品国产综合久久久久久久| 亚洲一区二区三区四区中文字幕 | 欧美日韩精品一区二区三区四区 | 中文字幕一区二| 丰满白嫩尤物一区二区| 国产精品天干天干在线综合| 麻豆国产精品视频| 久久夜色精品国产欧美乱极品| 久久99热国产| 久久综合九色综合97婷婷| 国产精品资源在线观看| 精品国产91乱码一区二区三区| 麻豆精品视频在线观看视频| 日韩一级高清毛片| 国产一区二区三区最好精华液| 精品国产一区二区精华| 国产成人精品影院| 亚洲欧美激情在线| 欧美日韩日日夜夜| 麻豆91免费观看| 日本一区二区三区高清不卡| 97se亚洲国产综合自在线观| 亚洲资源在线观看| 在线综合视频播放| 国产成人精品三级| 亚洲欧美日韩国产一区二区三区 | 国产精品系列在线播放| 国产免费观看久久| 91激情在线视频| 日日夜夜免费精品| 国产农村妇女毛片精品久久麻豆| 99精品视频一区二区| 亚洲成人免费在线| 久久精品视频一区| 欧美亚洲一区二区在线| 捆绑调教一区二区三区| 中文字幕在线一区| 在线成人午夜影院| 97se亚洲国产综合自在线不卡| 亚洲成av人影院在线观看网| 精品国产精品网麻豆系列| 99亚偷拍自图区亚洲| 青娱乐精品视频| 国产精品二区一区二区aⅴ污介绍| 欧美亚洲愉拍一区二区| 国产一区二区三区在线观看免费| 一区二区三区在线视频观看58| 精品日本一线二线三线不卡| 色综合欧美在线| 国产一区二区美女| 香蕉影视欧美成人| 国产精品成人一区二区艾草| 欧美一区二区在线免费观看| 91免费精品国自产拍在线不卡| 国产在线精品一区二区不卡了| 亚洲一区在线看| 综合欧美亚洲日本| 国产天堂亚洲国产碰碰| 欧美一区二区大片| 欧美三级中文字幕在线观看| av在线播放一区二区三区| 国内精品视频666| 日韩经典一区二区| 亚洲电影在线播放| 亚洲精品免费视频| 国产精品国产三级国产普通话三级 | 97aⅴ精品视频一二三区| 精彩视频一区二区| 久久精品免费看| 日日欢夜夜爽一区| 午夜精品一区在线观看| 一区二区三区日韩| 亚洲狠狠丁香婷婷综合久久久| 欧美激情一区二区三区不卡| 久久精品一区八戒影视| 亚洲精品一区在线观看| 日韩精品一区二区三区三区免费| 欧美午夜在线观看| 精品视频资源站| 在线观看亚洲成人| 欧洲视频一区二区| 欧美日韩精品是欧美日韩精品| 欧美在线视频全部完| 色婷婷综合久久久中文字幕| 91免费观看视频| 色视频一区二区| 国产亚洲成av人在线观看导航 | 日本一区二区成人在线| 国产人伦精品一区二区| 日本一区二区成人| 亚洲欧洲制服丝袜| 亚洲成人一二三| 免费观看在线综合| 国产成人亚洲综合a∨婷婷图片| 国产一区二区不卡在线| 国产成人高清视频| 99久久99久久精品免费观看 | 美女视频一区二区三区| 美女一区二区三区在线观看| 国产在线精品一区二区三区不卡| 国产成人自拍网| 色94色欧美sute亚洲线路二| 欧美视频在线一区二区三区 | 国产精品资源网| av福利精品导航| 在线观看免费成人| 日韩欧美国产三级| 中文字幕电影一区| 一区二区三区电影在线播| 日本美女视频一区二区| 国产成+人+日韩+欧美+亚洲| 91网站最新地址| 91精选在线观看| 国产精品欧美久久久久无广告| 亚洲欧美日韩国产综合| 蜜臀av国产精品久久久久| av电影天堂一区二区在线| 91精品国产福利| 136国产福利精品导航| 久久综合综合久久综合| 91啦中文在线观看| 久久久久久久久岛国免费| 亚洲一级片在线观看| 懂色一区二区三区免费观看| 欧美日韩mp4| 日韩一区在线播放| 久久99精品一区二区三区| 欧美性做爰猛烈叫床潮| 中文字幕精品三区|