📄 main.s
字号:
ldi R24,240
out 0x18,R24
.dbline 19
ldi R16,1
ldi R17,0
xcall _delay_nms
.dbline 21
in R24,0x16
andi R24,240
or R20,R24
.dbline 23
clr R21
cpi R20,215
ldi R30,0
cpc R21,R30
brne X1
xjmp L69
X1:
cpi R20,219
ldi R30,0
cpc R21,R30
brne X2
xjmp L65
X2:
cpi R20,221
ldi R30,0
cpc R21,R30
brne X3
xjmp L61
X3:
cpi R20,222
ldi R30,0
cpc R21,R30
brne X4
xjmp L57
X4:
ldi R24,222
ldi R25,0
cp R24,R20
cpc R25,R21
brlt L73
L72:
cpi R20,119
ldi R30,0
cpc R21,R30
brne X5
xjmp L71
X5:
cpi R20,123
ldi R30,0
cpc R21,R30
brne X6
xjmp L67
X6:
cpi R20,125
ldi R30,0
cpc R21,R30
brne X7
xjmp L63
X7:
cpi R20,126
ldi R30,0
cpc R21,R30
brne X8
xjmp L59
X8:
cpi R20,119
ldi R30,0
cpc R21,R30
brge X9
xjmp L52
X9:
L74:
cpi R20,183
ldi R30,0
cpc R21,R30
brne X10
xjmp L70
X10:
cpi R20,187
ldi R30,0
cpc R21,R30
brne X11
xjmp L66
X11:
cpi R20,189
ldi R30,0
cpc R21,R30
breq L62
cpi R20,190
ldi R30,0
cpc R21,R30
breq L58
xjmp L52
L73:
cpi R20,231
ldi R30,0
cpc R21,R30
breq L68
cpi R20,235
ldi R30,0
cpc R21,R30
breq L64
cpi R20,237
ldi R30,0
cpc R21,R30
breq L60
cpi R20,238
ldi R30,0
cpc R21,R30
breq L56
cpi R20,231
ldi R30,0
cpc R21,R30
brlt L52
L75:
cpi R20,255
ldi R30,0
cpc R21,R30
breq L55
xjmp L52
X0:
.dbline 24
L55:
.dbline 25
clr R16
xjmp L51
L56:
.dbline 26
ldi R16,68
xjmp L51
L57:
.dbline 27
ldi R16,35
xjmp L51
L58:
.dbline 28
ldi R16,48
xjmp L51
L59:
.dbline 29
ldi R16,42
xjmp L51
L60:
.dbline 30
ldi R16,67
xjmp L51
L61:
.dbline 31
ldi R16,57
xjmp L51
L62:
.dbline 32
ldi R16,56
xjmp L51
L63:
.dbline 33
ldi R16,55
xjmp L51
L64:
.dbline 34
ldi R16,66
xjmp L51
L65:
.dbline 35
ldi R16,54
xjmp L51
L66:
.dbline 36
ldi R16,53
xjmp L51
L67:
.dbline 37
ldi R16,52
xjmp L51
L68:
.dbline 38
ldi R16,65
xjmp L51
L69:
.dbline 39
ldi R16,51
xjmp L51
L70:
.dbline 40
ldi R16,50
xjmp L51
L71:
.dbline 41
ldi R16,49
xjmp L51
L52:
.dbline 42
clr R16
.dbline -2
L51:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbend
.area bss(ram, con, rel)
.dbfile D:\mojinpan\485\485_master/key.h
L77:
.blkb 1
.area text(rom, con, rel)
.dbfile D:\mojinpan\485\485_master/key.h
.dbfunc e get_key _get_key fc
.dbsym s j L77 c
; i -> R20
.even
_get_key::
xcall push_gset1
.dbline -1
.dbline 47
.dbline 49
xcall _key_read
mov R20,R16
.dbline 50
tst R16
brne L78
.dbline 51
.dbline 52
clr R2
sts L77,R2
.dbline 53
clr R16
xjmp L76
L78:
.dbline 55
lds R2,L77
tst R2
brne L80
.dbline 56
.dbline 56
sts L77,R20
.dbline 57
ldi R16,10
ldi R17,0
xcall _delay_nms
.dbline 58
xcall _key_read
mov R20,R16
.dbline 59
lds R2,L77
cp R16,R2
brne L82
.dbline 59
.dbline 59
xjmp L76
L82:
.dbline 60
L80:
.dbline 61
clr R16
.dbline -2
L76:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbend
.area data(ram, con, rel)
.dbfile D:\mojinpan\485\485_master/key.h
_n::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\mojinpan\485\485_master/key.h
.dbfile D:\mojinpan\485\485_master\main.c
.dbsym e n _n c
_flag_me::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\mojinpan\485\485_master\main.c
.dbsym e flag_me _flag_me c
_flag_all::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\mojinpan\485\485_master\main.c
.dbsym e flag_all _flag_all c
.area vector(rom, abs)
.org 120
jmp _RXC_Int
.area data(ram, con, rel)
.dbfile D:\mojinpan\485\485_master\main.c
.area text(rom, con, rel)
.dbfile D:\mojinpan\485\485_master\main.c
.dbfunc e RXC_Int _RXC_Int fV
; ERROR -> R16
.even
_RXC_Int::
st -y,R2
st -y,R16
st -y,R24
st -y,R25
st -y,R30
st -y,R31
in R2,0x3f
st -y,R2
.dbline -1
.dbline 37
.dbline 38
clr R16
.dbline 40
lds R2,155
sbrc R2,3
rjmp L87
lds R2,155
sbrs R2,4
rjmp L85
L87:
.dbline 40
ldi R16,1
L85:
.dbline 41
ldi R24,<_inbox
ldi R25,>_inbox
lds R30,_n
clr R31
add R30,R24
adc R31,R25
lds R2,156
std z+0,R2
.dbline 42
lds R24,_n
subi R24,255 ; addi 1
sts _n,R24
.dbline 43
tst R16
breq L88
.dbline 43
clr R2
sts _inbox,R2
L88:
.dbline -2
L84:
ld R2,y+
out 0x3f,R2
ld R31,y+
ld R30,y+
ld R25,y+
ld R24,y+
ld R16,y+
ld R2,y+
.dbline 0 ; func end
reti
.dbsym r ERROR 16 c
.dbend
.dbfunc e int_485 _int_485 fV
.even
_int_485::
.dbline -1
.dbline 50
.dbline 54
lds R24,_n
cpi R24,10
brne L91
ldi R18,9
ldi R16,<_inbox
ldi R17,>_inbox
xcall _crc8
lds R2,_inbox+9
cp R2,R16
brne L91
.dbline 55
.dbline 56
lds R24,_inbox
cpi R24,1
brne L94
.dbline 56
ldi R24,1
sts _flag_me,R24
L94:
.dbline 58
lds R24,_inbox
cpi R24,255
brne L96
.dbline 58
ldi R24,1
sts _flag_all,R24
L96:
.dbline 61
L91:
.dbline -2
L90:
.dbline 0 ; func end
ret
.dbend
.dbfunc e out_485 _out_485 fV
; i -> R20
; ptr -> R22,R23
; address -> R20
.even
_out_485::
xcall push_gset2
movw R22,R18
mov R20,R16
.dbline -1
.dbline 68
.dbline 69
clr R2
sts _n,R2
.dbline 70
sts _inbox,R2
.dbline 75
sts _send,R20
.dbline 76
ldi R20,1
xjmp L102
L99:
.dbline 76
ldi R24,<_send
ldi R25,>_send
mov R30,R20
clr R31
add R30,R24
adc R31,R25
movw R26,R22
ld R2,X+
movw R22,R26
std z+0,R2
L100:
.dbline 76
inc R20
L102:
.dbline 76
cpi R20,9
brlo L99
.dbline 78
ldi R18,9
ldi R16,<_send
ldi R17,>_send
xcall _crc8
sts _send+9,R16
.dbline 80
ldi R18,10
ldi R16,<_send
ldi R17,>_send
xcall _usart_out
.dbline 85
ldi R16,15
ldi R17,0
xcall _delay_nms
.dbline -2
L98:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r ptr 22 pc
.dbsym r address 20 c
.dbend
.dbfunc e main _main fV
; key -> y+2
; address -> R10
; j -> R20
; i -> R12
.even
_main::
sbiw R28,10
.dbline -1
.dbline 91
.dbline 91
clr R20
.dbline 92
xcall _usart_init
.dbline 93
clr R2
sts 155,R2
.dbline 94
xcall _LCD_init
.dbline 95
sei
.dbline 96
ldi R24,<L105
ldi R25,>L105
std y+1,R25
std y+0,R24
clr R18
clr R16
xcall _LCD_write_string
.dbline 97
ldi R24,<L106
ldi R25,>L106
std y+1,R25
std y+0,R24
ldi R18,1
clr R16
xcall _LCD_write_string
xjmp L108
L107:
.dbline 99
.dbline 100
xcall _int_485
.dbline 104
lds R2,_flag_me
tst R2
breq L110
.dbline 105
.dbline 107
ldi R24,<_inbox
ldi R25,>_inbox
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,4
xcall _LCD_write_string
.dbline 108
ldi R24,<L112
ldi R25,>L112
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,12
xcall _LCD_write_string
.dbline 109
clr R2
sts _n,R2
.dbline 110
sts _inbox,R2
.dbline 111
sts _flag_me,R2
.dbline 113
L110:
.dbline 115
xcall _get_key
mov R12,R16
.dbline 116
mov R22,R12
clr R23
cpi R22,65
ldi R30,0
cpc R23,R30
breq L116
cpi R22,66
ldi R30,0
cpc R23,R30
breq L118
cpi R22,67
ldi R30,0
cpc R23,R30
breq L121
cpi R22,68
ldi R30,0
cpc R23,R30
breq L120
xjmp L113
X12:
.dbline 117
L116:
.dbline 118
.dbline 118
ldi R24,2
mov R10,R24
.dbline 118
ldi R24,<L117
ldi R25,>L117
std y+1,R25
std y+0,R24
clr R18
ldi R16,4
xcall _LCD_write_string
.dbline 118
.dbline 119
xjmp L114
L118:
.dbline 120
.dbline 120
ldi R24,3
mov R10,R24
.dbline 120
ldi R24,<L119
ldi R25,>L119
std y+1,R25
std y+0,R24
clr R18
ldi R16,4
xcall _LCD_write_string
.dbline 120
.dbline 121
xjmp L114
L120:
.dbline 123
.dbline 123
movw R18,R28
subi R18,254 ; offset = 2
sbci R19,255
mov R16,R10
xcall _out_485
.dbline 124
ldi R24,<_send
ldi R25,>_send
std y+1,R25
std y+0,R24
clr R18
ldi R16,4
xcall _LCD_write_string
.dbline 125
ldi R24,<L112
ldi R25,>L112
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,12
xcall _LCD_write_string
.dbline 126
.dbline 127
xjmp L114
L121:
.dbline 128
.dbline 128
clr R20
.dbline 128
ldi R24,<L122
ldi R25,>L122
std y+1,R25
std y+0,R24
clr R18
ldi R16,7
xcall _LCD_write_string
.dbline 128
.dbline 129
xjmp L114
L113:
.dbline 131
cpi R20,8
brsh L123
ldi R24,57
cp R24,R12
brlo L123
mov R24,R12
cpi R24,48
brlo L123
.dbline 131
.dbline 131
movw R24,R28
adiw R24,2
mov R30,R20
clr R31
add R30,R24
adc R31,R25
std z+0,R12
.dbline 131
std y+0,R12
clr R18
mov R16,R20
subi R16,249 ; addi 7
xcall _LCD_write_char
.dbline 131
inc R20
.dbline 131
L123:
.dbline 133
L114:
.dbline 139
L108:
.dbline 98
xjmp L107
X13:
.dbline -2
L104:
adiw R28,10
.dbline 0 ; func end
ret
.dbsym l key 2 A[8:8]c
.dbsym r address 10 c
.dbsym r j 20 c
.dbsym r i 12 c
.dbend
.area bss(ram, con, rel)
.dbfile D:\mojinpan\485\485_master\main.c
_inbox::
.blkb 10
.dbsym e inbox _inbox A[10:10]c
_send::
.blkb 10
.dbsym e send _send A[10:10]c
.area data(ram, con, rel)
.dbfile D:\mojinpan\485\485_master\main.c
L122:
.blkb 10
.area idata
.byte 32,32,32,32,32,32,32,32,32,0
.area data(ram, con, rel)
.dbfile D:\mojinpan\485\485_master\main.c
L119:
.blkb 4
.area idata
.byte 51,62,62,0
.area data(ram, con, rel)
.dbfile D:\mojinpan\485\485_master\main.c
L117:
.blkb 4
.area idata
.byte 50,62,62,0
.area data(ram, con, rel)
.dbfile D:\mojinpan\485\485_master\main.c
L112:
.blkb 6
.area idata
.byte 32,32,32,32,32,0
.area data(ram, con, rel)
.dbfile D:\mojinpan\485\485_master\main.c
L106:
.blkb 5
.area idata
.byte 'i,'n,'t,58,0
.area data(ram, con, rel)
.dbfile D:\mojinpan\485\485_master\main.c
L105:
.blkb 5
.area idata
.byte 'o,'u,'t,58,0
.area data(ram, con, rel)
.dbfile D:\mojinpan\485\485_master\main.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -