📄 spi.s
字号:
xjmp L40
L39:
.dbline 185
.dbline 186
ldi R20,10
ldi R21,0
ldi R22,0
ldi R23,0
movw R30,R28
ldd R2,z+8
ldd R3,z+9
ldd R4,z+10
ldd R5,z+11
st -y,R23
st -y,R22
st -y,R21
st -y,R20
movw R16,R2
movw R18,R4
xcall mod32u
movw R2,R16
movw R4,R18
ldi R20,48
ldi R21,0
ldi R22,0
ldi R23,0
add R2,R20
adc R3,R21
adc R4,R22
adc R5,R23
mov R10,R2
.dbline 187
ldi R20,10
ldi R21,0
ldi R22,0
ldi R23,0
movw R30,R28
ldd R2,z+8
ldd R3,z+9
ldd R4,z+10
ldd R5,z+11
st -y,R23
st -y,R22
st -y,R21
st -y,R20
movw R16,R2
movw R18,R4
xcall div32u
movw R30,R28
std z+8,R16
std z+9,R17
std z+10,R18
std z+11,R19
.dbline 188
mov R18,R10
clr R19
clr R16
clr R17
xcall _LCD_write_char
.dbline 189
L40:
.dbline 184
; }
ldi R20,0
ldi R21,0
ldi R22,0
ldi R23,0
movw R30,R28
ldd R2,z+8
ldd R3,z+9
ldd R4,z+10
ldd R5,z+11
cp R2,R20
cpc R3,R21
cpc R4,R22
cpc R5,R23
breq X3
xjmp L39
X3:
.dbline -2
L38:
xcall pop_gset4
.dbline 0 ; func end
ret
.dbsym r i 10 c
.dbsym l z 8 l
.dbsym r Y 12 c
.dbsym r X 10 c
.dbend
.dbfile E:\写的程序\AVR(C)/延时子程序.c
.dbfunc e delayms _delayms fV
; i -> R20,R21
; j -> R22,R23
; k -> R16,R17
.even
_delayms::
xcall push_gset2
.dbline -1
.dbline 10
.dbline 12
clr R20
clr R21
xjmp L46
L43:
.dbline 13
clr R22
clr R23
xjmp L50
L47:
.dbline 13
L48:
.dbline 13
subi R22,255 ; offset = 1
sbci R23,255
L50:
.dbline 13
cpi R22,161
ldi R30,5
cpc R23,R30
brlo L47
L44:
.dbline 12
subi R20,255 ; offset = 1
sbci R21,255
L46:
.dbline 12
cp R20,R16
cpc R21,R17
brlo L43
.dbline -2
L42:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbsym r j 22 i
.dbsym r k 16 i
.dbend
.dbfunc e delayus _delayus fV
; i -> R20,R21
; j -> R22,R23
; k -> R16,R17
.even
_delayus::
xcall push_gset2
.dbline -1
.dbline 19
.dbline 21
clr R20
clr R21
xjmp L55
L52:
.dbline 22
clr R22
clr R23
xjmp L59
L56:
.dbline 22
L57:
.dbline 22
subi R22,255 ; offset = 1
sbci R23,255
L59:
.dbline 22
cpi R22,8
ldi R30,0
cpc R23,R30
brlo L56
L53:
.dbline 21
subi R20,255 ; offset = 1
sbci R21,255
L55:
.dbline 21
cp R20,R16
cpc R21,R17
brlo L52
.dbline -2
L51:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbsym r j 22 i
.dbsym r k 16 i
.dbend
.dbfunc e delays _delays fV
; i -> R20,R21
; k -> R22,R23
.even
_delays::
xcall push_gset2
movw R22,R16
.dbline -1
.dbline 28
.dbline 30
clr R20
clr R21
xjmp L64
L61:
.dbline 31
ldi R16,1000
ldi R17,3
xcall _delayms
L62:
.dbline 30
subi R20,255 ; offset = 1
sbci R21,255
L64:
.dbline 30
cp R20,R22
cpc R21,R23
brlo L61
.dbline -2
L60:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbsym r k 22 i
.dbend
.dbfile E:\写的程序\AVR(C)/4X4键盘.c
.dbfunc e key_scan _key_scan fc
; j -> R10
; key -> R20
; i -> R12
.even
_key_scan::
xcall push_gset4
.dbline -1
.dbline 13
.dbline 14
ldi R24,127
mov R12,R24
.dbline 14
clr R10
.dbline 15
ldi R16,1
ldi R17,0
xcall _delayms
L66:
.dbline 17
.dbline 18
mov R2,R12
lsr R2
lsr R2
lsr R2
lsr R2
lsr R2
lsr R2
lsr R2
mov R3,R12
lsl R3
or R3,R2
mov R12,R3
.dbline 19
out 0x12,R3
.dbline 20
ldi R24,15
out 0x11,R24
.dbline 21
in R20,0x10
.dbline 22
mov R24,R20
andi R24,240
mov R10,R24
.dbline 23
L67:
.dbline 23
mov R24,R10
cpi R24,240
breq L66
.dbline 24
mov R22,R20
clr R23
cpi R22,183
ldi R30,0
cpc R23,R30
brne X5
xjmp L79
X5:
cpi R22,187
ldi R30,0
cpc R23,R30
brne X6
xjmp L78
X6:
cpi R22,189
ldi R30,0
cpc R23,R30
brne X7
xjmp L77
X7:
cpi R22,190
ldi R30,0
cpc R23,R30
brne X8
xjmp L76
X8:
ldi R24,190
ldi R25,0
cp R24,R22
cpc R25,R23
brlt L89
L88:
cpi R22,119
ldi R30,0
cpc R23,R30
brne X9
xjmp L75
X9:
cpi R22,123
ldi R30,0
cpc R23,R30
breq L74
cpi R22,125
ldi R30,0
cpc R23,R30
breq L73
cpi R22,126
ldi R30,0
cpc R23,R30
breq L72
xjmp L69
L89:
cpi R22,215
ldi R30,0
cpc R23,R30
brne X10
xjmp L83
X10:
cpi R22,219
ldi R30,0
cpc R23,R30
brne X11
xjmp L82
X11:
cpi R22,221
ldi R30,0
cpc R23,R30
breq L81
cpi R22,222
ldi R30,0
cpc R23,R30
breq L80
cpi R22,215
ldi R30,0
cpc R23,R30
brge X12
xjmp L69
X12:
L90:
cpi R22,231
ldi R30,0
cpc R23,R30
breq L87
cpi R22,235
ldi R30,0
cpc R23,R30
breq L86
cpi R22,237
ldi R30,0
cpc R23,R30
breq L85
cpi R22,238
ldi R30,0
cpc R23,R30
breq L84
xjmp L69
X4:
.dbline 25
L72:
.dbline 25
clr R20
.dbline 25
xjmp L70
L73:
.dbline 26
ldi R20,10
.dbline 26
xjmp L70
L74:
.dbline 27
ldi R20,11
.dbline 27
xjmp L70
L75:
.dbline 28
ldi R20,15
.dbline 28
xjmp L70
L76:
.dbline 29
ldi R20,1
.dbline 29
xjmp L70
L77:
.dbline 30
ldi R20,2
.dbline 30
xjmp L70
L78:
.dbline 31
ldi R20,3
.dbline 31
xjmp L70
L79:
.dbline 32
ldi R20,14
.dbline 32
xjmp L70
L80:
.dbline 33
ldi R20,4
.dbline 33
xjmp L70
L81:
.dbline 34
ldi R20,5
.dbline 34
xjmp L70
L82:
.dbline 35
ldi R20,6
.dbline 35
xjmp L70
L83:
.dbline 36
ldi R20,13
.dbline 36
xjmp L70
L84:
.dbline 37
ldi R20,7
.dbline 37
xjmp L70
L85:
.dbline 38
ldi R20,8
.dbline 38
xjmp L70
L86:
.dbline 39
ldi R20,9
.dbline 39
xjmp L70
L87:
.dbline 40
ldi R20,12
.dbline 40
xjmp L70
L69:
.dbline 41
ldi R20,16
.dbline 42
L70:
.dbline 43
mov R16,R20
.dbline -2
L65:
xcall pop_gset4
.dbline 0 ; func end
ret
.dbsym r j 10 c
.dbsym r key 20 c
.dbsym r i 12 c
.dbend
.dbfunc e key_press _key_press fc
; j -> R20
; i -> R20
.even
_key_press::
xcall push_gset1
.dbline -1
.dbline 46
.dbline 47
ldi R24,255
out 0x11,R24
.dbline 48
ldi R24,240
out 0x12,R24
.dbline 49
ldi R24,15
out 0x11,R24
.dbline 50
ldi R16,1
ldi R17,0
xcall _delayms
.dbline 51
in R20,0x10
.dbline 52
cpi R20,240
brne L92
.dbline 52
clr R20
xjmp L93
L92:
.dbline 53
ldi R20,1
L93:
.dbline 54
mov R16,R20
.dbline -2
L91:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r j 20 c
.dbsym r i 20 c
.dbend
.dbfile E:\写的程序\AVR(C)\SPI.c
.dbfunc e spi_sent_init _spi_sent_init fV
.even
_spi_sent_init::
.dbline -1
.dbline 5
.dbline 5
in R24,0x18
ori R24,240
out 0x18,R24
.dbline 6
in R24,0x17
ori R24,176
out 0x17,R24
.dbline 7
ldi R24,115
out 0xd,R24
.dbline 8
clr R2
out 0xe,R2
.dbline -2
L94:
.dbline 0 ; func end
ret
.dbend
.dbfunc e SPI_sent _SPI_sent fc
; sign -> R20
; Data -> R16,R17
.even
_SPI_sent::
xcall push_gset1
.dbline -1
.dbline 12
.dbline 14
cbi 0x18,4
.dbline 15
sbi 0xd,4
.dbline 16
out 0xf,R16
L96:
.dbline 17
L97:
.dbline 17
sbis 0xe,7
rjmp L96
.dbline 18
sbi 0x18,4
.dbline 19
in R20,0xe
.dbline 20
in R20,0xf
.dbline 21
mov R16,R20
.dbline -2
L95:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r sign 20 c
.dbsym r Data 16 i
.dbend
.dbfunc e SPI_receive_int _SPI_receive_int fV
.even
_SPI_receive_int::
.dbline -1
.dbline 27
.dbline 29
ldi R24,2
out 0x17,R24
.dbline 30
sbi 0x18,4
.dbline -2
L99:
.dbline 0 ; func end
ret
.dbend
.dbfunc e SPI_receive _SPI_receive fc
; receive -> R16
.even
_SPI_receive::
.dbline -1
.dbline 33
.dbline 35
ldi R24,96
out 0xd,R24
L101:
.dbline 36
L102:
.dbline 36
sbis 0xe,7
rjmp L101
.dbline 37
in R16,0xe
.dbline 38
in R16,0xf
.dbline 39
.dbline -2
L100:
.dbline 0 ; func end
ret
.dbsym r receive 16 c
.dbend
.dbfunc e main _main fV
; j -> R22
; F_data -> R20
.even
_main::
sbiw R28,4
.dbline -1
.dbline 43
.dbline 44
ldi R20,1
.dbline 44
clr R22
.dbline 46
xcall _LCD_init
xjmp L106
L105:
.dbline 48
.dbline 49
sbic 0x16,3
rjmp L108
.dbline 50
.dbline 51
xcall _SPI_receive_int
.dbline 52
xcall _SPI_receive
mov R20,R16
.dbline 53
mov R2,R20
clr R3
clr R4
clr R5
std y+0,R2
std y+1,R3
std y+2,R4
std y+3,R5
clr R18
clr R16
xcall _LCD_write_chang_data
.dbline 54
L108:
.dbline 55
L106:
.dbline 47
xjmp L105
X13:
.dbline -2
L104:
adiw R28,4
.dbline 0 ; func end
ret
.dbsym r j 22 c
.dbsym r F_data 20 c
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -