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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 12864zk.c

?? 這是液晶的操作源代碼,希望對做這個工作的朋友有一定的幫助
?? C
字號:
/*******************************************
*	文件名	:	12864ZK.C
*	功能	:	12864ZK驅(qū)動模塊
*	占用資源:	若干IO口
*	程序員	:	wyl(wyl-e@163.com)
*	日期	:	2007.07
*	包含文件:	12864ZK.H
*	說明	:	本模塊支持12864ZK的串行及并行驅(qū)動.
********************************************/ 
#include"DELAY.H"
#include"12864ZK.H"
#include"_REG52_.H"

//---------------------------------------
#ifdef		Paralell_Operation_Mode	

/*******************************************
* 函數(shù)功能 :LCD忙標(biāo)志檢測
* 入口參數(shù) : (void)
* 占用資源 : (void)
* 返回參數(shù) : (void)
********************************************/ 
static void	Busy_Check(void)	//判忙標(biāo)志.
	{
		DatPort=0xff;
		DI	=	0;				//command
		RW	=	1;				//read
		E	=	1;				//flip_latch enable
		_nop_(); _nop_();		
		while(DatPort&0x80);
		E	=	0;
	}

/*******************************************
* 函數(shù)功能 :LCD寫字節(jié)數(shù)據(jù)
* 入口參數(shù) : (uchar dat)
* 占用資源 : (void)
* 返回參數(shù) : (void)
********************************************/
static void	Lcd_Write_Dat(uchar	f_dat) 		//寫數(shù)據(jù).
	{
		Busy_Check();
		DI	=	1;	//send dat.
		RW	=	0;	//writing.
		E	=	1;	//flip_latch enable.
		DatPort=f_dat;
		_nop_(); _nop_();				
		E	=	0;	//latch.
		DatPort=0xff;			
	}
	 
/*******************************************
* 函數(shù)功能 :LCD命令字節(jié)寫入
* 入口參數(shù) : (uchar com)
* 占用資源 : (void)
* 返回參數(shù) : (void)
********************************************/
static void	Lcd_Write_Command(uchar	f_com)
	{
		Busy_Check();
		DI	=	0;
		RW	=	0;
		E	=	1;
		DatPort=f_com;
		_nop_(); _nop_();			
		E	=	0;
		DatPort=0xff;
	} 
#endif


/***************串行工作模式******************/
#ifdef	Series_Operation_Mode

/*******************************************
* 函數(shù)功能 :LCD串行寫數(shù)據(jù)或命令
* 入口參數(shù) : (uchar dat,bit di)
* 占用資源 : (void)
* 返回參數(shù) : (void)
********************************************/
#define	READ	1
#define	WRITE	0
#define	DAT		1
#define	INST	0
//---------------------------------------
static void	Lcd_Write_DI(uchar	f_dat,bit di) 	
	{
		uchar	i;
		uchar	dat;
		dat	=	f_dat;
		SDA_12864 = 0;
		CS_12864  = 1;
		SDA_12864 = 1;
		SCK_12864 = 0;
		for(i=0;i<5;i++)	
			{	
				SCK_12864 = 1;				
				SCK_12864 = 0;
			}
		SDA_12864 = WRITE; 	
		SCK_12864 = 1;		
		SCK_12864 = 0;
		SDA_12864 = di;	  	
		SCK_12864 = 1;		
		SCK_12864 = 0;		
		SDA_12864 = 0;
		SCK_12864 = 1;		
		SCK_12864 = 0;
		for(i=0;i<4;i++)
			{  	
				if(dat&0x80)SDA_12864 = 1;
				else	   	SDA_12864 = 0;							
				SCK_12864 = 1;				
				SCK_12864 = 0;
				dat<<=1;
			}
		SDA_12864 = 0;
		for(i=0;i<4;i++)	
			{	
				SCK_12864 = 1;				
				SCK_12864 = 0;
			}
		for(i=0;i<4;i++)
			{  	
				if(dat&0x80)SDA_12864 = 1;
				else	   	SDA_12864 = 0;							
				SCK_12864 = 1;				
				SCK_12864 = 0;
				dat<<=1;
			}
		SDA_12864 = 0;
		for(i=0;i<4;i++)	//四個空閑脈沖
			{	
				SCK_12864 = 1;				
				SCK_12864 = 0;
			}
		CS_12864  = 0;
		SDA_12864 = 1;
					
	} 

/*******************************************
* 函數(shù)功能 :LCD串行寫字節(jié)數(shù)據(jù)
* 入口參數(shù) : (uchar dat)
* 占用資源 : (void)
* 返回參數(shù) : (void)
* 操作時間 : 72us
********************************************/
void	Lcd_Write_Dat(uchar	formal_dat)
	{
		 Lcd_Write_DI(formal_dat,DAT);
		 Delay_10us(8);//延時80us
	}
/*******************************************
* 函數(shù)功能 :LCD串行寫字節(jié)命令
* 入口參數(shù) : (uchar com)
* 占用資源 : (void)
* 返回參數(shù) : (void)
* 操作時間 : 72us
********************************************/
void	Lcd_Write_Command(uchar	f_com) 
	{
		 Lcd_Write_DI(f_com,INST);
		 Delay_10us(8);//延時80us
	}

#endif

/*****************基本指令集******************/	
#define	Basic_Instruction_Enable 	
//--------------------------------
#ifdef 	Basic_Instruction_Enable
//--------------------------------

/*******************************************
* 函數(shù)功能 :LCD功能設(shè)定
* 入口參數(shù) : (void)
* 占用資源 : (void)
* 返回參數(shù) : (void)
* 說明     :
		   	功能設(shè)定(36H/30H/34H) 0 0 1 1 X  RE G 0 
			RE=1: 擴充指令集動作,RE=0: 基本指令集動作,
			G=1 :繪圖顯示ON ,G=0 :繪圖顯示OFF
********************************************/
#define		Basic_Instruction_Com		0x30		   	//精簡指令
#define		Expand_Instruction_Com		0x34		   	//擴充指令
#define		GraphRAM_On_Com				0x36 			//繪圖功能開
//---------------------------------------	
static void	Function_Setting(void)
	{
		 Lcd_Write_Command(Basic_Instruction_Com);		//8bits format,basic instruction set,graph function disable.
		 Lcd_Write_Command(Basic_Instruction_Com);
	} 
/*******************************************
* 函數(shù)功能 :LCD顯示與游標(biāo)開關(guān)
* 入口參數(shù) : (void)
* 占用資源 : (void)
* 返回參數(shù) : (void)
* 說明     :
		   	顯示狀態(tài) 開/關(guān)(08H/0CH/0EH/0FH)
			L L L L L L H D C B
			D=1;整體顯示ON C=1;游標(biāo)ON B=1;游標(biāo)位置ON
********************************************/ 
#define	All_On_Com					0x0f
#define	Display_On_Only_Com			0x0c
#define	Display_On_Cursor_On_Com	0x0e
#define	All_Off_Com					0x08
//--------------------------------------
void	NoniusOn(void)
	{
		Lcd_Write_Command(Basic_Instruction_Com);
		Lcd_Write_Command(All_On_Com);
	}
//---------------------------------------
void	NoniusOff(void)
	{
		Lcd_Write_Command(Basic_Instruction_Com);
		Lcd_Write_Command(Display_On_Only_Com);
	}
/*******************************************
* 函數(shù)功能 :LCD狀態(tài)設(shè)置
* 入口參數(shù) : (void)
* 占用資源 : (void)
* 返回參數(shù) : (void)
* 說明     :
********************************************/
//---------------------------------------
static void	Display_State(void)
	{
		NoniusOff();  		//display enable,cursor off,cursor position off.
	}
/*******************************************
* 函數(shù)功能 :LCD設(shè)置光標(biāo)及移動方向
* 入口參數(shù) : (void)
* 占用資源 : (void)
* 返回參數(shù) : (void)
* 說明     :
		   	點設(shè)定(07H/04H/05H/06H)
 			L L L L L L L H I/D S
			I/D=1 光標(biāo)右移,I/D=0 光標(biāo)左移。
			SH=1 且DDRAM 為寫狀態(tài):整體顯示移動,
			方向由I/D 決定(I/D=1 左移,I/D=0 右移)
			SH=0 或DDRAM 為讀狀態(tài):整體顯示不移動
********************************************/
#define	Cursor_Right_No_Move_Com		0x06
#define	Cursor_Right_Move_Left_Com		0x07
#define	Cursor_Left_No_Move_Com			0x04
#define	Cursor_Left_Move_Right_Com		0x05
//---------------------------------------	
static void	Entry_Mode(void)
	{	
		Lcd_Write_Command(Basic_Instruction_Com);
		Lcd_Write_Command(Cursor_Right_No_Move_Com);
	} 
/*******************************************
* 函數(shù)功能 :LCD清屏
* 入口參數(shù) : (void)
* 占用資源 : (void)
* 返回參數(shù) : (void)
* 操作時間 : 4.2ms
********************************************/
void	DisplayClear(void)
	{
		Lcd_Write_Command(Basic_Instruction_Com);
		Lcd_Write_Command(0x01);
		#ifdef	Series_Operation_Mode
		Delay_ms(5);//延時5ms
		#endif
	}
/*******************************************
* 函數(shù)功能 :LCD設(shè)置XY地址
* 入口參數(shù) : (uchar x,uchar y)
* 占用資源 : (void)
* 返回參數(shù) : (void)
* 說明     :
********************************************/

void	GotoXY(uchar fx,uchar fy)
	{
		uchar	x,y,xy;
		Lcd_Write_Command(Basic_Instruction_Com);
		x	=	fx;
		y	=	fy;
		x	&=	0x07;
		y	&=	0x03;
//xy coordinate is 0x80 in line 0,0x90 in line 1,0x88 in line 2,0x98 ine line 3.
		if(y==0)				xy=0x80;
			else	if(y==1)	xy=0x90;
			else	if(y==2)	xy=0x88;
			else	if(y==3)	xy=0x98;
			else	xy=0x80;
		xy	+=	x;		
		Lcd_Write_Command(xy);
	}
/*******************************************
* 函數(shù)功能 :LCD數(shù)據(jù)串輸出
* 入口參數(shù) : (uchar x,uchar y,uchar *str)
* 占用資源 : (void)
* 返回參數(shù) : (void)
* 說明     :
********************************************/

void	Print(uchar x,uchar y,uchar *str)
	{	
		uchar	i=0;
		GotoXY(x,y);				
		Lcd_Write_Command(Basic_Instruction_Com);
		while(((*str)!='\0')&&(i<16))	
		{
			Lcd_Write_Dat(*str++);
			i++; 			
		}	
	}
/*******************************************
* 函數(shù)功能 :LCD數(shù)據(jù)串輸出
* 入口參數(shù) : (uchar x,uchar y,uchar *str,uchar cnt)
* 占用資源 : (void)
* 返回參數(shù) : (void)
* 說明     : 限制輸出字符個數(shù)
********************************************/ 
void	PrintLimit(uchar x,uchar y,uchar *str,uchar cnt)
	{
		uchar	i=0;
		GotoXY(x,y);		 
		Lcd_Write_Command(Basic_Instruction_Com);
		while(((*str)!='\0')&&(i<cnt))	
		{
			Lcd_Write_Dat(*str++);
			i++; 			
		}	
	} 
/*******************************************
* 函數(shù)功能 :LCD初始化
* 入口參數(shù) : (void)
* 占用資源 : (void)
* 返回參數(shù) : (void)
* 說明     :
********************************************/
void	LcdInitial(void)
	{  		
		 Function_Setting();  	//function setting.		
		 Display_State();  		//display state key.		 
		 DisplayClear();		//display	clear		
		 Entry_Mode(); 			 //entry mode set
	}
//---------------------------------------	
#endif

//---------------------------------------
#ifdef	Expand_Instruction_Enable
	
/************************************以下為擴充指令下的函數(shù)命令***********************/

/*******************************************
* 函數(shù)功能 :LCD反白選擇
* 入口參數(shù) : (bit line)
* 占用資源 : (void)
* 返回參數(shù) : (void)
* 說明     : 
			反白選擇 0 0 0 0 0 0 0 1 R1 R0 
			選擇一、三行同時作反白顯示,
			或者二、四行同時作反白顯示
			line=0,reverse the line 1&3 
			else reverse line2&4
********************************************/
void	ReverseDisplay(bit	line)	
	{
		Lcd_Write_Command(Expand_Instruction_Com);
		line	&=	0x01;
		Lcd_Write_Command(0x04|line);		
	}
/*******************************************
* 函數(shù)功能 :LCD卷動允許
* 入口參數(shù) : (void)
* 占用資源 : (void)
* 返回參數(shù) : (void)
* 說明     : 
			卷動地址或IRAM 地址選擇
			0 0 0 0 0 0 0 0 1 SR 
			SR=1:允許輸入垂直卷動地址	
			SR=0:允許輸入IRAM 地址
********************************************/
#define		 Roll_Addr_Enable_Com	0x03
#define		 IRAM_Addr_Enable_Com	0x02
//---------------------------------------
void	RollAddrEnable(void)
	{
		Lcd_Write_Command(Expand_Instruction_Com);
		Lcd_Write_Command(Roll_Addr_Enable_Com);		
	}
/*******************************************
* 函數(shù)功能 :LCD設(shè)定IRAM地址或卷動地址
* 入口參數(shù) : (uchar addr)
* 占用資源 : (void)
* 返回參數(shù) : (void)
* 說明     : 
			設(shè)定IRAM地址或卷動地址
			0 1 AC5 AC4 AC3 AC2 AC1 AC0
			SR=1:AC5—AC0 為垂直卷動地址 
			SR=0:AC3—AC0 為ICON IRAM 地址
********************************************/
void	RollAddr(uchar	f_addr)
	{
		Lcd_Write_Command(Expand_Instruction_Com);
		Lcd_Write_Command(0x40|f_addr);		
	}
/*******************************************
* 函數(shù)功能 :LCD睡眠模式選擇
* 入口參數(shù) : (bit sleep)
* 占用資源 : (void)
* 返回參數(shù) : (void)
* 說明     : 
			睡眠模式 0 0 0 0 0 0 1 SL X X 
			SL=1:脫離睡眠模式 
			SL=0:進入睡眠模式
********************************************/
void	Sleep(bit	sleep)
	{
		Lcd_Write_Command(Expand_Instruction_Com);
		if(sleep)Lcd_Write_Command(0x08);
		else	Lcd_Write_Command(0x0c);		
	}
/*******************************************
* 函數(shù)功能 :LCD設(shè)定繪圖RAM 地址
* 入口參數(shù) : (uchar addr)
* 占用資源 : (void)
* 返回參數(shù) : (void)
* 說明     : 
			設(shè)定繪圖RAM 地址
			0 0 1 AC6 AC5 AC4 AC3 AC2 AC1 AC0 
			設(shè)定CGRAM 地址到地址計數(shù)器(AC)
********************************************/
/*
void	CGRAMAddr(uchar	f_addr)
	{	 
		Lcd_Write_Command(Expand_Instruction_Com);
		Lcd_Write_Command(0x80|f_addr);		
	}
*/
/*******************************************
* 函數(shù)功能 :LCD左半屏繪圖
* 入口參數(shù) : (uchar *p)
* 占用資源 : (void)
* 返回參數(shù) : (void)
* 說明     : 
			//取模方法:從右往左逐行取模.
			15 ..8..1   15..8.1 
  			 1   2	 3	 4 					 
********************************************/
void	LeftPrintGraph(uchar *p)
	{
		uchar	x,y,z;
		for(z=0;z<9;z+=8)
		for(y=0;y<0x20;y++)		
		for(x=0;x<4;x++)
			{
				Lcd_Write_Command(GraphRAM_On_Com);
				Lcd_Write_Command(y+0x80); 		//Y,行地址
				Lcd_Write_Command(x+0x80+z);
				Lcd_Write_Command(Basic_Instruction_Com);
				Lcd_Write_Dat(*p++);
				Lcd_Write_Dat(*p++);											
			}
	}
/*******************************************
* 函數(shù)功能 :LCD右半屏繪圖
* 入口參數(shù) : (uchar *p)
* 占用資源 : (void)
* 返回參數(shù) : (void)
* 說明     : 
			//取模方法:從右往左逐行取模.
			15 ..8..1   15..8.1 
  			 1   2	 3	 4 					 
********************************************/
void	RightPrintGraph(uchar *p)
	{
		uchar	x,y,z;
		for(z=0;z<9;z+=8)
		for(y=0;y<0x20;y++)		
		for(x=4;x<8;x++)
			{
				Lcd_Write_Command(GraphRAM_On_Com);
				Lcd_Write_Command(y+0x80); 		//Y,行地址
				Lcd_Write_Command(x+0x80+z);
				Lcd_Write_Command(Basic_Instruction_Com);
				Lcd_Write_Dat(*p++);
				Lcd_Write_Dat(*p++);											
			}
	} 

#endif
/*******************************************
    	***		The END		***		 
********************************************/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区不卡免费| 色综合激情久久| 国产91精品精华液一区二区三区 | 欧美在线一二三| 在线免费观看日本欧美| 国产欧美va欧美不卡在线| 成人h动漫精品一区二| 国产精品视频线看| 91论坛在线播放| 亚洲日韩欧美一区二区在线| 色婷婷综合久久久久中文一区二区 | 亚洲欧美另类久久久精品| av在线一区二区| 亚洲第一福利视频在线| 精品国精品国产| 成年人午夜久久久| 爽好久久久欧美精品| 久久精品欧美一区二区三区不卡| 国产成人一区在线| 亚洲综合丝袜美腿| 久久久亚洲精品一区二区三区| www.色综合.com| 免费观看在线色综合| 日本一区二区成人| 91精品国产91综合久久蜜臀| 国产在线精品不卡| 午夜精品久久久久久久99樱桃| 欧美sm美女调教| 91精品1区2区| 国产精品91一区二区| 亚洲男人天堂av网| 久久综合九色综合97婷婷| 欧美三级资源在线| 色综合久久久久久久久久久| 国产一区二区三区| 久久成人精品无人区| 亚洲国产你懂的| 亚洲乱码国产乱码精品精小说| 亚洲精品一线二线三线| 欧美一卡2卡三卡4卡5免费| av一区二区三区黑人| 国产伦精品一区二区三区视频青涩| 日韩精品一区第一页| 亚洲影视资源网| 亚洲成人久久影院| 午夜精品久久久久久久99樱桃 | 久久久久久久综合色一本| 日韩三级av在线播放| www.成人在线| 91成人国产精品| 欧美精品久久久久久久久老牛影院| 精品婷婷伊人一区三区三| 色狠狠综合天天综合综合| 97国产精品videossex| 91丝袜美女网| 精品视频一区三区九区| 欧美日韩高清不卡| 久久综合久久鬼色| 亚洲欧洲一区二区三区| 亚洲一区二区三区视频在线播放| 一区二区三区四区五区视频在线观看| 亚洲午夜精品网| 精品亚洲国产成人av制服丝袜| 国产a级毛片一区| 色婷婷一区二区| 欧美成人精品1314www| 自拍视频在线观看一区二区| 一区二区三区加勒比av| 五月激情综合色| 99久久婷婷国产| 欧美日韩高清影院| 337p粉嫩大胆噜噜噜噜噜91av| 国产视频一区不卡| 亚洲一区二区三区自拍| 午夜精品一区在线观看| 国产91精品免费| 欧美一级片在线| 玉米视频成人免费看| 国产电影一区二区三区| 在线观看国产一区二区| 国产精品色呦呦| 久久er精品视频| 欧美一二三四在线| 亚洲一区在线观看免费观看电影高清| 国产成人午夜视频| 777午夜精品视频在线播放| 一区二区三区在线免费播放| www.亚洲色图.com| 精品国产伦一区二区三区观看体验| 亚洲午夜久久久久久久久久久| 99精品久久只有精品| 国产精品女主播av| 大尺度一区二区| 一区精品在线播放| 不卡的av在线| 一区二区久久久| 色婷婷av一区二区三区软件| 精品国产人成亚洲区| 国产激情视频一区二区在线观看 | 日本精品免费观看高清观看| 亚洲黄色小说网站| 91精品国产欧美一区二区| 日韩1区2区3区| 国产欧美精品一区aⅴ影院 | 精品成人佐山爱一区二区| 黄页网站大全一区二区| 国产精品久久久久久久岛一牛影视| 成人免费看视频| 亚洲激情图片qvod| 日韩欧美国产不卡| 成人性生交大片免费看在线播放 | 亚洲国产精品av| 欧美日韩免费在线视频| 国内久久精品视频| 一区二区三区美女视频| 欧美一级视频精品观看| 一区二区三区在线高清| 成人动漫在线一区| 国产欧美日韩在线看| 欧美挠脚心视频网站| 国精产品一区一区三区mba桃花| 国产精品家庭影院| 欧美电影免费提供在线观看| 99re亚洲国产精品| 极品少妇一区二区| 亚洲成人在线观看视频| 国产日产欧美一区二区视频| 欧美一二三在线| 欧美在线播放高清精品| av网站免费线看精品| 国产另类ts人妖一区二区| 日韩二区三区在线观看| 中文字幕一区在线观看视频| 久久伊99综合婷婷久久伊| 欧美三区在线观看| 91麻豆产精品久久久久久| 粉嫩aⅴ一区二区三区四区五区| 日韩电影在线免费看| 亚洲国产精品麻豆| 欧美国产1区2区| 亚洲欧洲日产国产综合网| 中文字幕一区二区三区视频 | 国产不卡视频在线播放| 黄色小说综合网站| 国产精品 日产精品 欧美精品| 精品一区精品二区高清| 精品一区二区三区欧美| 久久99热国产| 成人午夜视频网站| 色偷偷久久人人79超碰人人澡| 99精品久久免费看蜜臀剧情介绍| 99久久伊人久久99| 欧洲精品一区二区| 在线播放/欧美激情| 久久久久国产精品厨房| 国产精品三级av| 亚洲午夜av在线| 国产一二精品视频| 成人综合在线观看| 在线免费不卡视频| 久久只精品国产| 国产精品久久久久久福利一牛影视 | 久久久午夜精品理论片中文字幕| 国产精品国模大尺度视频| 一区二区三区av电影| 亚洲国产毛片aaaaa无费看| 日本不卡视频在线观看| 91色porny在线视频| 日韩三级在线观看| 亚洲欧洲99久久| 美日韩一区二区三区| 99这里都是精品| 日韩欧美国产系列| 一区二区三区影院| 国产传媒日韩欧美成人| 欧美日韩不卡一区| 日韩一区有码在线| 偷拍一区二区三区| 91丨porny丨最新| 国产日产欧美精品一区二区三区| 亚洲成a人v欧美综合天堂下载| 国内成人免费视频| 26uuu欧美| 九九国产精品视频| 日韩视频一区二区在线观看| 午夜精品福利在线| 欧美偷拍一区二区| 亚洲国产美国国产综合一区二区| 91美女片黄在线| 亚洲免费观看高清| 色8久久精品久久久久久蜜| 18欧美亚洲精品| 欧美午夜电影在线播放| 亚洲一区二区三区激情| 欧美影视一区在线| 性久久久久久久| 欧美一区二区二区| 精品影视av免费| 中文字幕高清一区| 91在线国产观看|