display_board2.lst
来自「一个LED特效显示程序」· LST 代码 · 共 952 行 · 第 1/2 页
LST
952 行
FILE: <library>
__text_start:
__start:
004D E5CF LDI R28,0x5F
004E E0D4 LDI R29,4
004F BFCD OUT 0x3D,R28
0050 BFDE OUT 0x3E,R29
0051 51CE SUBI R28,0x1E
0052 40D0 SBCI R29,0
0053 EA0A LDI R16,0xAA
0054 8308 STD Y+0,R16
0055 2400 CLR R0
0056 E9E3 LDI R30,0x93
0057 E0F0 LDI R31,0
0058 E010 LDI R17,0
0059 39EE CPI R30,0x9E
005A 07F1 CPC R31,R17
005B F011 BEQ 0x005E
005C 9201 ST R0,Z+
005D CFFB RJMP 0x0059
005E 8300 STD Z+0,R16
005F E6E7 LDI R30,0x67
0060 E0F0 LDI R31,0
0061 E6A0 LDI R26,0x60
0062 E0B0 LDI R27,0
0063 E010 LDI R17,0
0064 39EA CPI R30,0x9A
0065 07F1 CPC R31,R17
0066 F021 BEQ 0x006B
0067 95C8 LPM
0068 9631 ADIW R30,1
0069 920D ST R0,X+
006A CFF9 RJMP 0x0064
006B D278 RCALL _main
_exit:
006C CFFF RJMP _exit
_delay:
n --> R16
006D 9310007C STS delay_time_count+1,R17
006F 9300007B STS delay_time_count,R16
0071 940E045D CALL 0x45D
0073 F7E9 BNE 0x0071
0074 2033 TST R3
0075 F7D9 BNE 0x0071
0076 9508 RET
_disp_bit:
bitChoose --> R22
disCodeIndex --> R20
0077 D340 RCALL push_gset2
0078 2F62 MOV R22,R18
0079 2F40 MOV R20,R16
007A B388 IN R24,0x18
007B 7F8D ANDI R24,0xFD
007C BB88 OUT 0x18,R24
007D 2F06 MOV R16,R22
007E D008 RCALL _send_data_disp
007F E584 LDI R24,0x54
0080 940E0457 CALL 0x457
0082 9104 LPM R16,0(Z)
0083 D003 RCALL _send_data_disp
0084 9AC1 SBI 0x18,1
0085 D32A RCALL pop_gset2
0086 9508 RET
_send_data_disp:
count --> R20
send_data --> R22
0087 D330 RCALL push_gset2
0088 2F60 MOV R22,R16
0089 2744 CLR R20
008A C010 RJMP 0x009B
008B 2F06 MOV R16,R22
008C 2F14 MOV R17,R20
008D D378 RCALL lsl8
008E 2F80 MOV R24,R16
008F 7880 ANDI R24,0x80
0090 F421 BNE 0x0095
0091 B388 IN R24,0x18
0092 7F87 ANDI R24,0xF7
0093 BB88 OUT 0x18,R24
0094 C001 RJMP 0x0096
0095 9AC3 SBI 0x18,3
0096 9AC2 SBI 0x18,2
0097 B388 IN R24,0x18
0098 7F8B ANDI R24,0xFB
0099 BB88 OUT 0x18,R24
009A 9543 INC R20
009B 3048 CPI R20,0x8
009C F370 BCS 0x008B
009D D312 RCALL pop_gset2
009E 9508 RET
_Disp_key_group:
009F 91800068 LDS R24,disp_key_count
00A1 5F8F SUBI R24,0xFF
00A2 93800068 STS disp_key_count,R24
00A4 E087 LDI R24,7
00A5 90200068 LDS R2,disp_key_count
00A7 1582 CP R24,R2
00A8 F418 BCC 0x00AC
00A9 2422 CLR R2
00AA 92200068 STS disp_key_count,R2
00AC 91100068 LDS R17,disp_key_count
00AE E001 LDI R16,1
00AF D356 RCALL lsl8
00B0 2F20 MOV R18,R16
00B1 E680 LDI R24,0x60
00B2 940E041F CALL 0x41F
00B4 8100 LDD R16,Z+0
00B5 DFC1 RCALL _disp_bit
00B6 99B0 SBIC 0x16,0
00B7 C006 RJMP 0x00BE
00B8 E780 LDI R24,0x70
00B9 940E041F CALL 0x41F
00BB E081 LDI R24,1
00BC 8380 STD Z+0,R24
00BD C005 RJMP 0x00C3
00BE E780 LDI R24,0x70
00BF 940E041F CALL 0x41F
00C1 2422 CLR R2
00C2 8220 STD Z+0,R2
00C3 9508 RET
_dec_hex_disp:
temp --> R20
i --> R22
00C4 D2F3 RCALL push_gset2
00C5 91400069 LDS R20,disp_code
00C7 9150006A LDS R21,disp_code+1
00C9 2766 CLR R22
00CA C010 RJMP 0x00DB
00CB E084 LDI R24,4
00CC 9F86 MUL R24,R22
00CD 0190 MOVW R18,R0
00CE 018A MOVW R16,R20
00CF D2D9 RCALL asr16
00D0 01C8 MOVW R24,R16
00D1 708F ANDI R24,0xF
00D2 7090 ANDI R25,0
00D3 E6E0 LDI R30,0x60
00D4 E0F0 LDI R31,0
00D5 2FA6 MOV R26,R22
00D6 27BB CLR R27
00D7 0FAE ADD R26,R30
00D8 1FBF ADC R27,R31
00D9 938C ST R24,0(X)
00DA 9563 INC R22
00DB 3067 CPI R22,7
00DC F370 BCS 0x00CB
00DD D2D2 RCALL pop_gset2
00DE 9508 RET
_Key_num:
j --> R16
i --> R18
00DF 2700 CLR R16
00E0 2422 CLR R2
00E1 9030007A LDS R3,key_delay
00E3 1423 CP R2,R3
00E4 F410 BCC 0x00E7
00E5 940E0477 CALL 0x477
00E7 2722 CLR R18
00E8 C00D RJMP 0x00F6
00E9 E780 LDI R24,0x70
00EA E090 LDI R25,0
00EB 2FE2 MOV R30,R18
00EC 27FF CLR R31
00ED 0FE8 ADD R30,R24
00EE 1FF9 ADC R31,R25
00EF 8180 LDD R24,Z+0
00F0 3081 CPI R24,1
00F1 F419 BNE 0x00F5
00F2 9320006F STS new_key_num,R18
00F4 E001 LDI R16,1
00F5 9523 INC R18
00F6 E087 LDI R24,7
00F7 1782 CP R24,R18
00F8 F780 BCC 0x00E9
00F9 2300 TST R16
00FA F419 BNE 0x00FE
00FB E08F LDI R24,0xF
00FC 9380006F STS new_key_num,R24
00FE 9180006E LDS R24,old_key_num
0100 308F CPI R24,0xF
0101 F461 BNE 0x010E
0102 9180006F LDS R24,new_key_num
0104 308F CPI R24,0xF
0105 F041 BEQ 0x010E
0106 9020007A LDS R2,key_delay
0108 2022 TST R2
0109 F421 BNE 0x010E
010A 2E28 MOV R2,R24
010B 9220006D STS key_num,R2
010D C029 RJMP 0x0137
010E 9180006E LDS R24,old_key_num
0110 308F CPI R24,0xF
0111 F089 BEQ 0x0123
0112 9030006F LDS R3,new_key_num
0114 1638 CP R3,R24
0115 F469 BNE 0x0123
0116 E08F LDI R24,0xF
0117 9380006D STS key_num,R24
0119 91800078 LDS R24,key_down_time
011B 91900079 LDS R25,key_down_time+1
011D 9601 ADIW R24,1
011E 93900079 STS key_down_time+1,R25
0120 93800078 STS key_down_time,R24
0122 C014 RJMP 0x0137
0123 9180006E LDS R24,old_key_num
0125 308F CPI R24,0xF
0126 F081 BEQ 0x0137
0127 9180006F LDS R24,new_key_num
0129 308F CPI R24,0xF
012A F461 BNE 0x0137
012B E08F LDI R24,0xF
012C 9380006D STS key_num,R24
012E 2422 CLR R2
012F 2433 CLR R3
0130 92300079 STS key_down_time+1,R3
0132 92200078 STS key_down_time,R2
0134 E684 LDI R24,0x64
0135 9380007A STS key_delay,R24
0137 9020006F LDS R2,new_key_num
0139 9220006E STS old_key_num,R2
013B 9508 RET
_port_int:
013C EF8F LDI R24,0xFF
013D BB8A OUT 0x1A,R24
013E BB8B OUT 0x1B,R24
013F E08E LDI R24,0xE
0140 BB87 OUT 0x17,R24
0141 EF8F LDI R24,0xFF
0142 BB88 OUT 0x18,R24
0143 BB84 OUT 0x14,R24
0144 BB85 OUT 0x15,R24
0145 EF88 LDI R24,0xF8
0146 BB81 OUT 0x11,R24
0147 EF8F LDI R24,0xFF
0148 BB82 OUT 0x12,R24
0149 9508 RET
_timer_int:
014A 2422 CLR R2
014B BC2E OUT 0x2E,R2
014C 940E046D CALL 0x46D
014E BC2F OUT 0x2F,R2
014F E081 LDI R24,1
0150 BD8E OUT 0x2E,R24
0151 E084 LDI R24,4
0152 BF89 OUT 0x39,R24
0153 9508 RET
_exit_int:
0154 E480 LDI R24,0x40
0155 BF8B OUT 0x3B,R24
0156 E082 LDI R24,2
0157 BF85 OUT 0x35,R24
0158 9508 RET
_uart_int:
0159 2422 CLR R2
015A B82A OUT 0x0A,R2
015B B82B OUT 0x0B,R2
015C BC20 OUT 0x20,R2
015D E085 LDI R24,5
015E B989 OUT 0x09,R24
015F E988 LDI R24,0x98
0160 B98A OUT 0x0A,R24
0161 EB8C LDI R24,0xBC
0162 BD80 OUT 0x20,R24
0163 9508 RET
_device_int:
0164 94F8 BCLR 7
0165 DFD6 RCALL _port_int
0166 DFE3 RCALL _timer_int
0167 DFEC RCALL _exit_int
0168 DFF0 RCALL _uart_int
0169 9478 BSET 7
016A 9508 RET
_uart_TX:
data --> R16
016B 9A5E SBI 0x0B,6
016C B90C OUT 0x0C,R16
016D 9508 RET
_SPI_data_send:
count --> R20
send_data --> R22
016E D249 RCALL push_gset2
016F 2F60 MOV R22,R16
0170 2744 CLR R20
0171 C010 RJMP 0x0182
0172 2F06 MOV R16,R22
0173 2F14 MOV R17,R20
0174 D291 RCALL lsl8
0175 2F80 MOV R24,R16
0176 7880 ANDI R24,0x80
0177 F421 BNE 0x017C
0178 B385 IN R24,0x15
0179 778F ANDI R24,0x7F
017A BB85 OUT 0x15,R24
017B C001 RJMP 0x017D
017C 9AAF SBI 0x15,7
017D 9A93 SBI 0x12,3
017E B382 IN R24,0x12
017F 7F87 ANDI R24,0xF7
0180 BB82 OUT 0x12,R24
0181 9543 INC R20
0182 3048 CPI R20,0x8
0183 F370 BCS 0x0172
0184 D22B RCALL pop_gset2
0185 9508 RET
_Screen_send:
i --> R20
0186 D233 RCALL push_gset1
0187 B382 IN R24,0x12
0188 7E8F ANDI R24,0xEF
0189 BB82 OUT 0x12,R24
018A 2744 CLR R20
018B C006 RJMP 0x0192
018C E986 LDI R24,0x96
018D 940E0457 CALL 0x457
018F 8100 LDD R16,Z+0
0190 DFDD RCALL _SPI_data_send
0191 9543 INC R20
0192 3048 CPI R20,0x8
0193 F3C0 BCS 0x018C
0194 9A94 SBI 0x12,4
0195 D227 RCALL pop_gset1
0196 9508 RET
_RAM_Write:
data --> R18
adress --> R16
0197 940E040C CALL <created procedures>
0199 BB2B OUT 0x1B,R18
019A B382 IN R24,0x12
019B 7B8F ANDI R24,0xBF
019C BB82 OUT 0x12,R24
019D 9508 RET
_RAM_Read:
temp --> R20
adress --> R16
019E D21B RCALL push_gset1
019F 940E040C CALL <created procedures>
01A1 B382 IN R24,0x12
01A2 7D8F ANDI R24,0xDF
01A3 BB82 OUT 0x12,R24
01A4 2422 CLR R2
01A5 BA2A OUT 0x1A,R2
01A6 EF8F LDI R24,0xFF
01A7 BB8B OUT 0x1B,R24
01A8 B349 IN R20,0x19
01A9 2F04 MOV R16,R20
01AA D212 RCALL pop_gset1
01AB 9508 RET
_data_store:
data --> R20
01AC D20D RCALL push_gset1
01AD 2F40 MOV R20,R16
01AE 344C CPI R20,0x4C
01AF F479 BNE 0x01BF
01B0 91800085 LDS R24,FileEnd
01B2 3081 CPI R24,1
01B3 F459 BNE 0x01BF
01B4 E081 LDI R24,1
01B5 93800087 STS HeadEN,R24
01B7 2422 CLR R2
01B8 92200086 STS HeadLoad,R2
01BA 2433 CLR R3
01BB 92300089 STS DataIndex+1,R3
01BD 92200088 STS DataIndex,R2
01BF 90200087 LDS R2,HeadEN
01C1 2022 TST R2
01C2 F591 BNE 0x01F5
01C3 90200085 LDS R2,FileEnd
01C5 2022 TST R2
01C6 F571 BNE 0x01F5
01C7 2F24 MOV R18,R20
01C8 91000088 LDS R16,DataIndex
01CA 91100089 LDS R17,DataIndex+1
01CC DFCA RCALL _RAM_Write
01CD 940E0443 CALL 0x443
01CF 9601 ADIW R24,1
01D0 93900089 STS DataIndex+1,R25
01D2 93800088 STS DataIndex,R24
01D4 3082 CPI R24,2
01D5 E0E0 LDI R30,0
01D6 079E CPC R25,R30
01D7 F464 BGE 0x01E4
01D8 019C MOVW R18,R24
01D9 2F04 MOV R16,R20
01DA 2711 CLR R17
01DB D223 RCALL lsl16
01DC 940E0468 CALL 0x468
01DE 2A20 OR R2,R16
01DF 2A31 OR R3,R17
01E0 9230008B STS FileLength+1,R3
01E2 9220008A STS FileLength,R2
01E4 940E0468 CALL 0x468
01E6 90400088 LDS R4,DataIndex
01E8 90500089 LDS R5,DataIndex+1
01EA 1442 CP R4,R2
01EB 0453 CPC R5,R3
01EC F044 BLT 0x01F5
01ED E180 LDI R24,0x10
01EE E090 LDI R25,0
01EF 1584 CP R24,R4
01F0 0595 CPC R25,R5
01F1 F41C BGE 0x01F5
01F2 E081 LDI R24,1
01F3 940E0463 CALL 0x463
01F5 91800087 LDS R24,HeadEN
01F7 3081 CPI R24,1
01F8 F501 BNE 0x0219
01F9 E983 LDI R24,0x93
01FA E090 LDI R25,0
01FB 91E00086 LDS R30,HeadLoad
01FD 27FF CLR R31
01FE 0FE8 ADD R30,R24
01FF 1FF9 ADC R31,R25
0200 8340 STD Z+0,R20
0201 91800086 LDS R24,HeadLoad
0203 5F8F SUBI R24,0xFF
0204 93800086 STS HeadLoad,R24
0206 3083 CPI R24,3
0207 F489 BNE 0x0219
0208 91800093 LDS R24,Head
020A 348C CPI R24,0x4C
020B F469 BNE 0x0219
020C 91800094 LDS R24,Head+1
020E 3485 CPI R24,0x45
020F F449 BNE 0x0219
0210 91800095 LDS R24,Head+2
0212 3484 CPI R24,0x44
0213 F429 BNE 0x0219
0214 2422 CLR R2
0215 92200087 STS HeadEN,R2
0217 92200085 STS FileEnd,R2
0219 D1A3 RCALL pop_gset1
021A 9508 RET
_Disp_Model:
PFileMax --> R20
file_length --> R22
021B D19C RCALL push_gset2
021C 2766 CLR R22
021D 2777 CLR R23
021E 9020008D LDS R2,ModelDelayTime
0220 9030008E LDS R3,ModelDelayTime+1
0222 2022 TST R2
0223 F009 BEQ 0x0225
0224 C071 RJMP 0x0296
0225 2033 TST R3
0226 F009 BEQ 0x0228
0227 C06E RJMP 0x0296
0228 9160008C LDS R22,DispModel
022A 2777 CLR R23
022B 3060 CPI R22,0
022C 0767 CPC R22,R23
022D F0B9 BEQ 0x0245
022E 3061 CPI R22,1
022F E0E0 LDI R30,0
0230 077E CPC R23,R30
0231 F0E9 BEQ 0x024F
0232 3062 CPI R22,2
0233 E0E0 LDI R30,0
0234 077E CPC R23,R30
0235 F0E1 BEQ 0x0252
0236 3063 CPI R22,3
0237 E0E0 LDI R30,0
0238 077E CPC R23,R30
0239 F409 BNE 0x023B
023A C047 RJMP 0x0282
023B 3064 CPI R22,4
023C E0E0 LDI R30,0
023D 077E CPC R23,R30
023E F0E9 BEQ 0x025C
023F 3065 CPI R22,5
0240 E0E0 LDI R30,0
0241 077E CPC R23,R30
0242 F409 BNE 0x0244
0243 C03E RJMP 0x0282
0244 C03D RJMP 0x0282
0245 E084 LDI R24,4
0246 E090 LDI R25,0
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?