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

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

?? lcd12864.c

?? 轉(zhuǎn)于ICCAVR.COM ,轉(zhuǎn)于ICCAVR.COM ,
?? C
字號:
/*
	LCD12864液晶屏驅(qū)動模塊
	1、可直接嵌入到項目中使用
	2、晶振頻率:1M
	3、如晶振提高低層驅(qū)動延時要作相應(yīng)修改

	AVR_AFA
	www.iccavr.com
*/

#include <iom16v.h>
#include "font.h"

#define RS_CLR	PORTD &= ~(1 << PD3)/*命令或數(shù)據(jù)選擇*/
#define RS_SET	PORTD |= (1 << PD3)/*RS = 1命令,RS = 0數(shù)據(jù)*/

#define RW_CLR	PORTD &= ~(1 << PD4)/*讀取或?qū)懭脒x擇*/
#define RW_SET	PORTD |= (1 << PD4)/*RW = 1讀,RW = 0寫*/

#define EN_CLR	PORTD &= ~(1 << PD6)/*讀寫使能信號*/
#define EN_SET	PORTD |= (1 << PD6)/*下降沿有效*/

#define RST_CLR	PORTD &= ~(1 << PD7)/*芯片復(fù)位腳*/
#define RST_SET	PORTD |= (1 << PD7)/*高電平復(fù)位*/

#define CSA_CLR	PORTC &= ~(1 << PC6)/*左半屏片選*/
#define CSA_SET	PORTC |= (1 << PC6)/*高電平選中*/

#define CSB_CLR	PORTC &= ~(1 << PC7)/*右半屏片選*/
#define CSB_SET	PORTC |= (1 << PC7)/*高電平選中*/

/*延時函數(shù)*/
void delay_us(unsigned int n) {

	if (n == 0) {
		return ;
		}
	while (--n);
}

/*延時函數(shù)*/
void delay_ms(unsigned char i) {

	unsigned char a, b;
	for (a = 1; a < i; a++) {
		for (b = 1; b; b++) {
			;
			}
		}
}

/*顯示屏命令寫入函數(shù)前半屏*/
void LCD0_write_com(unsigned char com) {
	
	RS_CLR;
	RW_CLR;
	CSA_SET;
	CSB_CLR;
	EN_SET;
	PORTB = com;
	delay_us(1);
	EN_CLR;
}

/*顯示屏命令寫入函數(shù)后半屏*/
void LCD1_write_com(unsigned char com) {
	
	RS_CLR;
	RW_CLR;
	CSA_CLR;
	CSB_SET;
	EN_SET;
	PORTB = com;
	delay_us(1);
	EN_CLR;
}

/*顯示屏命令寫入函數(shù)*/
void LCD0_write_data(unsigned char data) {

	RS_SET;
	RW_CLR;
	CSA_SET;
	CSB_CLR;
	EN_SET;
	PORTB = data;
	delay_us(1);
	EN_CLR;
}

/*顯示屏命令寫入函數(shù)*/
void LCD1_write_data(unsigned char data) {

	RS_SET;
	RW_CLR;
	CSA_CLR;
	CSB_SET;
	EN_SET;
	PORTB = data;
	delay_us(1);
	EN_CLR;
}

/*顯示屏清空顯示*/
void disp_clear(unsigned char x0, unsigned char x1, unsigned char y) {

	unsigned char x;
	
	/*清除高位*/	
	x = x0;
	if (x < 63) {			/*地址在左半屏范圍內(nèi)*/
		LCD0_write_com(y | 0xB8);
		LCD0_write_com(x | 0x40);
		}
	while (x < x1) {
		LCD0_write_data(0x00);
		x ++;
		if (x > 63) {		/*判斷地址是否越界*/
			break;
			}
		}
	if (x < x1) {			/*地址進(jìn)入左半屏范圍*/
		LCD1_write_com(y | 0xB8);
		LCD1_write_com(x | 0x40);
		}
	while (x < x1) {
		LCD1_write_data(0x00);
		x ++;
		}

	/*清除低位*/
	x = x0;
	if (x < 63) {			/*地址在左半屏范圍內(nèi)*/
		LCD0_write_com((y+1) | 0xB8);
		LCD0_write_com(x | 0x40);
		}
	while (x < x1) {
		LCD0_write_data(0x00);
		x ++;
		if (x > 63) {		/*判斷地址是否越界*/
			break;
			}
		}
	if (x < x1) {			/*地址進(jìn)入左半屏范圍*/
		LCD1_write_com((y+1) | 0xB8);
		LCD1_write_com(x | 0x40);
		}
	while (x < x1) {
		LCD1_write_data(0x00);
		x ++;
		}
}

/*在指定位置顯示一個ASCII 字符*/
void disp_char(unsigned char x, unsigned char y, unsigned char ascii) {

	unsigned char i = 0x00;
	const unsigned char *q;	/*取字庫指針*/
	
	ascii -= 0x20;
	q = &ENGLISH_FONT[ascii * 16];/*定位指針地址*/

	/*顯示高8位*/	
	i = 0x00;
	if (x < 64) {			/*地址在左半屏范圍內(nèi)*/
		LCD0_write_com(y | 0xB8);
		LCD0_write_com(x | 0x40);
		while (i < 8) {
			LCD0_write_data(*q);
			q ++;
			x ++;
			i ++;
			if (x > 63) {	/*判斷地址是否越界*/
				break;
				}
			}
		}
	if (i < 8) {			/*地址進(jìn)入左半屏范圍*/
		LCD1_write_com(y | 0xB8);
		LCD1_write_com(x | 0x40);
		while (i < 8) {
			LCD1_write_data(*q);
			q ++;
			x ++;
			i ++;
			}
		}

	/*顯示低8位*/
	i = 0x00;
	x -= 8;
	if (x < 64) {			/*地址在左半屏范圍內(nèi)*/
		LCD0_write_com((y+1) | 0xB8);
		LCD0_write_com(x | 0x40);
		while (i < 8) {
			LCD0_write_data(*q);
			q ++;
			x ++;
			i ++;
			if (x > 63) {	/*判斷地址是否越界*/
				break;
				}
			}
		}
	if (i < 8) {			/*地址進(jìn)入左半屏范圍*/
		LCD1_write_com((y+1) | 0xB8);
		LCD1_write_com(x | 0x40);
		while (i < 8) {
			LCD1_write_data(*q);
			q ++;
			x ++;
			i ++;
			}
		}
	CSA_CLR;
	CSB_CLR;
}

/*在指定位置顯示一個漢字*/
void disp_word(unsigned char x, unsigned char y, unsigned char word) {

	unsigned char i = 0x00;
	const unsigned char *q;	/*取字庫指針*/
	
	q = &CHINESE_FONT[word * 32];/*定位指針地址*/

	/*顯示高16位*/	
	i = 0x00;
	if (x < 64) {			/*地址在左半屏范圍內(nèi)*/
		LCD0_write_com(y | 0xB8);
		LCD0_write_com(x | 0x40);
		while (i < 16) {
			LCD0_write_data(*q);
			q ++;
			x ++;
			i ++;
			if (x > 63) {	/*判斷地址是否越界*/
				break;
				}
			}
		}
	if (i < 16) {			/*地址進(jìn)入左半屏范圍*/
		LCD1_write_com(y | 0xB8);
		LCD1_write_com(x | 0x40);
		while (i < 16) {
			LCD1_write_data(*q);
			q ++;
			x ++;
			i ++;
			}
		}

	/*顯示低16位*/
	i = 0x00;
	x -= 16;
	if (x < 64) {			/*地址在左半屏范圍內(nèi)*/
		LCD0_write_com((y+1) | 0xB8);
		LCD0_write_com(x | 0x40);
		while (i < 16) {
			LCD0_write_data(*q);
			q ++;
			x ++;
			i ++;
			if (x > 63) {		/*判斷地址是否越界*/
				break;
				}
			}
		}
	if (i < 16) {			/*地址進(jìn)入左半屏范圍*/
		LCD1_write_com((y+1) | 0xB8);
		LCD1_write_com(x | 0x40);
		while (i < 16) {
			LCD1_write_data(*q);
			q ++;
			x ++;
			i ++;
			}
		}
	CSA_CLR;
	CSB_CLR;
}

/*顯示一串字符*/
void disp_char_str(unsigned char x, unsigned char y, unsigned char *str) {

	while (*str != 0) {
		disp_char(x, y, *str);
		x += 8;
		str ++;
		}
}

/*顯示屏初始化函數(shù)*/
void disp_init(void) {
	
	DDRB = 0xFF;		/*I/O口方向設(shè)置*/
	DDRC |= (1 << PC6) | (1 << PC7);
	DDRD |= (1 << PD3) | (1 << PD4) | (1 << PD6) | (1 << PD7);

	RST_CLR;
	delay_ms(10);
	RST_SET;

	LCD0_write_com(0xC0);	/*顯示起行設(shè)置*/
	LCD1_write_com(0xC0);
	
	LCD0_write_com(0x3F);	/*開顯示設(shè)置*/
	LCD1_write_com(0x3F);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人激情免费网| 久久免费国产精品| 国产一区二区三区四| 亚洲婷婷在线视频| 精品国产乱码久久久久久浪潮| 成人精品国产免费网站| 日日夜夜免费精品| 综合久久久久久| 欧美精品一区二区三区久久久| 色综合天天综合网天天看片| 另类专区欧美蜜桃臀第一页| 综合电影一区二区三区| 亚洲精品一线二线三线| 欧美日韩卡一卡二| 波多野结衣中文字幕一区| 青青国产91久久久久久| 亚洲视频一区二区在线观看| 精品欧美乱码久久久久久| 欧美日韩一级二级| 91久久精品一区二区| 国产成人av影院| 久久疯狂做爰流白浆xx| 婷婷开心激情综合| 一区二区三区精品在线观看| 日本一区二区三区四区| 亚洲精品在线一区二区| 欧美一区国产二区| 欧美肥胖老妇做爰| 欧美主播一区二区三区| caoporn国产精品| 成人手机电影网| 国产真实乱对白精彩久久| 三级一区在线视频先锋| 亚洲成人自拍偷拍| 亚洲激情自拍偷拍| 亚洲乱码国产乱码精品精小说 | 欧美一区二区三区的| 91久久奴性调教| 在线观看av一区| 在线观看一区不卡| 欧美日韩在线播放一区| 日本韩国一区二区三区视频| 91在线免费视频观看| 成人福利视频网站| 99国产精品久久久| 91在线视频播放地址| 91在线视频在线| 色婷婷国产精品综合在线观看| 色综合网站在线| 欧美性极品少妇| 欧美日韩在线亚洲一区蜜芽| 欧美日韩一区二区三区在线 | 国产乱人伦偷精品视频免下载| 美脚の诱脚舐め脚责91| 黑人精品欧美一区二区蜜桃| 精品在线免费视频| 国产一区二区三区蝌蚪| 成人国产精品免费观看视频| 99久久99久久综合| 日本久久一区二区| 在线播放91灌醉迷j高跟美女| 欧美精品三级日韩久久| 精品久久免费看| 国产精品超碰97尤物18| 亚洲国产精品精华液网站| 天堂av在线一区| 日本不卡123| 国产精品一区2区| 91视视频在线直接观看在线看网页在线看| 色综合天天性综合| 91精品国产黑色紧身裤美女| 精品久久99ma| 国产精品久久久99| 亚洲国产视频一区| 九九热在线视频观看这里只有精品| 国模一区二区三区白浆| www.成人在线| 精品视频在线免费看| 久久综合色播五月| 一区二区三区在线视频免费| 蜜臀久久久久久久| 成人激情图片网| 91精品国产综合久久小美女| 国产偷v国产偷v亚洲高清| 亚洲欧美一区二区三区极速播放 | 国产成人在线影院 | 色素色在线综合| 欧美xfplay| 亚洲精品国产高清久久伦理二区| 日韩黄色片在线观看| 成人美女在线观看| 制服.丝袜.亚洲.中文.综合| 国产精品女上位| 麻豆专区一区二区三区四区五区| 成人动漫在线一区| 日韩欧美在线网站| 亚洲欧美另类图片小说| 老司机免费视频一区二区| 99麻豆久久久国产精品免费| 欧美一区二区三区四区视频| 日韩美女视频一区二区| 国产一区二区三区视频在线播放| 欧美影院一区二区| 国产精品视频一二| 精品影院一区二区久久久| 在线精品观看国产| 国产精品免费久久久久| 国内外精品视频| 91精品久久久久久久91蜜桃| 亚洲人成人一区二区在线观看 | 中文字幕一区二区三区在线播放| 日韩高清不卡一区| 色8久久人人97超碰香蕉987| 久久久激情视频| 蜜桃精品视频在线观看| 欧美日韩一区二区三区高清| 国产欧美日韩综合精品一区二区| 日韩avvvv在线播放| 91久久精品一区二区二区| 国产精品美女一区二区| 黄色日韩三级电影| 日韩欧美视频一区| 视频一区二区国产| 欧美亚男人的天堂| 亚洲卡通动漫在线| av一区二区三区| 日本一区二区成人| 处破女av一区二区| 久久久久久久久伊人| 精品一区二区三区视频在线观看 | 国内精品写真在线观看| 欧美高清视频不卡网| 亚洲国产视频在线| 欧美性淫爽ww久久久久无| 亚洲精品中文在线观看| av一区二区三区在线| 亚洲国产精品国自产拍av| 国产不卡一区视频| 国产日产欧美精品一区二区三区| 国产永久精品大片wwwapp| 久久久www免费人成精品| 精品午夜久久福利影院| 久久婷婷久久一区二区三区| 国产乱子伦视频一区二区三区| 久久久久久**毛片大全| 国产电影精品久久禁18| 中文字幕欧美激情| 99久久99久久久精品齐齐| 亚洲天堂成人网| 欧美在线综合视频| 亚洲777理论| 91精品国产一区二区人妖| 久色婷婷小香蕉久久| 26uuu久久综合| 成人国产精品免费网站| 最新国产精品久久精品| 色哟哟国产精品| 亚洲成av人在线观看| 日韩天堂在线观看| 国产精品一区免费在线观看| 国产精品久久久久久久久动漫| 色婷婷亚洲精品| 日本女人一区二区三区| 精品久久久久久亚洲综合网| 福利一区福利二区| 伊人婷婷欧美激情| 日韩一区和二区| 粉嫩蜜臀av国产精品网站| 亚洲天天做日日做天天谢日日欢 | 粉嫩蜜臀av国产精品网站| 亚洲日本一区二区| 欧美一区二区三区性视频| 国产在线观看一区二区| 中文字幕日韩一区| 欧美一区日韩一区| 成人av在线观| 日韩av一级片| 国产精品理论片| 欧美日韩国产不卡| 国内精品在线播放| 伊人色综合久久天天人手人婷| 欧美一区二区福利视频| 成人国产视频在线观看| 日本成人在线一区| 中文av一区特黄| 91精品婷婷国产综合久久竹菊| 国产精品99久久久久久久女警| 亚洲人亚洲人成电影网站色| 日韩欧美在线综合网| 91老师国产黑色丝袜在线| 免费高清不卡av| 中文字幕佐山爱一区二区免费| 日韩一区二区影院| 97精品国产露脸对白| 国产一区二区在线免费观看| 亚洲一区二区欧美激情| 国产日韩精品视频一区| 欧美一区日韩一区| 91福利在线导航| 国产成人啪免费观看软件|