📄 ad2543.lst
字号:
FILE: <library>
__start:
__text_start:
005C EFCF LDI R28,0xFF
005D E1D0 LDI R29,0x10
005E BFCD OUT 0x3D,R28
005F BFDE OUT 0x3E,R29
0060 51C0 SUBI R28,0x10
0061 40D0 SBCI R29,0
0062 EA0A LDI R16,0xAA
0063 8308 STD Y+0,R16
0064 2400 CLR R0
0065 E1E5 LDI R30,0x15
0066 E0F1 LDI R31,1
0067 E011 LDI R17,1
0068 32E3 CPI R30,0x23
0069 07F1 CPC R31,R17
006A F011 BEQ 0x006D
006B 9201 ST R0,Z+
006C CFFB RJMP 0x0068
006D 8300 STD Z+0,R16
006E EAE2 LDI R30,0xA2
006F E0F0 LDI R31,0
0070 E0A0 LDI R26,0
0071 E0B1 LDI R27,1
0072 E010 LDI R17,0
0073 3BE7 CPI R30,0xB7
0074 07F1 CPC R31,R17
0075 F021 BEQ 0x007A
0076 95C8 LPM
0077 9631 ADIW R30,1
0078 920D ST R0,X+
0079 CFF9 RJMP 0x0073
007A 940E0361 CALL _main
_exit:
007C CFFF RJMP _exit
_delay_1us:
007D 0000 NOP
007E 9508 RET
_delay_nus:
i --> R20
n --> R22
007F 940E0467 CALL push_gset2
0081 01B8 MOVW R22,R16
0082 2744 CLR R20
0083 2755 CLR R21
0084 C003 RJMP 0x0088
0085 DFF7 RCALL _delay_1us
0086 5F4F SUBI R20,0xFF
0087 4F5F SBCI R21,0xFF
0088 1746 CP R20,R22
0089 0757 CPC R21,R23
008A F3D0 BCS 0x0085
008B 940E0458 CALL pop_gset2
008D 9508 RET
_delay_1ms:
i --> R16
008E 2700 CLR R16
008F 2711 CLR R17
0090 C002 RJMP 0x0093
0091 5F0F SUBI R16,0xFF
0092 4F1F SBCI R17,0xFF
0093 3706 CPI R16,0x76
0094 E0E4 LDI R30,4
0095 071E CPC R17,R30
0096 F3D0 BCS 0x0091
0097 9508 RET
_delay_nms:
i --> R20
n --> R22
0098 940E0467 CALL push_gset2
009A 01B8 MOVW R22,R16
009B 2744 CLR R20
009C 2755 CLR R21
009D C003 RJMP 0x00A1
009E DFEF RCALL _delay_1ms
009F 5F4F SUBI R20,0xFF
00A0 4F5F SBCI R21,0xFF
00A1 1746 CP R20,R22
00A2 0757 CPC R21,R23
00A3 F3D0 BCS 0x009E
00A4 940E0458 CALL pop_gset2
00A6 9508 RET
_init_ad2543:
00A7 E000 LDI R16,0
00A8 EA17 LDI R17,0xA7
00A9 D001 RCALL _write_ad2543
00AA 9508 RET
_write_ad2543:
cmd --> R20
i --> R22
token --> R10
command --> R22
00AB 940E0465 CALL push_gset3
00AD 01B8 MOVW R22,R16
00AE E080 LDI R24,0
00AF E890 LDI R25,0x80
00B0 015C MOVW R10,R24
00B1 01AB MOVW R20,R22
00B2 9AD8 SBI 0x1B,0
00B3 98D8 CBI 0x1B,0
00B4 98DA CBI 0x1B,2
00B5 E002 LDI R16,2
00B6 E010 LDI R17,0
00B7 DFC7 RCALL _delay_nus
00B8 2766 CLR R22
00B9 C010 RJMP 0x00CA
00BA 011A MOVW R2,R20
00BB 202A AND R2,R10
00BC 203B AND R3,R11
00BD 2022 TST R2
00BE F411 BNE 0x00C1
00BF 2033 TST R3
00C0 F011 BEQ 0x00C3
00C1 9AD9 SBI 0x1B,1
00C2 C001 RJMP 0x00C4
00C3 98D9 CBI 0x1B,1
00C4 9ADA SBI 0x1B,2
00C5 DFB7 RCALL _delay_1us
00C6 98DA CBI 0x1B,2
00C7 94B6 LSR R11
00C8 94A7 ROR R10
00C9 9563 INC R22
00CA 3160 CPI R22,0x10
00CB F370 BCS 0x00BA
00CC E002 LDI R16,2
00CD E010 LDI R17,0
00CE DFB0 RCALL _delay_nus
00CF 940E045B CALL pop_gset3
00D1 9508 RET
_read_ad2543:
i --> R20
ad16bit --> R22
00D2 940E0467 CALL push_gset2
00D4 2766 CLR R22
00D5 2777 CLR R23
00D6 99CC SBIC 0x19,4
00D7 CFFE RJMP 0x00D6
00D8 2744 CLR R20
00D9 C009 RJMP 0x00E3
00DA 9BCB SBIS 0x19,3
00DB C001 RJMP 0x00DD
00DC 6061 ORI R22,1
00DD 9ADA SBI 0x1B,2
00DE DF9E RCALL _delay_1us
00DF 98DA CBI 0x1B,2
00E0 0F66 LSL R22
00E1 1F77 ROL R23
00E2 9543 INC R20
00E3 3140 CPI R20,0x10
00E4 F3A8 BCS 0x00DA
00E5 018B MOVW R16,R22
00E6 940E0458 CALL pop_gset2
00E8 9508 RET
_key_scay:
key --> R20
00E9 940E0469 CALL push_gset1
00EB EF80 LDI R24,0xF0
00EC BB87 OUT 0x17,R24
00ED E08F LDI R24,0xF
00EE BB88 OUT 0x18,R24
00EF 9BCB SBIS 0x19,3
00F0 C002 RJMP 0x00F3
00F1 2744 CLR R20
00F2 C00B RJMP 0x00FE
00F3 9BCA SBIS 0x19,2
00F4 C002 RJMP 0x00F7
00F5 E044 LDI R20,4
00F6 C007 RJMP 0x00FE
00F7 9BC9 SBIS 0x19,1
00F8 C002 RJMP 0x00FB
00F9 E048 LDI R20,0x8
00FA C003 RJMP 0x00FE
00FB 9BC8 SBIS 0x19,0
00FC C001 RJMP 0x00FE
00FD E04C LDI R20,0xC
00FE E08F LDI R24,0xF
00FF BB87 OUT 0x17,R24
0100 EF80 LDI R24,0xF0
0101 BB88 OUT 0x18,R24
0102 E104 LDI R16,0x14
0103 E010 LDI R17,0
0104 DF93 RCALL _delay_nms
0105 9BCF SBIS 0x19,7
0106 C001 RJMP 0x0108
0107 C00B RJMP 0x0113
0108 9BCE SBIS 0x19,6
0109 C002 RJMP 0x010C
010A 9543 INC R20
010B C007 RJMP 0x0113
010C 9BCD SBIS 0x19,5
010D C002 RJMP 0x0110
010E 5F4E SUBI R20,0xFE
010F C003 RJMP 0x0113
0110 9BCC SBIS 0x19,4
0111 C001 RJMP 0x0113
0112 5F4D SUBI R20,0xFD
0113 EF80 LDI R24,0xF0
0114 BB87 OUT 0x17,R24
0115 E08F LDI R24,0xF
0116 BB88 OUT 0x18,R24
0117 2F04 MOV R16,R20
0118 940E046C CALL pop_gset1
011A 9508 RET
_LCD_init:
011B B38A IN R24,0x1A
011C 6F80 ORI R24,0xF0
011D BB8A OUT 0x1A,R24
011E 9AD3 SBI 0x1A,3
011F 9AD1 SBI 0x1A,1
0120 E228 LDI R18,0x28
0121 E001 LDI R16,1
0122 D017 RCALL _LCD_Write_char
0123 D010 RCALL _LCD_en_write
0124 E208 LDI R16,0x28
0125 E010 LDI R17,0
0126 DF58 RCALL _delay_nus
0127 E228 LDI R18,0x28
0128 E001 LDI R16,1
0129 D010 RCALL _LCD_Write_char
012A E02C LDI R18,0xC
012B E001 LDI R16,1
012C D00D RCALL _LCD_Write_char
012D E021 LDI R18,1
012E E001 LDI R16,1
012F D00A RCALL _LCD_Write_char
0130 E002 LDI R16,2
0131 E010 LDI R17,0
0132 DF65 RCALL _delay_nms
0133 9508 RET
_LCD_en_write:
0134 9ADB SBI 0x1B,3
0135 E001 LDI R16,1
0136 E010 LDI R17,0
0137 DF47 RCALL _delay_nus
0138 98DB CBI 0x1B,3
0139 9508 RET
_LCD_Write_char:
data --> R20
command --> R22
013A 940E0467 CALL push_gset2
013C 2F42 MOV R20,R18
013D 2F60 MOV R22,R16
013E E100 LDI R16,0x10
013F E010 LDI R17,0
0140 DF3E RCALL _delay_nus
0141 3061 CPI R22,1
0142 F411 BNE 0x0145
0143 98D9 CBI 0x1B,1
0144 C003 RJMP 0x0148
0145 B38B IN R24,0x1B
0146 7082 ANDI R24,2
0147 BB8B OUT 0x1B,R24
0148 B38B IN R24,0x1B
0149 708F ANDI R24,0xF
014A BB8B OUT 0x1B,R24
014B 2F84 MOV R24,R20
014C 7F80 ANDI R24,0xF0
014D B22B IN R2,0x1B
014E 2A28 OR R2,R24
014F BA2B OUT 0x1B,R2
0150 DFE3 RCALL _LCD_en_write
0151 2F84 MOV R24,R20
0152 708F ANDI R24,0xF
0153 9582 SWAP R24
0154 2F48 MOV R20,R24
0155 B38B IN R24,0x1B
0156 708F ANDI R24,0xF
0157 BB8B OUT 0x1B,R24
0158 2F84 MOV R24,R20
0159 7F80 ANDI R24,0xF0
015A B22B IN R2,0x1B
015B 2A28 OR R2,R24
015C BA2B OUT 0x1B,R2
015D DFD6 RCALL _LCD_en_write
015E 940E0458 CALL pop_gset2
0160 9508 RET
_LCD_Clear:
0161 E021 LDI R18,1
0162 E001 LDI R16,1
0163 DFD6 RCALL _LCD_Write_char
0164 9508 RET
_LCD_set_xy:
address --> R20
y --> R20
x --> R22
0165 940E0467 CALL push_gset2
0167 2F42 MOV R20,R18
0168 2F60 MOV R22,R16
0169 2344 TST R20
016A F419 BNE 0x016E
016B 2F46 MOV R20,R22
016C 5840 SUBI R20,0x80
016D C002 RJMP 0x0170
016E 2F46 MOV R20,R22
016F 5740 SUBI R20,0x70
0170 2F24 MOV R18,R20
0171 E001 LDI R16,1
0172 DFC7 RCALL _LCD_Write_char
0173 940E0458 CALL pop_gset2
0175 9508 RET
_LCD_DisplayCharacter:
Char --> R20
0176 940E0469 CALL push_gset1
0178 2F40 MOV R20,R16
0179 2F24 MOV R18,R20
017A 2700 CLR R16
017B DFBE RCALL _LCD_Write_char
017C 940E046C CALL pop_gset1
017E 9508 RET
_LCD_DisplayString:
string --> R20
y --> R10
x --> R22
017F 940E0465 CALL push_gset3
0181 2EA2 MOV R10,R18
0182 2F60 MOV R22,R16
0183 814E LDD R20,Y+6
0184 815F LDD R21,Y+7
0185 2D2A MOV R18,R10
0186 2F06 MOV R16,R22
0187 DFDD RCALL _LCD_set_xy
0188 C004 RJMP 0x018D
0189 01FA MOVW R30,R20
018A 9101 LD R16,Z+
018B 01AF MOVW R20,R30
018C DFE9 RCALL _LCD_DisplayCharacter
018D 01FA MOVW R30,R20
018E 8020 LDD R2,Z+0
018F 2022 TST R2
0190 F7C1 BNE 0x0189
0191 940E045B CALL pop_gset3
0193 9508 RET
_LCD_DisplayInt:
n --> R22
j --> R22
str --> R10
a --> Y+2
i --> R20
t --> R20
y --> R14
x --> R12
0194 940E0461 CALL push_gset5
0196 2EE2 MOV R14,R18
0197 2EC0 MOV R12,R16
0198 9727 SBIW R28,7
0199 8949 LDD R20,Y+17
019A 895A LDD R21,Y+18
019B E18D LDI R24,0x1D
019C E091 LDI R25,1
019D 015C MOVW R10,R24
019E E120 LDI R18,0x10
019F E237 LDI R19,0x27
01A0 018A MOVW R16,R20
01A1 940E03CD CALL div16u
01A3 E02A LDI R18,0xA
01A4 E030 LDI R19,0
01A5 940E03CB CALL mod16u
01A7 830A STD Y+2,R16
01A8 EE28 LDI R18,0xE8
01A9 E033 LDI R19,3
01AA 018A MOVW R16,R20
01AB 940E03CD CALL div16u
01AD E02A LDI R18,0xA
01AE E030 LDI R19,0
01AF 940E03CB CALL mod16u
01B1 830B STD Y+3,R16
01B2 E624 LDI R18,0x64
01B3 E030 LDI R19,0
01B4 018A MOVW R16,R20
01B5 940E03CD CALL div16u
01B7 E02A LDI R18,0xA
01B8 E030 LDI R19,0
01B9 940E03CB CALL mod16u
01BB 830C STD Y+4,R16
01BC E02A LDI R18,0xA
01BD E030 LDI R19,0
01BE 018A MOVW R16,R20
01BF 940E03CD CALL div16u
01C1 E02A LDI R18,0xA
01C2 E030 LDI R19,0
01C3 940E03CB CALL mod16u
01C5 830D STD Y+5,R16
01C6 E02A LDI R18,0xA
01C7 E030 LDI R19,0
01C8 018A MOVW R16,R20
01C9 940E03CB CALL mod16u
01CB 830E STD Y+6,R16
01CC 2744 CLR R20
01CD C00B RJMP 0x01D9
01CE 01CE MOVW R24,R28
01CF 9602 ADIW R24,2
01D0 2E24 MOV R2,R20
01D1 2433 CLR R3
01D2 0E28 ADD R2,R24
01D3 1E39 ADC R3,R25
01D4 01F1 MOVW R30,R2
01D5 8180 LDD R24,Z+0
01D6 5D80 SUBI R24,0xD0
01D7 8380 STD Z+0,R24
01D8 9543 INC R20
01D9 3045 CPI R20,5
01DA F398 BCS 0x01CE
01DB 2744 CLR R20
01DC C001 RJMP 0x01DE
01DD 9543 INC R20
01DE 01CE MOVW R24,R28
01DF 9602 ADIW R24,2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -