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

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

?? 12864.h

?? 12864中文菜單源代碼(轉載)
?? H
字號:
/*-----------------------------------------------------------*/
#define LCD_OFF 0x3E
#define LCD_ON  0x3F

#define Add_X 0xB8     //the start address of the page 0 ;(0~7)
#define Add_Y 0x40     //the start address of the Y counter ; (0~64)
#define Add_Z 0xC0     //the start address of the DDRAM ; (0~64)
/*-----------------------------------------------------------*/
#define  LCD12864_DATA_PORT  P0

sbit  LCD12864_EN         =P1^4;
sbit  LCD12864_RW         =P1^3;       //0:write ; 1:read 
sbit  LCD12864_RS         =P1^2;	   //0:the command .1:the data
sbit  LCD12864_CS_L       =P1^1;       //select the left of the lcd when 1
sbit  LCD12864_CS_R       =P1^0;  
sbit  LCD12864_RST 	   	  =P1^5;
/*------------------------------------------------------------*/
void delayus(unsigned int us)
{
   while(us--);
}
void delayms(unsigned ms)
{
   unsigned int i,j;
   for (i=0;i<ms;i++)
   {
      for (j=0;j<1000;j++)
	  ;
   } 
}

/*--------------------------select the LCD--------------------*/
void LCDSel(unsigned char sel)
{
    switch(sel)
	{
	   case 0: LCD12864_CS_L=0;LCD12864_CS_R=0;break;	  
	   case 1: LCD12864_CS_L=1;LCD12864_CS_R=0;break;       //left 
	   case 2: LCD12864_CS_L=0;LCD12864_CS_R=1;break;		//right
	   default:;
	};
}
/*------------------------------------------------------------*/
void WaitLCD()
{
   unsigned char flag;

   LCD12864_DATA_PORT=0xFF;
   LCD12864_RW=1;
   LCD12864_RS=0;
   LCD12864_EN=1;
   LCD12864_EN=1;
   LCD12864_EN=0;

   LCD12864_DATA_PORT=0xFF;		//讀有效數據
   LCD12864_RW=1;
   LCD12864_RS=0;
   ;
   LCD12864_EN=1;
   do
   {
      flag=LCD12864_DATA_PORT;
	  LCD12864_DATA_PORT=0xFF;
   }while(!((flag&0x80)==0x80));

   LCD12864_EN=0;
}				 //*/
/*-------------------------------------------------------------*/
void WriteDatToLCD12864(unsigned char dat)
{
   WaitLCD();
   LCD12864_RS=1;   //the data
   LCD12864_RW=0;   //write
   LCD12864_DATA_PORT=dat;
   LCD12864_EN=1;
   ;
   LCD12864_EN=0;
}
/*-------------------------------------------------------------*/
void WriteCmdToLCD12864(unsigned char cmd)
{
   WaitLCD();
   LCD12864_RS=0;   //the command
   LCD12864_RW=0;	//write
   LCD12864_DATA_PORT=cmd;
   LCD12864_EN=1;
   ;
   LCD12864_EN=0;
}
/*-------------------------------------------------------------*/
unsigned char ReadDatFromLCD12864(void)
{
   unsigned char dat;
   WaitLCD();
   LCD12864_DATA_PORT=0xFF;		      //讀空操作
   LCD12864_RS=1;    //the data
   LCD12864_RW=1;     //read
   LCD12864_EN=1;
   LCD12864_EN=1
   ;
   LCD12864_EN=0;

   LCD12864_DATA_PORT=0xFF;			  //來讀有效數據
   LCD12864_RS=1;    //the data
   LCD12864_RW=1;     //read
   LCD12864_EN=1;
   dat=LCD12864_DATA_PORT;
   LCD12864_EN=0;
   return dat;
}	
/*--------------------------------------------------------------*/
//from the chip manual
void LCD12864_init(void)
{
    LCD12864_RST=0;
	delayus(50);
	LCD12864_RST=1;
	LCDSel(0);       //left and right
	WriteCmdToLCD12864(LCD_OFF);
	WriteCmdToLCD12864(LCD_ON);
}
/*------------------------------------------------------------*/
//x:0~7
void SetX(unsigned char x)
{
    WriteCmdToLCD12864(Add_X+x);
}
/*------------------------------------------------------------*/
//y:0~127
void SetY(unsigned char y)
{
    WriteCmdToLCD12864(Add_Y+y);
}
/*------------------------------------------------------------*/
//z:0~63
void SetZ(unsigned char z)
{
    WriteCmdToLCD12864(Add_Z+z);
}
/*------------------------------------------------------------*/
void ClearLCD()
{
    int i,j;
    LCDSel(0);
	for(j=0;j<8;j++)
	{
	   WriteCmdToLCD12864(LCD_ON);
       SetX(j);  
       WriteCmdToLCD12864(Add_Y);  //diffrent from SetY(0),SetY(64);     
	   SetZ(0);
	   for (i=0;i<64;i++)
	   {
	      WriteDatToLCD12864(0x00);
	   }
	}	
}
/*------------------------------------------------------------*/
//左上角第一個點為原點,向下Y為軸,向右為X軸
//x:0~63~127    y:0~63
//flag :  0:擦除某個點
//        1:顯示某個點 
unsigned char code Tab[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void Dot(char x,char y,bit flag)
{
    unsigned char dat;
//	y=63-y;	                              //坐標軸的移動和反轉
    if(x<64)
	{
	    LCDSel(1);
		SetX(y/8);   //set the page address
		SetY(x);         //set the Y adress
		dat=ReadDatFromLCD12864();

		if(flag)
		  dat=dat|(Tab[y%8]);
		else
		  dat=dat&(~(Tab[y%8]));

		SetY(x);         //set the Y adress
		WriteDatToLCD12864(dat);
	}
	else if(x<128)
	{
	    LCDSel(2);
		SetX(y/8);
		SetY(x-64);

		dat=ReadDatFromLCD12864();

		if(flag)
		  dat=dat|(Tab[y%8]);
		else
		  dat=dat&(~(Tab[y%8]));

		SetY(x-64);
		WriteDatToLCD12864(dat);
	}     
}	   
/*------------------------------------------------------------*/
//draw a line between point(x1,y1) and point(x2,y2)
//flag   0:erase the line    1:draw a line
void Line(unsigned char x1,unsigned char y1,unsigned char x2,unsigned char y2,bit flag)
{
    unsigned char i;
	unsigned char temp;
	float k;
	if(x1==x2)
	{
	   if(y1>y2)
	   {   temp=x1;x1=x2;x2=temp;
    	   temp=y1;y1=y2;y2=temp;
		}
	   for(i=y1;i<=y2;i++)
	   {
	       Dot(x1,i,flag);
	   }
	}else
	{
    	if(x1>x2)
    	{
    	   temp=x1;x1=x2;x2=temp;
    	   temp=y1;y1=y2;y2=temp;
     	 }

         k=(float)(y2-y1)/(float)(x2-x1);

         for(i=0;i<x2-x1;i++)
        {
           Dot(x1+i,(unsigned char)(y1+k*i),flag);
         }
	}
}	   
/*-------------------------------------------------------------*/
void Rect(unsigned char x1,unsigned char y1,unsigned char x2,unsigned char y2,bit flag)
{
    Line(x1,y1,x2,y1,flag);
	Line(x2,y1,x2,y2,flag);
	Line(x2,y2,x1,y2,flag);
	Line(x1,y2,x1,y1,flag);
} 
/*-------------------------------------------------------------*/
/*void RectArea(unsigned char x1,unsigned char y1,unsigned char x2,unsigned char y2,bit flag)
{
    unsigned char temp;
	unsigned char i;
    if(x1>x2)
	{
	    temp=x1;x1=x2;x2=temp; 
		temp=y1;y1=y2;y2=temp;
     }

	 for(i=0;i<=x2-x1;i++)
	 {
	    Line(x1+i,y1,x1+i,y2,flag);
	 }

}			  //*/
/*-------------------------------------------------------------*/
//16*16
//x行  0~7      y列 0~127
//flag 0:漢字反白顯示
/*void hz_disp(unsigned char x,unsigned char y,unsigned char n,unsigned char code * hz,bit flag)
{
    unsigned char i,j;
	for (j=0;j<n;j++)
	{
	    //顯示上半個漢字
	    for(i=0;i<16;i++)
		{
		    //點的位置是在左還是右
			if(y+16*j+i<64)
			{
			    LCDSel(1);
				WriteCmdToLCD12864(LCD_ON);
				SetX(x);
				SetZ(0);
				SetY(y+16*j+i);
				if(flag)
				    WriteDatToLCD12864(hz[32*j+i]);
			    else
				    WriteDatToLCD12864(~hz[32*j+i]);
			}
			else if(y+16*j+i<128)
			{
			    LCDSel(2);
				WriteCmdToLCD12864(LCD_ON);
				SetX(x);
				SetZ(0);
				SetY(y+16*j+i-64);
				if(flag)
				    WriteDatToLCD12864(hz[32*j+i]);
			    else
				    WriteDatToLCD12864(~hz[32*j+i]);
			}
		}
		//顯示下半個漢字
		for(i=16;i<32;i++)
		{
		    //先判斷點是在左還是在右
			if(y+16*j+i-16<64)
			{	if(x+1<8)	       //最后一行顯示上半個字
			    {
			        LCDSel(1);
			    	WriteCmdToLCD12864(LCD_ON);
				    SetX(x+1);
				    SetZ(0);
				    SetY(y+16*j+i-16);
				    if(flag)
				        WriteDatToLCD12864(hz[32*j+i]);
			        else
				        WriteDatToLCD12864(~hz[32*j+i]);
				}
			}else if(y+16*j+i-16<127)
			{
			    if(x+1<8) 	      //最后一行
				{
			        LCDSel(2);
				    WriteCmdToLCD12864(LCD_ON);
				    SetX(x+1);
				    SetZ(0);
				    SetY(y+16*j+i-16-64);
				if(flag)
				    WriteDatToLCD12864(hz[32*j+i]);
			    else
				    WriteDatToLCD12864(~hz[32*j+i]);
				}
			}
		}
	}
}				  //*/
/*-------------------------------------------------------------*/
//x:行0~7
//y:列0~127
//asc: 指向標準交換碼
//string: 指向要顯示的字符串
//flag:  0 反白顯示
void en_disp(unsigned char x,unsigned char y,unsigned char n,unsigned char code *asc,unsigned char *string,bit flag)
{
    unsigned char i,j,loc;
	for (j=0;j<n;j++)
	{
	    loc=string[j]-0x20;	    //確定要顯示的字符在asc表中的位置(乘上16)
	    //顯示上半個字母
	    for(i=0;i<8;i++)
		{
		    //點的位置是在左還是右
			if(y+8*j+i<64)
			{
			    LCDSel(1);
				WriteCmdToLCD12864(LCD_ON);
				SetX(x);
				SetZ(0);
				SetY(y+8*j+i);
				if(flag)
				    WriteDatToLCD12864(asc[16*loc+i]);
			    else
				    WriteDatToLCD12864(~asc[16*loc+i]);
			}
			else if(y+8*j+i<128)
			{
			    LCDSel(2);
				WriteCmdToLCD12864(LCD_ON);
				SetX(x);
				SetZ(0);
				SetY(y+8*j+i-64);
				if(flag)
				    WriteDatToLCD12864(asc[16*loc+i]);
			    else
				    WriteDatToLCD12864(~asc[16*loc+i]);
			}
		}
		//顯示下半個字母
		for(i=8;i<16;i++)
		{
		    //先判斷點是在左還是在右
			if(y+8*j+i-8<64)
			{  
			    if(x+1<8)	//最后一行
				{
			       LCDSel(1);
				   WriteCmdToLCD12864(LCD_ON);
				   SetX(x+1);
				   SetZ(0);
				   SetY(y+8*j+i-8);
				   if(flag)
				      WriteDatToLCD12864(asc[16*loc+i]);
			       else
				      WriteDatToLCD12864(~asc[16*loc+i]);
				}
			}else if(y+8*j+i-8<128)
			{
			    if(x+1<8) 	      //最后一行
				{
			        LCDSel(2);
				    WriteCmdToLCD12864(LCD_ON);
				    SetX(x+1);
				    SetZ(0);
				    SetY(y+8*j+i-8-64);
				if(flag)
				    WriteDatToLCD12864(asc[16*loc+i]);
			    else
				    WriteDatToLCD12864(~asc[16*loc+i]);
				}
			}
		}
	}  
}
/*-------------------------------------------------------------*/
//(x,y)要顯示圖片的左上角的坐標
//x  0~7   y  0~127
//l:要顯示圖片的長度
//w:要顯示圖片的寬度
//img:指向圖片的數據
//執行有點慢
void img_disp(unsigned char x,unsigned char y,unsigned char l,unsigned char w,unsigned char code *img)
{
    unsigned char i,j;
	for(j=0;j<w/8;j++)
	{
	    if(j+x<8)       //保證不越下面的界限 
	    {
	   	    for(i=0;i<l;i++)
	    	{	
		       //先判斷點的位置是在右半屏還是左半屏
		        if(y+i<64)
		    	{
			        LCDSel(1);
			        WriteCmdToLCD12864(LCD_ON);
			        SetX(x+j);
			        SetZ(0);
			        SetY(y+i);
		            WriteDatToLCD12864(img[j*l+i]);
		    	 }
			    else if(y+i<127)
		        {
			        LCDSel(2);
			        WriteCmdToLCD12864(LCD_ON);
			        SetX(x+j);
			        SetZ(0);
			        SetY(y+i-64);
			        WriteDatToLCD12864(img[j*l+i]);
			     }
			}
		}
	}
}
/*-------------------------------------------------------------*/
//顯示128*64圖片
//執行效率高
void img12864_disp(unsigned char code *img)
{
    unsigned char i,j;
	for(j=0;j<8;j++)
	{
	    LCDSel(1);
		WriteCmdToLCD12864(LCD_ON);
		SetX(j);
		SetZ(0);
		SetY(0);
		for(i=0;i<64;i++)
		   WriteDatToLCD12864(img[j*128+i]);
		LCDSel(2);
		WriteCmdToLCD12864(LCD_ON);
		SetX(j);
		SetZ(0);
		SetY(0);
		for(i=64;i<128;i++)
		   WriteDatToLCD12864(img[j*128+i]);
	}
}	//*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
不卡影院免费观看| 秋霞电影网一区二区| 激情欧美一区二区| 久久婷婷久久一区二区三区| 麻豆精品一二三| 久久精品欧美一区二区三区不卡 | 欧美日韩国产综合视频在线观看 | 日本久久一区二区三区| 亚洲免费电影在线| 欧美蜜桃一区二区三区| 日韩成人一区二区三区在线观看| 欧美一区二区免费视频| 久久99精品网久久| 国产精品电影一区二区| 91丨porny丨国产入口| 亚洲一区免费观看| 欧美剧情片在线观看| 极品少妇xxxx精品少妇偷拍| 国产亚洲制服色| 91色婷婷久久久久合中文| 亚洲观看高清完整版在线观看| 91精品国产综合久久小美女| 国产一区二区三区在线观看免费| 国产人成亚洲第一网站在线播放| 99精品久久99久久久久| 日韩高清在线电影| 欧美激情一区二区三区| 欧美日韩国产成人在线91| 国内精品伊人久久久久av一坑 | 911精品国产一区二区在线| 国内精品在线播放| 亚洲精品亚洲人成人网 | 亚洲高清三级视频| 日韩欧美在线一区二区三区| 成人午夜av在线| 亚洲成人激情综合网| 久久久影院官网| 99精品久久只有精品| 免费成人你懂的| 亚洲特黄一级片| 欧美xxxxxxxxx| 国产传媒久久文化传媒| 性做久久久久久久久| 国产日产欧美一区| 欧美一激情一区二区三区| 99精品国产视频| 国产一区二区在线观看免费| 亚洲国产中文字幕在线视频综合| 久久网站最新地址| 91精品国产综合久久精品性色| 成熟亚洲日本毛茸茸凸凹| 蜜桃视频在线一区| 亚洲精品美国一| 日本一区二区三级电影在线观看| 51精品秘密在线观看| 99久精品国产| 成人一区二区三区视频在线观看| 欧美aaaaaa午夜精品| 一区二区三区中文字幕精品精品| 精品国产91亚洲一区二区三区婷婷| 欧美在线free| 本田岬高潮一区二区三区| 国产一区二区网址| 久久精品国产在热久久| 亚洲成人午夜电影| 曰韩精品一区二区| 亚洲国产经典视频| 欧美激情一区二区三区蜜桃视频 | 91麻豆蜜桃一区二区三区| 国产一区在线精品| 捆绑紧缚一区二区三区视频| 午夜欧美电影在线观看| 一区二区三区日韩| 亚洲欧美一区二区三区久本道91 | 中文字幕一区视频| 国产欧美日韩三级| 久久久影视传媒| 久久久久久久久久电影| 亚洲精品在线电影| 久久综合国产精品| 久久九九久久九九| 久久久亚洲精品石原莉奈| 日韩精品一区二区三区中文不卡| 91精品国产综合久久久久久| 欧美一区二区精品在线| 欧美一区二区三区四区在线观看| 欧美群妇大交群中文字幕| 欧美一a一片一级一片| 欧美日韩中文国产| 在线看日韩精品电影| 欧美日韩在线播放| 这里只有精品99re| 日韩欧美色电影| 欧美精品一区二区三区久久久| 精品精品欲导航| 久久影院午夜片一区| 国产调教视频一区| 国产精品国产三级国产| 亚洲精品国产精华液| 午夜天堂影视香蕉久久| 麻豆视频一区二区| 国产成人在线免费| 色婷婷综合激情| 制服.丝袜.亚洲.另类.中文| 精品欧美一区二区三区精品久久 | 国产精品456露脸| 成人午夜电影小说| 欧美在线观看禁18| 精品国产乱码久久久久久影片| 久久久久青草大香线综合精品| 国产精品午夜电影| 一区二区不卡在线播放| 蜜乳av一区二区三区| 福利一区二区在线| 在线视频国内自拍亚洲视频| 日韩三级视频在线观看| 国产蜜臀av在线一区二区三区| 日韩欧美黄色影院| 欧美mv和日韩mv的网站| 久久美女高清视频 | 日韩亚洲电影在线| 亚洲蜜桃精久久久久久久| 精品日韩av一区二区| 日韩三级中文字幕| 最新成人av在线| 丝袜美腿成人在线| 成人午夜免费av| 欧美日韩亚洲国产综合| 久久精品男人天堂av| 亚洲va国产天堂va久久en| 国产一二三精品| 欧美色精品在线视频| 欧美经典一区二区三区| 日日夜夜精品免费视频| www..com久久爱| 日韩视频在线你懂得| 亚洲卡通欧美制服中文| 国产一区二区三区免费看| 欧美精品少妇一区二区三区| 国产精品嫩草影院com| 日韩高清欧美激情| 欧洲精品在线观看| 亚洲欧洲成人av每日更新| 欧美a一区二区| 欧美自拍丝袜亚洲| 国产日韩成人精品| 麻豆国产欧美一区二区三区| 91久久精品一区二区二区| 国产精品色婷婷| 国精品**一区二区三区在线蜜桃| 欧美亚洲免费在线一区| 亚洲日本va在线观看| 国产成人精品综合在线观看| 日韩精品专区在线| 欧美aaaaa成人免费观看视频| 在线观看国产91| 亚洲黄色尤物视频| 91视频在线观看免费| 国产精品青草综合久久久久99| 国产一区二区在线影院| 日韩丝袜美女视频| 美脚の诱脚舐め脚责91| 欧美一区二区三区啪啪| 亚洲动漫第一页| 欧美性受极品xxxx喷水| 亚洲激情av在线| 91福利在线导航| 亚洲高清视频中文字幕| 欧美午夜精品久久久| 夜夜爽夜夜爽精品视频| 在线欧美日韩国产| 亚洲一级不卡视频| 欧美日韩一级片网站| 亚洲不卡一区二区三区| 在线电影欧美成精品| 日韩精品一级二级| 欧美一区二区在线免费播放| 日韩影视精彩在线| 欧美videossexotv100| 美女视频黄 久久| 久久嫩草精品久久久久| 国产很黄免费观看久久| 国产欧美一区二区三区沐欲| 国产成人自拍网| 亚洲日本一区二区| 欧美日韩一区二区三区四区 | 国产精品996| 国产欧美va欧美不卡在线| 成人一区二区三区| 伊人色综合久久天天| 在线亚洲一区观看| 日韩二区在线观看| 久久久三级国产网站| 99久久伊人久久99| 亚洲国产精品天堂| 久久伊人中文字幕| 91社区在线播放| 奇米一区二区三区| 亚洲欧洲三级电影| 欧美人成免费网站|