📄 main.lis
字号:
01C6 X22:
01C6 .dbline 161
01C6 ; SPDR = 0x10+0x80; //cmd
01C6 80E9 ldi R24,144
01C8 8FB9 out 0xf,R24
01CA L87:
01CA .dbline 163
01CA ; while (!(SPSR &(1 << SPIF)))
01CA ; ;
01CA L88:
01CA .dbline 162
01CA 779B sbis 0xe,7
01CC FECF rjmp L87
01CE X23:
01CE .dbline 164
01CE ; SPDR = 0x00; //data
01CE 2224 clr R2
01D0 2FB8 out 0xf,R2
01D2 L90:
01D2 .dbline 166
01D2 ; while (!(SPSR &(1 << SPIF)))
01D2 ; ;
01D2 L91:
01D2 .dbline 165
01D2 779B sbis 0xe,7
01D4 FECF rjmp L90
01D6 X24:
01D6 .dbline 167
01D6 ; SPDR = (unsigned char)startAdd; //start add,LSB
01D6 0FB9 out 0xf,R16
01D8 L93:
01D8 .dbline 169
01D8 ; while (!(SPSR &(1 << SPIF)))
01D8 ; ;
01D8 L94:
01D8 .dbline 168
01D8 779B sbis 0xe,7
01DA FECF rjmp L93
01DC X25:
01DC .dbline 170
01DC ; SPDR = (unsigned char)(startAdd>>8); //start add,MSB
01DC 1801 movw R2,R16
01DE 232C mov R2,R3
01E0 3324 clr R3
01E2 2FB8 out 0xf,R2
01E4 L96:
01E4 .dbline 172
01E4 ; while (!(SPSR &(1 << SPIF)))
01E4 ; ;
01E4 L97:
01E4 .dbline 171
01E4 779B sbis 0xe,7
01E6 FECF rjmp L96
01E8 X26:
01E8 .dbline 173
01E8 ; SPDR = 0x00; //end add
01E8 2224 clr R2
01EA 2FB8 out 0xf,R2
01EC L99:
01EC .dbline 175
01EC ; while (!(SPSR &(1 << SPIF)))
01EC ; ;
01EC L100:
01EC .dbline 174
01EC 779B sbis 0xe,7
01EE FECF rjmp L99
01F0 X27:
01F0 .dbline 176
01F0 ; SPDR = 0x00; //end add
01F0 2224 clr R2
01F2 2FB8 out 0xf,R2
01F4 L102:
01F4 .dbline 178
01F4 ; while (!(SPSR &(1 << SPIF)))
01F4 ; ;
01F4 L103:
01F4 .dbline 177
01F4 779B sbis 0xe,7
01F6 FECF rjmp L102
01F8 X28:
01F8 .dbline 179
01F8 ; SPDR = 0x00; //end add
01F8 2224 clr R2
01FA 2FB8 out 0xf,R2
01FC L105:
01FC .dbline 181
01FC ; while (!(SPSR &(1 << SPIF)))
01FC ; ;
01FC L106:
01FC .dbline 180
01FC 779B sbis 0xe,7
01FE FECF rjmp L105
0200 X29:
0200 .dbline 182
0200 ; for(i=0;i<100;i++)
0200 4427 clr R20
0202 5527 clr R21
0204 L108:
0204 .dbline 183
0204 ; ;
0204 L109:
0204 .dbline 182
0204 4F5F subi R20,255 ; offset = 1
0206 5F4F sbci R21,255
0208 .dbline 182
0208 4436 cpi R20,100
020A E0E0 ldi R30,0
020C 5E07 cpc R21,R30
020E D4F3 brlt L108
0210 X30:
0210 .dbline 184
0210 ; PORTB |= (1<<PB0); //SS=1
0210 C09A sbi 0x18,0
0212 .dbline -2
0212 L82:
0212 .dbline 0 ; func end
0212 5991 ld R21,y+
0214 4991 ld R20,y+
0216 0895 ret
0218 .dbsym r i 20 I
0218 .dbsym r startAdd 16 i
0218 .dbend
.area data(ram, con, rel)
0004 .dbfile E:\AVR\ISD1700_ISP\src\main.c
0004 L113:
0004 .blkb 1
.area idata
0004 00 .byte 0
.area data(ram, con, rel)
0005 .dbfile E:\AVR\ISD1700_ISP\src\main.c
.area text(rom, con, rel)
0218 .dbfile E:\AVR\ISD1700_ISP\src\main.c
0218 .dbfunc e main _main fV
0218 .dbsym s secondcount L113 c
0218 ; soundFlag -> R20
0218 ; t -> R22,R23
.even
0218 _main::
0218 .dbline -1
0218 .dbline 189
0218 ; }
0218 ;
0218 ; //主函数
0218 ; void main(void)
0218 ; {
0218 .dbline 191
0218 ; static unsigned char secondcount=0;
0218 ; unsigned char soundFlag=0;
0218 4427 clr R20
021A .dbline 195
021A ;
021A ; unsigned int t;
021A ;
021A ; init_devices(); //全局初始化
021A 0FDF xcall _init_devices
021C .dbline 196
021C ; RUN2_OFF();
021C C698 cbi 0x18,6
021E .dbline 198
021E ;
021E ; iProgRunCount=GetTime();
021E 0E940000 xcall _GetTime
0222 10930100 sts _iProgRunCount+1,R17
0226 00930000 sts _iProgRunCount,R16
022A 0EC0 xjmp L115
022C L114:
022C .dbline 200
022C ; while(1)
022C ; {
022C .dbline 201
022C ; WDR();
022C A895 wdr
022E .dbline 202
022E ; t=GetPassTime(iProgRunCount);
022E 00910000 lds R16,_iProgRunCount
0232 10910100 lds R17,_iProgRunCount+1
0236 0E940000 xcall _GetPassTime
023A B801 movw R22,R16
023C .dbline 203
023C ; if(t>=100)
023C 0436 cpi R16,100
023E E0E0 ldi R30,0
0240 1E07 cpc R17,R30
0242 10F0 brlo L117
0244 X31:
0244 .dbline 204
0244 ; {
0244 .dbline 205
0244 ; isd1700_init();
0244 15DF xcall _isd1700_init
0246 .dbline 206
0246 ; break;
0246 01C0 xjmp L116
0248 L117:
0248 .dbline 208
0248 ; }
0248 ; }
0248 L115:
0248 .dbline 199
0248 F1CF xjmp L114
024A L116:
024A .dbline 210
024A ;
024A ; Read_APC();
024A 5EDF xcall _Read_APC
024C .dbline 212
024C ;
024C ; Sound_SetFlay(0x10);
024C 00E1 ldi R16,16
024E 10E0 ldi R17,0
0250 AFDF xcall _Sound_SetFlay
0252 .dbline 213
0252 ; soundTime=GetTime();
0252 0E940000 xcall _GetTime
0256 5801 movw R10,R16
0258 B0920300 sts _soundTime+1,R11
025C A0920200 sts _soundTime,R10
0260 28C0 xjmp L120
0262 L119:
0262 .dbline 215
0262 ; while (1)
0262 ; {
0262 .dbline 216
0262 ; WDR(); //内部watchdog
0262 A895 wdr
0264 .dbline 217
0264 ; if(GetPassTime(soundTime)>=1000)
0264 00910200 lds R16,_soundTime
0268 10910300 lds R17,_soundTime+1
026C 0E940000 xcall _GetPassTime
0270 B801 movw R22,R16
0272 083E cpi R16,232
0274 E3E0 ldi R30,3
0276 1E07 cpc R17,R30
0278 B0F0 brlo L122
027A X32:
027A .dbline 218
027A ; {
027A .dbline 219
027A ; soundTime=GetTime();
027A 0E940000 xcall _GetTime
027E 5801 movw R10,R16
0280 B0920300 sts _soundTime+1,R11
0284 A0920200 sts _soundTime,R10
0288 .dbline 220
0288 ; secondcount++;
0288 80910400 lds R24,L113
028C 8F5F subi R24,255 ; addi 1
028E 80930400 sts L113,R24
0292 .dbline 221
0292 ; if(secondcount>=20)
0292 8431 cpi R24,20
0294 20F0 brlo L124
0296 X33:
0296 .dbline 222
0296 ; {
0296 .dbline 223
0296 ; secondcount=0;
0296 2224 clr R2
0298 20920400 sts L113,R2
029C .dbline 224
029C ; soundFlag=1;
029C 41E0 ldi R20,1
029E .dbline 225
029E ; }
029E L124:
029E .dbline 226
029E ; RUN1();
029E 80E2 ldi R24,32
02A0 28B2 in R2,0x18
02A2 2826 eor R2,R24
02A4 28BA out 0x18,R2
02A6 .dbline 227
02A6 ; }
02A6 L122:
02A6 .dbline 229
02A6 ;
02A6 ; if(soundFlag)
02A6 4423 tst R20
02A8 21F0 breq L126
02AA X34:
02AA .dbline 230
02AA ; {
02AA .dbline 231
02AA ; soundFlag=0;
02AA 4427 clr R20
02AC .dbline 233
02AC ; //Sound_Flay();
02AC ; Sound_SetFlay(0x10);
02AC 00E1 ldi R16,16
02AE 10E0 ldi R17,0
02B0 7FDF xcall _Sound_SetFlay
02B2 .dbline 234
02B2 ; }
02B2 L126:
02B2 .dbline 235
02B2 ; }
02B2 L120:
02B2 .dbline 214
02B2 D7CF xjmp L119
02B4 X35:
02B4 .dbline -2
02B4 L112:
02B4 .dbline 0 ; func end
02B4 0895 ret
02B6 .dbsym r soundFlag 20 c
02B6 .dbsym r t 22 i
02B6 .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\AVR\ISD1700_ISP\src\main.c
0000 _data4::
0000 .blkb 1
0001 .dbsym e data4 _data4 c
0001 _data3::
0001 .blkb 1
0002 .dbsym e data3 _data3 c
0002 _data2::
0002 .blkb 1
0003 .dbsym e data2 _data2 c
0003 _data1::
0003 .blkb 1
0004 .dbsym e data1 _data1 c
0004 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -