📄 lcd12232.lis
字号:
031C 71DE xcall _wcodel
031E .dbline 125
031E 0A2D mov R16,R10
0320 CBDE xcall _wdatal
0322 .dbline 126
0322 L31:
0322 .dbline 122
0322 6395 inc R22
0324 L33:
0324 .dbline 122
0324 6136 cpi R22,97
0326 C8F3 brlo L30
0328 .dbline 127
0328 L27:
0328 .dbline 117
0328 4395 inc R20
032A L29:
032A .dbline 117
032A 4430 cpi R20,4
032C 88F3 brlo L26
032E .dbline 128
032E ; {
032E ; wcodel(precol+col);
032E ; wdatal(symbol);
032E ; }
032E ; }
032E ; for (page=0x00;page<0x04;page++)
032E 4427 clr R20
0330 0DC0 xjmp L37
0332 L34:
0332 .dbline 129
0332 ; {
0332 .dbline 130
0332 ; wcoder(prepage+page);
0332 042F mov R16,R20
0334 0854 subi R16,72 ; addi 184
0336 25DF xcall _wcoder
0338 .dbline 132
0338 ;
0338 ; for (col=0x00;col<0x61;col++)
0338 6627 clr R22
033A 05C0 xjmp L41
033C L38:
033C .dbline 133
033C .dbline 134
033C 062F mov R16,R22
033E 21DF xcall _wcoder
0340 .dbline 135
0340 0A2D mov R16,R10
0342 7BDF xcall _wdatar
0344 .dbline 136
0344 L39:
0344 .dbline 132
0344 6395 inc R22
0346 L41:
0346 .dbline 132
0346 6136 cpi R22,97
0348 C8F3 brlo L38
034A .dbline 137
034A L35:
034A .dbline 128
034A 4395 inc R20
034C L37:
034C .dbline 128
034C 4430 cpi R20,4
034E 88F3 brlo L34
0350 .dbline -2
0350 .dbline 138
0350 ; {
0350 ; wcoder(precol+col);
0350 ; wdatar(symbol);
0350 ; }
0350 ; }
0350 ; }
0350 L25:
0350 0E940000 xcall pop_gset3
0354 .dbline 0 ; func end
0354 0895 ret
0356 .dbsym r page 20 c
0356 .dbsym r col 22 c
0356 .dbsym r symbol 10 c
0356 .dbend
0356 .dbfunc e addressl _addressl fV
0356 ; col -> R20
0356 ; page -> R22
.even
0356 _addressl::
0356 0E940000 xcall push_gset2
035A 422F mov R20,R18
035C 602F mov R22,R16
035E .dbline -1
035E .dbline 141
035E ; //
035E ; void addressl(uchar page,uchar col)
035E ; {
035E .dbline 142
035E ; wcodel(prepage+page);
035E 062F mov R16,R22
0360 0854 subi R16,72 ; addi 184
0362 4EDE xcall _wcodel
0364 .dbline 143
0364 ; wcodel(precol+col);
0364 042F mov R16,R20
0366 4CDE xcall _wcodel
0368 .dbline -2
0368 .dbline 144
0368 ; }
0368 L42:
0368 0E940000 xcall pop_gset2
036C .dbline 0 ; func end
036C 0895 ret
036E .dbsym r col 20 c
036E .dbsym r page 22 c
036E .dbend
036E .dbfunc e addressr _addressr fV
036E ; col -> R20
036E ; page -> R22
.even
036E _addressr::
036E 0E940000 xcall push_gset2
0372 422F mov R20,R18
0374 602F mov R22,R16
0376 .dbline -1
0376 .dbline 147
0376 ; //
0376 ; void addressr(uchar page,uchar col)
0376 ; {
0376 .dbline 148
0376 ; wcoder(prepage+page);
0376 062F mov R16,R22
0378 0854 subi R16,72 ; addi 184
037A 03DF xcall _wcoder
037C .dbline 149
037C ; wcoder(precol+col+3);
037C 042F mov R16,R20
037E 0D5F subi R16,253 ; addi 3
0380 00DF xcall _wcoder
0382 .dbline -2
0382 .dbline 150
0382 ; }
0382 L43:
0382 0E940000 xcall pop_gset2
0386 .dbline 0 ; func end
0386 0895 ret
0388 .dbsym r col 20 c
0388 .dbsym r page 22 c
0388 .dbend
0388 .dbfunc e lcdinit _lcdinit fV
.even
0388 _lcdinit::
0388 .dbline -1
0388 .dbline 153
0388 ; //
0388 ; void lcdinit(void)
0388 ; { PORTC=0XFF;
0388 .dbline 153
0388 8FEF ldi R24,255
038A 85BB out 0x15,R24
038C .dbline 154
038C ; DDRC=0X00;
038C 2224 clr R2
038E 24BA out 0x14,R2
0390 .dbline 155
0390 ; DDRD=0XFF;
0390 81BB out 0x11,R24
0392 .dbline 156
0392 ; DDRA|=BIT(PA7);
0392 07E0 ldi R16,7
0394 10E0 ldi R17,0
0396 0E940000 xcall _BIT
039A 2AB2 in R2,0x1a
039C 3324 clr R3
039E 202A or R2,R16
03A0 312A or R3,R17
03A2 2ABA out 0x1a,R2
03A4 .dbline 157
03A4 ; PORTA|=BIT(PA7);
03A4 07E0 ldi R16,7
03A6 10E0 ldi R17,0
03A8 0E940000 xcall _BIT
03AC 2BB2 in R2,0x1b
03AE 3324 clr R3
03B0 202A or R2,R16
03B2 312A or R3,R17
03B4 2BBA out 0x1b,R2
03B6 .dbline 158
03B6 ; wcodel(0xe2);wcoder(0xe2);//reset
03B6 02EE ldi R16,226
03B8 23DE xcall _wcodel
03BA .dbline 158
03BA 02EE ldi R16,226
03BC E2DE xcall _wcoder
03BE .dbline 159
03BE ; wcodel(0xae);wcoder(0xae);//display off
03BE 0EEA ldi R16,174
03C0 1FDE xcall _wcodel
03C2 .dbline 159
03C2 0EEA ldi R16,174
03C4 DEDE xcall _wcoder
03C6 .dbline 160
03C6 ; wcodel(0xA4);wcoder(0xA4);//display off
03C6 04EA ldi R16,164
03C8 1BDE xcall _wcodel
03CA .dbline 160
03CA 04EA ldi R16,164
03CC DADE xcall _wcoder
03CE .dbline 161
03CE ; wcodel(0xa9);wcoder(0xa9);//duty select :1/32
03CE 09EA ldi R16,169
03D0 17DE xcall _wcodel
03D2 .dbline 161
03D2 09EA ldi R16,169
03D4 D6DE xcall _wcoder
03D6 .dbline 162
03D6 ; wcodel(0xa0);wcoder(0xa0);//clock
03D6 00EA ldi R16,160
03D8 13DE xcall _wcodel
03DA .dbline 162
03DA 00EA ldi R16,160
03DC D2DE xcall _wcoder
03DE .dbline 163
03DE ; wcodel(0xEE);wcoder(0xEE);//display off
03DE 0EEE ldi R16,238
03E0 0FDE xcall _wcodel
03E2 .dbline 163
03E2 0EEE ldi R16,238
03E4 CEDE xcall _wcoder
03E6 .dbline 164
03E6 ; wcodel(0xc0);wcoder(0xc0);//start line: 1
03E6 00EC ldi R16,192
03E8 0BDE xcall _wcodel
03EA .dbline 164
03EA 00EC ldi R16,192
03EC CADE xcall _wcoder
03EE .dbline 165
03EE ; wcodel(0x00);wcoder(0x00); //column address set:0
03EE 0027 clr R16
03F0 07DE xcall _wcodel
03F2 .dbline 165
03F2 0027 clr R16
03F4 C6DE xcall _wcoder
03F6 .dbline 166
03F6 ; clear(0X00);
03F6 0027 clr R16
03F8 85DF xcall _clear
03FA .dbline 167
03FA ; wcodel(0xAF);wcoder(0xAF);//page address set:1
03FA 0FEA ldi R16,175
03FC 01DE xcall _wcodel
03FE .dbline 167
03FE 0FEA ldi R16,175
0400 .dbline -2
0400 .dbline 169
0400 ;
0400 ; }
0400 L44:
0400 .dbline 0 ; func end
0400 C0CE xjmp _wcoder
0402 .dbend
0402 .dbfunc e displaystring _displaystring fV
0402 ; w -> R14
0402 ; j -> R22
0402 ; z -> R10
0402 ; i -> R20
0402 ; onechar -> y+16
0402 ; y -> y+14
0402 ; x -> y+12
.even
0402 _displaystring::
0402 0E940000 xcall push_arg4
0406 0E940000 xcall push_gset5
040A 2297 sbiw R28,2
040C .dbline -1
040C .dbline 171
040C ; void displaystring(uchar x,uchar y,uchar *onechar)
040C ; {
040C .dbline 172
040C ; uchar i=0,z=0,j=0,w;
040C 4427 clr R20
040E .dbline 172
040E AA24 clr R10
0410 .dbline 172
0410 6627 clr R22
0412 .dbline 173
0412 ; w=y;
0412 EE84 ldd R14,y+14
0414 .dbline 174
0414 ; if (y>60)
0414 8CE3 ldi R24,60
0416 0E2C mov R0,R14
0418 8E15 cp R24,R14
041A 08F0 brlo X8
041C 53C0 xjmp L46
041E X8:
041E .dbline 175
041E ; {
041E .dbline 176
041E ; y=y-61;
041E 802D mov R24,R0
0420 8D53 subi R24,61
0422 8E87 std y+14,R24
0424 .dbline 177
0424 ; addressr(x,y);
0424 282F mov R18,R24
0426 0C85 ldd R16,y+12
0428 A2DF xcall _addressr
042A 45C0 xjmp L49
042C L48:
042C .dbline 179
042C ; while((*onechar)!='\n')
042C ; {
042C .dbline 180
042C ; for (i=0;i<16;i++)
042C 4427 clr R20
042E 3AC0 xjmp L54
0430 L51:
0430 .dbline 181
0430 .dbline 181
0430 20900000 lds R2,_b1
0434 2220 tst R2
0436 21F4 brne L55
0438 .dbline 181
0438 .dbline 181
0438 81E4 ldi R24,65
043A 80930100 sts _pianyi,R24
043E .dbline 181
043E 1EC0 xjmp L56
0440 L55:
0440 .dbline 181
0440 .dbline 181
0440 CA2C mov R12,R10
0442 DD24 clr R13
0444 C601 movw R24,R12
0446 8330 cpi R24,3
0448 E0E0 ldi R30,0
044A 9E07 cpc R25,R30
044C 49F0 breq L60
044E 8430 cpi R24,4
0450 E0E0 ldi R30,0
0452 9E07 cpc R25,R30
0454 51F0 breq L61
0456 8530 cpi R24,5
0458 E0E0 ldi R30,0
045A 9E07 cpc R25,R30
045C 59F0 breq L62
045E 0EC0 xjmp L57
0460 X0:
0460 .dbline 181
0460 L60:
0460 .dbline 181
0460 20900500 lds R2,_sz3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -