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

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

?? lcd12864_c51.h

?? GPS開發 NEA1803 51單片機與12864 由串口中斷收取數據 顯示經度緯度 高度 速度 時間 使用衛星數
?? H
字號:
/*********************************************************************/
/*********            LCD12864_c51.H C51 driver            *************/
/****************	 Written by yinlei---20070801	******************/
/*********************************************************************/
//#include <intrins.h>
/****************************控制定義*********************************/
#define LCD_BUSY_FLAG 0x80 //用于檢查寫忙信號
#define LCD12864_CG_MODE_EN 0 //圖形模式開關
#define LCD12864_PIXEL_EN 0 //安像素繪圖使能
/****************************端口定義*********************************/
#define DATAPORT P0 // 數據端口!!!!!!!!!!
sbit RS = P1^4;
sbit RW = P1^3;
sbit Elcd = P1^2;
//---------------------光標記錄
unsigned char LCDx=0;
unsigned char LCDy=0;

#if LCD12864_CG_MODE_EN
bit LCD12864_MODE_FLAG=0;			//0普通模式 1擴展模式
#endif
/****************************外部函數*********************************/
void Init_Lcd12864(void); //LCD RESET
void ClearAS(void);
void ResetCursor(unsigned char x,unsigned char y);			//光標歸零
void DispChar(unsigned char x,unsigned char y,unsigned char dataW);
char putchar (char a);

#if LCD12864_CG_MODE_EN
void ClearCG(void);
void DisplayPicBasic(unsigned char x_start,unsigned char y_start,unsigned char x_end,unsigned char y_end,unsigned char *table);
	#if LCD12864_PIXEL_EN
	void WritePixel(unsigned char x,unsigned char y,bit color);
	bit ReadPixel(unsigned char x,unsigned char y);
	#endif
#endif

/****************************內部函數*********************************/

void WaitForEnable(void); //忙信號檢測
void LcdWrite_C(unsigned char CMD,unsigned char AttribC);//write Control Charactor
void LcdWrite_D(char dataW); //寫一個數據
unsigned char LcdRead(void);//read a data from LCD

/****************************函數實現*********************************/
//-----------------初始化-------------------------------
void Init_Lcd12864(void)
{	
	unsigned char i=3;
	while(i--)LcdWrite_C(0x30,0); //顯示模式設置(不測試忙信號)共三次
#if LCD12864_CG_MODE_EN
	LcdWrite_C(0x34,1);		//擴展模式-->圖形模式
	ClearCG();
#else
	LcdWrite_C(0x30,1);
#endif
	LcdWrite_C(0x0f,1);//all on
	LcdWrite_C(0x0c,1);//0x0f->all on,show arrow;0x0c->no arrow
	ClearAS();
}
//-------------------------------------------------------------------
void ClearAS(void)
{
	LcdWrite_C(0x01,1);
	ResetCursor(0,0);
}
//-----------------------------------------------------------------------
void ResetCursor(unsigned char x,unsigned char y)
{
	LCDx=x;
	LCDy=y;
}
//=======================================================//
//              按指定位置顯示一個字符                   //
//=======================================================//
void DispChar(unsigned char x,unsigned char y,unsigned char dataW) 
{
	unsigned char temp,t;	
#if LCD12864_CG_MODE_EN
	if(LCD12864_MODE_FLAG)
	{
	//	LcdWrite_C(0x34,1);		//擴充指令集 顯示關
		LcdWrite_C(0x30,1);  //command back
		LCD12864_MODE_FLAG=0;
	}
#endif			   	
	temp=x&0x0f;
	temp=temp>>1;	   //temp/2
	t=y>>1;
	if(t)temp|=0x08;	//2、3行操作
	y&=0x01;
	if(y)temp|=0x90;   //奇數行
	else temp|=0x80;	
	LcdWrite_C(temp,1);
	if(x&0x01)LcdRead();
	LcdWrite_D(dataW);
}
//-----------------------------------------------------------------------
char putchar (char a)
{
	if(LCDx==16){LCDx=0;LCDy++;}
	if(LCDy==4){LCDy=0;}	
	if(a!='\n')
	{
		DispChar(LCDx,LCDy,a);
		LCDx++;
	}
	else{LCDx=0;LCDy++;}
	return a;
}
//============================圖形模式==============================
//x_end-x_start:0~8,y_end-y_start:0~64(圖象大小為:(x_end-x_start)*16 X (y_end-y_start))
//&&!!x_end y_end 為圖象的末邊界+1
//==================================================================
#if LCD12864_CG_MODE_EN
void ClearCG(void)
{
	unsigned char i,j;
	if(~LCD12864_MODE_FLAG)
	{
		ClearAS();
		LcdWrite_C(0x34,1);		//擴充指令集 顯示關	
		LCD12864_MODE_FLAG=1;
	}
	for(j=0;j<64;j++)
	{

		if(j<32)
		{
			LcdWrite_C(0x80+j,1);		//Y地址0
			LcdWrite_C(0x80,1);		//x地址0
		}
		else
		{
			LcdWrite_C(0x60+j,1);		//Y地址0
			LcdWrite_C(0x88,1);		//x地址0	
		}
		for(i=0;i<16;i++)
		{
			LcdWrite_D(0x00);	
		}
	}
}
void DisplayPicBasic(unsigned char x_start,unsigned char y_start,unsigned char x_end,unsigned char y_end,unsigned char *table)
{
	unsigned char temp_x=0,temp_y=0;
	unsigned int temp;
	if(~LCD12864_MODE_FLAG)
	{
		ClearAS();
		LcdWrite_C(0x34,1);		//擴充指令集 顯示關	
		LCD12864_MODE_FLAG=1;
	}
	for(temp_y=y_start;temp_y<y_end;temp_y++)
	{
		if(temp_y<32)
		{
			LcdWrite_C(0x80+temp_y,1);		//Y地址0
			LcdWrite_C(0x80+x_start,1);		//x地址0
		}
		else
		{
			LcdWrite_C(0x60+temp_y,1);		//Y地址0
			LcdWrite_C(0x88+x_start,1);		//x地址0	
		}
		for(temp_x=x_start;temp_x<x_end;temp_x++)
		{
			temp=((temp_y-y_start)*(x_end-x_start)+(temp_x-x_start))*2;
			//temp=(temp_y-y_start)*(x_end-x_start)+temp_x-x_start;
			LcdWrite_D(*(table+temp));
			LcdWrite_D(*(table+temp+1));				
		}
	}
	LcdWrite_C(0x36,1);

}
	#if LCD12864_PIXEL_EN
	void WritePixel(unsigned char x,unsigned char y,bit color)
	{
		unsigned char temp_x,temp;
		if(~LCD12864_MODE_FLAG)
		{
//			ClearAS();
			LcdWrite_C(0x36,1);		//擴充指令集 顯示開	
			LCD12864_MODE_FLAG=1;
		}
		temp_x=x>>4;
		if(y<32)
		{
			LcdWrite_C(0x80+y,1);		//Y地址0
			LcdWrite_C(0x80+temp_x,1);		//x地址0	
		}
		else
		{
			LcdWrite_C(0x60+y,1);		//Y地址0
			LcdWrite_C(0x88+temp_x,1);		//x地址0	
		}
		if(x&0x08)LcdRead();
		LcdRead();						//空操作
		temp=LcdRead();
		if(color)temp|=(0x80>>(x&0x07));
		else temp&=~(0x80>>(x&0x07));
//--------------------------------------------
		if(y<32)
		{
			LcdWrite_C(0x80+y,1);		//Y地址0
			LcdWrite_C(0x80+temp_x,1);		//x地址0	
		}
		else
		{
			LcdWrite_C(0x60+y,1);		//Y地址0
			LcdWrite_C(0x88+temp_x,1);		//x地址0	
		}
		if(x&0x08)LcdRead();
		LcdWrite_D(temp);
		LcdWrite_C(0x36,1);
	}
	bit ReadPixel(unsigned char x,unsigned char y)
	{
		unsigned char temp_x,temp;
		if(~LCD12864_MODE_FLAG)
		{
//			ClearAS();
			LcdWrite_C(0x36,1);		//擴充指令集 顯示開	
			LCD12864_MODE_FLAG=1;
		}
		temp_x=x>>4;
		if(y<32)
		{
			LcdWrite_C(0x80+y,1);		//Y地址0
			LcdWrite_C(0x80+temp_x,1);		//x地址0	
		}
		else
		{
			LcdWrite_C(0x60+y,1);		//Y地址0
			LcdWrite_C(0x88+temp_x,1);		//x地址0	
		}
		if(x&0x08)LcdRead();	 
		LcdRead(); 				//空操作
		temp=LcdRead();
		LcdWrite_C(0x36,1);
		return temp&(0x80>>(x&0x07));
	}
	#endif
