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

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

?? lcm12864.h

?? 小護士脈搏監護儀全套系統
?? H
字號:
//*******************************************************************************
//*文件:lcm12864.h 	                       										*  
//*說明:lcm12864液晶(帶字庫)驅動函數庫 7920控制器	8位并口方式驅動				*
//*平臺:AVR																		*	
//*作者:陳崇                              										* 
//*建立:2006-12-20											                    *
//*修改:2007-5-26																*
//*******************************************************************************


#ifndef _LCM12864_DRIVER_
#define _LCM12864_DRIVER_


#define	LCD_DB_OUT			PORTC					// LCD數據端口	
#define	LCD_DB_SET_OUT		DDRC=0xFF				// 設置數據端口為輸出
#define	LCD_DB_SET_IN		DDRC=0x00				// 設置數據端口為輸入
#define	LCD_RST_SBI	 		PORTD|=_BV(PD1)			// RST置位
#define	LCD_RST_CBI	 		PORTD&=~_BV(PD1) 		// RST清零9
#define LCD_PSB_SBI			PORTD|=_BV(PD7)			// PSB置位
#define LCD_PSB_CBI			PORTD&=~_BV(PD7)		// PSB清零
#define	LCD_E_SBI			PORTA|=_BV(PA5)			// E置位
#define	LCD_E_CBI			PORTA&=~_BV(PA5)		// E清零
#define	LCD_RW_SBI	 		PORTA|=_BV(PA6)  	 	// RW置位	  				 
#define	LCD_RW_CBI	 		PORTA&=~_BV(PA6)    	// RW清零
#define	LCD_RS_SBI	 		PORTA|=_BV(PA7)			// RS置位
#define	LCD_RS_CBI	 		PORTA&=~_BV(PA7)		// RS清零
#define LCD_BF				PINC&_BV(PINC7)			// 忙碌標志位
 
//***********************************************************************
//*名稱: void delay_nms(unsigned int nms)  								*	 
//*功能: 延時nms					       								*
//*參數: 無     		                   								*
//*返回: 無		                           								*
//***********************************************************************
void delay_nms(unsigned int nms)
	{	
		for(;nms>0;nms--)
			{
				_delay_loop_2(2000);
			}
	}
//***********************************************************************
//*名稱: void lcm12864_check_busy(void)      							* 
//*功能: 檢查lcm12864忙碌子程序            								*
//*參數: 無		                           								*
//*返回: 無                                								*
//***********************************************************************
void lcm12864_check_busy(void)
	{
		LCD_DB_SET_IN;
		LCD_DB_OUT=0xFF;
		LCD_RS_CBI;             		//	顯示指令
		LCD_RW_SBI;             		//	讀數據
		LCD_E_SBI;              		//	讀寫使能
		while(LCD_BF);					//	判斷忙碌標志位
		LCD_E_CBI;						//	讀寫使能關閉
		LCD_DB_SET_OUT;
		
	} 
//***********************************************************************
//*名稱: void lcm12864_wirte_cmd(unsigned char command)         	* 
//*功能: 往lcm12864寫指令子程序           								*
//*參數: command 字符型 指令代碼          								*
//*返回: 無		                          								*
//***********************************************************************
void lcm12864_wirte_cmd(unsigned char command)
	{
		lcm12864_check_busy();				//	檢查LCD是否忙碌
		LCD_DB_SET_OUT;
		LCD_RS_CBI;              			//	顯示指令
		LCD_RW_CBI;              			//	寫數據
		LCD_DB_OUT=command;		
		LCD_E_SBI;
		asm("nop"::);
		LCD_E_CBI;
	}
//***********************************************************************************
//*名稱: unsigned char lcm12864_read_data(void)            										   	*
//*功能: 從lcm12864讀數據子程序         										   	*  
//*參數: 無                             										   	*
//*返回: lcm12864_data 字符型 讀取數據  										   	*
//***********************************************************************************	
unsigned char lcm12864_read_data(void)
{
	unsigned char rev_data;
	lcm12864_check_busy();
	LCD_RS_SBI;             			 //顯示數據
	LCD_RW_SBI;             			 //讀數據
	LCD_E_SBI;
	rev_data=LCD_DB_OUT;
	LCD_E_CBI;
	return rev_data;
}
//***********************************************************************************
//*名稱: lcm12864_wirte_data(unsigned char data_byte)		  					*
//*功能: 往lcm12864寫數據															*	
//*參數: lcm12864_data 要寫入的數		  											*
//*返回: 無				  															*	
//***********************************************************************************
void lcm12864_wirte_data(unsigned char data_byte)
	{
		lcm12864_check_busy();		// 檢查LCD是否忙碌
		LCD_DB_SET_OUT;
		LCD_RS_SBI;              			//顯示數據
		LCD_RW_CBI;              			//寫數據
		LCD_DB_OUT=data_byte;
		LCD_E_SBI;						// 讀寫使能
		asm("nop"::);
		LCD_E_CBI;
	}

//***********************************************************************************
//*名稱: lcm12864_clear(void)                										*
//*功能: lcm12864DDRAM清屏                   										*
//*參數: 無                             											*
//*返回: 無                             											*
//***********************************************************************************
void lcm12864_clear(void)
	{
	  lcm12864_wirte_cmd(0x01);
	}


//***********************************************************************************
//*名稱: lcm12864_init(void)                  										*
//*功能: lcm12864初始化                 											*
//*參數: 無                             											*
//*返回: 無                             											*
//***********************************************************************************
void lcm12864_init(void)
	{
		LCD_PSB_SBI;						 		//8位并口方式
		LCD_RST_CBI;	             				//lcm12864復位
		delay_nms(5);
		LCD_RST_SBI;
		lcm12864_wirte_cmd(0x30);     	 	//基本指令
		lcm12864_wirte_cmd(0x01);     	 	//清除顯示
		lcm12864_wirte_cmd(0x0C);     	 	//顯示開,關光標不閃爍
		lcm12864_wirte_cmd(0x06);     	 	//設置輸入模式
	
	
	}

//***************************************************************************************
//*名稱: void lcm12864_char_locate(unsigned char x, unsigned char y )                   * 
//*功能: 字符顯示定位(漢字和ASCII)                     									* 
//*參數: x水平列地址(0-7) y垂直行地址(0-3)    										 	*
//*返回: 無                                      										*	 
//***************************************************************************************
void lcm12864_char_locate(unsigned char x, unsigned char y )
	{
		unsigned char dx=0;						// DDRAM中的水平和垂直坐標
		switch(y)							
			{
				case 0:
					{
						dx=x+0x80;
						break;
					}
				case 1:
					{
						dx=x+0x90;
						break;
					}
				case 2:
					{
						dx=x+0x88;
						break;
					}
				case 3:
					{
						dx=x+0x98;
						break;
					}
			}
		lcm12864_wirte_cmd(dx);
	}
//***************************************************************************************
//*名稱: lcm12864_dis_ascii(unsigned char ascii_code)									*	
//*功能: 顯示一個ASCII字符																*					
//*參數: ascii_code 顯示的ASCII代碼														*
//*返回: 無																				*
//***************************************************************************************
void lcm12864_dis_ascii(unsigned char ascii_code)
	{
		lcm12864_wirte_data(ascii_code);
	}

//***********************************************************************************************************************
//*名稱: lcm12864_dis_string (unsigned char x, unsigned char y, unsigned char *ptr,unsigned int speed)           		*                          
//*功能: 顯示一個字符                           																		*
//*參數: x 水平列地址(0-7)	 y 垂直行地址(0-3)	*ptr  字符串指針														*
//*返回:無                                    																			*
//***********************************************************************************************************************
void lcm12864_dis_string (unsigned char x, unsigned char y, unsigned char *ptr,unsigned int speed)
	{
		lcm12864_char_locate(x,y);					// 定位字符的起點在DDRAM中的位置
		while (*ptr)
			{
			  lcm12864_wirte_data(*ptr++);
			  delay_nms(speed);
			}
	}
//*******************************************************************************************************
//*名稱:  lcm12864_draw_locate (unsigned char x,unsigned char y)             							*
//*功能:  繪圖模式GDRAM定位													                      	*
//*參數:  x水平列地址(0-127) y垂直行地址(0-63)                                															*
//*返回:  無                                															*
//*******************************************************************************************************
void lcm12864_draw_locate (unsigned char x,unsigned char y) 
	{
		lcm12864_wirte_cmd(0x34);
		lcm12864_wirte_cmd(y);		// 垂直地址
		lcm12864_wirte_cmd(x);		// 水平地址
		lcm12864_wirte_cmd(0x30);
	}
//*******************************************************************************************************
//*名稱:  lcm12864_string_negative(unsigned char x,unsigned char y,unsigned char with)             	*
//*功能:  字符串反白顯示 可以反白半寬的ASCII碼字符									                    *
//*參數:  x水平列地址(0-15) y垂直行地址(0-3)							                                *
//*返回:  無                                															*
//*******************************************************************************************************
void lcm12864_string_negative(unsigned char x,unsigned char y,unsigned char with)
	{
		unsigned char temp1,temp2;
		unsigned int dot_data;												
		
		if(x%2==1)								// 初始化寫入點數據				
			{
				dot_data=0x00FF;
			}
		else
			{
				dot_data=0xFF00;
			}
		x=0x80+x/2;								// 繪圖GDRAM水平地址 
		switch(y)								// 轉換成DDRAM坐標
			{
				case 0:
					{
						y=0x80;
						break;
					}
				case 1:
					{
						y=0x90;
						break;
					}
				case 2:
					{
						y=0x80;
						x+=8;
						break;
					}
				case 3:
					{
						y=0x90;
						x+=8;
						break;
					}
			}			
		if(dot_data==0x00FF)					// 反白起點為半個水平地址的字符	
			{	
				for(temp1=0;temp1<16;temp1++)	
					{
						lcm12864_draw_locate(x,y+temp1);		// 寫繪圖資料地址,先寫垂直地址,再寫水平地址
						lcm12864_wirte_data((char)(dot_data/256));		// 連續寫入兩個字節的數據到繪圖資料
						lcm12864_wirte_data((char)(dot_data%256));
					}
				with--;											
				if(with==0)									// 如果達到反白寬度則退出
					{
						lcm12864_wirte_cmd(0x36);		
						lcm12864_wirte_cmd(0x30);
						return;
					}	
				x++;											// 水平坐標增加	
			}		
			
		for(temp1=0;temp1<16;temp1++)							//	反白剩余寬度的字符
			{
				dot_data=0xFF00;
				for(temp2=0;temp2<with;temp2++)
					{
						lcm12864_draw_locate(x+temp2/2,y+temp1);		// 寫繪圖資料地址,先寫垂直地址,再寫水平地址
						lcm12864_wirte_data((char)(dot_data/256));		// 連續寫入兩個字節的數據到繪圖資料
						lcm12864_wirte_data((char)(dot_data%256));
						dot_data|=~dot_data;
					}		
				
			}
				
		lcm12864_wirte_cmd(0x36);								// 打開繪圖顯示
		lcm12864_wirte_cmd(0x30);	
	}
//*******************************************************************************************************
//*名稱: lcm12864_dis_dot(unsigned char x,unsigned char y,const unsigned char *prt)             		*
//*功能: 顯示16*16點陣

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91香蕉视频在线| 成人一区二区视频| 国产91精品精华液一区二区三区 | 午夜激情综合网| 国产成人午夜高潮毛片| 欧美日韩国产影片| 国产精品免费久久| 久久不见久久见免费视频1| 在线视频国内一区二区| 久久伊人中文字幕| 日本不卡一区二区| 日本韩国精品在线| 国产精品久久久久天堂| 久久精品久久精品| 欧美精品在线观看播放| 亚洲综合视频在线观看| 成人高清视频免费观看| 久久精品一区二区三区不卡牛牛| 蜜桃视频第一区免费观看| 欧美日韩一本到| 亚洲综合色区另类av| 99久久婷婷国产综合精品| 国产亚洲污的网站| 韩日欧美一区二区三区| 日韩区在线观看| 美女视频黄久久| 在线成人av网站| 婷婷国产v国产偷v亚洲高清| 欧美日韩精品一区二区在线播放| 一区二区三区精品在线观看| 色八戒一区二区三区| 亚洲精品免费视频| 99久久久精品| 一区二区三区欧美日| 欧美在线视频你懂得| 一区二区三区成人| 欧美日韩久久一区二区| 日韩av电影免费观看高清完整版 | 亚洲欧美另类小说| 97精品国产露脸对白| 国产精品久久久久久户外露出| 懂色av一区二区在线播放| 国产精品伦一区二区三级视频| av中文字幕一区| 亚洲人午夜精品天堂一二香蕉| 在线观看91精品国产入口| 亚洲国产一二三| 日韩一级免费观看| 国产一区二区精品久久| 国产精品三级久久久久三级| 99久久99久久精品国产片果冻 | 国产日韩av一区二区| 成人午夜视频福利| 亚洲免费观看在线视频| 欧美日韩免费一区二区三区| 麻豆91在线播放| 国产精品伦理一区二区| 欧洲色大大久久| 开心九九激情九九欧美日韩精美视频电影| 久久免费的精品国产v∧| av不卡免费在线观看| 亚洲一二三级电影| 2020国产精品自拍| 99久久国产综合精品女不卡| 天天综合日日夜夜精品| 久久久久久99久久久精品网站| 99精品热视频| 狠狠色伊人亚洲综合成人| 亚洲欧美日韩一区二区三区在线观看| 91麻豆精品国产91久久久使用方法| 国产一二精品视频| 一区二区成人在线| 国产欧美日韩不卡| 欧美伦理视频网站| 成人网页在线观看| 日本欧美在线看| 亚洲精品国产精品乱码不99 | 国产高清不卡一区二区| 亚洲自拍偷拍网站| 中文字幕乱码日本亚洲一区二区| 337p亚洲精品色噜噜狠狠| 国产99久久久国产精品潘金| 丝袜美腿一区二区三区| 亚洲欧洲国产日韩| 精品奇米国产一区二区三区| 欧美日韩aaaaaa| 91蜜桃在线观看| 国产69精品久久777的优势| 日韩精品国产精品| 国产精品资源在线看| 亚洲国产精品天堂| 中文字幕制服丝袜成人av | 国产精一区二区三区| 亚洲精品免费在线播放| 国产无一区二区| 欧美成人video| 国产性做久久久久久| 欧美日韩一区在线| 色综合天天综合色综合av| 国内外成人在线| 美女免费视频一区二区| 三级在线观看一区二区| 亚洲一区二区在线免费看| 国产精品久久久久aaaa樱花| 久久色.com| 精品日韩一区二区| 日韩欧美不卡一区| 91精品国产91久久久久久一区二区 | 欧美猛男gaygay网站| av不卡在线播放| 91麻豆产精品久久久久久| 91在线一区二区三区| 99这里都是精品| 色系网站成人免费| 一本大道av一区二区在线播放| 91蝌蚪国产九色| 在线观看免费亚洲| 欧美在线免费视屏| 欧美吻胸吃奶大尺度电影| 欧美亚洲动漫另类| 欧美视频一二三区| 日韩一区二区免费视频| 日韩欧美一级二级| 欧美精品一区二区在线观看| 亚洲国产成人在线| 国产精品精品国产色婷婷| 国产色综合一区| 国产精品毛片大码女人| 亚洲精品国产高清久久伦理二区| 亚洲国产精品一区二区久久恐怖片 | 国产精品欧美极品| 国产精品网站在线观看| 亚洲精品久久久蜜桃| 亚洲第一福利一区| 三级欧美在线一区| 麻豆freexxxx性91精品| 国产精品99久久久久久有的能看| av色综合久久天堂av综合| 99久久99久久精品免费看蜜桃| 在线观看亚洲成人| 在线成人免费观看| 国产亚洲女人久久久久毛片| 一区二区三区四区蜜桃| 七七婷婷婷婷精品国产| 欧美性xxxxxxxx| 日韩欧美www| 国产精品久久久久久久久免费樱桃 | 亚洲主播在线播放| 精品一区二区免费在线观看| www.亚洲精品| 日韩午夜av一区| 亚洲精品国产a| 亚洲成人av免费| 国产一区二区三区久久悠悠色av| 99国产精品久久久久久久久久久 | 一区二区三区欧美久久| 日本成人在线视频网站| 丁香天五香天堂综合| 欧美性xxxxx极品少妇| 国产日韩亚洲欧美综合| 亚洲综合激情网| 国产精品18久久久久久久久久久久| 色婷婷激情一区二区三区| 日韩欧美国产一区二区三区| 一区二区欧美在线观看| 国产精品伊人色| 制服丝袜亚洲播放| 亚洲视频一区二区在线| 国产综合成人久久大片91| 欧美日韩二区三区| 国产精品乱码人人做人人爱 | 日韩专区中文字幕一区二区| 成人av小说网| 欧美不卡一区二区三区四区| 日本不卡一二三区黄网| 国产精品一二二区| 7777精品伊人久久久大香线蕉完整版 | 国产精品夜夜嗨| 欧美精品色一区二区三区| 18欧美乱大交hd1984| 激情五月婷婷综合| 91精品国产高清一区二区三区 | 亚洲裸体xxx| 国产999精品久久久久久绿帽| 日韩欧美在线影院| 婷婷中文字幕一区三区| 在线视频你懂得一区二区三区| 国产精品国产三级国产普通话99| 国产精品一二二区| 久久免费偷拍视频| 久久国产精品72免费观看| 666欧美在线视频| 五月婷婷另类国产| 欧美日韩一区高清| 一区二区三区欧美久久| 欧美在线综合视频| 亚洲综合色噜噜狠狠| 欧美性videosxxxxx| 亚洲午夜三级在线| 在线一区二区三区四区五区|