📄 main.s
字号:
sts _data4,R2
.dbline 127
;
; if(data4==0x0c)
mov R24,R2
cpi R24,12
brne L61
X16:
.dbline 128
; RUN2_ON();
sbi 0x18,6
L61:
.dbline 130
;
; for(i=0;i<100;i++)
clr R16
clr R17
L63:
.dbline 131
; ;
L64:
.dbline 130
subi R16,255 ; offset = 1
sbci R17,255
.dbline 130
cpi R16,100
ldi R30,0
cpc R17,R30
brlt L63
X17:
.dbline 132
; PORTB |= (1<<PB0); //SS=1
sbi 0x18,0
.dbline -2
L44:
.dbline 0 ; func end
ret
.dbsym r i 16 I
.dbend
.dbfunc e Sound_Flay _Sound_Flay fV
; i -> R16,R17
.even
_Sound_Flay::
.dbline -1
.dbline 136
; }
;
; void Sound_Flay(void)
; {
.dbline 138
; int i;
; PORTB &= ~(1<<PB0); //SS=0
cbi 0x18,0
.dbline 139
; for(i=0;i<100;i++)
clr R16
clr R17
L68:
.dbline 140
; ;
L69:
.dbline 139
subi R16,255 ; offset = 1
sbci R17,255
.dbline 139
cpi R16,100
ldi R30,0
cpc R17,R30
brlt L68
X18:
.dbline 141
; SPDR = 0x10+0x40;
ldi R24,80
out 0xf,R24
L72:
.dbline 143
; while (!(SPSR &(1 << SPIF)))
; ;
L73:
.dbline 142
sbis 0xe,7
rjmp L72
X19:
.dbline 144
; data1=SPDR;
in R2,0xf
sts _data1,R2
.dbline 145
; SPDR = 0x00;
clr R2
out 0xf,R2
L75:
.dbline 147
; while (!(SPSR &(1 << SPIF)))
; ;
L76:
.dbline 146
sbis 0xe,7
rjmp L75
X20:
.dbline 148
; data2=SPDR;
in R2,0xf
sts _data2,R2
.dbline 150
;
; for(i=0;i<100;i++)
clr R16
clr R17
L78:
.dbline 151
; ;
L79:
.dbline 150
subi R16,255 ; offset = 1
sbci R17,255
.dbline 150
cpi R16,100
ldi R30,0
cpc R17,R30
brlt L78
X21:
.dbline 152
; PORTB |= (1<<PB0); //SS=1
sbi 0x18,0
.dbline -2
L67:
.dbline 0 ; func end
ret
.dbsym r i 16 I
.dbend
.dbfunc e Sound_SetFlay _Sound_SetFlay fV
; i -> R20,R21
; startAdd -> R16,R17
.even
_Sound_SetFlay::
st -y,R20
st -y,R21
.dbline -1
.dbline 156
; }
;
; void Sound_SetFlay(unsigned int startAdd)
; {
.dbline 158
; int i;
; PORTB &= ~(1<<PB0); //SS=0
cbi 0x18,0
.dbline 159
; for(i=0;i<100;i++)
clr R20
clr R21
L83:
.dbline 160
; ;
L84:
.dbline 159
subi R20,255 ; offset = 1
sbci R21,255
.dbline 159
cpi R20,100
ldi R30,0
cpc R21,R30
brlt L83
X22:
.dbline 161
; SPDR = 0x10+0x80; //cmd
ldi R24,144
out 0xf,R24
L87:
.dbline 163
; while (!(SPSR &(1 << SPIF)))
; ;
L88:
.dbline 162
sbis 0xe,7
rjmp L87
X23:
.dbline 164
; SPDR = 0x00; //data
clr R2
out 0xf,R2
L90:
.dbline 166
; while (!(SPSR &(1 << SPIF)))
; ;
L91:
.dbline 165
sbis 0xe,7
rjmp L90
X24:
.dbline 167
; SPDR = (unsigned char)startAdd; //start add,LSB
out 0xf,R16
L93:
.dbline 169
; while (!(SPSR &(1 << SPIF)))
; ;
L94:
.dbline 168
sbis 0xe,7
rjmp L93
X25:
.dbline 170
; SPDR = (unsigned char)(startAdd>>8); //start add,MSB
movw R2,R16
mov R2,R3
clr R3
out 0xf,R2
L96:
.dbline 172
; while (!(SPSR &(1 << SPIF)))
; ;
L97:
.dbline 171
sbis 0xe,7
rjmp L96
X26:
.dbline 173
; SPDR = 0x00; //end add
clr R2
out 0xf,R2
L99:
.dbline 175
; while (!(SPSR &(1 << SPIF)))
; ;
L100:
.dbline 174
sbis 0xe,7
rjmp L99
X27:
.dbline 176
; SPDR = 0x00; //end add
clr R2
out 0xf,R2
L102:
.dbline 178
; while (!(SPSR &(1 << SPIF)))
; ;
L103:
.dbline 177
sbis 0xe,7
rjmp L102
X28:
.dbline 179
; SPDR = 0x00; //end add
clr R2
out 0xf,R2
L105:
.dbline 181
; while (!(SPSR &(1 << SPIF)))
; ;
L106:
.dbline 180
sbis 0xe,7
rjmp L105
X29:
.dbline 182
; for(i=0;i<100;i++)
clr R20
clr R21
L108:
.dbline 183
; ;
L109:
.dbline 182
subi R20,255 ; offset = 1
sbci R21,255
.dbline 182
cpi R20,100
ldi R30,0
cpc R21,R30
brlt L108
X30:
.dbline 184
; PORTB |= (1<<PB0); //SS=1
sbi 0x18,0
.dbline -2
L82:
.dbline 0 ; func end
ld R21,y+
ld R20,y+
ret
.dbsym r i 20 I
.dbsym r startAdd 16 i
.dbend
.area data(ram, con, rel)
.dbfile E:\AVR\ISD1700_ISP\src\main.c
L113:
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile E:\AVR\ISD1700_ISP\src\main.c
.area text(rom, con, rel)
.dbfile E:\AVR\ISD1700_ISP\src\main.c
.dbfunc e main _main fV
.dbsym s secondcount L113 c
; soundFlag -> R20
; t -> R22,R23
.even
_main::
.dbline -1
.dbline 189
; }
;
; //主函数
; void main(void)
; {
.dbline 191
; static unsigned char secondcount=0;
; unsigned char soundFlag=0;
clr R20
.dbline 195
;
; unsigned int t;
;
; init_devices(); //全局初始化
xcall _init_devices
.dbline 196
; RUN2_OFF();
cbi 0x18,6
.dbline 198
;
; iProgRunCount=GetTime();
xcall _GetTime
sts _iProgRunCount+1,R17
sts _iProgRunCount,R16
xjmp L115
L114:
.dbline 200
; while(1)
; {
.dbline 201
; WDR();
wdr
.dbline 202
; t=GetPassTime(iProgRunCount);
lds R16,_iProgRunCount
lds R17,_iProgRunCount+1
xcall _GetPassTime
movw R22,R16
.dbline 203
; if(t>=100)
cpi R16,100
ldi R30,0
cpc R17,R30
brlo L117
X31:
.dbline 204
; {
.dbline 205
; isd1700_init();
xcall _isd1700_init
.dbline 206
; break;
xjmp L116
L117:
.dbline 208
; }
; }
L115:
.dbline 199
xjmp L114
L116:
.dbline 210
;
; Read_APC();
xcall _Read_APC
.dbline 212
;
; Sound_SetFlay(0x10);
ldi R16,16
ldi R17,0
xcall _Sound_SetFlay
.dbline 213
; soundTime=GetTime();
xcall _GetTime
movw R10,R16
sts _soundTime+1,R11
sts _soundTime,R10
xjmp L120
L119:
.dbline 215
; while (1)
; {
.dbline 216
; WDR(); //内部watchdog
wdr
.dbline 217
; if(GetPassTime(soundTime)>=1000)
lds R16,_soundTime
lds R17,_soundTime+1
xcall _GetPassTime
movw R22,R16
cpi R16,232
ldi R30,3
cpc R17,R30
brlo L122
X32:
.dbline 218
; {
.dbline 219
; soundTime=GetTime();
xcall _GetTime
movw R10,R16
sts _soundTime+1,R11
sts _soundTime,R10
.dbline 220
; secondcount++;
lds R24,L113
subi R24,255 ; addi 1
sts L113,R24
.dbline 221
; if(secondcount>=20)
cpi R24,20
brlo L124
X33:
.dbline 222
; {
.dbline 223
; secondcount=0;
clr R2
sts L113,R2
.dbline 224
; soundFlag=1;
ldi R20,1
.dbline 225
; }
L124:
.dbline 226
; RUN1();
ldi R24,32
in R2,0x18
eor R2,R24
out 0x18,R2
.dbline 227
; }
L122:
.dbline 229
;
; if(soundFlag)
tst R20
breq L126
X34:
.dbline 230
; {
.dbline 231
; soundFlag=0;
clr R20
.dbline 233
; //Sound_Flay();
; Sound_SetFlay(0x10);
ldi R16,16
ldi R17,0
xcall _Sound_SetFlay
.dbline 234
; }
L126:
.dbline 235
; }
L120:
.dbline 214
xjmp L119
X35:
.dbline -2
L112:
.dbline 0 ; func end
ret
.dbsym r soundFlag 20 c
.dbsym r t 22 i
.dbend
.area bss(ram, con, rel)
.dbfile E:\AVR\ISD1700_ISP\src\main.c
_data4::
.blkb 1
.dbsym e data4 _data4 c
_data3::
.blkb 1
.dbsym e data3 _data3 c
_data2::
.blkb 1
.dbsym e data2 _data2 c
_data1::
.blkb 1
.dbsym e data1 _data1 c
; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -