📄 lcd.lis
字号:
041E ; //uLen = strlen(ptr);
041E ; CMD = LCD_MODE_1;
041E 82E0 ldi R24,2
0420 80930280 sts 32770,R24
0424 .dbline 206
0424 ; DAT = front;
0424 60920380 sts 32771,R6
0428 .dbline 207
0428 ; CMD = LCD_MODE_2;
0428 84E0 ldi R24,4
042A 80930280 sts 32770,R24
042E .dbline 208
042E ; DAT = back;
042E 80920380 sts 32771,R8
0432 .dbline 209
0432 ; CMD = LCD_MODE_0+LCD_DOT8;
0432 81E0 ldi R24,1
0434 80930280 sts 32770,R24
0438 5DC0 xjmp L68
043A L67:
043A .dbline 211
043A ; while(i<uLen)
043A ; {
043A .dbline 212
043A ; dat = ptr[i] - 0x20;
043A E42F mov R30,R20
043C FF27 clr R31
043E 0E84 ldd R0,y+14
0440 1F84 ldd R1,y+15
0442 E00D add R30,R0
0444 F11D adc R31,R1
0446 8081 ldd R24,z+0
0448 9927 clr R25
044A 8097 sbiw R24,32
044C 7C01 movw R14,R24
044E .dbline 213
044E ; k = 0;
044E CC24 clr R12
0450 .dbline 214
0450 ; for(j=y;j<y+24;j++)
0450 AC84 ldd R10,y+12
0452 37C0 xjmp L73
0454 L70:
0454 .dbline 215
0454 .dbline 216
0454 A0920180 sts 32769,R10
0458 .dbline 217
0458 2A84 ldd R2,y+10
045A 3B84 ldd R3,y+11
045C 20920080 sts 32768,R2
0460 .dbline 218
0460 232C mov R2,R3
0462 3324 clr R3
0464 20920080 sts 32768,R2
0468 .dbline 219
0468 2C2C mov R2,R12
046A 3324 clr R3
046C 822D mov R24,R2
046E 8F5F subi R24,255 ; addi 1
0470 C82E mov R12,R24
0472 00E3 ldi R16,48
0474 10E0 ldi R17,0
0476 9701 movw R18,R14
0478 0E940000 xcall empy16s
047C 2801 movw R4,R16
047E 80E0 ldi R24,<_Cdot1624
0480 90E0 ldi R25,>_Cdot1624
0482 480E add R4,R24
0484 591E adc R5,R25
0486 E22D mov R30,R2
0488 FF27 clr R31
048A E40D add R30,R4
048C F51D adc R31,R5
048E E691 elpm R30,Z
0490 E0930380 sts 32771,R30
0494 .dbline 220
0494 2C2C mov R2,R12
0496 3324 clr R3
0498 822D mov R24,R2
049A 8F5F subi R24,255 ; addi 1
049C C82E mov R12,R24
049E 00E3 ldi R16,48
04A0 10E0 ldi R17,0
04A2 9701 movw R18,R14
04A4 0E940000 xcall empy16s
04A8 2801 movw R4,R16
04AA 80E0 ldi R24,<_Cdot1624
04AC 90E0 ldi R25,>_Cdot1624
04AE 480E add R4,R24
04B0 591E adc R5,R25
04B2 E22D mov R30,R2
04B4 FF27 clr R31
04B6 E40D add R30,R4
04B8 F51D adc R31,R5
04BA E691 elpm R30,Z
04BC E0930380 sts 32771,R30
04C0 .dbline 221
04C0 L71:
04C0 .dbline 214
04C0 A394 inc R10
04C2 L73:
04C2 .dbline 214
04C2 8C85 ldd R24,y+12
04C4 885E subi R24,232 ; addi 24
04C6 A816 cp R10,R24
04C8 08F4 brsh X6
04CA C4CF xjmp L70
04CC X6:
04CC .dbline 222
04CC ; {
04CC ; Y_ADDR = j;
04CC ; X_ADDR = x;
04CC ; X_ADDR = x/256;
04CC ; DAT = Cdot1624[dat][k++];
04CC ; DAT = Cdot1624[dat][k++];
04CC ; }
04CC ; x += 16;
04CC 8A85 ldd R24,y+10
04CE 9B85 ldd R25,y+11
04D0 4096 adiw R24,16
04D2 9B87 std y+11,R25
04D4 8A87 std y+10,R24
04D6 .dbline 223
04D6 ; if(x>319)
04D6 8FE3 ldi R24,319
04D8 91E0 ldi R25,1
04DA 0A84 ldd R0,y+10
04DC 1B84 ldd R1,y+11
04DE 8015 cp R24,R0
04E0 9105 cpc R25,R1
04E2 38F4 brsh L74
04E4 .dbline 224
04E4 ; {
04E4 .dbline 225
04E4 ; y += 24;
04E4 8C85 ldd R24,y+12
04E6 885E subi R24,232 ; addi 24
04E8 8C87 std y+12,R24
04EA .dbline 226
04EA ; x = 0;
04EA 0024 clr R0
04EC 1124 clr R1
04EE 1B86 std y+11,R1
04F0 0A86 std y+10,R0
04F2 .dbline 227
04F2 ; }
04F2 L74:
04F2 .dbline 228
04F2 4395 inc R20
04F4 .dbline 229
04F4 L68:
04F4 .dbline 210
04F4 4617 cp R20,R22
04F6 08F4 brsh X7
04F8 A0CF xjmp L67
04FA X7:
04FA .dbline 230
04FA ; i++;
04FA ; }
04FA ; CMD = LCD_MODE_0+LCD_DOT1;
04FA 2224 clr R2
04FC 20920280 sts 32770,R2
0500 .dbline -2
0500 L63:
0500 0E940000 xcall pop_gset5
0504 2496 adiw R28,4
0506 .dbline 0 ; func end
0506 0895 ret
0508 .dbsym r i 20 c
0508 .dbsym r uLen 22 c
0508 .dbsym r dat 14 i
0508 .dbsym r k 12 c
0508 .dbsym r j 10 c
0508 .dbsym r back 8 c
0508 .dbsym r front 6 c
0508 .dbsym l ptr 14 pc
0508 .dbsym l y 12 c
0508 .dbsym l x 10 i
0508 .dbend
0508 .dbfunc e Dis_Menu _Dis_Menu fV
0508 .dbstruct 0 17 Command
0508 .dbfield 0 x i
0508 .dbfield 2 y c
0508 .dbfield 3 width i
0508 .dbfield 5 width_e i
0508 .dbfield 7 lenth c
0508 .dbfield 8 lenth_e c
0508 .dbfield 9 color c
0508 .dbfield 10 str pc
0508 .dbfield 12 english pc
0508 .dbfield 14 string_color c
0508 .dbfield 15 font c
0508 .dbfield 16 cursor_color c
0508 .dbend
0508 ; i -> R20
0508 ; size -> R22
0508 ; cmd -> R10,R11
.even
0508 _Dis_Menu::
0508 0E940000 xcall push_gset3
050C 622F mov R22,R18
050E 5801 movw R10,R16
0510 6197 sbiw R28,17
0512 .dbline -1
0512 .dbline 234
0512 ; }
0512 ;
0512 ; void Dis_Menu(struct Command const *cmd,unsigned char size)
0512 ; { unsigned char i;
0512 .dbline 235
0512 ; for(i = 0;i<size;i++)
0512 4427 clr R20
0514 12C0 xjmp L80
0516 L77:
0516 .dbline 236
0516 .dbline 237
0516 81E1 ldi R24,17
0518 849F mul R24,R20
051A 1001 movw R2,R0
051C 2A0C add R2,R10
051E 3B1C adc R3,R11
0520 CE01 movw R24,R28
0522 01E1 ldi R16,17
0524 10E0 ldi R17,0
0526 9A93 st -y,R25
0528 8A93 st -y,R24
052A 3A92 st -y,R3
052C 2A92 st -y,R2
052E 0E940000 xcall asgncblk
0532 8E01 movw R16,R28
0534 0E940000 xcall _Dis_Command
0538 .dbline 238
0538 L78:
0538 .dbline 235
0538 4395 inc R20
053A L80:
053A .dbline 235
053A 4617 cp R20,R22
053C 60F3 brlo L77
053E .dbline -2
053E L76:
053E 6196 adiw R28,17
0540 0E940000 xcall pop_gset3
0544 .dbline 0 ; func end
0544 0895 ret
0546 .dbsym r i 20 c
0546 .dbsym r size 22 c
0546 .dbsym r cmd 10 pkS[Command]
0546 .dbend
.area lit(rom, con, rel)
0000 _ASC_MSK::
0000 0000 .byte 0,0
0002 0000 .byte 0,0
0004 0000 .byte 0,0
0006 0000 .byte 0,0
0008 0000 .byte 0,0
000A 0000 .byte 0,0
000C 0000 .byte 0,0
000E 0000 .byte 0,0
0010 0000 .byte 0,0
0012 0018 .byte 0,24
0014 3C3C .byte 60,60
0016 3C18 .byte 60,24
0018 1800 .byte 24,0
001A 1818 .byte 24,24
001C 0000 .byte 0,0
001E 0000 .byte 0,0
0020 0000 .byte 0,0
0022 0066 .byte 0,'f
0024 6666 .byte 'f,'f
0026 0000 .byte 0,0
0028 0000 .byte 0,0
002A 0000 .byte 0,0
002C 0000 .byte 0,0
002E 0000 .byte 0,0
0030 0000 .byte 0,0
0032 0036 .byte 0,54
0034 367F .byte 54,127
0036 3636 .byte 54,54
0038 367F .byte 54,127
003A 3636 .byte 54,54
003C 0000 .byte 0,0
003E 0000 .byte 0,0
0040 0018 .byte 0,24
0042 183C .byte 24,60
0044 6660 .byte 'f,96
0046 3018 .byte 48,24
0048 0C06 .byte 12,6
004A 663C .byte 'f,60
004C 1818 .byte 24,24
004E 0000 .byte 0,0
0050 0000 .byte 0,0
0052 70D8 .byte 'p,216
0054 DA76 .byte 218,'v
0056 0C18 .byte 12,24
0058 306E .byte 48,'n
005A 5B1B .byte 91,27
005C 0E00 .byte 14,0
005E 0000 .byte 0,0
0060 0000 .byte 0,0
0062 0038 .byte 0,56
0064 6C6C .byte 'l,'l
0066 3860 .byte 56,96
0068 6F66 .byte 'o,'f
006A 663B .byte 'f,59
006C 0000 .byte 0,0
006E 0000 .byte 0,0
0070 0000 .byte 0,0
0072 0018 .byte 0,24
0074 1818 .byte 24,24
0076 0000 .byte 0,0
0078 0000 .byte 0,0
007A 0000 .byte 0,0
007C 0000 .byte 0,0
007E 0000 .byte 0,0
0080 0000 .byte 0,0
0082 000C .byte 0,12
0084 1818 .byte 24,24
0086 3030 .byte 48,48
0088 3030 .byte 48,48
008A 3018 .byte 48,24
008C 180C .byte 24,12
008E 0000 .byte 0,0
0090 0000 .byte 0,0
0092 0030 .byte 0,48
0094 1818 .byte 24,24
0096 0C0C .byte 12,12
0098 0C0C .byte 12,12
009A 0C18 .byte 12,24
009C 1830 .byte 24,48
009E 0000 .byte 0,0
00A0 0000 .byte 0,0
00A2 0000 .byte 0,0
00A4 0036 .byte 0,54
00A6 1C7F .byte 28,127
00A8 1C36 .byte 28,54
00AA 0000 .byte 0,0
00AC 0000 .byte 0,0
00AE 0000 .byte 0,0
00B0 0000 .byte 0,0
00B2 0000 .byte 0,0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -