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

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

?? rd_lcd1602b.c

?? LCD1602鍵盤顯示模塊實例
?? C
?? 第 1 頁 / 共 2 頁
字號:
/***********************************************************
*   函數(shù)庫說明:LCD1602B基本驅(qū)動函數(shù)庫                     *
*   版本:      v2.11                                      *
*   作者:      傻孩子                                     *
*   創(chuàng)建日期:  2005年9月6日                               *
* -------------------------------------------------------- *
*  [支 持 庫]                                              *
* -------------------------------------------------------- *
*  [版本更新]                                              *
*   修改:      傻孩子                                     *
*   修改日期:  2006年6月8日                               *
*   版本:      v2.11                                      *
* -------------------------------------------------------- *
*  [版本歷史]                                              *
* -------------------------------------------------------- *
*  [使用說明]                                              *
*              1、需要底層硬件驅(qū)動函數(shù)支持                 *
*                 基本的宏定義:                           *
*                 LCD_RS   LCD_RW   LCD_E                  *
*                 LCD_SET_WRITE_DATA  LCD_SET_READ_DATA    *
*                 LCD_SEND_HALF_CHAR_HIGH(a)               *
*                 LCD_SEND_HALF_CHAR_LOW(a)                *
*                 當(dāng)處于串行狀態(tài)下時,只定義LCD_RS         *
*                 LCD_E LCD_SEND_HALF_CHAR_HIGH(a)         *
*                 LCD_SEND_HALF_CHAR_LOW(a)                *
*              2、如果采用8數(shù)據(jù)位連接,則需要定義數(shù)據(jù)端口  *
*                 LCD_DATA_PORT,同時需要定義宏來開啟該功  *
*                 能:_LCD1602_FULL_DATA_MODEL             *
*              3、需要修改引用宏定義來指定底層硬件驅(qū)動     *
*                 函數(shù)庫。                                 *
*              4、本庫驅(qū)動下的LCD顯示支持1602的各種連      *
*                 接方法。當(dāng)使用只寫模式是請在引用該頭     *
*                 文件之前加上宏定義:                     *
*                 # define _USE_LCD_ONLY_WRITE             *
*              5、在調(diào)用本庫之前,定義RunStringSpeed可     *
*                 以設(shè)置滾屏的速度。通過在引用前定義       *
*                 FlashTimeOut 和 FlashGIFTimeOut 可以     *
*                 改變字符閃爍的頻率。                     *
*              6、增加一個GIF字幕特效函數(shù)。                *
*              7、確定沒有LCD復(fù)位問題。                    *
*              8、增加對595串行轉(zhuǎn)并行連接的支持。          *
*                 需要頭文件SerialToCollateral.h           *
***********************************************************/

/********************
* 頭 文 件 配 置 區(qū) *
********************/
# include "RD_MacroAndConst.h"
# include "LIB_Config.h"
# include "RD_LCD1602B.h"


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

/*------------------*
*   常 數(shù) 宏 定 義  *
*------------------*/
# define LCD_CMD_DISP_CTR   0x0c
# define LCD_CMD_CLS        0x01
# define LCD_CMD_ENTER_SET  0x02
# define LCD_CMD_ICON_SHOW  0x0f
# define LCD_CMD_ICON_HIDE  0x0c
# define LCD_CMD_NOT_MOVE   0x14


# define LCD_WRITE          0x00
# define LCD_READ           0x01
# define LCD_COMMAND        0x00
# define LCD_DATA           0x01

#ifndef LCD_RUN_STRING_SPEED
    # define LCD_RUN_STRING_SPEED 100
#endif

#ifndef LCD_FLASH_TIME_OUT
    # define LCD_FLASH_TIME_OUT   0x03ff
#endif
#ifndef LCD_FLASH_STRING_GROUP_TIME_OUT
    # define LCD_FLASH_STRING_GROUP_TIME_OUT  0x03ff
#endif

/*------------------*
*   動 作 宏 定 義  *
*------------------*/
#ifndef LCD_SET_WRITE_DATA
    # define LCD_SET_WRITE_DATA
#endif
#ifndef LCD_SET_READ_DATA
    # define LCD_SET_READ_DATA
#endif
#ifndef LCD_RW
    # define LCD_RW   LCD_Temp 
#endif
#ifndef LCD_BF
	# define LCD_BF   LCD_Temp
#endif

#ifndef _Use_LCD1602B_Serial
    # define SetReadState       LCD_SET_READ_DATA;LCD_RS = LCD_COMMAND;LCD_RW = LCD_READ;
    # define SetRead            LCD_SET_READ_DATA;LCD_RW = LCD_READ;
    # define SetWrite           LCD_SET_WRITE_DATA;LCD_RW = LCD_WRITE;
    # define SetCommand         LCD_RS = LCD_COMMAND;
    # define SetData            LCD_RS = LCD_DATA;
#else
    # define _USE_LCD_ONLY_WRITE
    # define SetReadState
	# define SetRead
	# define SetWrite
	# define SetCommand         LCD_RS = LCD_COMMAND;refreshVirtualPORT();
	# define SetData            LCD_RS = LCD_DATA;refreshVirtualPORT();   
	# define SetEnable          LCD_E = High;refreshVirtualPORT();
	# define SetDisable         LCD_E = Low;refreshVirtualPORT();
#endif

#ifdef _LCD1602_FULL_DATA_MODEL
    #ifndef LCD_DATA_PORT
        #error Need for macro: LCD_DATA_PORT
    #endif
#endif
/********************
*  用戶變量類型定義 *
********************/

/********************
*  模塊結(jié)構(gòu)體定義區(qū) *
********************/

/********************
*   模塊函數(shù)聲明區(qū)  *
********************/
static void LCDDelay(unsigned int Time);
static void LCDDelayUs(unsigned int Time);


/********************
*   全局函數(shù)聲明區(qū)  *
********************/
void LCDInit(void);
void LCDSetXY(char X,char Y);
void LCDDisplayString(char *String);
void LCDDisplayNum(unsigned long Num,char BitCount);
void RunString(char *String,char Y,char StartX,char EndX);
char StringLength(char *String);
void Flash(char *String,char Icon,char X,char Y);
void FlashStringGroup(char String[][17],char StringCounter,char X,char Y);
void LCDWaitForReady(void);
void LCDSendCommand(char Command);
void LCDSendData(char Data);

/********************
*   全局函數(shù)引用區(qū)  *
********************/
#ifdef _Use_LCD1602B_Serial
    extern void refreshVirtualPORT(void);
#endif

/********************
*   模塊變量聲明區(qū)  *
********************/
const static char CHR[16] = {'0','1','2','3','4','5','6','7','8'
                     ,'9','a','b','c','d','e','f'};
                     
/********************
*   全局變量聲明區(qū)  *
********************/
static char LCD_Temp = 0;

/********************
*   全局變量引用區(qū)  *
********************/
#ifndef SYS_TIMER_MS_ADD_UNTILL_OVF
extern unsigned int SystemTimer;
    #define SYS_TIMER_MS_ADD_UNTILL_OVF SystemTimer
#else
extern unsigned int SYS_TIMER_MS_ADD_UNTILL_OVF;
#endif  



/***********************************************************
*   函數(shù)說明:LCD驅(qū)動類毫秒延時函數(shù)                        *
*   輸入:    需要延時的大體毫秒數(shù)                         *
*   輸出:    無                                           *
*   調(diào)用函數(shù):LCDDelayUs()                                 *
***********************************************************/
static void LCDDelay(unsigned int Time)
{
    unsigned int TimeCounter = 0;
	
	for (TimeCounter = 0;TimeCounter < Time;TimeCounter ++)
	{
	    LCDDelayUs(255);
	}
}

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

/***********************************************************
*   函數(shù)說明:LCD初始化函數(shù)                                *
*   輸入:    無                                           *
*   輸出:    無                                           *
*   調(diào)用函數(shù):LCDDelay()  LCDWaitForReady()                *
*             LCDSendCommand()                             *
***********************************************************/
void LCDInit(void)
{
    LCDDelay(15);
   
#ifndef _LCD1602_FULL_DATA_MODEL
	LCDSendCommand(0x28);
#else
    LCDSendCommand(0x38);
#endif
    LCDWaitForReady();
	LCDSendCommand(LCD_CMD_DISP_CTR);
    LCDWaitForReady();
	LCDSendCommand(LCD_CMD_CLS);
	LCDDelay(2);
	LCDSendCommand(LCD_CMD_ENTER_SET);
    LCDWaitForReady();
    LCDSendCommand(LCD_CMD_NOT_MOVE);
	
}

#ifndef _Use_LCD1602B_Serial
/***********************************************************
*   函數(shù)說明:向LCD發(fā)送指令函數(shù)                            *
*   輸入:    需要發(fā)送的指令                               *
*   輸出:    無                                           *
*   調(diào)用函數(shù):LCD_SEND_HALF_CHAR_HIGH() LCD_SEND_HALF_CHAR_LOW() *
***********************************************************/
void LCDSendCommand(char Command)
{
	SetWrite;
	SetCommand;
    #ifndef _LCD1602_FULL_DATA_MODEL
	{
		LCD_SEND_HALF_CHAR_HIGH(Command);
        LCD_E = HIGH;
	    LCD_E = LOW;
	}
	{
        LCD_SEND_HALF_CHAR_LOW(Command);	
		LCD_E = HIGH;
		LCD_E = LOW;
	}
    #else
        LCD_DATA_PORT = Command;
        LCD_E = HIGH;
        LCD_E = LOW;
    #endif
    SetRead;		
	SetCommand;
}

/***********************************************************
*   函數(shù)說明:向LCD發(fā)送數(shù)據(jù)函數(shù)                            *
*   輸入:    需要發(fā)送的數(shù)據(jù)                               *
*   輸出:    無                                           *
*   調(diào)用函數(shù):LCD_SEND_HALF_CHAR_HIGH() LCD_SEND_HALF_CHAR_LOW() *
***********************************************************/
void LCDSendData(char Data)
{
    SetWrite;
	SetData;
    #ifndef _LCD1602_FULL_DATA_MODEL
	{
		LCD_SEND_HALF_CHAR_HIGH(Data);
		LCD_E = HIGH;
	    LCD_E = LOW;
	}

	{
        LCD_SEND_HALF_CHAR_LOW(Data);	

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产乱码久久久久久免费 | 日韩欧美中文字幕一区| 亚洲欧美日本在线| 色av成人天堂桃色av| 亚洲国产三级在线| 日韩欧美激情一区| 国产成人免费视频精品含羞草妖精| 国产农村妇女毛片精品久久麻豆| 成人av电影免费观看| 亚洲日本在线看| 欧美日韩视频专区在线播放| 美脚の诱脚舐め脚责91| 中文字幕不卡一区| 欧美日韩一区二区在线观看| 精品一区二区三区不卡 | 欧美一级片在线观看| 久久成人综合网| 亚洲美女在线国产| 欧美色涩在线第一页| 久久精品国产亚洲5555| 国产精品女人毛片| 欧美日韩国产高清一区二区三区 | 日本亚洲欧美天堂免费| 久久久国际精品| 在线观看视频一区| 精品一区二区三区视频在线观看| 亚洲欧洲国产专区| 日韩欧美一二三四区| 91片在线免费观看| 精品中文字幕一区二区| 亚洲免费大片在线观看| 久久影视一区二区| 欧美在线高清视频| 成人午夜av在线| 日本不卡高清视频| 亚洲久草在线视频| 久久久精品欧美丰满| 欧美日韩在线播放| 色综合中文综合网| 91麻豆精品视频| 美女在线视频一区| 亚洲综合图片区| 国产日韩欧美精品电影三级在线| 欧美巨大另类极品videosbest| 国产成a人无v码亚洲福利| 日本美女一区二区三区视频| 亚洲免费观看在线视频| 中文字幕精品在线不卡| 日韩欧美国产不卡| 欧美日韩精品电影| 91免费版pro下载短视频| 国产精品538一区二区在线| 国产精品 欧美精品| 男女性色大片免费观看一区二区 | 欧美激情在线一区二区| 日韩欧美专区在线| 91精品欧美综合在线观看最新| 91久久久免费一区二区| 成人av网址在线观看| 国产成人亚洲综合a∨婷婷图片| 老司机午夜精品| 麻豆成人免费电影| 免费一区二区视频| 丝袜美腿亚洲综合| 婷婷中文字幕综合| 亚洲电影中文字幕在线观看| 一区二区三区四区在线播放| 亚洲欧洲另类国产综合| 中文字幕亚洲一区二区av在线| 亚洲国产精品精华液2区45| 国产视频一区在线观看| 久久久.com| 久久嫩草精品久久久精品一| 久久久国产一区二区三区四区小说 | 日韩欧美aaaaaa| 日韩精品中文字幕一区| 欧美va在线播放| 精品日产卡一卡二卡麻豆| 欧美成人福利视频| 久久久亚洲国产美女国产盗摄| 精品国产1区2区3区| 久久精品夜色噜噜亚洲aⅴ| 久久精品人人爽人人爽| 中文字幕成人网| 国产精品传媒入口麻豆| 亚洲综合丝袜美腿| 青青草97国产精品免费观看无弹窗版| 免费人成在线不卡| 国产酒店精品激情| zzijzzij亚洲日本少妇熟睡| 91麻豆文化传媒在线观看| 日本精品一区二区三区高清| 欧美日本视频在线| 欧美日韩aaa| 精品日韩一区二区三区免费视频| 久久久国产午夜精品| 中文字幕日韩一区二区| 亚洲成人三级小说| 国产在线精品一区在线观看麻豆| 成人自拍视频在线观看| 91麻豆免费看片| 日韩午夜激情av| 国产欧美一区二区精品婷婷| 亚洲视频 欧洲视频| 日韩国产欧美视频| 懂色av一区二区夜夜嗨| 欧美三区在线观看| 久久久久9999亚洲精品| 一区二区三区高清不卡| 紧缚奴在线一区二区三区| www.欧美精品一二区| 欧美区在线观看| 中文字幕欧美区| 日韩精品久久久久久| 成人免费看的视频| 这里只有精品视频在线观看| 国产精品久久久久一区二区三区共 | 亚洲美女屁股眼交3| 九九国产精品视频| 色婷婷综合久久久中文一区二区| 日韩欧美的一区| 一区二区三区四区蜜桃| 国产伦精品一区二区三区免费| 欧美在线不卡视频| 国产欧美日韩亚州综合| 日韩精品国产精品| 在线观看不卡视频| 国产精品国产馆在线真实露脸| 久久精品国产成人一区二区三区| 日本精品一级二级| 国产欧美精品区一区二区三区| 男人的天堂久久精品| 欧美视频在线不卡| 国产精品久久久爽爽爽麻豆色哟哟| 免费成人小视频| 欧美精品一二三| 一区二区三区欧美| 99视频精品全部免费在线| 久久久99久久精品欧美| 蜜臀av国产精品久久久久| 欧美三级日韩三级国产三级| 亚洲摸摸操操av| av福利精品导航| 国产精品毛片无遮挡高清| 国产精品一区二区视频| 91麻豆精品国产91| 亚洲成人自拍网| 欧美午夜寂寞影院| 亚洲一级电影视频| 99在线精品视频| 中文字幕成人网| 成人午夜碰碰视频| 中文字幕av一区二区三区| 国产精品99久久久久久久女警| 精品sm在线观看| 韩国欧美一区二区| 久久一二三国产| 激情小说亚洲一区| 久久亚洲捆绑美女| 精品亚洲aⅴ乱码一区二区三区| 日韩一级黄色大片| 开心九九激情九九欧美日韩精美视频电影| 欧美日韩精品欧美日韩精品一| 亚洲午夜精品在线| 欧美视频一区在线| 视频一区二区欧美| 欧美一级理论片| 美腿丝袜亚洲色图| 久久老女人爱爱| 丁香一区二区三区| 最近日韩中文字幕| 色嗨嗨av一区二区三区| 亚洲一区二区四区蜜桃| 欧美日韩一区二区在线视频| 日韩成人免费电影| 精品国产91九色蝌蚪| 国产福利电影一区二区三区| 欧美国产日本视频| 91一区二区在线| 亚洲一区二区三区国产| 欧美电影一区二区| 国内久久精品视频| 亚洲欧美中日韩| 在线观看91视频| 男人的天堂亚洲一区| 国产亚洲欧洲一区高清在线观看| 成人免费看黄yyy456| 亚洲精品免费在线| 91精品国产综合久久香蕉的特点| 另类成人小视频在线| 国产精品福利av| 欧美精品xxxxbbbb| 国产一区二区三区国产| 亚洲人精品一区| 欧美一级片免费看| 国产成人啪免费观看软件| 中文字幕一区二区三区在线观看| 色婷婷av一区二区三区之一色屋| 免费的成人av| 亚洲天堂精品视频|