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

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

?? lcd12864.s

?? 這是一個LCD12864程序
?? S
?? 第 1 頁 / 共 2 頁
字號:
	.module lcd12864.c
	.area text(rom, con, rel)
	.dbfile E:\ICCAVR\project\AVRMEG~3\icc\018-LCD12864\lcd12864.c
	.dbfunc e delay_us _delay_us fV
;              n -> R16,R17
	.even
_delay_us::
	.dbline -1
	.dbline 33
; /*
; 	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) {
	.dbline 35
; 
; 	if (n == 0) {
	cpi R16,0
	cpc R16,R17
	brne L5
X0:
	.dbline 35
	.dbline 36
; 		return ;
	xjmp L1
L4:
	.dbline 38
L5:
	.dbline 38
; 		}
; 	while (--n);
	movw R24,R16
	sbiw R24,1
	movw R16,R24
	cpi R16,0
	cpc R16,R17
	brne L4
X1:
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbsym r n 16 i
	.dbend
	.dbfunc e delay_ms _delay_ms fV
;              a -> R20
;              b -> R22
;              i -> R16
	.even
_delay_ms::
	xcall push_gset2
	.dbline -1
	.dbline 42
; }
; 
; /*延時函數*/
; void delay_ms(unsigned char i) {
	.dbline 45
	ldi R20,1
	xjmp L11
L8:
	.dbline 45
; 
; 	unsigned char a, b;
; 	for (a = 1; a < i; a++) {
	.dbline 46
	ldi R22,1
	xjmp L15
L12:
	.dbline 46
	.dbline 47
	.dbline 48
L13:
	.dbline 46
	inc R22
L15:
	.dbline 46
	tst R22
	brne L12
	.dbline 49
L9:
	.dbline 45
	inc R20
L11:
	.dbline 45
	cp R20,R16
	brlo L8
	.dbline -2
L7:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r a 20 c
	.dbsym r b 22 c
	.dbsym r i 16 c
	.dbend
	.dbfunc e LCD0_write_com _LCD0_write_com fV
;            com -> R20
	.even
_LCD0_write_com::
	xcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 53
; 		for (b = 1; b; b++) {
; 			;
; 			}
; 		}
; }
; 
; /*顯示屏命令寫入函數前半屏*/
; void LCD0_write_com(unsigned char com) {
	.dbline 55
; 	
; 	RS_CLR;
	cbi 0x15,2
	.dbline 56
; 	RW_CLR;
	cbi 0x15,3
	.dbline 57
; 	CSA_SET;
	sbi 0x15,7
	.dbline 58
; 	CSB_CLR;
	cbi 0x15,6
	.dbline 59
; 	EN_SET;
	sbi 0x15,4
	.dbline 60
; 	PORTA = com;
	out 0x1b,R20
	.dbline 61
; 	delay_us(1);
	ldi R16,1
	ldi R17,0
	xcall _delay_us
	.dbline 62
; 	EN_CLR;
	cbi 0x15,4
	.dbline -2
L16:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r com 20 c
	.dbend
	.dbfunc e LCD1_write_com _LCD1_write_com fV
;            com -> R20
	.even
_LCD1_write_com::
	xcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 66
; }
; 
; /*顯示屏命令寫入函數后半屏*/
; void LCD1_write_com(unsigned char com) {
	.dbline 68
; 	
; 	RS_CLR;
	cbi 0x15,2
	.dbline 69
; 	RW_CLR;
	cbi 0x15,3
	.dbline 70
; 	CSA_CLR;
	cbi 0x15,7
	.dbline 71
; 	CSB_SET;
	sbi 0x15,6
	.dbline 72
; 	EN_SET;
	sbi 0x15,4
	.dbline 73
; 	PORTA = com;
	out 0x1b,R20
	.dbline 74
; 	delay_us(1);
	ldi R16,1
	ldi R17,0
	xcall _delay_us
	.dbline 75
; 	EN_CLR;
	cbi 0x15,4
	.dbline -2
L17:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r com 20 c
	.dbend
	.dbfunc e LCD0_write_data _LCD0_write_data fV
;           data -> R20
	.even
_LCD0_write_data::
	xcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 79
; }
; 
; /*顯示屏命令寫入函數*/
; void LCD0_write_data(unsigned char data) {
	.dbline 81
; 
; 	RS_SET;
	sbi 0x15,2
	.dbline 82
; 	RW_CLR;
	cbi 0x15,3
	.dbline 83
; 	CSA_SET;
	sbi 0x15,7
	.dbline 84
; 	CSB_CLR;
	cbi 0x15,6
	.dbline 85
; 	EN_SET;
	sbi 0x15,4
	.dbline 86
; 	PORTA = data;
	out 0x1b,R20
	.dbline 87
; 	delay_us(1);
	ldi R16,1
	ldi R17,0
	xcall _delay_us
	.dbline 88
; 	EN_CLR;
	cbi 0x15,4
	.dbline -2
L18:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r data 20 c
	.dbend
	.dbfunc e LCD1_write_data _LCD1_write_data fV
;           data -> R20
	.even
_LCD1_write_data::
	xcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 92
; }
; 
; /*顯示屏命令寫入函數*/
; void LCD1_write_data(unsigned char data) {
	.dbline 94
; 
; 	RS_SET;
	sbi 0x15,2
	.dbline 95
; 	RW_CLR;
	cbi 0x15,3
	.dbline 96
; 	CSA_CLR;
	cbi 0x15,7
	.dbline 97
; 	CSB_SET;
	sbi 0x15,6
	.dbline 98
; 	EN_SET;
	sbi 0x15,4
	.dbline 99
; 	PORTA = data;
	out 0x1b,R20
	.dbline 100
; 	delay_us(1);
	ldi R16,1
	ldi R17,0
	xcall _delay_us
	.dbline 101
; 	EN_CLR;
	cbi 0x15,4
	.dbline -2
L19:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r data 20 c
	.dbend
	.dbfunc e disp_clear _disp_clear fV
;              x -> R20
;              y -> R10
;             x1 -> R22
;             x0 -> R12
	.even
_disp_clear::
	xcall push_gset4
	mov R22,R18
	mov R12,R16
	ldd R10,y+8
	.dbline -1
	.dbline 105
; }
; 
; /*顯示屏清空顯示*/
; void disp_clear(unsigned char x0, unsigned char x1, unsigned char y) {
	.dbline 110
; 
; 	unsigned char x;
; 	
; 	/*清除高位*/	
; 	x = x0;
	mov R20,R12
	.dbline 111
; 	if (x < 63) {						/*地址在左半屏范圍內*/
	cpi R20,63
	brsh L24
	.dbline 111
	.dbline 112
; 		LCD0_write_com(y | 0xB8);
	mov R16,R10
	ori R16,184
	xcall _LCD0_write_com
	.dbline 113
; 		LCD0_write_com(x | 0x40);
	mov R16,R20
	ori R16,64
	xcall _LCD0_write_com
	.dbline 114
; 		}
	xjmp L24
L23:
	.dbline 115
; 	while (x < x1) {
	.dbline 116
; 		LCD0_write_data(0x00);
	clr R16
	xcall _LCD0_write_data
	.dbline 117
; 		x ++;
	inc R20
	.dbline 118
; 		if (x > 63) {					/*判斷地址是否越界*/
	ldi R24,63
	cp R24,R20
	brsh L26
	.dbline 118
	.dbline 119
; 			break;
	xjmp L25
L26:
	.dbline 121
L24:
	.dbline 115
	cp R20,R22
	brlo L23
L25:
	.dbline 122
; 			}
; 		}
; 	if (x < x1) {						/*地址進入左半屏范圍*/
	cp R20,R22
	brsh L31
	.dbline 122
	.dbline 123
; 		LCD1_write_com(y | 0xB8);
	mov R16,R10
	ori R16,184
	xcall _LCD1_write_com
	.dbline 124
; 		LCD1_write_com(x | 0x40);
	mov R16,R20
	ori R16,64
	xcall _LCD1_write_com
	.dbline 125
; 		}
	xjmp L31
L30:
	.dbline 126
	.dbline 127
	clr R16
	xcall _LCD1_write_data
	.dbline 128
	inc R20
	.dbline 129
L31:
	.dbline 126
; 	while (x < x1) {
	cp R20,R22
	brlo L30
	.dbline 132
; 		LCD1_write_data(0x00);
; 		x ++;
; 		}
; 
; 	/*清除低位*/
; 	x = x0;
	mov R20,R12
	.dbline 133
; 	if (x < 63) {						/*地址在左半屏范圍內*/
	cpi R20,63
	brsh L36
	.dbline 133
	.dbline 134
; 		LCD0_write_com((y+1) | 0xB8);
	mov R16,R10
	subi R16,255    ; addi 1
	ori R16,184
	xcall _LCD0_write_com
	.dbline 135
; 		LCD0_write_com(x | 0x40);
	mov R16,R20
	ori R16,64
	xcall _LCD0_write_com
	.dbline 136
; 		}
	xjmp L36
L35:
	.dbline 137
; 	while (x < x1) {
	.dbline 138
; 		LCD0_write_data(0x00);
	clr R16
	xcall _LCD0_write_data
	.dbline 139
; 		x ++;
	inc R20
	.dbline 140
; 		if (x > 63) {					/*判斷地址是否越界*/
	ldi R24,63
	cp R24,R20
	brsh L38
	.dbline 140
	.dbline 141
; 			break;
	xjmp L37
L38:
	.dbline 143
L36:
	.dbline 137
	cp R20,R22
	brlo L35
L37:
	.dbline 144
; 			}
; 		}
; 	if (x < x1) {						/*地址進入左半屏范圍*/
	cp R20,R22
	brsh L43
	.dbline 144
	.dbline 145
; 		LCD1_write_com((y+1) | 0xB8);
	mov R16,R10
	subi R16,255    ; addi 1
	ori R16,184
	xcall _LCD1_write_com
	.dbline 146
; 		LCD1_write_com(x | 0x40);
	mov R16,R20
	ori R16,64
	xcall _LCD1_write_com
	.dbline 147
; 		}
	xjmp L43
L42:
	.dbline 148
	.dbline 149
	clr R16
	xcall _LCD1_write_data
	.dbline 150
	inc R20
	.dbline 151
L43:
	.dbline 148
; 	while (x < x1) {
	cp R20,R22
	brlo L42
	.dbline -2
L20:
	xcall pop_gset4
	.dbline 0 ; func end
	ret
	.dbsym r x 20 c
	.dbsym r y 10 c
	.dbsym r x1 22 c
	.dbsym r x0 12 c
	.dbend
	.dbfunc e disp_char _disp_char fV
;              q -> R20,R21
;              i -> R22
;          ascii -> y+8
;              y -> R12
;              x -> R10
	.even
_disp_char::
	xcall push_gset4
	mov R12,R18
	mov R10,R16
	.dbline -1
	.dbline 155
; 		LCD1_write_data(0x00);
; 		x ++;
; 		}
; }
; 
; /*在指定位置顯示一個ASCII 字符*/
; void disp_char(unsigned char x, unsigned char y, unsigned char ascii) {
	.dbline 157
; 
; 	unsigned char i = 0x00;
	clr R22
	.dbline 160
; 	const unsigned char *q;				/*取字庫指針*/
; 	
; 	ascii -= 0x20;
	ldd R24,y+8
	subi R24,32
	std y+8,R24
	.dbline 161
; 	q = &ENGLISH_FONT[ascii * 16];		/*定位指針地址*/
	ldi R24,16
	ldd R0,y+8
	mul R24,R0
	movw R20,R0
	ldi R24,<_ENGLISH_FONT
	ldi R25,>_ENGLISH_FONT
	add R20,R24
	adc R21,R25
	.dbline 164
; 
; 	/*顯示高8位*/	
; 	i = 0x00;
	.dbline 165
; 	if (x < 64) {						/*地址在左半屏范圍內*/
	mov R24,R10
	cpi R24,64
	brsh L46
	.dbline 165
	.dbline 166
; 		LCD0_write_com(y | 0xB8);
	mov R16,R12
	ori R16,184
	xcall _LCD0_write_com
	.dbline 167
; 		LCD0_write_com(x | 0x40);
	mov R16,R10
	ori R16,64
	xcall _LCD0_write_com
	xjmp L49
L48:
	.dbline 168
; 		while (i < 8) {
	.dbline 169
; 			LCD0_write_data(*q);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本欧美久久久久免费播放网| 色婷婷av一区二区三区之一色屋| 成人国产亚洲欧美成人综合网| 一本大道av一区二区在线播放| 777奇米成人网| 亚洲同性gay激情无套| 国产精品99久久久久久似苏梦涵 | 久久精品人人做人人综合| 亚洲在线一区二区三区| 成人一级视频在线观看| 91精品国产综合久久久久久| 国产精品久久久久久久久免费相片 | 亚洲男人的天堂在线观看| 国产综合一区二区| 精品视频在线看| 亚洲男人电影天堂| 91一区二区三区在线观看| 精品国产青草久久久久福利| 婷婷综合五月天| 欧美亚洲精品一区| 一区二区三区免费| 91亚洲精品久久久蜜桃| 中文字幕av资源一区| 国产精品综合视频| 精品成人免费观看| 国产在线精品免费| 精品国产乱码久久久久久老虎 | 91精品国产综合久久久蜜臀图片| 亚洲视频香蕉人妖| zzijzzij亚洲日本少妇熟睡| 国产欧美一区二区三区在线看蜜臀 | 日韩黄色在线观看| 精品1区2区3区| 一区二区日韩av| 欧美午夜精品一区二区蜜桃| 一区二区三区加勒比av| 91麻豆免费观看| 一区二区三区高清| 欧美日韩一区成人| 日日噜噜夜夜狠狠视频欧美人 | 国产校园另类小说区| 国产综合一区二区| 国产亚洲成aⅴ人片在线观看| 毛片av一区二区| 欧美大胆一级视频| 国产麻豆精品在线观看| 久久久久久97三级| 99这里只有久久精品视频| 亚洲免费观看高清完整版在线观看熊| 色综合中文字幕国产 | 久久国产精品免费| 精品国产伦一区二区三区观看体验| 激情综合网av| 国产精品网站一区| 日本伦理一区二区| 免费精品视频在线| 国产丝袜欧美中文另类| 欧美专区日韩专区| 久久99精品久久久久久动态图 | 亚洲成va人在线观看| 欧美肥胖老妇做爰| 国产一区二区精品久久91| 中文字幕亚洲电影| 91精品欧美综合在线观看最新| 狠狠色2019综合网| 亚洲天堂成人在线观看| 欧美一区二区三区在线观看视频| 激情国产一区二区| 亚洲精品高清在线| 精品日韩一区二区三区| 色哟哟一区二区在线观看| 丝袜诱惑亚洲看片| 国产精品国产三级国产aⅴ原创 | 97久久精品人人澡人人爽| 亚洲一区二区三区视频在线播放| 精品少妇一区二区三区日产乱码| 波多野结衣在线aⅴ中文字幕不卡| 亚洲一区二区欧美日韩| 国产女主播一区| 777奇米成人网| 99国内精品久久| 精品一区二区免费| 樱桃国产成人精品视频| 精品久久久久久久人人人人传媒| 91视频免费播放| 国产在线播放一区三区四| 一区二区三区美女视频| 国产亚洲精品超碰| 日韩精品一区二区三区三区免费 | 欧美在线高清视频| 国产精品自在欧美一区| 午夜精品一区在线观看| 国产精品久久久爽爽爽麻豆色哟哟| 91精品国产综合久久久蜜臀粉嫩 | 国产精品视频麻豆| 91精品国产免费| 欧美日韩一区久久| 色综合天天天天做夜夜夜夜做| 国产一区二区主播在线| 免费不卡在线观看| 图片区小说区区亚洲影院| 亚洲三级在线播放| 亚洲视频免费看| 中文字幕乱码日本亚洲一区二区| 日韩网站在线看片你懂的| 欧美性受极品xxxx喷水| 91啦中文在线观看| 99re这里只有精品首页| 成人黄色一级视频| 懂色av中文字幕一区二区三区| 久久99国产乱子伦精品免费| 亚洲图片欧美一区| 亚洲成年人影院| 日韩在线a电影| 日韩av一区二区三区四区| 日韩电影在线免费看| 婷婷中文字幕综合| 偷窥国产亚洲免费视频| 日韩不卡在线观看日韩不卡视频| 偷拍自拍另类欧美| 久久99久久精品| 久久66热re国产| 国产精品一级在线| 成人黄色a**站在线观看| caoporn国产一区二区| 91麻豆高清视频| 欧美日韩国产综合草草| 欧美精品在线一区二区三区| 欧美精品在线观看一区二区| 欧美精品久久久久久久多人混战| 欧美精品一级二级| 精品久久久久久久久久久久久久久久久| 日韩精品一区二区三区视频在线观看| 26uuu亚洲综合色欧美| 久久精品一区二区三区不卡 | 久久一留热品黄| 中文字幕精品一区| 一区二区三区四区视频精品免费| 三级在线观看一区二区 | 欧洲av在线精品| 日韩一区二区视频| 国产欧美一区二区精品性色 | 欧美性一级生活| 日韩欧美第一区| 日本一区二区动态图| 一区二区在线观看不卡| 天堂在线一区二区| 国产91精品一区二区麻豆网站| 色婷婷综合视频在线观看| 欧美一区二区三区在线| 国产亚洲精品中文字幕| 亚洲福利电影网| 国产综合色产在线精品| 日本高清视频一区二区| 精品裸体舞一区二区三区| 亚洲精品免费在线观看| 麻豆久久一区二区| 日本精品一区二区三区高清| 欧美大黄免费观看| 亚洲国产aⅴ成人精品无吗| 精品在线播放免费| 欧美视频一区二区三区在线观看| 国产亚洲一本大道中文在线| 亚洲一区二区三区在线| 成人激情免费电影网址| 欧美一区二区日韩| 一区二区三区在线影院| 国产成人精品三级| 91精品国产综合久久香蕉麻豆| 中文字幕制服丝袜成人av| 麻豆精品一区二区av白丝在线| 成人sese在线| 久久久久国产一区二区三区四区| 亚洲国产中文字幕| 色综合天天综合色综合av | 欧美精三区欧美精三区| 亚洲欧洲一区二区在线播放| 麻豆91精品视频| 欧美精品v国产精品v日韩精品| 国产精品久久久久一区二区三区| 国内久久精品视频| 日韩一区二区三区在线观看| 一区二区久久久| 色综合激情久久| 一区二区三区欧美久久| av午夜精品一区二区三区| 国产精品视频免费看| 精品一区二区久久久| 日韩你懂的在线观看| 蜜桃av一区二区| 91精品国产高清一区二区三区蜜臀| 亚洲一区二区三区三| 欧美日韩在线观看一区二区 | 亚洲特级片在线| 91在线精品一区二区| 国产精品私人影院| 94色蜜桃网一区二区三区| 亚洲国产精品ⅴa在线观看| 国产成人鲁色资源国产91色综| 久久精品一区四区|