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

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

?? lcd1602.h

?? stc12c5260s2 PWM輸出
?? H
字號:
/*********************************************************************************************************
** 文件功能 :LCD1602驅動程序
** 工程作者 :Blue Sky Teams——ZZL
** 工程版本 :V1.0
*********************************************************************************************************/
#include<intrins.h>
/*********************************************************************************************************
** LCD1602接口定義
*********************************************************************************************************/
sbit RS_1602 = P2^6;	//數據命令選擇端
sbit RW_1602 = P2^5;	//寫選擇端
sbit EN_1602 = P2^7;	//使能信號
#define LCD_PORT	P0 	//LCD1602數據接口

/*********************************************************************************************************
** LCD1602宏定義指令集
** 指令集的指令作為void Write_1602_Com(unsigned char zhiling)參數發送給LCD1602之后可以讓液晶LCD1602執行相應的功能,
** 使用者可根據自己要實現的功能選擇相應的指令,具體說明請參看文檔“LCD1602液晶完整中文資料”有關指令的章節
*********************************************************************************************************/
#define CLEAR_SCREEN			0X01		//清屏
#define CURSOR_RESET			0X02		//光標復位

/*******************************************輸入方式設置**************************************************/
#define SET_MOD					0X04		//配合一下兩位來配置模式

#define SET_MOD_AC_ADD			0X02		//數據讀寫操作后AC自加一
#define SET_MOD_AC_DEC			0X00		//數據讀寫操作后AC自減一
#define SET_MOD_MOVE_ON			0X01		//數據讀寫操作后畫面移動
#define SET_MOD_MOVE_OFF		0X00		//數據讀寫操作后畫面不動

/*******************************************顯示開關控制**************************************************/
#define DISPLAY_SET				0X08		//配合下面三位來配置模式

#define DISPLAY_SET_ON			0X04		//顯示開
#define DISPLAY_SET_OFF			0X00		//顯示關
#define DISPLAY_SET_CURSOR_ON	0X02		//光標顯示開
#define DISPLAY_SET_CURSOR_OFF	0X00		//光標顯示關
#define DISPLAY_SET_BLINK_ON	0X01		//光標閃爍
#define DISPLEY_SET_BLINK_OFF	0X00		//光標不閃爍

/*******************************************光標,畫面位移************************************************/
#define COURSOR_SHIFT_LEFT		0X10		//光標左移一個字符位,AC減一
#define COURSOR_SHIFT_RIGHT		0X14		//光標右移一個字符位,AC加一
#define FRAME_SHIFT_LEFT		0X18		//畫面左移一個字符位,光標不變
#define FRAME_SHIFT_RIGHT		0X1C		//畫面右移一個字符位,光標不變

/*******************************************顯示功能設置**************************************************/
#define DISPLAY_MOD				0X30		//默認設置為8位數據口,配合一下兩個位來時配置模式
#define DISPLAY_MOD_TWO_LINE	0X08		//兩行顯示
#define DISPLAY_MOD_ONE_LINE	0X00		//一行顯示
#define DISPLAY_MOD_5_10		0X04		//5*10的點陣字符顯示
#define DISPLAY_MOD_5_7			0X00		//5*7的點陣字符顯示

/*******************************************自定義字符*****************************************************/
unsigned char code self_definition_char[] = {

0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,	//"一"代碼
0x00,0x00,0x0E,0x00,0x1F,0x00,0x00,0x00,    //"二"代碼
0x00,0x0E,0x00,0x0E,0x00,0x1F,0x00,0x00,	//"三"代碼
0x00,0x1F,0x15,0x15,0x1B,0x11,0x1F,0x00,    //"四"代碼
0x1F,0x04,0x04,0x1E,0x0A,0x12,0x1F,0x00,    //"五"代碼
0x08,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x00,    //"年"代碼
0x0f,0x09,0x0f,0x09,0x0f,0x09,0x11,0x00,    //"月"代碼
0x1f,0x11,0x11,0x1f,0x11,0x11,0x1f,0x00,    //"日"代碼

};	
/*******************************************CGRAM起始地址**************************************************/

const unsigned char CGRAM_ADD = 0X40;

/*********************************************************************************************************
** 函數功能 :讀寫LCD1602時用于讀寫時序的時鐘延時
** 入口參數 :z:延時長度
** 出口參數 :無
*********************************************************************************************************/	 
void LCD_Delay(unsigned char z)
{
	unsigned char x,y;
	for(x = z;x > 0;x --)
		for(y = 50;y>0;y--);
}

/*********************************************************************************************************
** 函數功能 :LCD1602忙碌查詢
** 函數說明 :每次讀寫液晶時需要事先檢測芯片是否處于忙碌狀態
** 入口參數 :無
** 出口參數 :返回值為1:等待超時
**            返回值為0:芯片處于空閑狀態
*********************************************************************************************************/
unsigned char Check_1602_Busy(void)
{
	unsigned int time=0;
	RS_1602 = 0;
	RW_1602 = 1;
	EN_1602 = 1;
	while( (LCD_PORT&0X80) != 0X00)
	{
		time ++;
		if(time > 1000) return 1;	
	}	
	return 0;
}

/*********************************************************************************************************
** 函數功能 :向液晶寫入指令
** 函數說明 :
** 入口參數 :待寫入的指令
** 出口參數 :無
*********************************************************************************************************/
void Write_1602_Com(unsigned char zhiling)//寫指令
{
	Check_1602_Busy();
	RS_1602 = 0;
	RW_1602 = 0;
	LCD_PORT = zhiling;
	LCD_Delay(1);
	EN_1602 = 1;
	LCD_Delay(1);
	EN_1602 = 0;
}

/*********************************************************************************************************
** 函數功能 :向液晶寫入數據
** 函數說明 :
** 入口參數 :待寫入的數據,數據為LCD1062用來做顯示用的,比如說shuju = 0x30,則顯示“0”,
** 			  現成的字符數據可查詢"LCD1602液晶完整中文資料.pdf"中“CGROM中字符碼與字字符字模關系對照表”
** 出口參數 :無
*********************************************************************************************************/
void Write_1602_Data(unsigned char shuju)//寫數據
{
	Check_1602_Busy();
	RS_1602 = 1;
	RW_1602 = 0;
	LCD_PORT = shuju;
	LCD_Delay(1);
	EN_1602 = 1;
	LCD_Delay(1);
	EN_1602 = 0;
}

/*********************************************************************************************************
** 函數功能 :在指定位置連續寫入一串字符
** 函數說明 :注意寫入字符串的長度,不要超過屏幕單行的顯示范圍
** 入口參數 :str:   待寫入字符串首地址
**            addr:  寫入液晶顯示的地址
** 出口參數 :無
*********************************************************************************************************/
void Write_1602_String(unsigned char *str,unsigned char addr)
{
	Write_1602_Com(addr);
	while(*str)
	{
		Write_1602_Data(*str);
		str++;
	}	
}

/*********************************************************************************************************
** 函數功能 :在指定位置寫入一個整數
** 函數說明 :整數的范圍從0~65535,更大的需要采用long整型的進行擴展,注意整數的位數和地址不要超出顯示范圍
** 入口參數 :number:待寫入的整數
**            addr:  寫入液晶顯示的地址
** 出口參數 :無
*********************************************************************************************************/
void Write_Num(unsigned int number,unsigned char addr)
{
	Write_1602_Com(addr);
	if(number/10000 != 0)
	{
		Write_1602_Data(0x30 + number/10000);
		Write_1602_Data(0x30 + number%10000/1000);
		Write_1602_Data(0x30 + number%1000/100);
		Write_1602_Data(0x30 + number%100/10);
		Write_1602_Data(0x30 + number%10);
	}	
	else if(number/1000 != 0)
	{
		Write_1602_Data(0x30 + number/1000);
		Write_1602_Data(0x30 + number%1000/100);
		Write_1602_Data(0x30 + number%100/10);
		Write_1602_Data(0x30 + number%10);	
	}	
	else if(number/100 != 0)
	{
		Write_1602_Data(0x30 + number/100);
		Write_1602_Data(0x30 + number%100/10);
		Write_1602_Data(0x30 + number%10);		
	}
	else if(number/10 != 0)
	{
		Write_1602_Data(0x30 + number/10);
		Write_1602_Data(0x30 + number%10);			
	}
	else Write_1602_Data(0x30 + number);
}

/*********************************************************************************************************
** 函數功能 :向CGRAM寫入自定義字符
** 函數說明 :DB7   DB6   DB5   DB4   DB3   DB2   DB1   DB0
**           | 0  |  1  |          CGRAM的地址(6位)      |
**            
**			  DB5 DB4 DB3 為字符號,即要寫入的第幾個自定義字符
**			  DB2 DB1 DB0 為行號,即要定義的字符點陣的第幾行,其字符取模方式為高位在前,從上到下,而且只有低5位有效,對應字符大小為5*8
**	          自定義的字符數據存放在self_definition_char[]數組中
**	          目前測試結果,寫入CGRAM的地址0和1的數據無效,原因不詳,其他6個字符可用
** 入口參數 :無
** 出口參數 :無
*********************************************************************************************************/
void Write_CGRAM(void)
{
	unsigned char i,j;
	for (i = 0; i < 8; i ++)
	{		
		for(j = 0;j < 8;j ++)
		{
			Write_1602_Com(CGRAM_ADD+i*8+j);		
			Write_1602_Data(self_definition_char[i*8+j]);			
		}
	}
}
/*********************************************************************************************************
** 函數功能 :液晶初始化
** 函數說明 :用液晶之前需要先初始化液晶,配置對應的顯示模式
** 入口參數 :time:需要延時的時間,單位ms
** 出口參數 :無
*********************************************************************************************************/
void LCD_1602_Init()//初始化
{
	EN_1602=0;
	Write_1602_Com(DISPLAY_MOD | DISPLAY_MOD_TWO_LINE | DISPLAY_MOD_5_7);//設置顯示模式,兩行顯示,字符點陣大小為5*7:0X38

	Write_1602_Com(DISPLAY_SET | DISPLAY_SET_ON | DISPLAY_SET_CURSOR_OFF | DISPLEY_SET_BLINK_OFF);//開顯示,不顯示光標,光標不閃爍:0X0F
		
	Write_1602_Com(SET_MOD | SET_MOD_AC_ADD | SET_MOD_MOVE_OFF);//設置寫入數據后指針AC加一,畫面不動:0X06

	Write_1602_Com(CLEAR_SCREEN);//清屏
	Write_1602_Com(CURSOR_RESET);
	Write_CGRAM();
	Write_1602_Com(0x80);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线国产福利| 欧美系列日韩一区| 亚洲一二三区视频在线观看| 日韩欧美国产一区二区在线播放| 成人黄页在线观看| 国产呦萝稀缺另类资源| 视频一区视频二区中文| 亚洲色图视频免费播放| 久久亚洲一级片| 欧美日韩一区成人| 色综合久久久久久久| 成人黄色在线视频| 国产乱码精品1区2区3区| 亚州成人在线电影| 亚洲精品免费一二三区| 国产精品久久久久久久蜜臀| 日韩欧美色综合网站| 欧美日韩国产一区二区三区地区| 99久久精品免费| 成人动漫中文字幕| 国产激情偷乱视频一区二区三区| 麻豆中文一区二区| 午夜精品123| 亚洲成人激情自拍| 亚洲成av人影院| 亚洲国产一区二区视频| 亚洲少妇最新在线视频| 国产精品久久影院| 国产欧美一区二区三区网站| 久久久久久久久久久黄色| 亚洲精品一区二区三区福利| 日韩欧美国产一区二区在线播放| 5858s免费视频成人| 欧美三区免费完整视频在线观看| 一本色道a无线码一区v| 日本精品一级二级| 在线观看欧美黄色| 欧美亚洲日本国产| 欧美日韩亚洲综合一区| 69成人精品免费视频| 91麻豆精品国产91久久久更新时间| 欧美日韩一区成人| 日韩一区二区免费在线观看| 日韩精品一区二区在线| 久久久久久久久久久黄色| 国产三级精品三级在线专区| 国产精品成人午夜| 日韩理论电影院| 一区二区三区四区在线免费观看| 悠悠色在线精品| 亚洲国产成人高清精品| 免费看黄色91| 国产精品亚洲第一区在线暖暖韩国 | 中文字幕一区二区5566日韩| 中文字幕一区二区三区av| 亚洲黄色小视频| 日日噜噜夜夜狠狠视频欧美人 | 另类小说综合欧美亚洲| 韩国精品一区二区| 成人一二三区视频| 欧洲精品在线观看| 日韩欧美国产一区在线观看| 国产日韩影视精品| 亚洲免费在线视频| 蜜乳av一区二区| 国产不卡在线一区| 色天天综合久久久久综合片| 欧美精品久久久久久久多人混战| 欧美成人三级电影在线| 国产精品另类一区| 天堂av在线一区| 国产精品影音先锋| 在线观看免费一区| 久久综合狠狠综合久久综合88| 国产精品白丝在线| 日本美女一区二区三区| 国产suv精品一区二区6| 欧洲一区二区三区免费视频| 日韩精品一区二区三区中文不卡 | 日韩一区欧美二区| 国产成人亚洲精品青草天美| 色狠狠综合天天综合综合| 精品久久一区二区| 一区二区三区四区精品在线视频| 欧美a级一区二区| 99久久99久久精品国产片果冻| 精品视频一区二区不卡| 国产欧美日韩综合| 日本视频在线一区| 91原创在线视频| 欧美大胆人体bbbb| 亚洲综合在线电影| 国产99久久久国产精品| 欧美日韩国产乱码电影| 中文字幕欧美三区| 麻豆精品在线视频| 91美女片黄在线观看| 久久久久久亚洲综合| 香蕉加勒比综合久久 | 精品国产免费一区二区三区香蕉| 亚洲免费av观看| 成人污污视频在线观看| 精品久久人人做人人爰| 亚洲成人福利片| 色噜噜狠狠成人网p站| 久久精品夜夜夜夜久久| 麻豆91在线播放| 欧美日韩你懂的| 亚洲视频在线一区| 成人h精品动漫一区二区三区| 欧美成人女星排行榜| 视频在线观看一区| 欧美区在线观看| 亚洲人精品一区| 成人免费黄色大片| 国产色一区二区| 国产在线精品视频| 欧美成人r级一区二区三区| 亚洲综合在线第一页| 91免费视频观看| 一区二区中文视频| 成人一区二区三区中文字幕| 久久综合久久久久88| 久久国产精品免费| 日韩精品影音先锋| 激情综合色丁香一区二区| 欧美一级午夜免费电影| 免费观看久久久4p| 日韩欧美在线一区二区三区| 免费观看91视频大全| 欧美成人精品高清在线播放| 久久精品理论片| 精品国产91久久久久久久妲己| 奇米精品一区二区三区四区| 欧美一区二区三区性视频| 午夜视频一区在线观看| 欧美日高清视频| 视频一区二区不卡| 精品国产伦一区二区三区观看体验| 麻豆精品在线看| 26uuu国产电影一区二区| 国产一区二三区好的| 国产日韩欧美电影| 不卡一二三区首页| 亚洲品质自拍视频| 欧美色综合久久| 日韩精品一区第一页| 欧美成人vr18sexvr| 国产成人在线色| 亚洲私人黄色宅男| 欧美日韩一级二级| 激情伊人五月天久久综合| 久久蜜臀精品av| 99在线热播精品免费| 亚洲一线二线三线视频| 欧美麻豆精品久久久久久| 麻豆精品在线观看| 欧美韩国日本不卡| 色婷婷国产精品| 麻豆精品视频在线| 国产精品美女www爽爽爽| 色综合一区二区三区| 日本不卡的三区四区五区| 精品国产成人系列| 北条麻妃一区二区三区| 亚洲在线视频一区| 亚洲精品在线电影| 色综合天天综合网天天狠天天| 日本一不卡视频| 中文字幕一区二区三中文字幕| 欧美三级一区二区| 国产精品一区专区| 亚洲综合成人网| 久久久久久久综合| 在线欧美日韩国产| 国产一区二三区好的| 亚洲影院免费观看| 久久毛片高清国产| 欧美日韩国产另类不卡| 国产高清精品网站| 午夜精品久久久久久不卡8050| 欧美tickling网站挠脚心| 99re在线精品| 国产主播一区二区| 亚洲一区二区五区| 久久久久久久久久久电影| 欧美日韩中文另类| 国产ts人妖一区二区| 日本不卡的三区四区五区| 亚洲日本韩国一区| 精品久久久久久无| 在线观看亚洲成人| 国产成人免费视频| 日韩中文欧美在线| 亚洲精品自拍动漫在线| 国产偷v国产偷v亚洲高清| 日韩一级免费观看| 欧美午夜精品久久久久久超碰| 福利电影一区二区| 九九久久精品视频|