📄 lcd12232.lis
字号:
0164 ; E1_L
0164 04E0 ldi R16,4
0166 10E0 ldi R17,0
0168 0E940000 xcall _BIT
016C 1801 movw R2,R16
016E 2094 com R2
0170 3094 com R3
0172 42B2 in R4,0x12
0174 5524 clr R5
0176 4220 and R4,R2
0178 5320 and R5,R3
017A 42BA out 0x12,R4
017C .dbline -2
017C .dbline 69
017C ;
017C ; }
017C L7:
017C 0E940000 xcall pop_gset2
0180 .dbline 0 ; func end
0180 0895 ret
0182 .dbsym r status 22 c
0182 .dbsym r d 20 c
0182 .dbend
0182 .dbfunc e wcoder _wcoder fV
0182 ; status -> R22
0182 ; c -> R20
.even
0182 _wcoder::
0182 0E940000 xcall push_gset2
0186 402F mov R20,R16
0188 .dbline -1
0188 .dbline 71
0188 ; void wcoder (uchar c)
0188 ; { uchar status;
0188 30C0 xjmp L15
018A L14:
018A .dbline 73
018A ;
018A ; while(1){
018A .dbline 74
018A ; LCD_PCT=0X00;
018A 2224 clr R2
018C 24BA out 0x14,R2
018E .dbline 75
018E ; E2_H
018E 05E0 ldi R16,5
0190 10E0 ldi R17,0
0192 0E940000 xcall _BIT
0196 22B2 in R2,0x12
0198 3324 clr R3
019A 202A or R2,R16
019C 312A or R3,R17
019E 22BA out 0x12,R2
01A0 .dbline 76
01A0 ; A0_L
01A0 07E0 ldi R16,7
01A2 10E0 ldi R17,0
01A4 0E940000 xcall _BIT
01A8 1801 movw R2,R16
01AA 2094 com R2
01AC 3094 com R3
01AE 42B2 in R4,0x12
01B0 5524 clr R5
01B2 4220 and R4,R2
01B4 5320 and R5,R3
01B6 42BA out 0x12,R4
01B8 .dbline 77
01B8 ; LCD_READ
01B8 06E0 ldi R16,6
01BA 10E0 ldi R17,0
01BC 0E940000 xcall _BIT
01C0 22B2 in R2,0x12
01C2 3324 clr R3
01C4 202A or R2,R16
01C6 312A or R3,R17
01C8 22BA out 0x12,R2
01CA .dbline 78
01CA ; E2_L
01CA 05E0 ldi R16,5
01CC 10E0 ldi R17,0
01CE 0E940000 xcall _BIT
01D2 1801 movw R2,R16
01D4 2094 com R2
01D6 3094 com R3
01D8 42B2 in R4,0x12
01DA 5524 clr R5
01DC 4220 and R4,R2
01DE 5320 and R5,R3
01E0 42BA out 0x12,R4
01E2 .dbline 79
01E2 ; status=LCD_IN;
01E2 63B3 in R22,0x13
01E4 .dbline 80
01E4 ; status=status&0x80;
01E4 6078 andi R22,128
01E6 .dbline 81
01E6 ; if (status==0)
01E6 09F4 brne L17
01E8 .dbline 82
01E8 ; { break;}
01E8 .dbline 82
01E8 01C0 xjmp L16
01EA L17:
01EA .dbline 83
01EA L15:
01EA .dbline 73
01EA CFCF xjmp L14
01EC L16:
01EC .dbline 84
01EC ; }
01EC ; LCD_PCT=0XFF;
01EC 8FEF ldi R24,255
01EE 84BB out 0x14,R24
01F0 .dbline 85
01F0 ; E2_H
01F0 05E0 ldi R16,5
01F2 10E0 ldi R17,0
01F4 0E940000 xcall _BIT
01F8 22B2 in R2,0x12
01FA 3324 clr R3
01FC 202A or R2,R16
01FE 312A or R3,R17
0200 22BA out 0x12,R2
0202 .dbline 86
0202 ; LCD_WRITE
0202 06E0 ldi R16,6
0204 10E0 ldi R17,0
0206 0E940000 xcall _BIT
020A 1801 movw R2,R16
020C 2094 com R2
020E 3094 com R3
0210 42B2 in R4,0x12
0212 5524 clr R5
0214 4220 and R4,R2
0216 5320 and R5,R3
0218 42BA out 0x12,R4
021A .dbline 87
021A ; LCD_DATA=c;
021A 45BB out 0x15,R20
021C .dbline 88
021C ; E2_L
021C 05E0 ldi R16,5
021E 10E0 ldi R17,0
0220 0E940000 xcall _BIT
0224 1801 movw R2,R16
0226 2094 com R2
0228 3094 com R3
022A 42B2 in R4,0x12
022C 5524 clr R5
022E 4220 and R4,R2
0230 5320 and R5,R3
0232 42BA out 0x12,R4
0234 .dbline -2
0234 .dbline 90
0234 ;
0234 ; }
0234 L13:
0234 0E940000 xcall pop_gset2
0238 .dbline 0 ; func end
0238 0895 ret
023A .dbsym r status 22 c
023A .dbsym r c 20 c
023A .dbend
023A .dbfunc e wdatar _wdatar fV
023A ; status -> R22
023A ; d -> R20
.even
023A _wdatar::
023A 0E940000 xcall push_gset2
023E 402F mov R20,R16
0240 .dbline -1
0240 .dbline 92
0240 ; void wdatar (uchar d)
0240 ; { uchar status;
0240 30C0 xjmp L21
0242 L20:
0242 .dbline 94
0242 ;
0242 ; while(1){ LCD_PCT=0X00;
0242 .dbline 94
0242 2224 clr R2
0244 24BA out 0x14,R2
0246 .dbline 95
0246 ; E2_H
0246 05E0 ldi R16,5
0248 10E0 ldi R17,0
024A 0E940000 xcall _BIT
024E 22B2 in R2,0x12
0250 3324 clr R3
0252 202A or R2,R16
0254 312A or R3,R17
0256 22BA out 0x12,R2
0258 .dbline 96
0258 ; A0_L
0258 07E0 ldi R16,7
025A 10E0 ldi R17,0
025C 0E940000 xcall _BIT
0260 1801 movw R2,R16
0262 2094 com R2
0264 3094 com R3
0266 42B2 in R4,0x12
0268 5524 clr R5
026A 4220 and R4,R2
026C 5320 and R5,R3
026E 42BA out 0x12,R4
0270 .dbline 97
0270 ; LCD_READ
0270 06E0 ldi R16,6
0272 10E0 ldi R17,0
0274 0E940000 xcall _BIT
0278 22B2 in R2,0x12
027A 3324 clr R3
027C 202A or R2,R16
027E 312A or R3,R17
0280 22BA out 0x12,R2
0282 .dbline 98
0282 ; E2_L
0282 05E0 ldi R16,5
0284 10E0 ldi R17,0
0286 0E940000 xcall _BIT
028A 1801 movw R2,R16
028C 2094 com R2
028E 3094 com R3
0290 42B2 in R4,0x12
0292 5524 clr R5
0294 4220 and R4,R2
0296 5320 and R5,R3
0298 42BA out 0x12,R4
029A .dbline 99
029A ; status=LCD_IN;
029A 63B3 in R22,0x13
029C .dbline 100
029C ; status=status&0x80;
029C 6078 andi R22,128
029E .dbline 101
029E ; if (status==0) break;
029E 09F4 brne L23
02A0 .dbline 101
02A0 01C0 xjmp L22
02A2 L23:
02A2 .dbline 102
02A2 L21:
02A2 .dbline 94
02A2 CFCF xjmp L20
02A4 L22:
02A4 .dbline 103
02A4 ; }
02A4 ; LCD_PCT=0XFF;
02A4 8FEF ldi R24,255
02A6 84BB out 0x14,R24
02A8 .dbline 104
02A8 ; E2_H
02A8 05E0 ldi R16,5
02AA 10E0 ldi R17,0
02AC 0E940000 xcall _BIT
02B0 22B2 in R2,0x12
02B2 3324 clr R3
02B4 202A or R2,R16
02B6 312A or R3,R17
02B8 22BA out 0x12,R2
02BA .dbline 105
02BA ; A0_H
02BA 07E0 ldi R16,7
02BC 10E0 ldi R17,0
02BE 0E940000 xcall _BIT
02C2 22B2 in R2,0x12
02C4 3324 clr R3
02C6 202A or R2,R16
02C8 312A or R3,R17
02CA 22BA out 0x12,R2
02CC .dbline 106
02CC ; LCD_WRITE
02CC 06E0 ldi R16,6
02CE 10E0 ldi R17,0
02D0 0E940000 xcall _BIT
02D4 1801 movw R2,R16
02D6 2094 com R2
02D8 3094 com R3
02DA 42B2 in R4,0x12
02DC 5524 clr R5
02DE 4220 and R4,R2
02E0 5320 and R5,R3
02E2 42BA out 0x12,R4
02E4 .dbline 107
02E4 ; LCD_DATA=d;
02E4 45BB out 0x15,R20
02E6 .dbline 108
02E6 ; E2_L
02E6 05E0 ldi R16,5
02E8 10E0 ldi R17,0
02EA 0E940000 xcall _BIT
02EE 1801 movw R2,R16
02F0 2094 com R2
02F2 3094 com R3
02F4 42B2 in R4,0x12
02F6 5524 clr R5
02F8 4220 and R4,R2
02FA 5320 and R5,R3
02FC 42BA out 0x12,R4
02FE .dbline -2
02FE .dbline 110
02FE ;
02FE ; }
02FE L19:
02FE 0E940000 xcall pop_gset2
0302 .dbline 0 ; func end
0302 0895 ret
0304 .dbsym r status 22 c
0304 .dbsym r d 20 c
0304 .dbend
0304 .dbfunc e clear _clear fV
0304 ; page -> R20
0304 ; col -> R22
0304 ; symbol -> R10
.even
0304 _clear::
0304 0E940000 xcall push_gset3
0308 A02E mov R10,R16
030A .dbline -1
030A .dbline 114
030A ;
030A ;
030A ; void clear(uchar symbol)
030A ; {
030A .dbline 115
030A ; uchar page=0x00;
030A 4427 clr R20
030C .dbline 116
030C ; uchar col=0x00;
030C 6627 clr R22
030E .dbline 117
030E ; for (page=0x00;page<0x04;page++)
030E 0DC0 xjmp L29
0310 L26:
0310 .dbline 118
0310 ; {
0310 .dbline 120
0310 ;
0310 ; wcodel(prepage+page);
0310 042F mov R16,R20
0312 0854 subi R16,72 ; addi 184
0314 75DE xcall _wcodel
0316 .dbline 122
0316 ;
0316 ; for (col=0x00;col<0x61;col++)
0316 6627 clr R22
0318 05C0 xjmp L33
031A L30:
031A .dbline 123
031A .dbline 124
031A 062F mov R16,R22
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -