📄 语音.s
字号:
.dbline -1
.dbline 171
; }
; }
; }
; }
; }
; }
.dbline 172
; }
xcall _checkbusy
.dbline 173
; }
sbi 0x14,2
.dbline 173
sbi 0x15,2
.dbline 173
.dbline 174
; }
sbi 0x14,3
.dbline 174
cbi 0x15,3
.dbline 174
.dbline 175
; }
sbi 0x14,4
.dbline 175
sbi 0x15,4
.dbline 175
.dbline 176
; }
ldi R24,255
out 0x1a,R24
.dbline 177
; }
out 0x1b,R20
.dbline 178
; }
ldi R16,10
ldi R17,0
xcall _delayus
.dbline 179
; }
sbi 0x14,4
.dbline 179
cbi 0x15,4
.dbline 179
.dbline -2
L29:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r data 20 c
.dbend
.dbfunc e wezhi _wezhi fV
; p -> R20
; y -> R22
; x -> R10
.even
_wezhi::
xcall push_gset3
mov R22,R18
mov R10,R16
.dbline -1
.dbline 185
; }
; }
; }
; }
; }
; }
.dbline 187
; }
; }
tst R10
brne L31
.dbline 187
ldi R20,128
L31:
.dbline 188
; }
mov R24,R10
cpi R24,1
brne L33
.dbline 188
ldi R20,144
L33:
.dbline 189
; }
mov R24,R10
cpi R24,2
brne L35
.dbline 189
ldi R20,136
L35:
.dbline 190
; }
mov R24,R10
cpi R24,3
brne L37
.dbline 190
ldi R20,152
L37:
.dbline 191
; }
add R20,R22
.dbline 192
; }
mov R16,R20
xcall _writecomd
.dbline 193
; }
ldi R16,1
ldi R17,0
xcall _delayms
.dbline -2
L30:
xcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r p 20 c
.dbsym r y 22 c
.dbsym r x 10 c
.dbend
.dbfunc e zhiti _zhiti fV
; data -> R20,R21
.even
_zhiti::
xcall push_gset1
movw R20,R16
.dbline -1
.dbline 199
; }
; }
; }
; }
; }
; }
xjmp L41
L40:
.dbline 202
.dbline 203
movw R30,R20
ldd R16,z+0
xcall _writedata
.dbline 204
ldi R16,100
ldi R17,0
xcall _delayms
.dbline 205
subi R20,255 ; offset = 1
sbci R21,255
.dbline 206
L41:
.dbline 201
; }
; }
movw R30,R20
ldd R2,z+0
tst R2
brne L40
.dbline -2
L39:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r data 20 pc
.dbend
.dbfunc e frist1 _frist1 fV
.even
_frist1::
.dbline -1
.dbline 212
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
.dbline 213
; }
ldi R16,1
xcall _writecomd
.dbline 214
; }
ldi R16,48
xcall _writecomd
.dbline 215
; }
ldi R16,10
ldi R17,0
xcall _delayus
.dbline 216
; }
ldi R16,12
xcall _writecomd
.dbline 217
; }
ldi R16,10
ldi R17,0
xcall _delayus
.dbline 218
; }
ldi R16,2
xcall _writecomd
.dbline 219
; }
ldi R16,10
ldi R17,0
xcall _delayus
.dbline 220
; }
ldi R16,64
xcall _writecomd
.dbline -2
L43:
.dbline 0 ; func end
ret
.dbend
.dbfunc e frist2 _frist2 fV
.even
_frist2::
.dbline -1
.dbline 227
; }
; }
; }
; }
; }
; }
; }
.dbline 228
; }
ldi R16,1
xcall _writecomd
.dbline 229
; }
ldi R16,10
ldi R17,0
xcall _delayus
.dbline 230
; }
ldi R16,54
xcall _writecomd
.dbline 231
; }
ldi R16,10
ldi R17,0
xcall _delayms
.dbline -2
L44:
.dbline 0 ; func end
ret
.dbend
.dbfunc e drwa _drwa fV
; k -> R20
; temp_y -> R22
; temp_x -> R10
; i -> R12
; j -> R14
; data -> y+10
.even
_drwa::
st -y,r17
st -y,r16
xcall push_gset5
.dbline -1
.dbline 237
; 鼍A
; 鼍A
; 鼍A
; 鼍A
; 鼍A
; 鼍A
.dbline 239
; 鼍A
; 鼍A
ldi R24,128
mov R10,R24
.dbline 240
; 鼍A
ldi R22,128
.dbline 241
; 鼍A
clr R12
xjmp L49
L46:
.dbline 242
; 鼍A
.dbline 243
; 鼍A
mov R2,R22
subi R22,255 ; addi 1
mov R16,R2
xcall _writecomd
.dbline 244
; 鼍A
mov R16,R10
xcall _writecomd
.dbline 245
; 鼍A
clr R14
xjmp L53
L50:
.dbline 246
.dbline 247
ldd R30,y+10
ldd R31,y+11
lpm R16,Z
xcall _writedata
.dbline 248
ldd R24,y+10
ldd R25,y+11
adiw R24,1
std y+11,R25
std y+10,R24
.dbline 249
L51:
.dbline 245
inc R14
L53:
.dbline 245
mov R24,R14
cpi R24,16
brlo L50
.dbline 250
L47:
.dbline 241
inc R12
L49:
.dbline 241
mov R24,R12
cpi R24,32
brlo L46
.dbline 251
; 鼍A
; 鼍A
; 鼍A
; 鼍A
; 鼍A
; 鼍A
ldi R24,136
mov R10,R24
.dbline 252
; 鼍A
ldi R22,128
.dbline 253
; 鼍A
clr R12
xjmp L57
L54:
.dbline 254
; 鼍A
.dbline 255
; 鼍A
mov R2,R22
subi R22,255 ; addi 1
mov R16,R2
xcall _writecomd
.dbline 256
; 鼍A
mov R16,R10
xcall _writecomd
.dbline 257
; 鼍A
clr R14
xjmp L61
L58:
.dbline 258
.dbline 259
ldd R30,y+10
ldd R31,y+11
lpm R16,Z
xcall _writedata
.dbline 260
ldd R24,y+10
ldd R25,y+11
adiw R24,1
std y+11,R25
std y+10,R24
.dbline 261
L59:
.dbline 257
inc R14
L61:
.dbline 257
mov R24,R14
cpi R24,16
brlo L58
.dbline 262
L55:
.dbline 253
inc R12
L57:
.dbline 253
mov R24,R12
cpi R24,32
brlo L54
.dbline 263
; 鼍A
; 鼍A
; 鼍A
; 鼍A
; 鼍A
; 鼍A
clr R20
xjmp L65
L62:
.dbline 264
; 鼍A
.dbline 265
; 鼍A
ldi R24,152
mov R10,R24
.dbline 266
; 鼍A
ldi R22,155
.dbline 267
; 鼍A
clr R12
xjmp L69
L66:
.dbline 268
; 鼍A
.dbline 269
; 鼍A
mov R2,R22
subi R22,255 ; addi 1
mov R16,R2
xcall _writecomd
.dbline 270
; 鼍A
mov R16,R10
xcall _writecomd
.dbline 271
; 鼍A
clr R14
xjmp L73
L70:
.dbline 272
.dbline 273
ldd R30,y+10
ldd R31,y+11
lpm R16,Z
xcall _writedata
.dbline 274
ldd R24,y+10
ldd R25,y+11
adiw R24,1
std y+11,R25
std y+10,R24
.dbline 275
L71:
.dbline 271
inc R14
L73:
.dbline 271
mov R24,R14
cpi R24,16
brlo L70
.dbline 276
L67:
.dbline 267
inc R12
L69:
.dbline 267
mov R24,R12
cpi R24,3
brlo L66
.dbline 277
ldi R16,100
ldi R17,0
xcall _delayms
.dbline 278
L63:
.dbline 263
inc R20
L65:
.dbline 263
cpi R20,11
brlo L62
.dbline -2
L45:
xcall pop_gset5
adiw R28,2
.dbline 0 ; func end
ret
.dbsym r k 20 c
.dbsym r temp_y 22 c
.dbsym r temp_x 10 c
.dbsym r i 12 c
.dbsym r j 14 c
.dbsym l data 10 pkc
.dbend
.dbfunc e kaiji _kaiji fV
.even
_kaiji::
.dbline -1
.dbline 284
; 鼍A
; 鼍A
; 鼍A
; 鼍A
; 鼍A
; 鼍A
; 鼍A
; 鼍A
; 鼍A
; 鼍A
; 鼍A
; 鼍A
; 鼍A
.dbline 285
; 鼍A
xcall _frist2
.dbline 286
; 鼍A
ldi R16,<_data00
ldi R17,>_data00
xcall _drwa
.dbline 287
; 鼍A
xcall _frist1
.dbline 288
; 鼍A
ldi R16,1
xcall _writecomd
.dbline 289
; 鼍A
ldi R18,2
ldi R16,1
xcall _wezhi
.dbline 290
; 鼍A
ldi R16,<_data01
ldi R17,>_data01
xcall _zhiti
.dbline 291
; 鼍A
clr R18
ldi R16,2
xcall _wezhi
.dbline 292
; 鼍A
ldi R16,<_data02
ldi R17,>_data02
xcall _zhiti
.dbline -2
L74:
.dbline 0 ; func end
ret
.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
L76:
.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
L77:
.dbline 23
mov R24,R10
cpi R24,240
breq L76
.dbline 24
mov R22,R20
clr R23
cpi R22,183
ldi R30,0
cpc R23,R30
brne X1
xjmp L89
X1:
cpi R22,187
ldi R30,0
cpc R23,R30
brne X2
xjmp L88
X2:
cpi R22,189
ldi R30,0
cpc R23,R30
brne X3
xjmp L87
X3:
cpi R22,190
ldi R30,0
cpc R23,R30
brne X4
xjmp L86
X4:
ldi R24,190
ldi R25,0
cp R24,R22
cpc R25,R23
brlt L99
L98:
cpi R22,119
ldi R30,0
cpc R23,R30
brne X5
xjmp L85
X5:
cpi R22,123
ldi R30,0
cpc R23,R30
breq L84
cpi R22,125
ldi R30,0
cpc R23,R30
breq L83
cpi R22,126
ldi R30,0
cpc R23,R30
breq L82
xjmp L79
L99:
cpi R22,215
ldi R30,0
cpc R23,R30
brne X6
xjmp L93
X6:
cpi R22,219
ldi R30,0
cpc R23,R30
brne X7
xjmp L92
X7:
cpi R22,221
ldi R30,0
cpc R23,R30
breq L91
cpi R22,222
ldi R30,0
cpc R23,R30
breq L90
cpi R22,215
ldi R30,0
cpc R23,R30
brge X8
xjmp L79
X8:
L100:
cpi R22,231
ldi R30,0
cpc R23,R30
breq L97
cpi R22,235
ldi R30,0
cpc R23,R30
breq L96
cpi R22,237
ldi R30,0
cpc R23,R30
breq L95
cpi R22,238
ldi R30,0
cpc R23,R30
breq L94
xjmp L79
X0:
.dbline 25
L82:
.dbline 25
clr R20
.dbline 25
xjmp L80
L83:
.dbline 26
ldi R20,10
.dbline 26
xjmp L80
L84:
.dbline 27
ldi R20,11
.dbline 27
xjmp L80
L85:
.dbline 28
ldi R20,15
.dbline 28
xjmp L80
L86:
.dbline 29
ldi R20,1
.dbline 29
xjmp L80
L87:
.dbline 30
ldi R20,2
.dbline 30
xjmp L80
L88:
.dbline 31
ldi R20,3
.dbline 31
xjmp L80
L89:
.dbline 32
ldi R20,14
.dbline 32
xjmp L80
L90:
.dbline 33
ldi R20,4
.dbline 33
xjmp L80
L91:
.dbline 34
ldi R20,5
.dbline 34
xjmp L80
L92:
.dbline 35
ldi R20,6
.dbline 35
xjmp L80
L93:
.dbline 36
ldi R20,13
.dbline 36
xjmp L80
L94:
.dbline 37
ldi R20,7
.dbline 37
xjmp L80
L95:
.dbline 38
ldi R20,8
.dbline 38
xjmp L80
L96:
.dbline 39
ldi R20,9
.dbline 39
xjmp L80
L97:
.dbline 40
ldi R20,12
.dbline 40
xjmp L80
L79:
.dbline 41
ldi R20,16
.dbline 42
L80:
.dbline 43
mov R16,R20
.dbline -2
L75:
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 L102
.dbline 52
clr R20
xjmp L103
L102:
.dbline 53
ldi R20,1
L103:
.dbline 54
mov R16,R20
.dbline -2
L101:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r j 20 c
.dbsym r i 20 c
.dbend
.dbfile E:\写的程序\AVR(C)/语音1.c
.dbfunc e spi_sent_init _spi_sent_init fV
.even
_spi_sent_init::
.dbline -1
.dbline 51
.dbline 51
in R24,0x18
ori R24,240
out 0x18,R24
.dbline 52
in R24,0x17
ori R24,176
out 0x17,R24
.dbline 53
ldi R24,115
out 0xd,R24
.dbline 54
clr R2
out 0xe,R2
.dbline -2
L104:
.dbline 0 ; func end
ret
.dbend
.dbfunc e SPI _SPI fc
; sign -> R20
; Data -> R16,R17
.even
_SPI::
xcall push_gset1
.dbline -1
.dbline 58
.dbline 60
cbi 0x18,4
.dbline 61
sbi 0xd,4
.dbline 62
out 0xf,R16
L106:
.dbline 63
L107:
.dbline 63
sbis 0xe,7
rjmp L106
.dbline 64
sbi 0x18,4
.dbline 65
in R20,0xe
.dbline 66
in R20,0xf
.dbline 67
mov R16,R20
.dbline -2
L105:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r sign 20 c
.dbsym r Data 16 i
.dbend
.dbfunc e PU _PU fc
; i -> R20
; data -> R22
.even
_PU::
xcall push_gset2
mov R22,R16
.dbline -1
.dbline 73
L110:
.dbline 76
.dbline 77
mov R16,R22
clr R17
xcall _SPI
mov R20,R16
.dbline 78
L111:
.dbline 79
clr R16
clr R17
xcall _SPI
mov R20,R16
sbrc R20,0
rjmp L110
.dbline 80
.dbline -2
L109:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r data 22 c
.dbend
.dbfunc e status_address _status_address fi
; k -> R20,R21
; i -> R22
; data -> R10
.even
_status_address::
xcall push_gset3
mov R10,R16
.dbline -1
.dbline 84
L114:
.dbline 88
.dbline 89
mov R16,R10
clr R17
xcall _SPI
mov R22,R16
.dbline 90
L115:
.dbline 91
clr R16
clr R17
xcall _SPI
mov R22,R16
sbrc R22,0
rjmp L114
.dbline 92
clr R16
clr R17
xcall _SPI
mov R20,R16
clr R21
.dbline 93
ldi R16,8
ldi R17,0
movw R18,R20
xcall lsl16
movw R20,R16
mov R2,R22
clr R3
add R20,R2
adc R21,R3
.dbline 94
movw R16,R20
.dbline -2
L113:
xcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r k 20 i
.dbsym r i 22 c
.dbsym r data 10 c
.dbend
.dbfunc e status_address_pointer _status_address_pointer fL
; j -> R20
; k -> y+0
; i -> R22
; data -> R10
.even
_status_address_pointer::
xcall push_gset3
mov R10,R16
sbiw R28,4
.dbline -1
.dbline 98
L118:
.dbline 102
.dbline 103
mov R16,R10
clr R17
xcall _SPI
mov R22,R16
.dbline 104
L119:
.dbline 105
clr R16
clr R17
xcall _SPI
mov R22,R16
sbrc R22,0
rjmp L118
.dbline 106
clr R16
clr R17
xcall _SPI
mov R20,R16
.dbline 107
clr R16
clr R17
xcall _SPI
mov R2,R16
clr R3
clr R4
clr R5
movw R30,R28
std z+0,R2
std z+1,R3
std z+2,R4
std z+3,R5
.dbline 108
movw R30,R28
ldd R18,z+0
ldd R19,z+1
ldi R16,8
ldi R17,0
xcall lsl16
movw R2,R16
mov R4,R20
clr R5
add R2,R4
adc R3,R5
clr R4
sbrc R3,7
com R4
clr R5
sbrc R4,7
com R5
movw R30,R28
std z+0,R2
std z+1,R3
std z+2,R4
std z+3,R5
.dbline 109
movw R30,R28
ldd R18,z+0
ldd R19,z+1
ldi R16,8
ldi R17,0
xcall lsl16
movw R2,R16
mov R4,R22
clr R5
add R2,R4
adc R3,R5
clr R4
sbrc R3,7
com R4
clr R5
sbrc R4,7
com R5
movw R30,R28
std z+0,R2
std z+1,R3
std z+2,R4
std z+3,R5
.dbline 110
movw R30,R28
ldd R16,z+0
ldd R17,z+1
ldd R18,z+2
ldd R19,z+3
.dbline -2
L117:
adiw R28,4
xcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r j 20 c
.dbsym l k 0 L
.dbsym r i 22 c
.dbsym r data 10 c
.dbend
.dbfunc e command_data _command_data fc
; n -> R20
; m -> R22
; j -> R10
; k -> R12
; i -> R14
; data2 -> y+14
; data1 -> R20,R21
; command -> y+10
.even
_command_data::
xcall push_arg4
xcall push_gset5
movw R20,R18
.dbline -1
.dbline 114
.dbline 116
movw R10,R20
mov R10,R11
clr R11
.dbline 116
movw R24,R20
andi R25,0
mov R12,R24
.dbline 117
ldd R22,y+14
ldd R23,y+15
mov R22,R23
clr R23
.dbline 117
ldd R20,y+14
ldd R21,y+15
andi R21,0
L122:
.dbline 119
.dbline 120
ldd R16,y+10
clr R17
xcall _SPI
mov R14,R16
.dbline 121
L123:
.dbline 122
clr R16
clr R17
xcall _SPI
mov R14,R16
sbrc R14,0
rjmp L122
.dbline 123
mov R16,R12
clr R17
xcall _SPI
.dbline 123
mov R16,R10
clr R17
xcall _SPI
.dbline 124
mov R16,R20
clr R17
xcall _SPI
.dbline 124
mov R16,R22
clr R17
xcall _SPI
mov R12,R16
.dbline 125
mov R16,R14
.dbline -2
L121:
xcall pop_gset5
adiw R28,4
.dbline 0 ; func end
ret
.dbsym r n 20 c
.dbsym r m 22 c
.dbsym r j 10 c
.dbsym r k 12 c
.dbsym r i 14 c
.dbsym l data2 14 i
.dbsym r data1 20 i
.dbsym l command 10 c
.dbend
.dbfile E:\写的程序\AVR(C)\语音.c
.dbfunc e main _main fV
.even
_main::
.dbline -1
.dbline 5
.dbline 6
xcall _kaiji
.dbline -2
L125:
.dbline 0 ; func end
ret
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -