📄 main.s
字号:
in R20,0x16
andi R20,15
.dbline 17
ldi R24,15
out 0x17,R24
.dbline 18
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,55
xjmp L51
L57:
.dbline 27
ldi R16,52
xjmp L51
L58:
.dbline 28
ldi R16,49
xjmp L51
L59:
.dbline 29
ldi R16,67
xjmp L51
L60:
.dbline 30
ldi R16,56
xjmp L51
L61:
.dbline 31
ldi R16,53
xjmp L51
L62:
.dbline 32
ldi R16,50
xjmp L51
L63:
.dbline 33
ldi R16,48
xjmp L51
L64:
.dbline 34
ldi R16,57
xjmp L51
L65:
.dbline 35
ldi R16,54
xjmp L51
L66:
.dbline 36
ldi R16,51
xjmp L51
L67:
.dbline 37
ldi R16,61
xjmp L51
L68:
.dbline 38
ldi R16,45
xjmp L51
L69:
.dbline 39
ldi R16,42
xjmp L51
L70:
.dbline 40
ldi R16,45
xjmp L51
L71:
.dbline 41
ldi R16,43
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:\avr\+++精华+++\485\485_master/key.h
L77:
.blkb 1
.area text(rom, con, rel)
.dbfile D:\avr\+++精华+++\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:\avr\+++精华+++\485\485_master/key.h
_n::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\avr\+++精华+++\485\485_master/key.h
.dbfile D:\avr\+++精华+++\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:\avr\+++精华+++\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:\avr\+++精华+++\485\485_master\main.c
.dbsym e flag_all _flag_all c
.area vector(rom, abs)
.org 44
jmp _RXC_Int
.area data(ram, con, rel)
.dbfile D:\avr\+++精华+++\485\485_master\main.c
.area text(rom, con, rel)
.dbfile D:\avr\+++精华+++\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 39
sbic 0xb,3
rjmp L87
sbis 0xb,4
rjmp L85
L87:
.dbline 39
ldi R16,1
L85:
.dbline 40
ldi R24,<_inbox
ldi R25,>_inbox
lds R30,_n
clr R31
add R30,R24
adc R31,R25
in R2,0xc
std z+0,R2
.dbline 41
lds R24,_n
subi R24,255 ; addi 1
sts _n,R24
.dbline 42
tst R16
breq L88
.dbline 42
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 46
.dbline 50
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 51
.dbline 52
lds R24,_inbox
cpi R24,1
brne L94
.dbline 52
ldi R24,1
sts _flag_me,R24
L94:
.dbline 54
lds R24,_inbox
cpi R24,255
brne L96
.dbline 54
ldi R24,1
sts _flag_me,R24
L96:
.dbline 56
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 63
.dbline 64
clr R2
sts _n,R2
.dbline 65
sts _inbox,R2
.dbline 70
sts _send,R20
.dbline 71
ldi R20,1
xjmp L102
L99:
.dbline 71
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 71
inc R20
L102:
.dbline 71
cpi R20,9
brlo L99
.dbline 73
ldi R18,9
ldi R16,<_send
ldi R17,>_send
xcall _crc8
sts _send+9,R16
.dbline 75
ldi R18,10
ldi R16,<_send
ldi R17,>_send
xcall _usart_out
.dbline 80
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
; j -> R22
; address -> R10
; i -> R12
.even
_main::
sbiw R28,10
.dbline -1
.dbline 86
.dbline 87
xcall _usart_init
.dbline 88
clr R2
out 0xb,R2
.dbline 89
xcall _LCD_init
.dbline 90
sei
.dbline 91
ldi R24,<L105
ldi R25,>L105
std y+1,R25
std y+0,R24
clr R18
clr R16
xcall _LCD_write_string
.dbline 92
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 96
.dbline 99
lds R2,_flag_me
tst R2
breq L110
.dbline 100
.dbline 101
ldi R24,<_inbox
ldi R25,>_inbox
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,7
xcall _LCD_write_string
.dbline 102
clr R2
sts _flag_me,R2
.dbline 103
L110:
.dbline 104
xcall _get_key
mov R12,R16
.dbline 105
mov R20,R12
clr R21
cpi R20,61
ldi R30,0
cpc R21,R30
breq L119
ldi R24,61
ldi R25,0
cp R24,R20
cpc R25,R21
brlt L125
L124:
cpi R20,43
ldi R30,0
cpc R21,R30
breq L115
cpi R20,45
ldi R30,0
cpc R21,R30
breq L117
xjmp L112
L125:
cpi R20,67
ldi R30,0
cpc R21,R30
breq L120
xjmp L112
X12:
.dbline 106
L115:
.dbline 107
.dbline 107
ldi R24,2
mov R10,R24
.dbline 107
ldi R24,<L116
ldi R25,>L116
std y+1,R25
std y+0,R24
clr R18
ldi R16,4
xcall _LCD_write_string
.dbline 107
.dbline 108
xjmp L113
L117:
.dbline 109
.dbline 109
ldi R24,3
mov R10,R24
.dbline 109
ldi R24,<L118
ldi R25,>L118
std y+1,R25
std y+0,R24
clr R18
ldi R16,4
xcall _LCD_write_string
.dbline 109
.dbline 110
xjmp L113
L119:
.dbline 111
movw R18,R28
subi R18,254 ; offset = 2
sbci R19,255
mov R16,R10
xcall _out_485
.dbline 112
xjmp L113
L120:
.dbline 113
.dbline 113
clr R22
.dbline 113
ldi R24,<L121
ldi R25,>L121
std y+1,R25
std y+0,R24
clr R18
ldi R16,7
xcall _LCD_write_string
.dbline 113
.dbline 114
xjmp L113
L112:
.dbline 116
cpi R22,8
brsh L122
ldi R24,57
cp R24,R12
brlo L122
mov R24,R12
cpi R24,48
brlo L122
.dbline 116
.dbline 116
mov R2,R22
clr R3
subi R22,255 ; addi 1
movw R24,R28
adiw R24,2
mov R30,R2
clr R31
add R30,R24
adc R31,R25
std z+0,R12
.dbline 116
std y+0,R12
clr R18
mov R16,R22
subi R16,250 ; addi 6
xcall _LCD_write_char
.dbline 116
L122:
.dbline 118
L113:
.dbline 120
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 121
ldi R24,<L126
ldi R25,>L126
std y+1,R25
std y+0,R24
ldi R18,1
ldi R16,12
xcall _LCD_write_string
.dbline 126
L108:
.dbline 95
xjmp L107
X13:
.dbline -2
L104:
adiw R28,10
.dbline 0 ; func end
ret
.dbsym l key 2 A[8:8]c
.dbsym r j 22 c
.dbsym r address 10 c
.dbsym r i 12 c
.dbend
.area bss(ram, con, rel)
.dbfile D:\avr\+++精华+++\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:\avr\+++精华+++\485\485_master\main.c
L126:
.blkb 6
.area idata
.byte 32,32,32,32,32,0
.area data(ram, con, rel)
.dbfile D:\avr\+++精华+++\485\485_master\main.c
L121:
.blkb 10
.area idata
.byte 32,32,32,32,32,32,32,32,32,0
.area data(ram, con, rel)
.dbfile D:\avr\+++精华+++\485\485_master\main.c
L118:
.blkb 4
.area idata
.byte 51,62,62,0
.area data(ram, con, rel)
.dbfile D:\avr\+++精华+++\485\485_master\main.c
L116:
.blkb 4
.area idata
.byte 50,62,62,0
.area data(ram, con, rel)
.dbfile D:\avr\+++精华+++\485\485_master\main.c
L106:
.blkb 5
.area idata
.byte 'i,'n,'t,58,0
.area data(ram, con, rel)
.dbfile D:\avr\+++精华+++\485\485_master\main.c
L105:
.blkb 5
.area idata
.byte 'o,'u,'t,58,0
.area data(ram, con, rel)
.dbfile D:\avr\+++精华+++\485\485_master\main.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -