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

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

?? lcd12864.c

?? atmega128 adc LCD
?? C
字號:
/*
	LCD12864液晶屏驅動模塊
	1、可直接嵌入到項目中使用
	2、晶振頻率:1M
	3、如晶振提高低層驅動延時要作相應修改

	AVR_AFA
	www.iccavr.com
*/

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

#define RS_CLR	PORTC &= ~(1 << PC2)		/*命令或數據選擇*/
#define RS_SET	PORTC |= (1 << PC2)			/*RS = 1命令,RS = 0數據*/

#define RW_CLR	PORTC &= ~(1 << PC3)		/*讀取或寫入選擇*/
#define RW_SET	PORTC |= (1 << PC3)			/*RW = 1讀,RW = 0寫*/

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

#define RST_CLR	PORTC &= ~(1 << PC5)		/*芯片復位腳*/
#define RST_SET	PORTC |= (1 << PC5)			/*高電平復位*/

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

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

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

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

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

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

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

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

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

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

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

	RS_SET;
	RW_CLR;
	CSA_CLR;
	CSB_SET;
	EN_SET;
	PORTA = 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) {						/*地址在左半屏范圍內*/
		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) {						/*地址進入左半屏范圍*/
		LCD1_write_com(y | 0xB8);
		LCD1_write_com(x | 0x40);
		}
	while (x < x1) {
		LCD1_write_data(0x00);
		x ++;
		}

	/*清除低位*/
	x = x0;
	if (x < 63) {						/*地址在左半屏范圍內*/
		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) {						/*地址進入左半屏范圍*/
		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) {						/*地址在左半屏范圍內*/
		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) {						/*地址進入左半屏范圍*/
		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) {						/*地址在左半屏范圍內*/
		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) {						/*地址進入左半屏范圍*/
		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) {						/*地址在左半屏范圍內*/
		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) {						/*地址進入左半屏范圍*/
		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) {						/*地址在左半屏范圍內*/
		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) {						/*地址進入左半屏范圍*/
		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 ++;
		}
}

/*顯示屏初始化函數*/
void disp_init(void) {
	
	DDRA = 0xFF;						/*I/O口方向設置*/
	DDRC = 0xFF;

	RST_CLR;
	delay_ms(10);
	RST_SET;

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

/*在指定位置顯示一個8*8的 字符*/
void disp_myself(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) {						/*地址在左半屏范圍內*/
		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) {						/*地址進入左半屏范圍*/
		LCD1_write_com(y | 0xB8);
		LCD1_write_com(x | 0x40);
		while (i < 8) {
			LCD1_write_data(*q);
			q ++;
			x ++;
			i ++;
			}
		}
		}
	

void disp_to_bcd(int x){
     unsigned int a=x%10,b=x/10,c=b%10,d=b/10,e=d%10,f=d/10;
	 a+=48,c+=48,e+=48,f+=48;
	 disp_char(40, 2, f);
	 disp_char(48, 2, e);
	 disp_char_str(56, 2, ".");
	 disp_char(64, 2, c);
	 disp_char(72, 2, a);
	 disp_char_str(80, 2, "V");
	 if(d<11||d==11&&c==0&&a==0){
     disp_word(32, 4, CB5E7);					/*寫入“電壓偏低”四個漢字*/
	 disp_word(48, 4, CD1B9);
	 disp_word(64, 4, CC6AB);
	 disp_word(80, 4, CB5CD);}
	 else {
	 disp_word(32, 4, CB5E7);					/*寫入“電壓正常”四個漢字*/
	 disp_word(48, 4, CD1B9);
     disp_word(64, 4, CD5ED);
	 disp_word(80, 4, CB3A3); }
	 
	
	 }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99久国产精品黄毛片色诱| 亚洲男人的天堂在线观看| 91久久国产综合久久| 粉嫩嫩av羞羞动漫久久久| 狠狠色丁香久久婷婷综| 国产一区不卡视频| 99热精品国产| 欧美精品18+| 久久久久久亚洲综合| 亚洲国产激情av| 午夜电影网一区| 日本vs亚洲vs韩国一区三区二区| 欧美a级理论片| 韩国理伦片一区二区三区在线播放| 美女一区二区三区| 国产精品主播直播| 精品视频一区二区不卡| 日韩欧美国产一区二区在线播放| 国产欧美1区2区3区| 亚洲福利视频一区二区| 国内不卡的二区三区中文字幕| 福利一区二区在线观看| 欧美女孩性生活视频| 国产拍欧美日韩视频二区| 亚洲欧美日韩精品久久久久| 亚洲精品第一国产综合野| 亚洲欧美国产高清| 国产成人亚洲综合a∨婷婷 | 国内精品国产成人| 欧美人妖巨大在线| 自拍偷在线精品自拍偷无码专区 | 美国毛片一区二区| 欧美情侣在线播放| 亚洲黄色av一区| 国产伦精品一区二区三区在线观看| 欧美午夜精品久久久久久超碰| 99riav一区二区三区| 亚洲欧洲精品一区二区三区| a亚洲天堂av| 久久久久久久久久久久久夜| 国产精品女同互慰在线看| 精品一区二区三区免费播放| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 欧美日韩一区二区三区免费看| 欧美精品精品一区| 一级精品视频在线观看宜春院 | 国产精品一区在线| 91精品国产综合久久久久| 日韩毛片精品高清免费| 欧美日韩一区视频| 4438x成人网最大色成网站| 三级一区在线视频先锋 | 日韩免费观看高清完整版在线观看| 老司机午夜精品| 亚洲精品一区二区三区蜜桃下载 | 欧美美女视频在线观看| 国产一区二区三区免费播放| 亚洲三级在线看| 欧美四级电影网| 欧美一区中文字幕| 不卡的av在线| 奇米一区二区三区av| 久久久另类综合| 欧美电影影音先锋| 成人美女在线观看| 亚洲午夜激情网站| 欧美精品三级在线观看| 欧美a一区二区| 一区二区三区日韩欧美精品| 精品国产一区a| 色综合天天狠狠| 国产成人精品亚洲777人妖| 国产精品美女久久久久久久| 国产精品一区久久久久| 欧美日韩不卡一区二区| av中文字幕一区| 中文字幕一区二区三区在线播放| 在线不卡的av| 欧美性色欧美a在线播放| 91免费小视频| 不卡一区二区在线| 成人一区在线看| 色综合色综合色综合| 99国产精品一区| 国内精品第一页| 老司机午夜精品| 最新日韩在线视频| 精品国产免费一区二区三区香蕉| 色综合久久久久综合体| 在线观看免费亚洲| 制服丝袜av成人在线看| 欧美久久久久久久久| 欧美疯狂做受xxxx富婆| 日韩美女天天操| 国产女人aaa级久久久级| 亚洲国产岛国毛片在线| 中文字幕第一区二区| 最新国产成人在线观看| 亚洲图片欧美一区| 九一九一国产精品| caoporn国产精品| 日韩欧美一级在线播放| 国产精品久久久久婷婷二区次| 亚洲欧美电影院| 五月激情综合色| 国产精品自拍三区| 欧美日韩精品专区| 国产清纯白嫩初高生在线观看91| 亚洲免费在线观看视频| 久久国产精品色婷婷| 成年人国产精品| 精品少妇一区二区三区在线播放| 国产精品夫妻自拍| 黄色日韩三级电影| 7777精品伊人久久久大香线蕉完整版| av资源网一区| 国产欧美精品一区| 激情综合五月天| 5566中文字幕一区二区电影| 久久精品人人做人人综合| 亚洲色图第一区| 国产成人在线视频播放| 国产无一区二区| 一区二区三区精品| 国产成人av福利| 精品国产一区二区三区久久久蜜月| 亚洲超丰满肉感bbw| 成人午夜激情在线| 日韩一级二级三级精品视频| 亚洲一区二区不卡免费| 成人av在线一区二区| 欧美日韩国产不卡| 亚洲视频一二三| 99久久婷婷国产精品综合| 国产精品久久夜| 麻豆国产一区二区| 欧美一级久久久久久久大片| 亚洲国产精品嫩草影院| 欧美一区二区三区啪啪| 国精品**一区二区三区在线蜜桃| 91精品国产日韩91久久久久久| 日韩成人精品在线观看| 2020国产精品| 在线亚洲+欧美+日本专区| 婷婷夜色潮精品综合在线| 99久久99久久免费精品蜜臀| 国产精品麻豆一区二区| 国产福利一区二区三区视频| 91精品国产综合久久久蜜臀图片 | 欧美色图在线观看| 中文字幕在线不卡一区二区三区| 蜜桃在线一区二区三区| 欧美成人video| 污片在线观看一区二区| 日韩亚洲欧美成人一区| 91免费国产视频网站| 蜜桃一区二区三区四区| 亚洲美女免费视频| 国产亚洲成年网址在线观看| 欧美中文字幕一区二区三区| 国产成人在线网站| 美女网站在线免费欧美精品| 五月天久久比比资源色| 亚洲欧美日韩中文播放| 亚洲国产成人在线| 久久综合精品国产一区二区三区| 欧美怡红院视频| 99re66热这里只有精品3直播 | 91在线你懂得| 精品国产乱码久久久久久老虎| 亚洲天堂2016| 欧美高清视频www夜色资源网| 成人综合在线视频| 日韩福利电影在线| 亚洲国产成人高清精品| 亚洲视频狠狠干| 91精品久久久久久久久99蜜臂| 国产成人在线观看免费网站| 日韩极品在线观看| 欧美经典一区二区三区| 正在播放亚洲一区| 一本久久a久久精品亚洲| 91丨九色丨尤物| 狠狠网亚洲精品| 国产一区在线视频| 国产精品一卡二| 亚洲综合视频在线| 日韩精品电影一区亚洲| 中文字幕在线一区免费| 国产精品网站在线| **欧美大码日韩| 一区二区三区日本| 亚洲欧美在线另类| 亚洲免费观看在线观看| 青青草原综合久久大伊人精品 | 青娱乐精品在线视频| 久久成人久久爱| 欧美性生活久久| 久久久噜噜噜久久中文字幕色伊伊| 国产偷国产偷亚洲高清人白洁|