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

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

?? lcd.c.bak

?? LCD顯示模塊 帶多種畫圖方式
?? BAK
字號:
/**************************************************
 *           液晶顯示模塊
 *適用于KS0108系列液晶控制器,點陣數由用戶設定。
 *編寫:付愛喜
 **************************************************/

 /*---------------------------------------------------x---->
   |
   |
   |
   y
   |
   V                                                       */

#ifndef LCD_C
	#define	LCD_C
#endif

#include <reg52.h>
#include "..\include\ASCII.h"
#include "..\include\lcd.h"

/*********液晶命令定義************************/

#define	    DISP_ON    		0x3f	   	//顯示ON
#define	    DISP_OFF	   	0x3e	   	//顯示OFF
#define	    DISP_FIRST	 	0xc0	   	//顯示起始行定義,從第零行顯示
#define	    SETX 	      	0x40	   	//定位X方向指令(列)
#define	    SETY		  	0xb8	   	//定位Y方向指令(行)
#define	    LCD_BUSY   		0x80	    //LCM忙判斷位


/***********內部變量定義****************************/


sbit   LCD_RST = P2^5;					//復位線占用的引腳
static uchar code Findbit[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

/***************************************************
 *函數性質:私有
 *入口:無   出口:無
 *功能:短延時
 ***************************************************/
static void Delay5nop()
{
	//uchar i = 10;
	;//while (i--);
}


/**************************************************
 *函數性質:私有
 *入口:待選擇的端口號  出口;無
 *功能:選擇給定的液晶模塊
 **************************************************/
 static void SelectLcd(uchar cPart)
{
   if (cPart == SEL_LEFT)
   {
      LCD_CS1 = TRUE;
      LCD_CS2 = FALSE;
   }
   else
   {
     LCD_CS1 = FALSE;
     LCD_CS2 = TRUE;
   }
}



/***************************************************
 *函數性質:私有
 *入口:無  出口:忙標志
 *功能:判忙
 ***************************************************/
 static bool  LcdBusy()
{
   LCD_E  = FALSE;
   LCD_RS = FALSE;
   LCD_RW = TRUE;
   LCD_DATA = 0XFF;
   Delay5nop();
   LCD_E =  TRUE;
   Delay5nop();
//  while (LCD_DATA & LCD_BUSY);
   return TRUE;
}


/***************************************************
 *函數性質:私有
 *入口:待送入的命令。出口;無
 *功能:發送命令入液晶模塊
 ***************************************************/
static  void  WrComToLcd( uchar cCommand)
{
    LcdBusy();     //判忙
    LCD_E   = FALSE;
    LCD_RS  = FALSE;
    LCD_RW  = FALSE;
    LCD_DATA =cCommand;
    Delay5nop();
    LCD_E  = TRUE;
    Delay5nop();
    LCD_E  =FALSE;
}


/**************************************************
 *函數性質:私有
 *入口:待寫入的數據。  出口:無
 *功能:寫數據進LCD
 **************************************************/
static void WrDataLcd(uchar cData)
{
   LcdBusy();     //判忙
    LCD_E   = FALSE;
    LCD_RS  = TRUE;
    LCD_RW  = FALSE;
    LCD_DATA =cData;
    Delay5nop();
    LCD_E  = TRUE;
    Delay5nop();
    LCD_E  = FALSE;
}


/***************************************************
 *函數性質:私有
 *入口:待定位的X,Y坐標,  出口:無
 *功能:設定光標到指定的位置
 ***************************************************/
static void SetLcdCur(uchar x, uchar y)
{
   uchar x1;
   uchar y1;
   if (x >= MAX_XSIZE/2)
   {
      x1= x-MAX_XSIZE/2;
      SelectLcd(SEL_RIGHT);
   }
   else
   {
      x1= x;
      SelectLcd(SEL_LEFT);
   }
   y1 = y/8;
   WrComToLcd(SETX | x1);
   WrComToLcd(SETY | y1);
}


/***************************************************
 *函數性質:私有
 *入口:x,y坐標  出口:讀得的數據
 *功能:從LCD里讀出一個字節的數據
 ***************************************************/
 static uchar  ReadLcdByte(uchar x, uchar y)
{
   uchar  cbyte;

   SetLcdCur(x,y);
   LCD_DATA  = 0xff;
   LCD_E     = FALSE;
   LCD_RS    = TRUE;
   LCD_RW    = TRUE;
   Delay5nop();
   LCD_E     = TRUE;
   Delay5nop();//延時必須足夠長
   cbyte     =  LCD_DATA;//假讀一次數據。
   LCD_E     = FALSE;

   SetLcdCur(x,y);
   LCD_DATA  = 0xff;
   LCD_E     = FALSE;
   LCD_RS    = TRUE;
   LCD_RW    = TRUE;
   Delay5nop();
   LCD_E     = TRUE;
   Delay5nop();
   cbyte     =  LCD_DATA;//第二次讀的才是真正的數據。
   LCD_E     = FALSE;
   return cbyte;
}


/*************************************************
 *函數性質:私有
 *入口:指定的X,Y坐標  出口:無
 *功能:在指定的X,Y坐處畫一點
 *************************************************/
 static void LcdDrawPoint(uchar x, uchar y, uchar Color)
{
   uchar temp;
   uchar cbyte;

   cbyte = Findbit[ y%8];
   temp=ReadLcdByte(x,y);
   if (Color == WHITE)
   {
     cbyte  = ~cbyte;
     temp  &= cbyte;
   }
   else
   {
     temp |=cbyte;
   }
   SetLcdCur(x,y);
   WrDataLcd(temp);
}


/**********************************************
 *函數性質:公共
 *入口:無   出口:無
 *功能:清屏
 **********************************************/
 void LCD_LcdClr()
{
   uchar i;
   uchar j;
   for (j=0; j < MAX_YSIZE; j+=8)
   {
      for (i=0; i < MAX_XSIZE; i++)
      {
         SetLcdCur(i,j);
         WrDataLcd(0);
      }
   }
}




/**********************************************
 *函數性質:公共
 *入口:無,出口:無
 *功能:關閉液晶端口。
 **********************************************/
 void LCD_DisbLcdSel()
{
   LCD_CS1 = TRUE;
   LCD_CS2 = TRUE;
}


/******************************************************
 *函數性質:公共
 *入口:給定的坐標及待顯示的數據樣式。出口:無
 *功能:按給定的坐標在屏幕上顯示圖片,同時,圖片
 *具有反白及圖片隱藏功能,圖片的寬度及高度在字模的頭兩個字節里。
 ******************************************************/
void LCD_lcdDisp(uchar *cCode, uchar x, uchar y , uchar color)
{
   uchar i;
   uchar idata temp_x,bmpwidth,bmphigh;
   bmpwidth = *cCode++;      //從字模里取出圖片的高度及寬度
   bmphigh  = (*cCode)/8;
   cCode++;
   temp_x = x;
   while (bmphigh--)
   {
      x=temp_x;
      for (i=0; i < bmpwidth; i++)
      {
         SetLcdCur(x,y);
         if (color == WHITE)
         {
            WrDataLcd(~(*cCode));//反色顯示
         }
         else if (color == BLACK)
         {
            WrDataLcd(*cCode); //正常顯示
         }
         else if (color == HIDE)
         {
           WrDataLcd(0); //隱藏當前顯示的圖片。
         }
         cCode++;
         x++;
      }
      y+=8;
   }
   LCD_DisbLcdSel();                 //在每一次寫入LCD后關閉片選,是為了別的操作不影響液晶顯示。
}


/**********************************************
 *函數性質:公共
 *入口:起始點的X,Y坐標及長度,方向,出口:無
 *功能:從給定的起始點開始,按給定的長度及方向
 *劃一直線。不支持斜線,劃線方向以X、Y的增量方向
 *為基準。
 **********************************************/
 void LCD_DrawLine(uchar start_x,uchar start_y,uchar Line_Len,
                   uchar Flag,uchar Color)
{
    while (Line_Len--)
    {
       LcdDrawPoint(start_x,start_y,Color);
       if (Flag == X_FLAG)
       {
          start_x++;
       }
       else
       {
         start_y++;
       }
    }
    LCD_DisbLcdSel();
}


/******************************************************
 *函數性質:公共
 *入口:對應的ASCII碼字符及坐標、顏色(是否要反色顯示)
 *出口:無
 *功能:在給定的坐標顯示ASCII字符串。
 ******************************************************/
 void LCD_LcdDispASCII(uchar *Ascii, uchar x,uchar y,uchar color_char)
{
   uchar temp;
   uchar i=0;
   while(*(Ascii+i) != '\0')
   {
      temp=*(Ascii+i)-32;//將ASCII轉換成實際值"!"的ASCII為33。
      if (i == color_char || color_char == ALL_WHITE)  //當前的字符需要反色顯示
      {
         LCD_lcdDisp(cAscii+temp*ASCII_SIZE,x,y,WHITE);
      }
      else
      {
         LCD_lcdDisp(cAscii+temp*ASCII_SIZE,x,y,BLACK);
      }
      x+=ASCII_WIDTH;
      i++;
   }
}



/*
 *函數性質:公共
 *入口:無
 *出口:無
 *功能:初始化液晶
 */
void LCD_LcdIni()
{
   SelectLcd(SEL_LEFT);
   WrComToLcd(DISP_OFF);
   WrComToLcd(DISP_ON);
   WrComToLcd(DISP_FIRST);

   SelectLcd(SEL_RIGHT);
   WrComToLcd(DISP_OFF);
   WrComToLcd(DISP_ON);
   WrComToLcd(DISP_FIRST);
   LCD_LcdClr();
   LCD_DisbLcdSel();
}


/**************************************************************
 *函數性質:公共
 *入口:無,  出口:無
 *功能:開啟液晶背光
 **************************************************************/
 void LCD_OpenLED()
{
   LED_CTL  = FALSE;
}


/**************************************************************
 *函數性質:公共
 *入口:無   出口:無
 *功能:關閉液晶背光。
 **************************************************************/
 void LCD_CloseLED()
{
	LED_CTL = TRUE;
}


/*
 *函數性質:公共
 *入口:無
 *出口:無
 *功能:復位液晶。
 */
void LCD_Rst(void)
{
	uint i = 0xffff;
	LCD_RST = FALSE;
	while (i--);
	LCD_RST = TRUE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区中文字幕精品精品| 麻豆极品一区二区三区| 久久国产剧场电影| 欧美在线观看禁18| 国产欧美1区2区3区| 精品亚洲国内自在自线福利| 91精品黄色片免费大全| 欧美高清激情brazzers| 91麻豆精品国产91久久久资源速度| 中文成人av在线| 国产露脸91国语对白| 欧美变态口味重另类| 日本欧美一区二区三区乱码| 欧美日韩极品在线观看一区| 亚洲人精品一区| 91亚洲大成网污www| 国产精品美日韩| 白白色 亚洲乱淫| 国产精品久久久久国产精品日日| 国产成人h网站| 国产精品福利电影一区二区三区四区| 毛片一区二区三区| 国产主播一区二区| 日韩欧美的一区| 麻豆成人久久精品二区三区红| 在线看国产一区| 中文字幕乱码日本亚洲一区二区| 激情五月婷婷综合| 欧美高清在线一区二区| 国产91富婆露脸刺激对白| 久久久不卡网国产精品一区| 国产成都精品91一区二区三| 国产精品污网站| 一本到一区二区三区| 欧洲av一区二区嗯嗯嗯啊| 亚洲一区二区高清| 久久er精品视频| 欧美三级乱人伦电影| 日韩综合在线视频| 欧美va在线播放| zzijzzij亚洲日本少妇熟睡| 亚洲综合图片区| 欧美日本精品一区二区三区| 蜜臀国产一区二区三区在线播放| 精品成人免费观看| 成人午夜av影视| 亚洲精品中文在线影院| 欧美精品久久一区| 精品一区二区三区av| 国产精品另类一区| 老司机免费视频一区二区三区| 日韩一级二级三级精品视频| 午夜精品免费在线| 精品国产免费久久| 色综合久久久久久久久久久| 亚洲444eee在线观看| 欧美电影在哪看比较好| 国产一区二区精品在线观看| 亚洲人成人一区二区在线观看| 在线电影一区二区三区| 国产精品一区二区不卡| 一区二区三区色| 日韩一区二区在线看片| 久久91精品国产91久久小草| 国产日产亚洲精品系列| 成人黄色电影在线 | 欧美日韩国产高清一区二区三区 | 国产99久久久国产精品潘金 | 91色乱码一区二区三区| 麻豆精品精品国产自在97香蕉| 国产精品午夜春色av| 欧美日韩夫妻久久| 午夜精品福利视频网站| 国产目拍亚洲精品99久久精品| 欧美日韩国产高清一区| 99视频精品在线| 久久国产人妖系列| 亚洲国产精品麻豆| 亚洲精品一区二区三区在线观看| 色噜噜狠狠色综合中国| 国产一区二区看久久| 天使萌一区二区三区免费观看| 亚洲天堂福利av| 欧美经典一区二区| 国产精品综合网| 亚洲免费观看高清| 国产精品视频观看| 久久日韩粉嫩一区二区三区| 91精品国产美女浴室洗澡无遮挡| 欧美专区日韩专区| 99v久久综合狠狠综合久久| 韩国午夜理伦三级不卡影院| 五月婷婷综合在线| 中文字幕一区在线观看视频| 欧美午夜电影网| 在线一区二区三区四区| www.在线成人| 国产成人激情av| 国产伦精一区二区三区| 免费看日韩精品| 奇米综合一区二区三区精品视频| 亚洲一区二区三区四区不卡| 日韩欧美国产成人一区二区| 成人少妇影院yyyy| 麻豆精品久久久| 日本va欧美va欧美va精品| 日韩电影在线免费观看| 亚洲成人av一区二区三区| 亚洲综合在线电影| 91精品国产综合久久精品麻豆| 风间由美一区二区三区在线观看| 国产综合色在线| 国产在线播放一区| 国产精品一区二区x88av| 欧美在线小视频| 久久这里只精品最新地址| 亚洲综合自拍偷拍| 国产在线播放一区| 欧美日韩精品一区二区在线播放 | 粉嫩欧美一区二区三区高清影视| 91在线你懂得| 精品sm在线观看| 亚洲国产精品影院| youjizz国产精品| 欧美tickling网站挠脚心| 亚洲精品视频在线观看网站| 久久国产精品99久久人人澡| 91福利区一区二区三区| 久久精品欧美一区二区三区不卡| 一区二区久久久| 成人福利视频网站| 欧美va在线播放| 视频在线在亚洲| 色综合亚洲欧洲| 欧美国产一区二区| 久久99精品久久久久久久久久久久 | 国产精品久久影院| 久久国产精品第一页| 欧美日韩免费观看一区三区| 欧美国产一区在线| 国产在线播放一区| 3751色影院一区二区三区| 亚洲乱码精品一二三四区日韩在线 | 中文字幕精品一区| 久久爱www久久做| 91精品国产综合久久蜜臀| 综合网在线视频| 成人一区二区三区在线观看| 日韩精品资源二区在线| 日本女人一区二区三区| 日韩精品最新网址| 美国欧美日韩国产在线播放| 欧美精品123区| 亚洲国产精品一区二区尤物区| 91麻豆国产在线观看| 日韩美女啊v在线免费观看| 高清不卡一二三区| 国产精品色婷婷| 丁香婷婷综合激情五月色| 国产亚洲一二三区| 国产成人综合网站| 久久久久国产精品麻豆ai换脸| 激情综合色综合久久| 欧美精品一区二区三区高清aⅴ| 青草av.久久免费一区| 日韩午夜激情视频| 韩国女主播一区| 久久精品一二三| 成人午夜免费av| 成人免费一区二区三区在线观看| av电影在线观看一区| 亚洲三级小视频| 欧美午夜影院一区| 日韩电影免费在线| 欧美不卡123| 丁香亚洲综合激情啪啪综合| 国产欧美一区二区三区在线老狼| 成人午夜av电影| 亚洲视频在线观看三级| 欧洲精品在线观看| 青椒成人免费视频| 久久精品视频免费| 成人97人人超碰人人99| 亚洲精品国产精品乱码不99| 欧美视频中文一区二区三区在线观看| 亚洲图片自拍偷拍| 精品久久一区二区三区| 国产成人亚洲综合a∨猫咪| 中文字幕视频一区| 69堂精品视频| 高清shemale亚洲人妖| 亚洲综合在线免费观看| 日韩精品一区二区三区视频播放| 国产精品主播直播| 亚洲免费色视频| 日韩免费观看2025年上映的电影| 国产夫妻精品视频| 亚洲午夜精品一区二区三区他趣| 亚洲精品在线一区二区| 91美女蜜桃在线|