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

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

?? rd_lcd1602b.c

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

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


/********************
*   系 統 宏 定 義  *
********************/

/*------------------*
*   常 數 宏 定 義  *
*------------------*/
# 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
/********************
*  用戶變量類型定義 *
********************/

/********************
*  模塊結構體定義區 *
********************/

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


/********************
*   全局函數聲明區  *
********************/
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);

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

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

/********************
*   全局變量引用區  *
********************/
#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  



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

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

/***********************************************************
*   函數說明:LCD初始化函數                                *
*   輸入:    無                                           *
*   輸出:    無                                           *
*   調用函數: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
/***********************************************************
*   函數說明:向LCD發送指令函數                            *
*   輸入:    需要發送的指令                               *
*   輸出:    無                                           *
*   調用函數: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;
}

/***********************************************************
*   函數說明:向LCD發送數據函數                            *
*   輸入:    需要發送的數據                               *
*   輸出:    無                                           *
*   調用函數: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);	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美r级电影在线观看| 蜜桃视频一区二区三区在线观看| 国产日产欧美精品一区二区三区| 欧美一区二区三区视频免费 | 久久国产成人午夜av影院| 亚洲h在线观看| 亚洲午夜三级在线| 无吗不卡中文字幕| 日韩高清国产一区在线| 蜜臀av一区二区在线观看 | 99久久国产免费看| 91啪亚洲精品| 欧美色网站导航| 欧美日韩在线不卡| 欧美一二三在线| 精品国产三级电影在线观看| wwww国产精品欧美| 亚洲国产成人一区二区三区| 国产精品久久久久久久久免费桃花| 国产欧美综合在线观看第十页| 国产色一区二区| 国产精品久久久久久久久快鸭| 亚洲欧美在线另类| 亚洲国产精品久久人人爱蜜臀| 五月天中文字幕一区二区| 秋霞电影一区二区| 国产精品资源在线看| 不卡在线视频中文字幕| 91福利在线免费观看| 欧美猛男超大videosgay| 欧美一区二区三区视频在线| 久久久久久麻豆| 亚洲日本va午夜在线影院| 五月激情综合网| 国精品**一区二区三区在线蜜桃| 国产99精品国产| 欧美在线不卡视频| 日韩一级二级三级| 国产精品久久久久一区二区三区| 一区二区久久久久| 久久精品国产亚洲一区二区三区| 国产精品77777竹菊影视小说| 99精品久久只有精品| 欧美欧美欧美欧美首页| 久久精品视频一区二区三区| 亚洲天堂2016| 免费看黄色91| aaa亚洲精品| 日韩一级精品视频在线观看| 国产精品久久久久久户外露出 | 精品久久久久久综合日本欧美| 国产精品久久久久四虎| 午夜精品久久久久久久久久久 | 欧美日韩国产免费| 久久久久久久久一| 夜夜揉揉日日人人青青一国产精品| 免费看日韩a级影片| 91麻豆国产在线观看| 日韩免费在线观看| 亚洲精品国产成人久久av盗摄| 免费成人美女在线观看.| 91丨九色丨蝌蚪丨老版| 精品国产一区久久| 亚洲第一综合色| av激情综合网| 337p粉嫩大胆色噜噜噜噜亚洲 | 亚洲成av人在线观看| 成人午夜av电影| 欧美一区二区免费视频| 亚洲欧美一区二区久久| 国产精品18久久久久久久久| 欧美美女网站色| 亚洲美女在线一区| 丁香一区二区三区| 欧美大片在线观看| 午夜精品123| 色哟哟精品一区| 中文字幕av资源一区| 激情五月播播久久久精品| 欧美三级中文字幕| 亚洲婷婷在线视频| 国产精品资源在线看| 日韩视频免费观看高清完整版 | 1024国产精品| 国产麻豆精品theporn| 91精品免费观看| 亚洲专区一二三| 97久久精品人人做人人爽| 国产欧美综合色| 国产精品综合一区二区| 精品奇米国产一区二区三区| 日韩精品一级中文字幕精品视频免费观看 | 午夜视黄欧洲亚洲| 欧美综合在线视频| 亚洲日本电影在线| 欧美色国产精品| 国产精品超碰97尤物18| 成人免费毛片嘿嘿连载视频| 久久精品一区蜜桃臀影院| 精品无码三级在线观看视频 | 国产精品你懂的| 高清成人免费视频| 国产亚洲欧美中文| 国产成人精品三级麻豆| 久久久久一区二区三区四区| 国产一区二区在线视频| 精品福利在线导航| 国产美女精品人人做人人爽| 欧美精品一区二区在线播放 | 一本高清dvd不卡在线观看| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 亚洲国产精品一区二区久久恐怖片| 色噜噜狠狠成人中文综合| 亚洲色图19p| 色哟哟一区二区在线观看| 一个色妞综合视频在线观看| 在线精品视频一区二区三四 | 成人午夜短视频| 国产精品国产三级国产普通话三级| 不卡一区二区在线| 一二三四社区欧美黄| 欧美日本韩国一区二区三区视频 | 毛片av一区二区| 久久综合精品国产一区二区三区| 精品制服美女丁香| 欧美激情在线免费观看| 99精品久久99久久久久| 亚洲制服丝袜av| 欧美一区二区大片| 国产成人精品网址| 亚洲精品中文字幕乱码三区| 欧美狂野另类xxxxoooo| 麻豆极品一区二区三区| 亚洲国产高清不卡| 日本韩国视频一区二区| 日韩高清不卡一区| 国产香蕉久久精品综合网| 91在线国产观看| 日韩av一二三| 欧美国产一区二区| 在线观看视频一区| 久热成人在线视频| 中文字幕中文字幕一区二区| 91黄色免费看| 美女高潮久久久| 一区视频在线播放| 884aa四虎影成人精品一区| 国产麻豆精品95视频| 亚洲精品久久久蜜桃| 欧美大片日本大片免费观看| 99r国产精品| 免费精品99久久国产综合精品| 国产欧美日产一区| 欧美日韩国产免费一区二区| 国产福利精品一区| 亚洲成人激情av| 国产欧美一区二区精品仙草咪| 欧美性受xxxx黑人xyx| 国产一区二区三区国产| 一区二区三区丝袜| 精品成人免费观看| 欧美在线观看一二区| 国产a久久麻豆| 日本午夜精品一区二区三区电影| 国产精品免费久久| 日韩一区二区在线观看视频播放| kk眼镜猥琐国模调教系列一区二区| 日韩av中文字幕一区二区三区| 国产精品国产三级国产aⅴ中文 | 一本一本大道香蕉久在线精品| 美女被吸乳得到大胸91| 一区二区三区四区中文字幕| 国产日韩精品久久久| 555夜色666亚洲国产免| 99在线热播精品免费| 国产一区二区免费看| 亚洲国产精品久久不卡毛片| 国产精品久久久久精k8 | 精品一区精品二区高清| 亚洲动漫第一页| 国产丝袜美腿一区二区三区| 欧美一区二区黄| 欧美性色黄大片手机版| 99精品偷自拍| 青青草原综合久久大伊人精品优势| 一区二区三区美女视频| 国产精品国产三级国产a| 久久精品免费在线观看| 欧美成人三级在线| 欧美日韩国产一二三| 色婷婷久久综合| 国产传媒久久文化传媒| 免费高清在线一区| 午夜精品福利一区二区蜜股av | 日韩一区精品视频| 亚洲国产精品久久艾草纯爱| 亚洲蜜臀av乱码久久精品蜜桃| 国产精品美女久久久久久久久久久 | 精品伊人久久久久7777人| 日韩在线一二三区|