#endif

/****************************底層接口函數******************************/
//------------------------------------------------------//
//寫控制字符子程序: E=1 RS=0 RW=0
//------------------------------------------------------//
void LcdWrite_C( unsigned char CMD,unsigned char AttribC ) 
{	
	if (AttribC) WaitForEnable(); // 檢測忙信號?
	RS = 0; RW = 0;
	DATAPORT =CMD; // 送控制字子程序
	Elcd = 1;Elcd = 0; // 操作允許脈沖信號 
}
//------------------------------------------------------//
//當前位置寫字符子程序: E =1 RS=1 RW=0
//------------------------------------------------------//
void LcdWrite_D( char dataW ) 
{	
	WaitForEnable(); // 檢測忙信號
	RS = 1; RW = 0;
	DATAPORT = dataW;
	Elcd = 1;Elcd = 0; // 操作允許脈沖信號 
}
//------------------------------------------------------//
//讀模塊子程序:E=1 RS=1 RW=1
//------------------------------------------------------//
unsigned char LcdRead(void)
{	
	unsigned char dataW;
	WaitForEnable(); // 檢測忙信號
//	Elcd = 0;
//	DATAPORT=0xff;	
	RS = 1; RW = 1;
	Elcd = 1;
//	for(dataW=0;dataW<100;dataW++);
	dataW=DATAPORT;
	Elcd = 0;		// 操作允許脈沖信號
    return dataW;
}
//------------------------------------------------------//
//正常讀寫操作之前必須檢測LCD控制器狀態: CS=1 RS=0 RW=1
//DB7: 0 LCD控制器空閑; 1 LCD控制器忙
//------------------------------------------------------//
void WaitForEnable( void )
{	
	DATAPORT = 0xff;
	RS =0; RW = 1; Elcd = 1;
	while( DATAPORT & LCD_BUSY_FLAG );
	Elcd = 0;
} 
/****************************End LCD12864_c51.H***************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人污视频在线观看| 日韩一区二区三区视频在线| 91精品麻豆日日躁夜夜躁| 久久久另类综合| 日本欧美加勒比视频| 色综合天天综合狠狠| 久久中文娱乐网| 日本在线观看不卡视频| 91黄视频在线| 一区视频在线播放| 国产一区在线视频| 日韩小视频在线观看专区| 有码一区二区三区| 成人看片黄a免费看在线| 精品国产人成亚洲区| 人人爽香蕉精品| 欧美日本在线播放| 亚洲国产精品人人做人人爽| 99国产麻豆精品| 日韩美女啊v在线免费观看| 国产激情视频一区二区在线观看| 精品欧美一区二区久久| 奇米精品一区二区三区四区| 欧美日高清视频| 亚洲国产毛片aaaaa无费看| 色狠狠综合天天综合综合| 中文字幕精品一区二区三区精品| 国产精品白丝jk白祙喷水网站| 精品国产一区二区三区不卡| 久久精品国产亚洲a| 日韩一区二区精品| 精品在线一区二区| 久久免费电影网| 成人午夜激情在线| 国产精品久久久久精k8| 9l国产精品久久久久麻豆| 中文字幕在线观看不卡| 色婷婷激情一区二区三区| 一区二区三区日韩在线观看| 欧美少妇bbb| 高清久久久久久| 久久久久久久久99精品| 懂色av一区二区夜夜嗨| 亚洲天堂久久久久久久| 欧美视频一区二区三区| 久久精品国产久精国产| 久久久亚洲午夜电影| 99精品国产视频| 亚洲第一搞黄网站| 精品av久久707| 成人黄色国产精品网站大全在线免费观看| 国产精品黄色在线观看| 欧美性极品少妇| 韩国成人在线视频| 国产精品你懂的在线欣赏| 在线免费观看一区| 午夜视频一区二区| 国产亚洲成年网址在线观看| 在线观看一区不卡| 久久电影国产免费久久电影| 最新国产の精品合集bt伙计| 欧美丝袜丝交足nylons图片| 麻豆一区二区三区| 国产精品久久精品日日| 欧美老女人在线| 国产成人午夜片在线观看高清观看| 亚洲日本欧美天堂| 日韩你懂的在线观看| 91麻豆国产自产在线观看| 秋霞影院一区二区| 国产精品国产三级国产aⅴ无密码| 在线不卡a资源高清| 大胆欧美人体老妇| 日韩电影免费一区| 中文字幕中文乱码欧美一区二区| 欧美一区二区三区在线视频| 成人av在线资源网站| 精油按摩中文字幕久久| 亚洲国产成人91porn| 日韩va亚洲va欧美va久久| 国产精品婷婷午夜在线观看| 日韩小视频在线观看专区| 日本高清不卡在线观看| 高清久久久久久| 蜜芽一区二区三区| 亚洲福利一二三区| 国产精品福利av| 久久夜色精品一区| 欧美日韩国产a| 色综合久久中文综合久久牛| 国产精品白丝jk白祙喷水网站| 午夜欧美在线一二页| 亚洲免费av高清| 国产精品成人免费精品自在线观看| 日韩精品中文字幕在线不卡尤物| 欧美色图第一页| 色欧美88888久久久久久影院| 国产99精品在线观看| 久草热8精品视频在线观看| 午夜av电影一区| 亚洲成av人在线观看| 亚洲午夜精品在线| 亚洲乱码中文字幕综合| 日韩毛片在线免费观看| 国产精品灌醉下药二区| 国产精品久久久久久久岛一牛影视| 欧美成人r级一区二区三区| 欧美夫妻性生活| 欧美裸体bbwbbwbbw| 欧美日韩中文字幕精品| 欧美午夜不卡在线观看免费| 欧美午夜在线观看| 欧美日韩视频专区在线播放| 欧美男生操女生| 欧美精品xxxxbbbb| 欧美精品一二三| 欧美一卡二卡在线| 日韩精品一区二区三区视频| 精品国产99国产精品| 久久久久久久综合狠狠综合| 久久久久久久久99精品| 国产精品久久久99| 亚洲免费观看在线视频| 亚洲国产欧美另类丝袜| 日本在线不卡视频一二三区| 久久99久久99| 国产白丝精品91爽爽久久| 99精品视频一区二区| 欧洲精品一区二区| 3d动漫精品啪啪一区二区竹菊 | 成人精品免费视频| 99这里都是精品| 91小视频免费看| 欧美三级乱人伦电影| 欧美一区欧美二区| 国产午夜精品在线观看| 亚洲乱码国产乱码精品精小说| 午夜精品久久一牛影视| 国产一区欧美一区| 91在线云播放| 日韩免费高清av| 国产精品乱子久久久久| 天天色图综合网| 国产黄色91视频| 欧美日韩一本到| 久久伊人中文字幕| 亚洲一级电影视频| 国内精品不卡在线| 在线观看亚洲一区| 久久久777精品电影网影网| 夜夜爽夜夜爽精品视频| 黄色日韩网站视频| 欧美午夜电影网| 欧美激情中文不卡| 午夜精品久久久久久久99水蜜桃| 国产成人av一区二区三区在线| 欧美日韩视频在线一区二区 | 日韩视频永久免费| 亚洲私人影院在线观看| 国内精品久久久久影院薰衣草| 91亚洲精华国产精华精华液| 日韩欧美资源站| 一区二区三区欧美| 成人一级视频在线观看| 91精品蜜臀在线一区尤物| 亚洲视频一区二区在线观看| 久久成人精品无人区| 欧美视频在线一区| 国产精品日韩成人| 另类成人小视频在线| 精品婷婷伊人一区三区三| 中文字幕一区二区5566日韩| 韩国女主播成人在线| 欧美久久久久免费| 亚洲日本一区二区| 夫妻av一区二区| 精品国精品自拍自在线| 热久久久久久久| 欧美男男青年gay1069videost | 中文字幕免费不卡| 久久久亚洲高清| 日韩成人精品在线| 欧美影片第一页| 亚洲精品欧美在线| 成人v精品蜜桃久久一区| 久久精品网站免费观看| 国产资源在线一区| 精品国产欧美一区二区| 日韩精品91亚洲二区在线观看| 精品1区2区3区| 亚洲香肠在线观看| 欧美性生活久久| 亚洲一区二区三区四区不卡| 在线看不卡av| 一区二区三区小说| 在线精品国精品国产尤物884a| 成人欧美一区二区三区黑人麻豆| 丰满放荡岳乱妇91ww| 国产免费观看久久| 菠萝蜜视频在线观看一区|