📄 lcd12864.lis
字号:
01C0 0895 ret
01C2 .dbsym l lcd_data 4 c
01C2 .dbsym r y 20 c
01C2 .dbsym r x 22 c
01C2 .dbend
01C2 .dbfunc e lcd_print88 _lcd_print88 fV
01C2 ; i -> R20
01C2 ; lcd_char -> R22,R23
01C2 ; y -> R10
01C2 ; x -> R12
.even
01C2 _lcd_print88::
01C2 0E940000 xcall push_gset4
01C6 A22E mov R10,R18
01C8 C02E mov R12,R16
01CA 2197 sbiw R28,1
01CC 6985 ldd R22,y+9
01CE 7A85 ldd R23,y+10
01D0 .dbline -1
01D0 .dbline 224
01D0 ; }else {
01D0 ; addressR(x,y);
01D0 ; wdataR(lcd_data);
01D0 ; }
01D0 ; }
01D0 ; /******************************************************************************/
01D0 ; void lcd_print88(uchar x,uchar y,const uchar *lcd_char)//显示8*8字符
01D0 ; {
01D0 .dbline 226
01D0 4427 clr R20
01D2 0EC0 xjmp L65
01D4 L62:
01D4 .dbline 226
01D4 .dbline 227
01D4 1B01 movw R2,R22
01D6 6F5F subi R22,255 ; offset = 1
01D8 7F4F sbci R23,255
01DA F101 movw R30,R2
01DC E491 lpm R30,Z
01DE E883 std y+0,R30
01E0 2A2C mov R2,R10
01E2 822D mov R24,R2
01E4 8F5F subi R24,255 ; addi 1
01E6 A82E mov R10,R24
01E8 222D mov R18,R2
01EA 0C2D mov R16,R12
01EC CADF xcall _lcd_print
01EE .dbline 228
01EE L63:
01EE .dbline 226
01EE 4395 inc R20
01F0 L65:
01F0 .dbline 226
01F0 ; uchar i;
01F0 ; for(i=0;i<8;i++){
01F0 4830 cpi R20,8
01F2 80F3 brlo L62
01F4 .dbline -2
01F4 L61:
01F4 2196 adiw R28,1
01F6 0E940000 xcall pop_gset4
01FA .dbline 0 ; func end
01FA 0895 ret
01FC .dbsym r i 20 c
01FC .dbsym r lcd_char 22 pkc
01FC .dbsym r y 10 c
01FC .dbsym r x 12 c
01FC .dbend
01FC .dbfunc e lcd_print1616 _lcd_print1616 fV
01FC ; i -> R20
01FC ; j -> R14
01FC ; lcd_char -> R10,R11
01FC ; y -> R12
01FC ; x -> R22
.even
01FC _lcd_print1616::
01FC 0E940000 xcall push_gset5
0200 C22E mov R12,R18
0202 602F mov R22,R16
0204 2197 sbiw R28,1
0206 AB84 ldd R10,y+11
0208 BC84 ldd R11,y+12
020A .dbline -1
020A .dbline 232
020A ; lcd_print(x,y++,*lcd_char++);
020A ; }
020A ; }
020A ; /******************************************************************************/
020A ; void lcd_print1616(uchar x,uchar y,const uchar *lcd_char)//显示16*16的汉字
020A ; {
020A .dbline 234
020A 4427 clr R20
020C 13C0 xjmp L70
020E L67:
020E .dbline 234
020E ; uchar i,j;
020E ; for(i=0;i<2;i++){
020E .dbline 235
020E EE24 clr R14
0210 0CC0 xjmp L74
0212 L71:
0212 .dbline 235
0212 .dbline 236
0212 1501 movw R2,R10
0214 C101 movw R24,R2
0216 0196 adiw R24,1
0218 5C01 movw R10,R24
021A F101 movw R30,R2
021C E491 lpm R30,Z
021E E883 std y+0,R30
0220 2C2D mov R18,R12
0222 2E0D add R18,R14
0224 062F mov R16,R22
0226 ADDF xcall _lcd_print
0228 .dbline 237
0228 L72:
0228 .dbline 235
0228 E394 inc R14
022A L74:
022A .dbline 235
022A 8E2D mov R24,R14
022C 8031 cpi R24,16
022E 88F3 brlo L71
0230 .dbline 238
0230 6395 inc R22
0232 .dbline 239
0232 L68:
0232 .dbline 234
0232 4395 inc R20
0234 L70:
0234 .dbline 234
0234 4230 cpi R20,2
0236 58F3 brlo L67
0238 .dbline -2
0238 L66:
0238 2196 adiw R28,1
023A 0E940000 xcall pop_gset5
023E .dbline 0 ; func end
023E 0895 ret
0240 .dbsym r i 20 c
0240 .dbsym r j 14 c
0240 .dbsym r lcd_char 10 pkc
0240 .dbsym r y 12 c
0240 .dbsym r x 22 c
0240 .dbend
0240 .dbfunc e lcd_print816 _lcd_print816 fV
0240 ; i -> R20
0240 ; j -> R14
0240 ; lcd_char -> R10,R11
0240 ; y -> R12
0240 ; x -> R22
.even
0240 _lcd_print816::
0240 0E940000 xcall push_gset5
0244 C22E mov R12,R18
0246 602F mov R22,R16
0248 2197 sbiw R28,1
024A AB84 ldd R10,y+11
024C BC84 ldd R11,y+12
024E .dbline -1
024E .dbline 243
024E ; for(j=0;j<16;j++){
024E ; lcd_print(x,y+j,*lcd_char++);
024E ; }
024E ; x++;
024E ; }
024E ; }
024E ; /******************************************************************************/
024E ; void lcd_print816(uchar x,uchar y,const uchar *lcd_char)
024E ; {
024E .dbline 245
024E 4427 clr R20
0250 13C0 xjmp L79
0252 L76:
0252 .dbline 245
0252 ; uchar i,j;
0252 ; for(i=0;i<2;i++){
0252 .dbline 246
0252 EE24 clr R14
0254 0CC0 xjmp L83
0256 L80:
0256 .dbline 246
0256 .dbline 247
0256 1501 movw R2,R10
0258 C101 movw R24,R2
025A 0196 adiw R24,1
025C 5C01 movw R10,R24
025E F101 movw R30,R2
0260 E491 lpm R30,Z
0262 E883 std y+0,R30
0264 2C2D mov R18,R12
0266 2E0D add R18,R14
0268 062F mov R16,R22
026A 8BDF xcall _lcd_print
026C .dbline 248
026C L81:
026C .dbline 246
026C E394 inc R14
026E L83:
026E .dbline 246
026E 8E2D mov R24,R14
0270 8830 cpi R24,8
0272 88F3 brlo L80
0274 .dbline 249
0274 6395 inc R22
0276 .dbline 250
0276 L77:
0276 .dbline 245
0276 4395 inc R20
0278 L79:
0278 .dbline 245
0278 4230 cpi R20,2
027A 58F3 brlo L76
027C .dbline -2
027C L75:
027C 2196 adiw R28,1
027E 0E940000 xcall pop_gset5
0282 .dbline 0 ; func end
0282 0895 ret
0284 .dbsym r i 20 c
0284 .dbsym r j 14 c
0284 .dbsym r lcd_char 10 pkc
0284 .dbsym r y 12 c
0284 .dbsym r x 22 c
0284 .dbend
0284 .dbfunc e lcd_reverse816 _lcd_reverse816 fV
0284 ; i -> R20
0284 ; j -> R14
0284 ; lcd_char -> R10,R11
0284 ; y -> R12
0284 ; x -> R22
.even
0284 _lcd_reverse816::
0284 0E940000 xcall push_gset5
0288 C22E mov R12,R18
028A 602F mov R22,R16
028C 2197 sbiw R28,1
028E AB84 ldd R10,y+11
0290 BC84 ldd R11,y+12
0292 .dbline -1
0292 .dbline 254
0292 ; for(j=0;j<8;j++){
0292 ; lcd_print(x,y+j,*lcd_char++);
0292 ; }
0292 ; x++;
0292 ; }
0292 ; }
0292 ; /******************************************************************************/
0292 ; void lcd_reverse816(uchar x,uchar y,const uchar *lcd_char)//显示8*16字符
0292 ; {
0292 .dbline 256
0292 4427 clr R20
0294 14C0 xjmp L88
0296 L85:
0296 .dbline 256
0296 ; uchar i,j;
0296 ; for(i=0;i<2;i++){
0296 .dbline 257
0296 EE24 clr R14
0298 0DC0 xjmp L92
029A L89:
029A .dbline 257
029A .dbline 258
029A 1501 movw R2,R10
029C C101 movw R24,R2
029E 0196 adiw R24,1
02A0 5C01 movw R10,R24
02A2 F101 movw R30,R2
02A4 E491 lpm R30,Z
02A6 E095 com R30
02A8 E883 std y+0,R30
02AA 2C2D mov R18,R12
02AC 2E0D add R18,R14
02AE 062F mov R16,R22
02B0 68DF xcall _lcd_print
02B2 .dbline 259
02B2 L90:
02B2 .dbline 257
02B2 E394 inc R14
02B4 L92:
02B4 .dbline 257
02B4 8E2D mov R24,R14
02B6 8830 cpi R24,8
02B8 80F3 brlo L89
02BA .dbline 260
02BA 6395 inc R22
02BC .dbline 261
02BC L86:
02BC .dbline 256
02BC 4395 inc R20
02BE L88:
02BE .dbline 256
02BE 4230 cpi R20,2
02C0 50F3 brlo L85
02C2 .dbline -2
02C2 L84:
02C2 2196 adiw R28,1
02C4 0E940000 xcall pop_gset5
02C8 .dbline 0 ; func end
02C8 0895 ret
02CA .dbsym r i 20 c
02CA .dbsym r j 14 c
02CA .dbsym r lcd_char 10 pkc
02CA .dbsym r y 12 c
02CA .dbsym r x 22 c
02CA .dbend
02CA .dbfunc e lcd_delay _lcd_delay fV
02CA ; i -> R16
.even
02CA _lcd_delay::
02CA .dbline -1
02CA .dbline 265
02CA ; for(j=0;j<8;j++){
02CA ; lcd_print(x,y+j,~*lcd_char++);
02CA ; }
02CA ; x++;
02CA ; }
02CA ; }
02CA ; /******************************************************************************/
02CA ; void lcd_delay(void)
02CA ; {
02CA .dbline 266
02CA ; uchar i = DELAY_COUNT;
02CA 02E3 ldi R16,50
02CC L94:
02CC .dbline 267
02CC L95:
02CC .dbline 267
02CC ; while(i--);
02CC 202E mov R2,R16
02CE 3324 clr R3
02D0 0150 subi R16,1
02D2 2220 tst R2
02D4 D9F7 brne L94
02D6 .dbline -2
02D6 L93:
02D6 .dbline 0 ; func end
02D6 0895 ret
02D8 .dbsym r i 16 c
02D8 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -