⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xuanya_car.lis

📁 单片机开发资料光盘-双龙-686M.zip
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 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 + -