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

📄 xuanya_car.lst

📁 单片机开发资料光盘-双龙-686M.zip
💻 LST
📖 第 1 页 / 共 3 页
字号:
    023E 2422      CLR	R2
    023F 92200067  STS	_t0_times,R2
    0241 E282      LDI	R24,0x22
    0242 93800066  STS	_timers,R24
(0136) 	   temp1=EEPROMread((int)&sound[sound_add]);
    0244 E081      LDI	R24,1
    0245 E090      LDI	R25,0
    0246 91000060  LDS	R16,0x60
    0248 91100061  LDS	R17,0x61
    024A 0F08      ADD	R16,R24
    024B 1F19      ADC	R17,R25
    024C D154      RCALL	_EEPROMread
    024D 93000072  STS	_temp1,R16
(0137) 	  }
(0138) 	if(pc == 0x40 || pc == 0x80 || pc == 0x20 || pc == 0xc0 || pc == 0x60)
    024F 9180006F  LDS	R24,_pc
    0251 3480      CPI	R24,0x40
    0252 F041      BEQ	0x025B
    0253 3880      CPI	R24,0x80
    0254 F031      BEQ	0x025B
    0255 3280      CPI	R24,0x20
    0256 F021      BEQ	0x025B
    0257 3C80      CPI	R24,0xC0
    0258 F011      BEQ	0x025B
    0259 3680      CPI	R24,0x60
    025A F431      BNE	0x0261
(0139) 	  {
(0140) 	   timers=0x55;
    025B E585      LDI	R24,0x55
    025C 93800066  STS	_timers,R24
(0141) 	   t0_times = 0;
    025E 2422      CLR	R2
    025F 92200067  STS	_t0_times,R2
(0142) 	  }
(0143) 	if(timers == 0x55)
    0261 91800066  LDS	R24,_timers
    0263 3585      CPI	R24,0x55
    0264 F589      BNE	0x0296
(0144) 	  {
(0145)        if(t0_times < 16)     //16*25ms=400ms
    0265 91800067  LDS	R24,_t0_times
    0267 3180      CPI	R24,0x10
    0268 F470      BCC	0x0277
(0146)          {
(0147) 	      backward();
    0269 DE55      RCALL	_backward
(0148) 	      temp1=sound_back[sound_add];
    026A EA8E      LDI	R24,0xAE
    026B E090      LDI	R25,0
    026C 90200060  LDS	R2,0x60
    026E 90300061  LDS	R3,0x61
    0270 0E28      ADD	R2,R24
    0271 1E39      ADC	R3,R25
    0272 2DE2      MOV	R30,R2
    0273 2DF3      MOV	R31,R3
    0274 95C8      LPM
    0275 92000072  STS	_temp1,R0
(0149)          }
(0150) 	   if(t0_times > 16 && t0_times < 24) //8*25ms=200ms
    0277 E180      LDI	R24,0x10
    0278 90200067  LDS	R2,_t0_times
    027A 1582      CP	R24,R2
    027B F488      BCC	0x028D
    027C 2D82      MOV	R24,R2
    027D 3188      CPI	R24,0x18
    027E F470      BCC	0x028D
(0151) 	     {
(0152) 	      turn_left();
    027F DE30      RCALL	_turn_left
(0153) 	      temp1=sound_back[sound_add]; 
    0280 EA8E      LDI	R24,0xAE
    0281 E090      LDI	R25,0
    0282 90200060  LDS	R2,0x60
    0284 90300061  LDS	R3,0x61
    0286 0E28      ADD	R2,R24
    0287 1E39      ADC	R3,R25
    0288 2DE2      MOV	R30,R2
    0289 2DF3      MOV	R31,R3
    028A 95C8      LPM
    028B 92000072  STS	_temp1,R0
(0154) 	     }
(0155) 	   if(t0_times == 24)
    028D 91800067  LDS	R24,_t0_times
    028F 3188      CPI	R24,0x18
    0290 F429      BNE	0x0296
(0156) 	     {
(0157) 	      timers = 0;
    0291 2422      CLR	R2
    0292 92200066  STS	_timers,R2
(0158) 		  t0_times = 0;
    0294 92200067  STS	_t0_times,R2
(0159) 	     }
(0160) 	  }
(0161) 	if(timers != 0x55 && timers != 0x22)
    0296 91800066  LDS	R24,_timers
    0298 3585      CPI	R24,0x55
    0299 F031      BEQ	0x02A0
    029A 3282      CPI	R24,0x22
    029B F021      BEQ	0x02A0
(0162) 	  {
(0163) 	   forward();
    029C DE27      RCALL	_forward
(0164) 	   temp1 = 0;
    029D 2422      CLR	R2
    029E 92200072  STS	_temp1,R2
(0165) 	  }  
(0166)    }
(0167) }
    02A0 D09C      RCALL	pop_gset1
    02A1 D0D4      RCALL	pop_lset
    02A2 9518      RETI
(0168) 
(0169) void stop_timer0()
(0170) {
(0171) 	CLI();
_stop_timer0:
    02A3 94F8      BCLR	7
(0172) 	TCCR0 = 0x00;//停止timer0
    02A4 2422      CLR	R2
    02A5 BE23      OUT	P33,R2
(0173) 	MCUCR = 0x00;
    02A6 BE25      OUT	P35,R2
(0174)     GIMSK = 0x00;
    02A7 BE2B      OUT	P3B,R2
(0175)     TIMSK = 0x00;
    02A8 BE29      OUT	P39,R2
(0176)     SEI();
    02A9 9478      BSET	7
(0177) }
    02AA 9508      RET
_timer1_ovf_isr:
    02AB 922A      ST	R2,-Y
    02AC 923A      ST	R3,-Y
    02AD 938A      ST	R24,-Y
    02AE B62F      IN	R2,P3F
    02AF 922A      ST	R2,-Y
(0178) 
(0179) #pragma interrupt_handler timer1_ovf_isr:iv_TIMER1_OVF
(0180) void timer1_ovf_isr(void)
(0181) 	 {
(0182) 	    {
(0183) 		 TCNT1=toneconst;
    02B0 90200076  LDS	R2,_toneconst
    02B2 90300077  LDS	R3,_toneconst+1
    02B4 9230004D  STS	0x4D,R3
    02B6 9220004C  STS	0x4C,R2
(0184) 	     PORTC^=1;
    02B8 E081      LDI	R24,1
    02B9 B225      IN	R2,P15
    02BA 2628      EOR	R2,R24
    02BB BA25      OUT	P15,R2
(0185) 		}
(0186) 	 }	 	 
    02BC 9029      LD	R2,Y+
    02BD BE2F      OUT	P3F,R2
    02BE 9189      LD	R24,Y+
    02BF 9039      LD	R3,Y+
    02C0 9029      LD	R2,Y+
    02C1 9518      RETI
(0187) 	 
(0188) void xuanya_car(void)
(0189) {
(0190)  port_init();         //PA,PB,PC,PD 初始化
_xuanya_car:
    02C2 DDC2      RCALL	_port_init
(0191) 
(0192)  work_status = 0x20;//置对应的工作状态标志
    02C3 E280      LDI	R24,0x20
    02C4 9380007F  STS	_work_status,R24
(0193) 
(0194)   PORTA = 0x0F;
    02C6 E08F      LDI	R24,0xF
    02C7 BB8B      OUT	P1B,R24
(0195) 
(0196)   gzsl=0x88;timers=0;t0_times=0;
    02C8 E888      LDI	R24,0x88
    02C9 93800068  STS	_gzsl,R24
    02CB 2422      CLR	R2
    02CC 92200066  STS	_timers,R2
    02CE 92200067  STS	_t0_times,R2
(0197)   CLI(); //disable all interrupts
    02D0 94F8      BCLR	7
(0198)   timer0_init();
    02D1 DEDE      RCALL	_timer0_init
(0199) 
(0200)   MCUCR = 0x00;
    02D2 2422      CLR	R2
    02D3 BE25      OUT	P35,R2
(0201)   GIMSK = 0x00;
    02D4 BE2B      OUT	P3B,R2
(0202)   TIMSK|=(1<<TOIE0);
    02D5 B789      IN	R24,P39
    02D6 6082      ORI	R24,2
    02D7 BF89      OUT	P39,R24
(0203)   SEI(); //re-enable interrupts
    02D8 9478      BSET	7
(0204)  
(0205)  mic_startup();//等待声控启动函数
    02D9 DE5B      RCALL	_mic_startup
(0206) 
(0207)   	  gzsl=0x44;t0_times=0;
    02DA E484      LDI	R24,0x44
    02DB 93800068  STS	_gzsl,R24
    02DD 2422      CLR	R2
    02DE 92200067  STS	_t0_times,R2
(0208) 	  TCCR1A = 0x00;
    02E0 BC2F      OUT	P2F,R2
(0209) 	  TCCR1B =(1<<CS11);//8分频
    02E1 E082      LDI	R24,2
    02E2 BD8E      OUT	P2E,R24
(0210) xuanya_car_rst: 
(0211)     temp=temp1 = 0;
    02E3 2422      CLR	R2
    02E4 92200072  STS	_temp1,R2
    02E6 92200073  STS	_temp,R2
(0212)     sound_add = 0;	  
    02E8 2433      CLR	R3
    02E9 92300061  STS	0x61,R3
    02EB 92200060  STS	0x60,R2
    02ED C044      RJMP	0x0332
(0213) 	  while(temp1!=0)
(0214)   	    {
(0215) 			temp=temp1; 
    02EE 90200072  LDS	R2,_temp1
    02F0 92200073  STS	_temp,R2
(0216) 			temp&=0x0f;
    02F2 2D82      MOV	R24,R2
    02F3 708F      ANDI	R24,0xF
    02F4 93800073  STS	_temp,R24
(0217) 			if(temp!=0)
    02F6 2E28      MOV	R2,R24
    02F7 2388      TST	R24
    02F8 F0D9      BEQ	0x0314
(0218) 			  {
(0219) 			   TIMSK|=(1<<TOIE1);//根据SOUNDTABLE中数据的低四位选择音调频率
    02F9 B789      IN	R24,P39
    02FA 6880      ORI	R24,0x80
    02FB BF89      OUT	P39,R24
(0220) 			   temp--;			   
    02FC 2D82      MOV	R24,R2
    02FD 5081      SUBI	R24,1
    02FE 93800073  STS	_temp,R24
(0221)         	   toneconst=TONETABLE[temp];
    0300 E18A      LDI	R24,0x1A
    0301 E090      LDI	R25,0
    0302 91000073  LDS	R16,_temp
    0304 2711      CLR	R17
    0305 0F00      LSL	R16
    0306 1F11      ROL	R17
    0307 0F08      ADD	R16,R24
    0308 1F19      ADC	R17,R25
    0309 D047      RCALL	lpm16
    030A 93100077  STS	_toneconst+1,R17
    030C 93000076  STS	_toneconst,R16
(0222) 			   TCNT1=toneconst;
    030E 2E20      MOV	R2,R16
    030F 2E31      MOV	R3,R17
    0310 9230004D  STS	0x4D,R3
    0312 9220004C  STS	0x4C,R2
(0223)  			  }
(0224) 			temp=temp1;
    0314 90200072  LDS	R2,_temp1
    0316 92200073  STS	_temp,R2
(0225) 			temp>>=4;
    0318 2D82      MOV	R24,R2
    0319 9582      SWAP	R24
    031A 708F      ANDI	R24,0xF
    031B 93800073  STS	_temp,R24
(0226) 			temp&=0x0f;
    031D 708F      ANDI	R24,0xF
    031E 93800073  STS	_temp,R24
(0227) 			delay_ms(temp*129);//根据SOUNDTABLE中数据的高四位*5后,为音调持续时间
    0320 2F28      MOV	R18,R24
    0321 2733      CLR	R19
    0322 E801      LDI	R16,0x81
    0323 E010      LDI	R17,0
    0324 D068      RCALL	mpy16s
    0325 DD77      RCALL	_delay_ms
(0228) 			TIMSK&=~(1<<TOIE1);
    0326 B789      IN	R24,P39
    0327 778F      ANDI	R24,0x7F
    0328 BF89      OUT	P39,R24
(0229) 			sound_add++;
    0329 91800060  LDS	R24,0x60
    032B 91900061  LDS	R25,0x61
    032D 9601      ADIW	R24,1
    032E 93900061  STS	0x61,R25
    0330 93800060  STS	0x60,R24
    0332 90200072  LDS	R2,_temp1
    0334 2022      TST	R2
    0335 F009      BEQ	0x0337
    0336 CFB7      RJMP	0x02EE
(0230) 		}
(0231) 	goto xuanya_car_rst;
    0337 CFAB      RJMP	0x02E3
    0338 9508      RET
(0232) }
(0233) 
(0234) 
(0235) void main()
(0236) {
(0237)  xuanya_car();
(0238) }
FILE: <library>
_main:
    0339 CF88      RJMP	_xuanya_car
push_gset1:
    033A 935A      ST	R21,-Y
    033B 934A      ST	R20,-Y
    033C 9508      RET
pop_gset1:
    033D E0E1      LDI	R30,1
pop:
    033E 9149      LD	R20,Y+
    033F 9159      LD	R21,Y+
    0340 FDE0      SBRC	R30,0
    0341 9508      RET
    0342 9169      LD	R22,Y+
    0343 9179      LD	R23,Y+
    0344 FDE1      SBRC	R30,1
    0345 9508      RET
    0346 90A9      LD	R10,Y+
    0347 90B9      LD	R11,Y+
    0348 FDE2      SBRC	R30,2
    0349 9508      RET
    034A 90C9      LD	R12,Y+
    034B 90D9      LD	R13,Y+
    034C FDE3      SBRC	R30,3
    034D 9508      RET
    034E 90E9      LD	R14,Y+
    034F 90F9      LD	R15,Y+
    0350 9508      RET
lpm16:
    0351 93EA      ST	R30,-Y
    0352 93FA      ST	R31,-Y
    0353 920A      ST	R0,-Y
    0354 2FE0      MOV	R30,R16
    0355 2FF1      MOV	R31,R17
    0356 95C8      LPM
    0357 2D00      MOV	R16,R0
    0358 9631      ADIW	R30,1
    0359 95C8      LPM
    035A 2D10      MOV	R17,R0
    035B 9009      LD	R0,Y+
    035C 91F9      LD	R31,Y+
    035D 91E9      LD	R30,Y+
    035E 9508      RET
push_lset:
    035F 93FA      ST	R31,-Y
    0360 93EA      ST	R30,-Y
    0361 93BA      ST	R27,-Y
    0362 93AA      ST	R26,-Y
    0363 939A      ST	R25,-Y
    0364 938A      ST	R24,-Y
    0365 933A      ST	R19,-Y
    0366 932A      ST	R18,-Y
    0367 931A      ST	R17,-Y
    0368 930A      ST	R16,-Y
    0369 929A      ST	R9,-Y
    036A 928A      ST	R8,-Y
    036B 927A      ST	R7,-Y
    036C 926A      ST	R6,-Y
    036D 925A      ST	R5,-Y
    036E 924A      ST	R4,-Y
    036F 923A      ST	R3,-Y
    0370 922A      ST	R2,-Y
    0371 921A      ST	R1,-Y
    0372 920A      ST	R0,-Y
    0373 B60F      IN	R0,P3F
    0374 920A      ST	R0,-Y
    0375 9508      RET
pop_lset:
    0376 9009      LD	R0,Y+
    0377 BE0F      OUT	P3F,R0
    0378 9009      LD	R0,Y+
    0379 9019      LD	R1,Y+
    037A 9029      LD	R2,Y+
    037B 9039      LD	R3,Y+
    037C 9049      LD	R4,Y+
    037D 9059      LD	R5,Y+
    037E 9069      LD	R6,Y+
    037F 9079      LD	R7,Y+
    0380 9089      LD	R8,Y+
    0381 9099      LD	R9,Y+
    0382 9109      LD	R16,Y+
    0383 9119      LD	R17,Y+
    0384 9129      LD	R18,Y+
    0385 9139      LD	R19,Y+
    0386 9189      LD	R24,Y+
    0387 9199      LD	R25,Y+
    0388 91A9      LD	R26,Y+
    0389 91B9      LD	R27,Y+
    038A 91E9      LD	R30,Y+
    038B 91F9      LD	R31,Y+
    038C 9508      RET
mpy16s:
    038D 920A      ST	R0,-Y
    038E 921A      ST	R1,-Y
    038F 2400      CLR	R0
    0390 2411      CLR	R1
    0391 3000      CPI	R16,0
    0392 0701      CPC	R16,R17
    0393 F041      BEQ	0x039C
    0394 9516      LSR	R17
    0395 9507      ROR	R16
    0396 F410      BCC	0x0399
    0397 0E02      ADD	R0,R18
    0398 1E13      ADC	R1,R19
    0399 0F22      LSL	R18
    039A 1F33      ROL	R19
    039B CFF5      RJMP	0x0391
    039C 2D00      MOV	R16,R0
    039D 2D11      MOV	R17,R1
    039E 9019      LD	R1,Y+
    039F 9009      LD	R0,Y+
    03A0 9508      RET
_EEPROMread:
    03A1 99E1      SBIC	P1C,1
    03A2 CFFE      RJMP	_EEPROMread
    03A3 9310003F  STS	0x3F,R17
    03A5 9300003E  STS	0x3E,R16
    03A7 9AE0      SBI	P1C,0
    03A8 B30D      IN	R16,P1D
    03A9 9508      RET

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -