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

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

?? lcd12864.c

?? 這是一個LCD12864程序
?? 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);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆精品在线播放| 久久嫩草精品久久久久| 日韩精品一区二区三区视频| 亚洲欧洲日韩av| 在线欧美日韩国产| 偷窥少妇高潮呻吟av久久免费| 欧美日韩第一区日日骚| 精品一区二区三区久久| 国产精品白丝在线| 91精品国产福利在线观看| 激情综合色综合久久| 日韩一级黄色片| 91免费国产在线观看| 亚洲大片精品永久免费| 精品日韩一区二区三区| 91福利在线看| 大胆欧美人体老妇| 日韩国产一区二| 中文字幕在线观看不卡| 亚洲乱码一区二区三区在线观看| 欧美精品1区2区3区| 成人福利电影精品一区二区在线观看| 亚洲自拍偷拍av| 国产精品三级视频| 日韩免费视频一区二区| 国产精品乱码一区二区三区软件| 亚洲欧洲综合另类在线| 国产亚洲欧洲997久久综合| 欧美一区二区免费视频| 久久久精品国产免大香伊| 一二三区精品视频| 亚洲欧美怡红院| 天天综合色天天| 波多野结衣在线aⅴ中文字幕不卡| 青青草国产精品亚洲专区无| 亚洲一区影音先锋| 九九精品视频在线看| 91视频在线观看| 日韩一二在线观看| 亚洲欧美日韩一区二区 | 久久久久国产精品人| 亚洲日本一区二区三区| ●精品国产综合乱码久久久久| 亚洲成人tv网| 99r国产精品| 色94色欧美sute亚洲13| 精品国一区二区三区| 精品国一区二区三区| 亚洲精品视频一区二区| 国产一区二区精品久久99| 狠狠久久亚洲欧美| 欧美色老头old∨ideo| 色94色欧美sute亚洲线路一ni| 久久久久久久综合| 麻豆精品一区二区三区| 欧美撒尿777hd撒尿| 日韩一区有码在线| 国产精品一区在线观看乱码 | 一本色道久久加勒比精品| 成人av免费在线观看| 欧美电影免费观看高清完整版在 | 一本大道久久a久久综合婷婷| 日韩午夜激情av| 亚洲一区二区精品3399| 91影院在线观看| 亚洲少妇30p| 9i看片成人免费高清| 久久久久亚洲蜜桃| 国产精品一区免费视频| 精品三级av在线| 国内精品久久久久影院色| 欧美一级高清片| 免费高清在线视频一区·| 欧美一区二区免费| 国产一区二区三区免费在线观看 | 国产精品福利在线播放| 成人黄色免费短视频| 国产精品久久久久一区二区三区| 国产99精品视频| 欧美视频一区二区在线观看| 日韩午夜中文字幕| 热久久一区二区| 精品99999| 国产在线视频精品一区| 久久久久九九视频| 99久久久久久| 亚洲综合自拍偷拍| 欧美区一区二区三区| 美女免费视频一区| 日本一区二区三区免费乱视频| 天天av天天翘天天综合网| 国产精品一区二区果冻传媒| 欧美国产禁国产网站cc| 亚洲第一狼人社区| 欧美人牲a欧美精品| 韩国av一区二区三区四区| 久久久电影一区二区三区| 91麻豆蜜桃一区二区三区| 亚洲国产欧美一区二区三区丁香婷| 国产成人精品亚洲日本在线桃色| 在线观看亚洲一区| 婷婷丁香久久五月婷婷| 精品国产露脸精彩对白| 91免费国产在线观看| 免费黄网站欧美| 日韩毛片一二三区| 日韩天堂在线观看| 97se亚洲国产综合在线| 午夜精品久久久久久久蜜桃app| www激情久久| 国产综合色视频| 亚洲精品视频在线观看网站| 欧美大肚乱孕交hd孕妇| 91丝袜美腿高跟国产极品老师 | 日本vs亚洲vs韩国一区三区二区| 亚洲精品一区二区三区蜜桃下载| 一本久久a久久精品亚洲 | 国产精品视频一二三区| 欧美日韩国产首页| eeuss鲁片一区二区三区在线看| 日韩中文字幕亚洲一区二区va在线 | 欧美又粗又大又爽| 国产成人午夜精品影院观看视频| 天天影视涩香欲综合网| 亚洲欧洲制服丝袜| 日本一二三四高清不卡| 日韩欧美一区二区免费| 精品污污网站免费看| 99re热这里只有精品免费视频| 麻豆高清免费国产一区| 亚洲国产精品精华液网站| 国产精品久久久久精k8| 久久综合狠狠综合久久激情 | 国产精品成人一区二区艾草| 欧美成人一区二区三区在线观看| 日本道在线观看一区二区| 福利视频网站一区二区三区| 精品亚洲欧美一区| 男女视频一区二区| 日韩国产欧美在线播放| 亚洲超丰满肉感bbw| 亚洲影视资源网| 亚洲精品一二三| 亚洲黄色免费网站| 亚洲一区二区影院| 一区二区三区四区激情| 樱花影视一区二区| 一区二区三区免费观看| 一区二区三区在线视频免费| 成人免费在线视频观看| 自拍偷在线精品自拍偷无码专区| 日本一二三四高清不卡| 中文字幕一区二区不卡| 1区2区3区国产精品| 亚洲日本中文字幕区| 一区二区三区免费看视频| 午夜免费欧美电影| 亚洲成人一区二区在线观看| 亚洲大尺度视频在线观看| 三级影片在线观看欧美日韩一区二区| 亚洲一区二区三区在线播放| 亚洲成人资源网| 麻豆91免费看| 国产凹凸在线观看一区二区| 成人激情黄色小说| 欧洲一区二区三区免费视频| 欧美区在线观看| 精品国偷自产国产一区| 中文幕一区二区三区久久蜜桃| 亚洲午夜一区二区| 亚洲国产欧美一区二区三区丁香婷| 日韩国产一区二| 成人污视频在线观看| 欧美自拍丝袜亚洲| 欧美一区午夜精品| 中文字幕第一区二区| 亚洲一区在线视频| 久久99热这里只有精品| 亚洲一区二区高清| 开心九九激情九九欧美日韩精美视频电影| 国产自产高清不卡| 色国产综合视频| 精品免费视频.| 亚洲精品视频免费看| 看电影不卡的网站| 91香蕉视频污在线| 精品久久久久久久久久久久久久久久久| 国产欧美日韩中文久久| 亚洲国产wwwccc36天堂| 国产精品一区二区在线观看不卡| 色综合欧美在线视频区| 日韩精品中午字幕| 亚洲综合在线免费观看| 丁香婷婷综合色啪| 51久久夜色精品国产麻豆| 欧美在线你懂得| 国产日韩欧美一区二区三区乱码| 亚洲成av人片一区二区三区| 夫妻av一区二区| 精品免费99久久|