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

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

?? lcm12864zk.c

?? ST7920液晶顯示控制器的驅動編程
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
;************************************************************************************************************
;*									  湖南華盛科技有限公司
;*                                     	                                  研    發    部
;*
;*                                 	                           http://www.unistrong.com
;*
;*--------------------------------------------- 文件信息 ----------------------------------------------------                                      
;*
;* 文件名稱 :Lcm12864zk.c
;* 文件功能 :LCM驅動程序 
;* 補充說明 : 
;*-------------------------------------------- 最新版本信息 -------------------------------------------------
;* 修改作者 : 研    發    部
;* 修改日期 : 2005/11/29
;* 版本聲明 : V1.0.1
;************************************************************************************************************
;*/
/****和硬件總線相關定義********/
#define E  0x00000100   /*E腳對應P2.8*/
#define RW 0x00000200 /*EW腳對應P2.9*/
#define RS 0x00000400 /*RS腳對應P2.10*/
#define BG 0x00000001 /*背光對應P2.0*/
#define PSB   0x00020000/*PSB腳對應P0.17*/
#define RST   0x00008000/*RST腳對應P0.15*/
#define NC    0x00010000/*NC腳對應P0.16*/
#define DATA_PORTA 0x000000fe/*D0_6對應P2.7_P2.1*/
#define DATA_PORTB 0x00100000/*D7對應P1.20*/  
#define  _GLOBAL_LCD  

#include "INCLUDES.h"
/*
*************************************************************************************************************
- 函數名稱 : Delayus(uint8 t)
- 函數說明 : 延時函數
- 輸入參數 : uint8 t
- 輸出參數 : 無
*************************************************************************************************************
*/
void Delay_Lcd(uint8 t)/*t 為1是1us*/
{
    uint8 i,j;
    for (i=0;i<t;i++)
       for (j=0;j<16;j++);
	
}
/*
*************************************************************************************************************
*************************************************************************************************************
- 函數名稱 : Data_Shift(uint8 data,uint8 bit_hight,uint8 bit_hight)
- 函數說明 : 數據調整
- 輸入參數 : uint8 data,uint8 bit_hight,uint8 bit_hight
- 輸出參數 : uint8 temp
*************************************************************************************************************
*/
uint8 Data_Shift(uint8 data,uint8 bit_right,uint8 bit_left)
{uint8 temp;
 uint8 left_pointer,right_pointer;
 temp=0;
 left_pointer=bit_left;
 right_pointer=bit_right;
 while(left_pointer!=right_pointer)
    {if(data&(0x01<<left_pointer))
         temp|=(0x80>>(7-right_pointer));
     if(data&(0x80>>(7-right_pointer)))
         temp|=(0x01<<left_pointer);
     left_pointer++;
     right_pointer--;
    } 
 return temp;
}
/*
*************************************************************************************************************
- 函數名稱 :  Write_command(Uchar CMD,Uchar bb)
- 函數說明 : LCM寫命令函數
- 輸入參數 : uint8 CMD   命令內容
-                          
- 輸出參數 : 無
*************************************************************************************************************
*/     
void Write_command(uint8 CMD)
{ int8 st;
   uint8 t=0x40;
   uint8 j=0x02;
   uint8 i;
   /*轉換數據格式*/
   for(i=0;i!=7;i++)
   {if((CMD&t)!=0)
   	st|=j;
     else
   	st&=(~j);
     t>>=1;
     j<<=1;
   }
   
   IO2CLR=RS;
   IO2CLR=RW;
   IO2SET=E;
/*送p1.20(最高位)*/
   if((CMD&0x80)!=0)
       IO1SET|=DATA_PORTB;/*p1.20置1*/
   else
   	IO1CLR|=DATA_PORTB;/*p1.20清0*/
 /*送低七位*/
   IO2SET|=(st&0xfe);
   IO2CLR=((~st)&0xfe);
   Delay_Lcd(20);
   IO2CLR=E;
   Delay_Lcd(100);/*100*/
}
/*
*************************************************************************************************************
- 函數名稱 :  Read_Data(uint8 row,uint8 line)
- 函數說明 : LCM讀數據函數
- 輸入參數 : uint8 row,uint8 line
-                          
- 輸出參數 : 
*************************************************************************************************************
*/
uint8 Read_Data(void)
{uint8 temp1,temp2;
 IO2DIR&=(~0x000000fe);/*改變管腳為輸入模式*/
 IO1DIR&=(~0x00100000);
 IO2SET=RS;
 IO2SET=RW;
 IO2SET=E;
 Delay_Lcd(25);
 temp1=IO2PIN;
 if(IO1PIN&0x00100000)
     temp2=1;
 else
     temp2=0;
 temp1=Data_Shift(temp1,7,1)>>1;
 temp1|=temp2;
 IO2CLR=E;
 IO1DIR|=0x00100000;/*還原LCD管腳模式*/
 IO2DIR|=0x000007ff;
 return temp1;
}
/*
*************************************************************************************************************
- 函數名稱 : Write_data(Uchar DATA)
- 函數說明 : LCM寫數據
- 輸入參數 : uint8 DATA  數據
- 輸出參數 : 無
*************************************************************************************************************
*/     
void Write_data(uint8 DATAs)
{   int8 st;
    uint8 t=0x40;
    uint8 j=0x02;
    uint8 i;
    /*轉換數據格式*/
   for(i=0;i!=7;i++)
   {if((DATAs&t)!=0)
   	st|=j;
     else
   	st&=(~j);
     t>>=1;
     j<<=1;
   }
     IO2SET=RS;
     IO2CLR=RW;
     IO2SET=E;
/*送p1.20(最高位)*/
   if((DATAs&0x80)!=0)
       IO1SET|=DATA_PORTB;/*p1.20置1*/
   else
   	IO1CLR|=DATA_PORTB;/*p1.20清0*/
 /*送低七位*/
   IO2SET|=(st&0xfe);
   IO2CLR=((~st)&0xfe);
   Delay_Lcd(20);
   IO2CLR=E;
   Delay_Lcd(100);/*100*/
}

     
/*
*************************************************************************************************************
- 函數名稱 : Lcd_init(void)
- 函數說明 : LCM初始化
- 輸入參數 : 無
- 輸出參數 : 無
*************************************************************************************************************
*/  
void Lcd_init(void)
{  
    Delay_Lcd(200);
    Write_command(0x30);/*設置為8位控制界面*/
    Write_command(0x30);
    Write_command(0x0C);/*開整體顯示*/
    Write_command(0x01);/*清顯示*/
    Write_command(0x06);/*初始化原點*/
}
/*
*************************************************************************************************************
- 函數名稱 : void Lcd_clr(void)
- 函數說明 : LCM清屏函數
- 輸入參數 : 無
- 輸出參數 : 無
*************************************************************************************************************
*/     
void Lcd_clr(void)
{ 
    Write_command(0x01);/*清顯示*/
    Write_command(0x06);/*初始化原點*/
    Delay_Lcd(200);/*200*/
} 

/*
*************************************************************************************************************
- 函數名稱 :uint8 Lcd_dispp(uint8 *ptr,uint8 row,uint8 line,uint8 byte_length)
- 函數說明 : 字符顯示函數
- 輸入參數 : *ptr  row  line   byte_length
- 輸出參數 :i(顯示的字節長度)
*************************************************************************************************************
*/   
uint8 Lcd_dispp(uint8 *ptr,uint8 row,uint8 line,uint8 byte_length)
{
  uint8 y,i,f,t;
  f=t=0;/*初次顯示標志*/
  switch(row)
     {case 1:{y=0x80+(--line);break;}
      case 2:{y=0x90+(--line);break;}
      case 3:{y=0x88+(--line);break;}
      case 4:{y=0x98+(--line);break;}
     }
 
  Write_command(y); /* 定位顯示起始地址*/
  for(i=0;i!=byte_length;)
  	{if(y>0x0a0) return(i-1);
  	     
  	 if(ptr[i]<0x80)/*ASCII顯示*/
  	      {
  	        if(f==0)
  	           {Write_data(ptr[i]); /*單個ASCII字符*/
  	            i++;
  	            f=1;
		  	    y++;
		  	   } 
		  	else 
		  	  {Write_data(ptr[i]); /*連續ASCII字符*/
		  	   i++;
		  	   f=0;
		  	  }
	      }
     else/*漢字顯示*/ 
           {
              if(f==1)/*上次是ASCII顯示且顯示單數個*/
        	     {
        	     f=0;
        	     if(y==0x88|y==0x98|y==0x90)
        	        {
         	          if(row==1)
         	              {row++;
		                   Write_command(0x90); 
			               y=0x90;
               	          }
                      else if(row==2)
               	          {row++;
		                   Write_command(0x88); 
		                   y=0x88;
               	           }
	                  else if(row==3)
	       	              {row++;
		                   Write_command(0x98); 
		                   y=0x98;
	       	              }
                    }
        	     Write_command(y);
		         Write_data(ptr[i]);
		         i++;
		         t=1;
		         y++;
		        }
            else if(t==0)/*第一個字符是漢字或新的漢字*/
		        {
		         Write_data(ptr[i]); /*輸出單個字符*/
		         i++;
		         t=1;
		         y++;
		        }
		    else/*第二次是漢字或上次是ASCII顯示的第二字節*/ 
		        {
		         Write_data(ptr[i]); /*輸出單個字符*/
		         i++;
		         t=0;
		        }
		   }
     if((y==0x88|y==0x98|y==0x90)&&t!=1&&f!=1)
         
         	{
         	if(row==1)
         	      {row++;
		        Write_command(0x90); 
			    y=0x90;
               	}
            else if(row==2)
               	{row++;
		         Write_command(0x88); 
		         y=0x88;
               	}
	        else if(row==3)
	       	{row++;
		     Write_command(0x98); 
		     y=0x98;
	       	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一二三区视频| 久久国产麻豆精品| 精品在线播放午夜| 91丨porny丨最新| 久久久久国产精品人| 一二三区精品福利视频| 国产成人精品一区二| 777xxx欧美| 亚洲va欧美va人人爽午夜| 丁香婷婷综合网| 精品国产sm最大网站| 午夜亚洲福利老司机| 一本大道久久a久久精二百| 久久久久国产免费免费| 久久精品国产精品青草| 欧美一区二区在线播放| 亚洲午夜影视影院在线观看| 91免费视频大全| 国产精品网站在线播放| 国产一区二区美女诱惑| 精品国产百合女同互慰| 极品少妇一区二区| 欧美精品丝袜中出| 成人深夜视频在线观看| 欧美妇女性影城| 亚洲另类在线视频| 国产**成人网毛片九色| 26uuuu精品一区二区| 秋霞成人午夜伦在线观看| 538在线一区二区精品国产| 亚洲一区二区三区四区在线免费观看 | 欧美精品精品一区| 亚洲综合在线视频| 欧美三级一区二区| 国产欧美日韩综合精品一区二区| 婷婷六月综合网| 8x8x8国产精品| 午夜久久久久久久久| 欧美日韩一区二区欧美激情 | 国产人妖乱国产精品人妖| 国内精品不卡在线| 国产亚洲欧洲997久久综合 | 欧美伦理视频网站| 婷婷综合五月天| 日韩欧美在线影院| 国产中文一区二区三区| 国产色产综合产在线视频| 成人黄页在线观看| 亚洲黄色av一区| 6080国产精品一区二区| 国产在线看一区| 亚洲欧洲成人精品av97| 欧美日韩一级二级三级| 久久99精品国产.久久久久久| 国产三级久久久| 色88888久久久久久影院按摩 | 国产91露脸合集magnet| 一区二区免费在线| 欧美老女人在线| 国产成人在线色| 亚洲第一二三四区| 欧美mv和日韩mv国产网站| 99久精品国产| 日本不卡123| 国产精品你懂的在线| 欧美人与z0zoxxxx视频| 国产精品综合二区| 亚洲午夜一区二区| 国产亚洲精品aa| 9191久久久久久久久久久| 国产黄人亚洲片| 亚洲第一激情av| 国产精品污www在线观看| 制服丝袜亚洲播放| 91在线免费看| 国产很黄免费观看久久| 婷婷综合久久一区二区三区| 国产精品你懂的在线| 欧美一区二区三区爱爱| 91片黄在线观看| 国产高清亚洲一区| 日本三级亚洲精品| 亚洲精品国产一区二区三区四区在线| 欧美精品一区男女天堂| 精品视频123区在线观看| 成人免费高清在线观看| 精品在线视频一区| 亚洲成人自拍网| 亚洲另类中文字| 国产精品区一区二区三区| 日韩一级二级三级| 欧美亚洲国产bt| 色就色 综合激情| 99精品国产一区二区三区不卡| 狠狠色丁香久久婷婷综合丁香| 天天av天天翘天天综合网色鬼国产| 国产精品国产馆在线真实露脸| 精品日韩成人av| 91麻豆精品国产自产在线| 日本二三区不卡| 91色porny在线视频| www.欧美亚洲| 成人高清视频在线观看| 懂色av噜噜一区二区三区av| 国产激情偷乱视频一区二区三区| 久久99精品国产麻豆婷婷洗澡| 青草国产精品久久久久久| 视频一区免费在线观看| 亚洲成av人片在线观看无码| 亚洲小说欧美激情另类| 亚洲成a人v欧美综合天堂下载| 亚洲一区二区偷拍精品| 亚洲电影一级黄| 偷窥少妇高潮呻吟av久久免费 | 亚洲黄色片在线观看| 亚洲另类中文字| 亚洲一区二区在线观看视频| 亚洲综合精品久久| 亚洲成人在线网站| 视频一区二区三区入口| 免费看日韩a级影片| 精品中文字幕一区二区| 国产电影一区二区三区| 成人毛片在线观看| 色婷婷国产精品| 欧美疯狂做受xxxx富婆| 欧美成va人片在线观看| 国产欧美精品一区二区三区四区| 欧美国产综合一区二区| 一区二区三区欧美在线观看| 亚洲电影中文字幕在线观看| 久久精品免费观看| 成人免费毛片片v| 欧美综合一区二区| 日韩一级片网址| 国产精品久久久久久久久免费相片| 亚洲人成在线播放网站岛国| 日韩成人精品在线观看| 成人美女视频在线观看18| 一本大道av一区二区在线播放| 欧美日韩免费视频| 精品理论电影在线观看| 亚洲婷婷在线视频| 日韩国产精品91| 成人av片在线观看| 欧美日本国产一区| 国产精品女人毛片| 日本午夜一本久久久综合| 福利一区福利二区| 欧美精品日日鲁夜夜添| 欧美国产欧美综合| 日韩高清不卡在线| 99久久久久久99| 欧美mv和日韩mv的网站| 一区二区三区欧美亚洲| 久久精品国产77777蜜臀| 99精品视频在线观看| 日韩欧美国产wwwww| 亚洲视频一区二区免费在线观看| 日本在线不卡视频一二三区| 成人午夜激情片| 日韩丝袜美女视频| 17c精品麻豆一区二区免费| 精品影院一区二区久久久| 91黄色激情网站| 亚洲国产岛国毛片在线| 六月丁香综合在线视频| 欧美午夜精品理论片a级按摩| 精品91自产拍在线观看一区| 亚洲成av人片一区二区三区| 99热这里都是精品| 久久午夜电影网| 五月综合激情婷婷六月色窝| 91亚洲永久精品| 国产片一区二区| 麻豆中文一区二区| 欧美日韩国产系列| 亚洲视频一区在线观看| 国产成人精品午夜视频免费| 欧美一级免费大片| 午夜欧美在线一二页| 91黄色免费网站| 亚洲欧美偷拍三级| 99精品视频免费在线观看| 国产婷婷色一区二区三区在线| 日产国产欧美视频一区精品| 欧美日韩国产电影| 亚洲一区免费视频| 欧美在线免费观看亚洲| 最新不卡av在线| 99国产精品久久久久久久久久 | 亚洲成a人v欧美综合天堂下载| 91在线精品一区二区三区| 国产精品久久久久久一区二区三区| 国产v日产∨综合v精品视频| www欧美成人18+| 国产一区二区在线观看视频| 久久精品夜夜夜夜久久| 国产一区二区美女| 国产精品丝袜黑色高跟|