⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd12232.s

📁 用ICC-AVR编译器编译M16单片机适用的LCD12232液晶屏驱动程序.
💻 S
📖 第 1 页 / 共 2 页
字号:
	xcall _wcodel
	.dbline 162
	ldi R16,160
	xcall _wcoder
	.dbline 163
; 	 wcodel(0xEE);wcoder(0xEE);//display off
	ldi R16,238
	xcall _wcodel
	.dbline 163
	ldi R16,238
	xcall _wcoder
	.dbline 164
; 	 wcodel(0xc0);wcoder(0xc0);//start line: 1
	ldi R16,192
	xcall _wcodel
	.dbline 164
	ldi R16,192
	xcall _wcoder
	.dbline 165
; 	 wcodel(0x00);wcoder(0x00); //column address set:0
	clr R16
	xcall _wcodel
	.dbline 165
	clr R16
	xcall _wcoder
	.dbline 166
; 	 clear(0X00);
	clr R16
	xcall _clear
	.dbline 167
; 	 wcodel(0xAF);wcoder(0xAF);//page address set:1
	ldi R16,175
	xcall _wcodel
	.dbline 167
	ldi R16,175
	.dbline -2
	.dbline 169
; 
; } 
L44:
	.dbline 0 ; func end
	xjmp _wcoder
	.dbend
	.dbfunc e displaystring _displaystring fV
;              w -> R14
;              j -> R22
;              z -> R10
;              i -> R20
;        onechar -> y+16
;              y -> y+14
;              x -> y+12
	.even
_displaystring::
	xcall push_arg4
	xcall push_gset5
	sbiw R28,2
	.dbline -1
	.dbline 171
; void displaystring(uchar x,uchar y,uchar *onechar)
; {
	.dbline 172
;  	 uchar i=0,z=0,j=0,w;
	clr R20
	.dbline 172
	clr R10
	.dbline 172
	clr R22
	.dbline 173
; 	 w=y;
	ldd R14,y+14
	.dbline 174
; 	 if (y>60)
	ldi R24,60
	mov R0,R14
	cp R24,R14
	brlo X8
	xjmp L46
X8:
	.dbline 175
; 	 {
	.dbline 176
; 	  	y=y-61;
	mov R24,R0
	subi R24,61
	std y+14,R24
	.dbline 177
; 	 	addressr(x,y);
	mov R18,R24
	ldd R16,y+12
	xcall _addressr
	xjmp L49
L48:
	.dbline 179
; 		while((*onechar)!='\n')
; 	 	 {
	.dbline 180
; 	 	  	for (i=0;i<16;i++)
	clr R20
	xjmp L54
L51:
	.dbline 181
	.dbline 181
	lds R2,_b1
	tst R2
	brne L55
	.dbline 181
	.dbline 181
	ldi R24,65
	sts _pianyi,R24
	.dbline 181
	xjmp L56
L55:
	.dbline 181
	.dbline 181
	mov R12,R10
	clr R13
	movw R24,R12
	cpi R24,3
	ldi R30,0
	cpc R25,R30
	breq L60
	cpi R24,4
	ldi R30,0
	cpc R25,R30
	breq L61
	cpi R24,5
	ldi R30,0
	cpc R25,R30
	breq L62
	xjmp L57
X0:
	.dbline 181
L60:
	.dbline 181
	lds R2,_sz3
	sts _pianyi,R2
	.dbline 181
	xjmp L58
L61:
	.dbline 181
	lds R2,_sz4
	sts _pianyi,R2
	.dbline 181
	xjmp L58
L62:
	.dbline 181
; 			{if(b1==0){pianyi=0x41;}else{switch(z){case 3:pianyi=sz3;break;case 4:pianyi=sz4;break;case 5:pianyi=sz5;break;}}
	lds R2,_sz5
	sts _pianyi,R2
	.dbline 181
L57:
L58:
	.dbline 181
L56:
	.dbline 182
	lds R2,_pianyi
	ldd R30,y+16
	ldd R31,y+17
	ldd R3,z+0
	sub R3,R2
	ldi R24,32
	mul R24,R3
	movw R2,R0
	ldi R24,<_chartable
	ldi R25,>_chartable
	add R2,R24
	adc R3,R25
	mov R30,R20
	clr R31
	add R30,R2
	adc R31,R3
	lpm R16,Z
	xcall _wdatar
	.dbline 182
L52:
	.dbline 180
	inc R20
L54:
	.dbline 180
	cpi R20,16
	brsh X9
	xjmp L51
X9:
	.dbline 183
	ldd R24,y+16
	ldd R25,y+17
	adiw R24,1
	std y+17,R25
	std y+16,R24
	.dbline 184
	inc R10
	.dbline 185
L49:
	.dbline 178
	ldd R30,y+16
	ldd R31,y+17
	ldd R24,z+0
	cpi R24,10
	breq X10
	xjmp L48
X10:
	.dbline 186
; 			 wdatar(chartable[*onechar-pianyi][i]);}
; 			 onechar++;
; 			 z++;
; 		 }
; 	  }
	xjmp L47
L46:
	.dbline 188
; 	 else
; 	 {
	.dbline 189
; 	  addressl(x,y);
	ldd R18,y+14
	ldd R16,y+12
	xcall _addressl
	.dbline 190
; 	  addressr(x,-3);
	ldi R18,253
	ldd R16,y+12
	xcall _addressr
	xjmp L64
L63:
	.dbline 193
; 	 
; 	  while((*onechar)!='\n')
; 	  {
	.dbline 194
; 	  	for (i=0;i<16;i++)
	clr R20
	xjmp L69
L66:
	.dbline 195
	.dbline 195
	lds R2,_b1
	tst R2
	brne L70
	.dbline 195
	.dbline 195
	ldi R24,65
	sts _pianyi,R24
	.dbline 195
	xjmp L71
L70:
	.dbline 195
	.dbline 195
	mov R12,R10
	clr R13
	tst R12
	brne X1
	tst R13
	breq L75
X1:
	movw R24,R12
	cpi R24,1
	ldi R30,0
	cpc R25,R30
	breq L76
	cpi R24,2
	ldi R30,0
	cpc R25,R30
	breq L77
	xjmp L72
X2:
	.dbline 195
L75:
	.dbline 195
	lds R2,_sz0
	sts _pianyi,R2
	.dbline 195
	xjmp L73
L76:
	.dbline 195
	lds R2,_sz1
	sts _pianyi,R2
	.dbline 195
	xjmp L73
L77:
	.dbline 195
; 		{if(b1==0){pianyi=0x41;}else{switch(z){case 0:pianyi=sz0;break;case 1:pianyi=sz1;break;case 2:pianyi=sz2;break;}}
	lds R2,_sz2
	sts _pianyi,R2
	.dbline 195
L72:
L73:
	.dbline 195
L71:
	.dbline 196
	lds R2,_pianyi
	ldd R30,y+16
	ldd R31,y+17
	ldd R3,z+0
	sub R3,R2
	ldi R24,32
	mul R24,R3
	movw R2,R0
	ldi R24,<_chartable
	ldi R25,>_chartable
	add R2,R24
	adc R3,R25
	mov R30,R20
	clr R31
	add R30,R2
	adc R31,R3
	lpm R16,Z
	xcall _wdatal
	.dbline 196
L67:
	.dbline 194
	inc R20
L69:
	.dbline 194
	cpi R20,16
	brsh X11
	xjmp L66
X11:
	.dbline 197
; 		 wdatal(chartable[*onechar-pianyi][i]);}
; 		onechar++;
	ldd R24,y+16
	ldd R25,y+17
	adiw R24,1
	std y+17,R25
	std y+16,R24
	.dbline 198
; 		z++;
	inc R10
	.dbline 199
; 	 	j++;
	inc R22
	.dbline 200
; 		if (j>2) break;
	ldi R24,2
	cp R24,R22
	brsh L78
	.dbline 200
	xjmp L81
L78:
	.dbline 201
L64:
	.dbline 192
	ldd R30,y+16
	ldd R31,y+17
	ldd R24,z+0
	cpi R24,10
	breq X12
	xjmp L63
X12:
	xjmp L81
L80:
	.dbline 204
;  	  }
; 	 
; 	    while((*onechar)!='\n')
; 	 	   {
	.dbline 205
; 	 	   		for (i=0;i<16;i++)
	clr R20
	xjmp L86
L83:
	.dbline 206
	.dbline 206
	lds R2,_b1
	tst R2
	brne L87
	.dbline 206
	.dbline 206
	ldi R24,65
	sts _pianyi,R24
	.dbline 206
	xjmp L88
L87:
	.dbline 206
	.dbline 206
	mov R12,R10
	clr R13
	movw R24,R12
	cpi R24,3
	ldi R30,0
	cpc R25,R30
	breq L92
	cpi R24,4
	ldi R30,0
	cpc R25,R30
	breq L93
	cpi R24,5
	ldi R30,0
	cpc R25,R30
	breq L94
	xjmp L89
X3:
	.dbline 206
L92:
	.dbline 206
	lds R2,_sz3
	sts _pianyi,R2
	.dbline 206
	xjmp L90
L93:
	.dbline 206
	lds R2,_sz4
	sts _pianyi,R2
	.dbline 206
	xjmp L90
L94:
	.dbline 206
; 				{if(b1==0){pianyi=0x41;}else{switch(z){case 3:pianyi=sz3;break;case 4:pianyi=sz4;break;case 5:pianyi=sz5;break;}}
	lds R2,_sz5
	sts _pianyi,R2
	.dbline 206
L89:
L90:
	.dbline 206
L88:
	.dbline 207
	lds R2,_pianyi
	ldd R30,y+16
	ldd R31,y+17
	ldd R3,z+0
	sub R3,R2
	ldi R24,32
	mul R24,R3
	movw R2,R0
	ldi R24,<_chartable
	ldi R25,>_chartable
	add R2,R24
	adc R3,R25
	mov R30,R20
	clr R31
	add R30,R2
	adc R31,R3
	lpm R16,Z
	xcall _wdatar
	.dbline 207
L84:
	.dbline 205
	inc R20
L86:
	.dbline 205
	cpi R20,16
	brsh X13
	xjmp L83
X13:
	.dbline 208
	ldd R24,y+16
	ldd R25,y+17
	adiw R24,1
	std y+17,R25
	std y+16,R24
	.dbline 209
	inc R10
	.dbline 210
L81:
	.dbline 203
	ldd R30,y+16
	ldd R31,y+17
	ldd R24,z+0
	cpi R24,10
	breq X14
	xjmp L80
X14:
	.dbline 211
; 	 			wdatar(chartable[*onechar-pianyi][i]);}
; 				onechar++;
; 				z++;
; 	       }
; 	    }
L47:
	.dbline 213
; 	//
; 	onechar=onechar-z;
	mov R2,R10
	clr R3
	ldd R0,y+16
	ldd R1,y+17
	sub R0,R2
	sbc R1,R3
	std y+17,R1
	std y+16,R0
	.dbline 214
; 	z=0;
	clr R10
	.dbline 215
; 	j=0;
	clr R22
	.dbline 216
; 		 if (w>60)
	ldi R24,60
	cp R24,R14
	brlo X15
	xjmp L95
X15:
	.dbline 217
; 	 {
	.dbline 218
; 	  	w=w-61;
	mov R24,R14
	subi R24,61
	mov R14,R24
	.dbline 219
; 	 	addressr(x+1,w);
	mov R18,R24
	ldd R16,y+12
	subi R16,255    ; addi 1
	xcall _addressr
	xjmp L98
L97:
	.dbline 221
; 		while((*onechar)!='\n')
; 	 	 {
	.dbline 222
; 	 	  	for (i=16;i<32;i++)
	ldi R20,16
	xjmp L103
L100:
	.dbline 223
	.dbline 223
	lds R2,_b1
	tst R2
	brne L104
	.dbline 223
	.dbline 223
	ldi R24,65
	sts _pianyi,R24
	.dbline 223
	xjmp L105
L104:
	.dbline 223
	.dbline 223
	mov R2,R10
	clr R3
	std y+1,R3
	std y+0,R2
	movw R24,R2
	cpi R24,3
	ldi R30,0
	cpc R25,R30
	breq L109
	cpi R24,4
	ldi R30,0
	cpc R25,R30
	breq L110
	cpi R24,5
	ldi R30,0
	cpc R25,R30
	breq L111
	xjmp L106
X4:
	.dbline 223
L109:
	.dbline 223
	lds R2,_sz3
	sts _pianyi,R2
	.dbline 223
	xjmp L107
L110:
	.dbline 223
	lds R2,_sz4
	sts _pianyi,R2
	.dbline 223
	xjmp L107
L111:
	.dbline 223
; 			{if(b1==0){pianyi=0x41;}else{switch(z){case 3:pianyi=sz3;break;case 4:pianyi=sz4;break;case 5:pianyi=sz5;break;}}
	lds R2,_sz5
	sts _pianyi,R2
	.dbline 223
L106:
L107:
	.dbline 223
L105:
	.dbline 224
	lds R2,_pianyi
	ldd R30,y+16
	ldd R31,y+17
	ldd R3,z+0
	sub R3,R2
	ldi R24,32
	mul R24,R3
	movw R2,R0
	ldi R24,<_chartable
	ldi R25,>_chartable
	add R2,R24
	adc R3,R25
	mov R30,R20
	clr R31
	add R30,R2
	adc R31,R3
	lpm R16,Z
	xcall _wdatar
	.dbline 224
L101:
	.dbline 222
	inc R20
L103:
	.dbline 222
	cpi R20,32
	brsh X16
	xjmp L100
X16:
	.dbline 225
	ldd R24,y+16
	ldd R25,y+17
	adiw R24,1
	std y+17,R25
	std y+16,R24
	.dbline 226
	inc R10
	.dbline 227
L98:
	.dbline 220
	ldd R30,y+16
	ldd R31,y+17
	ldd R24,z+0
	cpi R24,10
	breq X17
	xjmp L97
X17:
	.dbline 228
; 	 		wdatar(chartable[*onechar-pianyi][i]);}
; 			 onechar++;
; 			 z++;
; 		 }
; 	  }
	xjmp L96
L95:
	.dbline 230
; 	 else
; 	 {
	.dbline 231
; 	  addressl(x+1,w);
	mov R18,R14
	ldd R16,y+12
	subi R16,255    ; addi 1
	xcall _addressl
	.dbline 232
; 	  addressr(x+1,-3);
	ldi R18,253
	ldd R16,y+12
	subi R16,255    ; addi 1
	xcall _addressr
	xjmp L113
L112:
	.dbline 235
; 	 
; 	  while((*onechar)!='\n')
; 	  {
	.dbline 236
; 	  	for (i=16;i<32;i++)
	ldi R20,16
	xjmp L118
L115:
	.dbline 237
	.dbline 237
	lds R2,_b1
	tst R2
	brne L119
	.dbline 237
	.dbline 237
	ldi R24,65
	sts _pianyi,R24
	.dbline 237
	xjmp L120
L119:
	.dbline 237
	.dbline 237
	mov R2,R10
	clr R3
	std y+1,R3
	std y+0,R2
	tst R2
	brne X5
	tst R3
	breq L124
X5:
	ldd R24,y+0
	ldd R25,y+1
	cpi R24,1
	ldi R30,0
	cpc R25,R30
	breq L125
	cpi R24,2
	ldi R30,0
	cpc R25,R30
	breq L126
	xjmp L121
X6:
	.dbline 237
L124:
	.dbline 237
	lds R2,_sz0
	sts _pianyi,R2
	.dbline 237
	xjmp L122
L125:
	.dbline 237
	lds R2,_sz1
	sts _pianyi,R2
	.dbline 237
	xjmp L122
L126:
	.dbline 237
; 		{if(b1==0){pianyi=0x41;}else{switch(z){case 0:pianyi=sz0;break;case 1:pianyi=sz1;break;case 2:pianyi=sz2;break;}}
	lds R2,_sz2
	sts _pianyi,R2
	.dbline 237
L121:
L122:
	.dbline 237
L120:
	.dbline 238
	lds R2,_pianyi
	ldd R30,y+16
	ldd R31,y+17
	ldd R3,z+0
	sub R3,R2
	ldi R24,32
	mul R24,R3
	movw R2,R0
	ldi R24,<_chartable
	ldi R25,>_chartable
	add R2,R24
	adc R3,R25
	mov R30,R20
	clr R31
	add R30,R2
	adc R31,R3
	lpm R16,Z
	xcall _wdatal
	.dbline 238
L116:
	.dbline 236
	inc R20
L118:
	.dbline 236
	cpi R20,32
	brsh X18
	xjmp L115
X18:
	.dbline 239
; 		wdatal(chartable[*onechar-pianyi][i]);}
; 		onechar++;
	ldd R24,y+16
	ldd R25,y+17
	adiw R24,1
	std y+17,R25
	std y+16,R24
	.dbline 240
; 		z++;
	inc R10
	.dbline 241
; 	 	j++;
	inc R22
	.dbline 242
; 		if (j>2) break;
	ldi R24,2
	cp R24,R22
	brsh L127
	.dbline 242
	xjmp L130
L127:
	.dbline 243
L113:
	.dbline 234
	ldd R30,y+16
	ldd R31,y+17
	ldd R24,z+0
	cpi R24,10
	breq X19
	xjmp L112
X19:
	xjmp L130
L129:
	.dbline 246
;  	  }
; 	 
; 	    while((*onechar)!='\n')
; 	 	   {
	.dbline 247
; 	 	   		for (i=16;i<32;i++)
	ldi R20,16
	xjmp L135
L132:
	.dbline 248
	.dbline 248
	lds R2,_b1
	tst R2
	brne L136
	.dbline 248
	.dbline 248
	ldi R24,65
	sts _pianyi,R24
	.dbline 248
	xjmp L137
L136:
	.dbline 248
	.dbline 248
	mov R2,R10
	clr R3
	std y+1,R3
	std y+0,R2
	movw R24,R2
	cpi R24,3
	ldi R30,0
	cpc R25,R30
	breq L141
	cpi R24,4
	ldi R30,0
	cpc R25,R30
	breq L142
	cpi R24,5
	ldi R30,0
	cpc R25,R30
	breq L143
	xjmp L138
X7:
	.dbline 248
L141:
	.dbline 248
	lds R2,_sz3
	sts _pianyi,R2
	.dbline 248
	xjmp L139
L142:
	.dbline 248
	lds R2,_sz4
	sts _pianyi,R2
	.dbline 248
	xjmp L139
L143:
	.dbline 248
; 				{if(b1==0){pianyi=0x41;}else{switch(z){case 3:pianyi=sz3;break;case 4:pianyi=sz4;break;case 5:pianyi=sz5;break;}}
	lds R2,_sz5
	sts _pianyi,R2
	.dbline 248
L138:
L139:
	.dbline 248
L137:
	.dbline 249
	lds R2,_pianyi
	ldd R30,y+16
	ldd R31,y+17
	ldd R3,z+0
	sub R3,R2
	ldi R24,32
	mul R24,R3
	movw R2,R0
	ldi R24,<_chartable
	ldi R25,>_chartable
	add R2,R24
	adc R3,R25
	mov R30,R20
	clr R31
	add R30,R2
	adc R31,R3
	lpm R16,Z
	xcall _wdatar
	.dbline 249
L133:
	.dbline 247
	inc R20
L135:
	.dbline 247
	cpi R20,32
	brsh X20
	xjmp L132
X20:
	.dbline 250
	ldd R24,y+16
	ldd R25,y+17
	adiw R24,1
	std y+17,R25
	std y+16,R24
	.dbline 251
	inc R10
	.dbline 252
L130:
	.dbline 245
	ldd R30,y+16
	ldd R31,y+17
	ldd R24,z+0
	cpi R24,10
	breq X21
	xjmp L129
X21:
	.dbline 253
L96:
	.dbline -2
	.dbline 255
; 	 			wdatar(chartable[*onechar-pianyi][i]);}
; 				onechar++;
; 				z++;
; 	       }
; 	    }
; 	//
; 	 }
L45:
	adiw R28,2
	xcall pop_gset5
	adiw R28,4
	.dbline 0 ; func end
	ret
	.dbsym r w 14 c
	.dbsym r j 22 c
	.dbsym r z 10 c
	.dbsym r i 20 c
	.dbsym l onechar 16 pc
	.dbsym l y 14 c
	.dbsym l x 12 c
	.dbend
	.area bss(ram, con, rel)
	.dbfile F:\新建文件夹\LCD12232APP\LCD12232.C
_chartable::
	.blkb 1120
	.dbsym e chartable _chartable A[1120:35:32]kc

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -