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

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

?? rd_lcd1602b.h

?? 此為lcd1602b的驅(qū)動程序
?? H
字號:
/********************************************************
*  函數(shù)庫說明:LCD1602B基本驅(qū)動函數(shù)庫                   *
*  版本:      v1.7b                                    *
*  作者:      傻孩子                                   *
*  日期:      2005年9月6日                             *
*  修改:      傻孩子                                   *
*  修改日期:  2005年12月12日                           *
*                                                       *
*  說明:                                               *
*              1、需要底層硬件驅(qū)動函數(shù)支持              *
*                 基本的宏定義:                        *
*                 LCD_RS   LCD_RW   LCD_E               *
*                 LCD_SetWriteData  LCD_SetReadData     *
*                 LCD_HalfData_Port LCD_HalfData_DDR    *
*                 LCD_SendHalfCharHigh(a)               *
*                 LCD_SendHalfCharLow(a)                *
*              2、自帶基本的延時函數(shù)。需要外部提供毫秒  *
*                 單向增加的兩個計數(shù)器用于特效顯示:    *
*                 FlashTimeCounter  RunTimeCounter      *
*              3、需要修改引用宏定義來指定底層硬件驅(qū)動  *
*                 函數(shù)庫。                              *
*              4、本庫驅(qū)動下的LCD顯示支持1602的各種連   *
*                 接方法。當(dāng)使用只寫模式是請在引用該頭  *
*                 文件之前加上宏定義:                  *
*                 # define _Use_LCDOnlyWrite            *
*              5、在調(diào)用本庫之前,定義RunStringSpeed可  *
*                 以設(shè)置滾屏的速度。通過在引用前定義    *
*                 FlashTimeOut 和 FlashGIFTimeOut 可以  *
*                 改變字符閃爍的頻率。                  *
*              6、增加一個GIF字幕特效函數(shù)。             *
*              7、確定沒有LCD復(fù)位問題。                 *
********************************************************/
#ifndef _Use_LCD1602B
# define _Use_LCD1602B

/***********************
*    系 統(tǒng) 宏 定 義    *
***********************/

/*---------------------*
*    常 數(shù) 宏 定 義    *
*---------------------*/
#ifndef True
    # define True           0x01
#endif
#ifndef False
    # define False          0x00
#endif

#ifndef Enable
    # define Enable         0x01
#endif
#ifndef Disable
    # define Disable        0x00
#endif

#ifndef RunStringSpeed
    # define RunStringSpeed 100
#endif

#ifndef FlashTimeOut
    # define FlashTimeOut   500
#endif
#ifndef FlashGIFTimeOut
    # define FlashGIFTimeOut  1000
#endif

# define LCD_Write          0x00
# define LCD_Read           0x01
# define LCD_Command        0x00
# define LCD_Data           0x01
# define LCD_CMD_Init       0x28
# define LCD_CMD_DispCtr    0x0c
# define LCD_CMD_CLS        0x01
# define LCD_CMD_EnterSet   0x06
# define LCD_CMD_IconShow   0x0f
# define LCD_CMD_IconHide   0x0c
# define LCD_CMD_NotMove    0b00010100
/*---------------------*
*    動 作 宏 定 義    *
*---------------------*/
# define SetReadState       LCD_SetReadData;LCD_RS = LCD_Command;LCD_RW = LCD_Read;
# define SetRead            LCD_SetReadData;LCD_RW = LCD_Read;
# define SetWrite           LCD_SetWriteData;LCD_RW = LCD_Write;
# define SetCommand         LCD_RS = LCD_Command;
# define SetData            LCD_RS = LCD_Data;

# define Print(a)           LCDDisplayString(a);
# define Locate(x,y)        LCDSetXY(x-1,y-1);
# define CLS                LCDWaitForReady();LCDSendCommand(LCD_CMD_CLS);
# define PrintN(a,b)        LCDDisplayNum((unsigned long)a,b);
# define ShowIcon           LCDWaitForReady();LCDSendCommand(LCD_CMD_IconShow);
# define HideIcon           LCDWaitForReady();LCDSendCommand(LCD_CMD_IconHide);
/***********************
*    全局變量聲明區(qū)    *
***********************/
const char CHR[16] = {'0','1','2','3','4','5','6','7','8'
                     ,'9','a','b','c','d','e','f'};
extern unsigned int FlashTimeCounter;
extern unsigned int RunTimeCounter;
extern unsigned int FlashGIFStringCounter;
/***********************
*    系統(tǒng)函數(shù)聲明區(qū)    *
***********************/
void LCDInit(void);
void LCDSendCommand(char Command);
void LCDSendData(char Data);
void LCDWaitForReady(void);
void LCDSetXY(char X,char Y);
void LCDDisplayString(char *String);
void LCDDisplayNum(unsigned long Num,char BitCount);
void LCDDelay(unsigned int Time);
void LCDDelayUs(unsigned int Time);
void RunString(char *String,char Direction,char Y,char StartX,char EndX);
void Flash(char *String,char Icon,char X,char Y);
char StringLength(char *String);
void FlashStringGroup(char String[][17],char StringCounter,char X,char Y);
/********************************************************
*  函數(shù)說明:LCD驅(qū)動類毫秒延時函數(shù)                      *
*  輸入:    需要延時的大體毫秒數(shù)                       *
********************************************************/
void LCDDelay(unsigned int Time)
{
    unsigned int TimeCounter = 0;
	
	for (TimeCounter = 0;TimeCounter < Time;TimeCounter ++)
	{
	    LCDDelayUs(255);
	}
}

/********************************************************
*  函數(shù)說明:LCD驅(qū)動指令周期延時函數(shù)                    *
*  輸入:    需要大體延時Us數(shù)                           *
********************************************************/
void LCDDelayUs(unsigned int Time)
{
     unsigned int TimeCounter = 0;
	 for (TimeCounter = 0;TimeCounter < Time;TimeCounter ++)
	 {
	     asm("nop");
	 }
}

/********************************************************
*  函數(shù)說明:LCD初始化函數(shù)                              *
********************************************************/
void LCDInit(void)
{
    LCDDelay(15);
	
	LCDWaitForReady();
	LCDSendCommand(LCD_CMD_Init);
	
	LCDWaitForReady();
	LCDSendCommand(LCD_CMD_DispCtr);
	
	LCDWaitForReady();
	LCDSendCommand(LCD_CMD_CLS);
	LCDDelay(2);
	LCDSendCommand(LCD_CMD_EnterSet);
	
}

/********************************************************
*  函數(shù)說明:向LCD發(fā)送指令函數(shù)                          *
*  輸入:    需要發(fā)送的指令                             *
********************************************************/
void LCDSendCommand(char Command)
{
	SetWrite;
	SetCommand;
	{
	    LCD_E = Enable;
		
		LCD_SendHalfCharHigh(Command);
		
	    LCD_E = Disable;
	}
	{
	    LCD_E = Enable;
		
        LCD_SendHalfCharLow(Command);	
		
		LCD_E = Disable;
	}
    SetRead;		
	SetCommand;
}

/********************************************************
*  函數(shù)說明:向LCD發(fā)送數(shù)據(jù)函數(shù)                          *
********************************************************/
void LCDSendData(char Data)
{
    SetWrite;
	SetData;
	{
	    LCD_E = Enable;
		
		LCD_SendHalfCharHigh(Data);
		
	    LCD_E = Disable;
	}

	{
	    LCD_E = Enable;
		
        LCD_SendHalfCharLow(Data);	
		
		LCD_E = Disable;
	}
    SetRead;		
	SetCommand;
}

/********************************************************
*  函數(shù)說明:等待LCD空閑狀態(tài)函數(shù)                        *
********************************************************/
void LCDWaitForReady(void)
{
#ifdef _Use_LCDOnlyWrite
	LCDDelayUs(30);
#else
	
	SetRead;
	SetCommand;
   
    LCD_E = Enable;   
    
	while (LCD_BF == Enable);   //RW=1,讀PD7,為0表示空閑;
   
    LCD_E = Disable;
	
#endif
}

/********************************************************
*  函數(shù)說明:設(shè)置顯示坐標(biāo)函數(shù)                           *
********************************************************/
void LCDSetXY(char X,char Y)
{
    char Address;
    if (Y == 0)
	{
	    Address = 0x80 + X;
	}
    else
	{ 
        Address = 0xc0 + X;
	}
	
	LCDWaitForReady();
    LCDSendCommand(Address);
}

/********************************************************
*  函數(shù)說明:LCD字符串顯示函數(shù)                          *
********************************************************/
void LCDDisplayString(char *String)
{
    while(*String)
	{
	    LCDWaitForReady();
	    LCDSendData(*String);
		String++;
	}
}

/********************************************************
*  函數(shù)說明:數(shù)值顯示函數(shù)(HEX)                          *
*  輸入:    需要顯示的數(shù)字(無符號長整形)             *
********************************************************/
void LCDDisplayNum(unsigned long Num,char BitCount)
{
    char a = 0;
	for (a = 8-BitCount ;a<8;a++)
	{
	    LCDSendData(CHR[(Num<<(a<<2))>>28]);
	}
}

/********************************************************
*  函數(shù)說明:滾屏字幕效果                               *
*  輸入:    需要滾屏的字符串 長度 位置                 *
********************************************************/
void RunString(char *String,char Direction,char Y,char StartX,char EndX)
{
    static char StringHead = 0;
	char SCREEN[17];
	char a = 0;
	char Point = StringHead;
	char StringLong = StringLength(String);
	static int RunTimeCounter = 0;
	
	for (a = 0;a<EndX - StartX + 1;a++)
	{
	     SCREEN[a] = String[Point];
		 Point ++;
		 if (Point == StringLong)
		 {
		     Point = 0;
		 }
	}
	
	for (;a < 17;a++)
	{
	    SCREEN[a] =' ';
	}
	
	RunTimeCounter ++;
	if (RunTimeCounter >RunStringSpeed)
	{
	    StringHead ++;
		RunTimeCounter = 0;
		if (StringHead == StringLong)
	    {
	        StringHead = 0;
	    }
	}
	
	Locate(StartX,Y)
	Print(SCREEN)
}

/********************************************************
*  函數(shù)說明:字符串長度測試函數(shù)                         *
********************************************************/
char StringLength(char *String)
{
    char n = 0;
	while (*String)
	{
	    n++;
		String ++;
	}
	
	return n;
}

/********************************************************
*  函數(shù)說明:閃爍顯示函數(shù)                               *
********************************************************/
void Flash(char *String,char Icon,char X,char Y)
{
    char a = 0;
	char StringLong = StringLength(String);
	
    if (FlashTimeCounter % FlashTimeOut > (FlashTimeOut >> 1))
	{
	    Locate(X,Y)
		Print(String)    
	}
	else
	{
	    for (a = X ;a < X+StringLong;a++)
		{
		    Locate(a,Y)
			LCDWaitForReady();
			LCDSendData(Icon);
		}
	}
}

/********************************************************
*  函數(shù)說明:字幕GIF函數(shù)                                *
********************************************************/
void FlashStringGroup(char String[][17],char StringCounter,char X,char Y)
{
    static char Pictures = 0;
	static char DispState = 0;
    if (FlashGIFStringCounter % FlashGIFTimeOut > (FlashGIFTimeOut >> 1))
	{
	    if (DispState == 0)
		{
	        Pictures ++;
		    if (Pictures == StringCounter)
		    {
		        Pictures = 0; 
		    }
			DispState = 1;
		}
	}
	else
	{
	    if (DispState == 1)
		{
		    Pictures ++;
			if (Pictures == StringCounter)
			{
			    Pictures = 0;
			}
			DispState = 0;
		}
	}
	
	Locate(X,Y);
	Print(String[Pictures]);
}



#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品情趣视频| 欧美国产日产图区| 亚洲亚洲精品在线观看| 欧美日韩亚州综合| 国产盗摄精品一区二区三区在线| 中文字幕一区二区在线播放| 91免费国产在线| 欧美性猛片aaaaaaa做受| 欧美日韩在线不卡| 国产河南妇女毛片精品久久久| 久久久一区二区三区捆绑**| 欧美日韩黄色影视| 岛国av在线一区| 成人激情免费视频| 国产精品伊人色| 欧美日韩国产成人在线91| 久久精品国产一区二区| 亚洲精品久久久蜜桃| 国v精品久久久网| 亚洲香肠在线观看| 欧美成人精品高清在线播放| 国产精品一二三区| 免费不卡在线观看| 亚洲一级二级在线| 亚洲男帅同性gay1069| 日韩免费视频一区| 在线电影一区二区三区| 欧洲色大大久久| 国产精品国模大尺度视频| 国产综合久久久久久鬼色| 蜜桃久久久久久| 欧美aaa在线| 久久99在线观看| 国产精品一级片在线观看| 欧美tickling挠脚心丨vk| 欧美日本一区二区| 精品美女一区二区| 久久精品在线观看| 国产亚洲污的网站| 亚洲卡通欧美制服中文| 男男成人高潮片免费网站| 韩国精品主播一区二区在线观看| 99久久国产综合精品色伊| 欧美性一级生活| 精品福利一二区| 国产精品短视频| 日韩国产精品久久久久久亚洲| 国产乱子轮精品视频| 国产成人免费视频网站 | 国产最新精品免费| 99久久久免费精品国产一区二区| 婷婷综合在线观看| 日韩精品一区二区三区视频 | 欧美日本国产一区| 5858s免费视频成人| 国产亚洲欧美日韩俺去了| 亚洲欧洲国产日韩| 成人精品一区二区三区四区| 在线观看欧美黄色| 日韩视频在线观看一区二区| 精品美女一区二区三区| 亚洲免费av网站| 国内精品写真在线观看| 欧美伊人精品成人久久综合97 | 精品欧美一区二区在线观看| 国产精品不卡在线观看| 免费观看久久久4p| 欧美在线观看视频一区二区三区| 国产三级精品三级在线专区| 日韩在线播放一区二区| 99久久99久久精品国产片果冻| 欧美怡红院视频| 中文字幕一区av| 国产激情一区二区三区四区| 在线看国产一区| 欧美国产日本视频| 琪琪久久久久日韩精品| 91黄色免费网站| 中文字幕 久热精品 视频在线 | 欧美三区在线视频| 国产精品成人一区二区艾草| 激情欧美一区二区| 678五月天丁香亚洲综合网| 一区二区三区四区国产精品| 国产suv一区二区三区88区| 日韩欧美一二三四区| 午夜电影一区二区三区| 欧美在线制服丝袜| 不卡一区二区在线| 欧美伊人久久久久久午夜久久久久| 欧美激情一区在线观看| 精品一区二区三区久久久| 91麻豆精品国产91久久久久久久久| 亚洲欧美日韩在线| 99国产精品99久久久久久| 国产女同互慰高潮91漫画| 国产一区在线观看麻豆| 精品国产亚洲一区二区三区在线观看 | 日韩一区二区免费高清| 午夜成人免费视频| 欧美精品黑人性xxxx| 亚洲福利视频导航| 欧美日韩大陆在线| 视频一区二区三区中文字幕| 欧美午夜免费电影| 亚洲午夜久久久久中文字幕久| 欧美三级日韩三级| 婷婷综合五月天| 日韩欧美精品在线| 激情五月婷婷综合| 日韩一区二区在线播放| 国内国产精品久久| 久久综合久色欧美综合狠狠| 国产一区在线观看视频| 国产午夜精品一区二区三区四区| 国产精一品亚洲二区在线视频| 久久先锋资源网| 成人h动漫精品一区二| **欧美大码日韩| 日本福利一区二区| 亚洲成人av电影在线| 91精品国产免费久久综合| 久久精品国产999大香线蕉| 精品国产在天天线2019| 风间由美中文字幕在线看视频国产欧美| 亚洲精品一区二区三区香蕉| 国产激情一区二区三区| 亚洲欧洲另类国产综合| 91成人网在线| 丝袜诱惑亚洲看片| 日韩亚洲欧美一区| 国产成人在线免费| 亚洲精品成人天堂一二三| 欧美日本韩国一区| 国产在线麻豆精品观看| 国产午夜三级一区二区三| 91亚洲资源网| 日本va欧美va欧美va精品| 久久午夜羞羞影院免费观看| 99国产精品久久久久久久久久久 | 国产999精品久久| 一区二区三区在线视频播放| 欧美一区二区三区视频在线| 国产精品12区| 亚洲一区在线免费观看| 欧美精品一区二区精品网| 成人午夜视频在线| 肉肉av福利一精品导航| 国产精品素人一区二区| 中文字幕一区二区在线观看| 懂色av中文一区二区三区| 亚洲激情第一区| 欧美电影免费观看高清完整版在线观看| 国产激情一区二区三区四区| 亚洲国产精品视频| 久久精品在这里| 欧美日韩免费在线视频| 国产精品66部| 日韩福利电影在线观看| 国产精品理论在线观看| 欧美一区二区在线播放| 97久久超碰国产精品电影| 美女视频黄a大片欧美| 亚洲丝袜精品丝袜在线| 日韩欧美高清一区| 在线观看日韩高清av| 国产成a人亚洲| 日本不卡不码高清免费观看| 亚洲摸摸操操av| 国产拍欧美日韩视频二区| 欧美精品自拍偷拍动漫精品| 成人小视频在线观看| 久久 天天综合| 亚洲h动漫在线| 综合精品久久久| 精品国产制服丝袜高跟| 精品视频一区二区不卡| av不卡在线观看| 国产乱码一区二区三区| 免费在线观看成人| 亚洲v精品v日韩v欧美v专区| 亚洲天堂av老司机| 国产欧美精品一区aⅴ影院 | 一二三区精品福利视频| 国产精品情趣视频| 久久美女高清视频| 欧美成人女星排行榜| 欧美日本高清视频在线观看| 色综合久久久久久久久久久| 国产99一区视频免费| 国产精品一区一区三区| 日本不卡1234视频| 日韩中文字幕区一区有砖一区 | 午夜视频在线观看一区二区三区| 国产精品国产三级国产普通话蜜臀 | 欧美一级二级在线观看| 在线一区二区三区四区| 91麻豆自制传媒国产之光| 成人av综合在线| 国产**成人网毛片九色|