📄 xuanya_car.lis
字号:
007E .dbline 139
007E ; {
007E 80EA ldi R24,160
0080 82BB out 0x12,R24
0082 .dbline 140
0082 ; timers=0x55;
0082 83EC ldi R24,195
0084 8BBB out 0x1b,R24
0086 .dbline -2
0086 .dbline 141
0086 ; t0_times = 0;
0086 L15:
0086 .dbline 0 ; func end
0086 0895 ret
0088 .dbend
0088 .dbfunc e stop _stop fV
.even
0088 _stop::
0088 .dbline -1
0088 .dbline 144
0088 ; }
0088 ; if(timers == 0x55)
0088 ; {
0088 .dbline 145
0088 ; if(t0_times < 16) //16*25ms=400ms
0088 8FEF ldi R24,255
008A 82BB out 0x12,R24
008C .dbline 146
008C ; {
008C 8BBB out 0x1b,R24
008E .dbline -2
008E .dbline 147
008E ; backward();
008E L16:
008E .dbline 0 ; func end
008E 0895 ret
0090 .dbend
0090 .dbfunc e sw_touch _sw_touch fV
.even
0090 _sw_touch::
0090 .dbline -1
0090 .dbline 163
0090 ; temp1=sound_back[sound_add];
0090 ; }
0090 ; if(t0_times > 16 && t0_times < 24) //8*25ms=200ms
0090 ; {
0090 ; turn_left();
0090 ; temp1=sound_back[sound_add];
0090 ; }
0090 ; if(t0_times == 24)
0090 ; {
0090 ; timers = 0;
0090 ; t0_times = 0;
0090 ; }
0090 ; }
0090 ; if(timers != 0x55 && timers != 0x22)
0090 ; {
0090 ; forward();
0090 .dbline 164
0090 ; temp1 = 0;
0090 83B3 in R24,0x13
0092 8071 andi R24,16
0094 80931A00 sts _sw_in,R24
0098 .dbline 165
0098 ; }
0098 8823 tst R24
009A C9F4 brne L18
009C .dbline 166
009C ; }
009C .dbline 167
009C ; }
009C EBDF rcall _backward
009E .dbline 168
009E ;
009E 0AEF ldi R16,250
00A0 10E0 ldi R17,0
00A2 C6DF rcall _delay_ms
00A4 .dbline 170
00A4 ; void stop_timer0()
00A4 ; {
00A4 80911B00 lds R24,_work_status
00A8 8037 cpi R24,112
00AA 69F4 brne L20
00AC .dbline 171
00AC ; CLI();
00AC .dbline 172
00AC ; TCCR0 = 0x00;//停止timer0
00AC EDDF rcall _stop
00AE 0AC0 rjmp L23
00B0 L22:
00B0 .dbline 174
00B0 .dbline 175
00B0 85E5 ldi R24,85
00B2 8BBB out 0x1b,R24
00B4 .dbline 176
00B4 0AEF ldi R16,250
00B6 10E0 ldi R17,0
00B8 BBDF rcall _delay_ms
00BA .dbline 177
00BA 8AEA ldi R24,170
00BC 8BBB out 0x1b,R24
00BE .dbline 178
00BE 0AEF ldi R16,250
00C0 10E0 ldi R17,0
00C2 B6DF rcall _delay_ms
00C4 .dbline 179
00C4 L23:
00C4 .dbline 173
00C4 ; MCUCR = 0x00;
00C4 F5CF rjmp L22
00C6 X1:
00C6 .dbline 180
00C6 ; GIMSK = 0x00;
00C6 ; TIMSK = 0x00;
00C6 ; SEI();
00C6 ; }
00C6 ;
00C6 ; #pragma interrupt_handler timer1_ovf_isr:iv_TIMER1_OVF
00C6 ; void timer1_ovf_isr(void)
00C6 L20:
00C6 .dbline 182
00C6 ; {
00C6 ; {
00C6 C7DF rcall _turn_left
00C8 .dbline 183
00C8 ; TCNT1=toneconst;
00C8 0AEF ldi R16,250
00CA 10E0 ldi R17,0
00CC B1DF rcall _delay_ms
00CE .dbline 184
00CE ; PORTC^=1;
00CE L18:
00CE .dbline 186
00CE ; }
00CE ; }
00CE 86B3 in R24,0x16
00D0 8077 andi R24,112
00D2 80931A00 sts _sw_in,R24
00D6 .dbline 187
00D6 ;
00D6 8035 cpi R24,80
00D8 41F4 brne L25
00DA .dbline 188
00DA ; void xuanya_car(void)
00DA .dbline 189
00DA ; {
00DA D1DF rcall _forward
00DC .dbline 190
00DC ; port_init(); //PA,PB,PC,PD 初始化
00DC 0AEF ldi R16,250
00DE 10E0 ldi R17,0
00E0 A7DF rcall _delay_ms
00E2 .dbline 192
00E2 ;
00E2 ; work_status = 0x20;//置对应的工作状态标志
00E2 B9DF rcall _turn_left
00E4 .dbline 193
00E4 ;
00E4 0AEF ldi R16,250
00E6 10E0 ldi R17,0
00E8 A3DF rcall _delay_ms
00EA .dbline 194
00EA ; PORTA = 0x0F;
00EA L25:
00EA .dbline 195
00EA ;
00EA 80911A00 lds R24,_sw_in
00EE 8033 cpi R24,48
00F0 41F4 brne L27
00F2 .dbline 196
00F2 ; gzsl=0x88;timers=0;t0_times=0;
00F2 .dbline 197
00F2 ; CLI(); //disable all interrupts
00F2 C0DF rcall _backward
00F4 .dbline 198
00F4 ; timer0_init();
00F4 0AEF ldi R16,250
00F6 10E0 ldi R17,0
00F8 9BDF rcall _delay_ms
00FA .dbline 200
00FA ;
00FA ; MCUCR = 0x00;
00FA ADDF rcall _turn_left
00FC .dbline 201
00FC ; GIMSK = 0x00;
00FC 0AEF ldi R16,250
00FE 10E0 ldi R17,0
0100 97DF rcall _delay_ms
0102 .dbline 202
0102 ; TIMSK|=(1<<TOIE0);
0102 L27:
0102 .dbline 203
0102 ; SEI(); //re-enable interrupts
0102 80911A00 lds R24,_sw_in
0106 8036 cpi R24,96
0108 41F4 brne L29
010A .dbline 204
010A ;
010A .dbline 205
010A ; mic_startup();//等待声控启动函数
010A B4DF rcall _backward
010C .dbline 206
010C ;
010C 0AEF ldi R16,250
010E 10E0 ldi R17,0
0110 8FDF rcall _delay_ms
0112 .dbline 208
0112 ; gzsl=0x44;t0_times=0;
0112 ; TCCR1A = 0x00;
0112 A1DF rcall _turn_left
0114 .dbline 209
0114 ; TCCR1B =(1<<CS11);//8分频
0114 0AEF ldi R16,250
0116 10E0 ldi R17,0
0118 8BDF rcall _delay_ms
011A .dbline 210
011A ; xuanya_car_rst:
011A L29:
011A .dbline 211
011A ; temp=temp1 = 0;
011A 80911A00 lds R24,_sw_in
011E 8032 cpi R24,32
0120 F1F4 brne L31
0122 .dbline 212
0122 ; sound_add = 0;
0122 .dbline 213
0122 ; while(temp1!=0)
0122 B2DF rcall _stop
0124 .dbline 214
0124 ; {
0124 08EE ldi R16,1000
0126 13E0 ldi R17,3
0128 83DF rcall _delay_ms
012A 18C0 rjmp L34
012C L33:
012C .dbline 216
012C ; temp=temp1;
012C ; temp&=0x0f;
012C .dbline 217
012C ; if(temp!=0)
012C 83B3 in R24,0x13
012E 8071 andi R24,16
0130 80931A00 sts _sw_in,R24
0134 .dbline 218
0134 ; {
0134 8823 tst R24
0136 09F4 brne L36
0138 .dbline 219
0138 ; TIMSK|=(1<<TOIE1);//根据SOUNDTABLE中数据的低四位选择音调频率
0138 .dbline 219
0138 12C0 rjmp L35
013A L36:
013A .dbline 220
013A ; temp--;
013A 85E5 ldi R24,85
013C 8BBB out 0x1b,R24
013E .dbline 221
013E ; toneconst=TONETABLE[temp];
013E 0AEF ldi R16,250
0140 10E0 ldi R17,0
0142 76DF rcall _delay_ms
0144 .dbline 222
0144 ; TCNT1=toneconst;
0144 8AEA ldi R24,170
0146 8BBB out 0x1b,R24
0148 .dbline 223
0148 ; }
0148 0AEF ldi R16,250
014A 10E0 ldi R17,0
014C 71DF rcall _delay_ms
014E .dbline 224
014E ; temp=temp1;
014E 86B3 in R24,0x16
0150 8F70 andi R24,15
0152 80931900 sts _remote_in,R24
0156 .dbline 225
0156 ; temp>>=4;
0156 8823 tst R24
0158 09F0 breq L38
015A .dbline 226
015A ; temp&=0x0f;
015A .dbline 226
015A 01C0 rjmp L35
015C L38:
015C .dbline 227
015C L34:
015C .dbline 215
015C E7CF rjmp L33
015E L35:
015E .dbline 228
015E L31:
015E .dbline -2
015E .dbline 229
015E ; delay_ms(temp*129);//根据SOUNDTABLE中数据的高四位*5后,为音调持续时间
015E ; TIMSK&=~(1<<TOIE1);
015E ; sound_add++;
015E L17:
015E .dbline 0 ; func end
015E 0895 ret
0160 .dbend
0160 .dbfunc e mic_startup _mic_startup fV
.even
0160 _mic_startup::
0160 .dbline -1
0160 .dbline 232
0160 ; }
0160 ; goto xuanya_car_rst;
0160 ; }
0160 07C0 rjmp L42
0162 L41:
0162 .dbline 235
0162 ;
0162 ;
0162 ; void main()
0162 .dbline 236
0162 ; {
0162 83B3 in R24,0x13
0164 8870 andi R24,8
0166 80931800 sts _mic_in,R24
016A .dbline 237
016A ; xuanya_car();
016A 8823 tst R24
016C 09F4 brne L44
016E .dbline 237
016E .dbline 237
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -