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

📄 bianma.lst

📁 单片机开发资料光盘-双龙-686M.zip
💻 LST
📖 第 1 页 / 共 3 页
字号:
    01BF BB8B      OUT	P1B,R24
(0124) 	   //后退,右转
(0125) 	   PORTD = 0x50;
    01C0 E580      LDI	R24,0x50
    01C1 BB82      OUT	P12,R24
(0126) 	   PORTA=0x3C;//后退
    01C2 E38C      LDI	R24,0x3C
    01C3 BB8B      OUT	P1B,R24
(0127) 	   delay_ms(delaytime);
    01C4 E20C      LDI	R16,0x2C
    01C5 E011      LDI	R17,1
    01C6 DE7E      RCALL	_delay_ms
(0128) 	   PORTD = 0x60;
    01C7 E680      LDI	R24,0x60
    01C8 BB82      OUT	P12,R24
(0129) 	   PORTA=0xCC;//右转
    01C9 EC8C      LDI	R24,0xCC
    01CA BB8B      OUT	P1B,R24
(0130) 	   delay_ms(delaytime/2);
    01CB E906      LDI	R16,0x96
    01CC E010      LDI	R17,0
    01CD DE77      RCALL	_delay_ms
(0131) 	  }
(0132) 	if(pc==0x80)
    01CE 91800064  LDS	R24,_pc
    01D0 3880      CPI	R24,0x80
    01D1 F479      BNE	0x01E1
(0133) 	  {
(0134) 	   stop();
    01D2 DE9E      RCALL	_stop
(0135) 	   //往右转弯
(0136) 	   PORTD = 0x50;
    01D3 E580      LDI	R24,0x50
    01D4 BB82      OUT	P12,R24
(0137) 	   PORTA=0x3C;//后退
    01D5 E38C      LDI	R24,0x3C
    01D6 BB8B      OUT	P1B,R24
(0138) 	   delay_ms(delaytime);
    01D7 E20C      LDI	R16,0x2C
    01D8 E011      LDI	R17,1
    01D9 DE6B      RCALL	_delay_ms
(0139) 	   PORTD = 0x60;//右转
    01DA E680      LDI	R24,0x60
    01DB BB82      OUT	P12,R24
(0140) 	   PORTA=0xCC;
    01DC EC8C      LDI	R24,0xCC
    01DD BB8B      OUT	P1B,R24
(0141) 	   delay_ms(delaytime);
    01DE E20C      LDI	R16,0x2C
    01DF E011      LDI	R17,1
    01E0 DE64      RCALL	_delay_ms
(0142) 	  }
(0143) 	if(pc==0x20)
    01E1 91800064  LDS	R24,_pc
    01E3 3280      CPI	R24,0x20
    01E4 F479      BNE	0x01F4
(0144) 	  {
(0145) 	   stop();
    01E5 DE8B      RCALL	_stop
(0146) 	   //往右转弯
(0147) 	   PORTD = 0x50;//后退
    01E6 E580      LDI	R24,0x50
    01E7 BB82      OUT	P12,R24
(0148) 	   PORTA=0x3C;
    01E8 E38C      LDI	R24,0x3C
    01E9 BB8B      OUT	P1B,R24
(0149) 	   delay_ms(delaytime);
    01EA E20C      LDI	R16,0x2C
    01EB E011      LDI	R17,1
    01EC DE58      RCALL	_delay_ms
(0150) 	   PORTD = 0x60;//右转
    01ED E680      LDI	R24,0x60
    01EE BB82      OUT	P12,R24
(0151) 	   PORTA=0xCC;
    01EF EC8C      LDI	R24,0xCC
    01F0 BB8B      OUT	P1B,R24
(0152) 	   delay_ms(delaytime);
    01F1 E20C      LDI	R16,0x2C
    01F2 E011      LDI	R17,1
    01F3 DE51      RCALL	_delay_ms
(0153) 	  }
(0154) 	if(pc==0xc0)
    01F4 91800064  LDS	R24,_pc
    01F6 3C80      CPI	R24,0xC0
    01F7 F479      BNE	0x0207
(0155) 	  {
(0156) 	   stop();
    01F8 DE78      RCALL	_stop
(0157) 	   //后退,往右转弯
(0158) 	   PORTD = 0x50;//后退
    01F9 E580      LDI	R24,0x50
    01FA BB82      OUT	P12,R24
(0159) 	   PORTA=0x3C;
    01FB E38C      LDI	R24,0x3C
    01FC BB8B      OUT	P1B,R24
(0160) 	   delay_ms(delaytime);
    01FD E20C      LDI	R16,0x2C
    01FE E011      LDI	R17,1
    01FF DE45      RCALL	_delay_ms
(0161) 	   PORTD = 0x60;//右转
    0200 E680      LDI	R24,0x60
    0201 BB82      OUT	P12,R24
(0162) 	   PORTA=0xCC;
    0202 EC8C      LDI	R24,0xCC
    0203 BB8B      OUT	P1B,R24
(0163) 	   delay_ms(delaytime);
    0204 E20C      LDI	R16,0x2C
    0205 E011      LDI	R17,1
    0206 DE3E      RCALL	_delay_ms
(0164) 	  }
(0165) 	if(pc==0x60)
    0207 91800064  LDS	R24,_pc
    0209 3680      CPI	R24,0x60
    020A F479      BNE	0x021A
(0166) 	  {
(0167) 	   stop();
    020B DE65      RCALL	_stop
(0168) 	   //后退,往右转弯
(0169) 	   PORTD = 0x50;
    020C E580      LDI	R24,0x50
    020D BB82      OUT	P12,R24
(0170) 	   PORTA=0x3C;//后退
    020E E38C      LDI	R24,0x3C
    020F BB8B      OUT	P1B,R24
(0171) 	   delay_ms(delaytime);
    0210 E20C      LDI	R16,0x2C
    0211 E011      LDI	R17,1
    0212 DE32      RCALL	_delay_ms
(0172) 	   PORTD = 0x60;//右转
    0213 E680      LDI	R24,0x60
    0214 BB82      OUT	P12,R24
(0173) 	   PORTA=0xCC;
    0215 EC8C      LDI	R24,0xCC
    0216 BB8B      OUT	P1B,R24
(0174) 	   delay_ms(delaytime);
    0217 E20C      LDI	R16,0x2C
    0218 E011      LDI	R17,1
    0219 DE2B      RCALL	_delay_ms
(0175) 	  }
(0176) 	if(pc==0xE0)
    021A 91800064  LDS	R24,_pc
    021C 3E80      CPI	R24,0xE0
    021D F429      BNE	0x0223
(0177) 	  {
(0178)        //刹车
(0179)        PORTD = 0xF0;
    021E EF80      LDI	R24,0xF0
    021F BB82      OUT	P12,R24
(0180) 	   PORTA = 0xFF;
    0220 EF8F      LDI	R24,0xFF
    0221 BB8B      OUT	P1B,R24
(0181) 	  } 
    0222 C004      RJMP	0x0227
(0182) 	else
(0183) 	  {
(0184) 	    PORTD = 0xA0;//前行
    0223 EA80      LDI	R24,0xA0
    0224 BB82      OUT	P12,R24
(0185) 		PORTA=0xC3;
    0225 EC83      LDI	R24,0xC3
    0226 BB8B      OUT	P1B,R24
    0227 CF7B      RJMP	0x01A3
(0186)       }
(0187)    }
(0188) }
    0228 9508      RET
(0189) 
(0190) void music_car()
(0191) {
(0192)  DDRA = 0xFF; PORTA = 0xFF;
_music_car:
    0229 EF8F      LDI	R24,0xFF
    022A BB8A      OUT	P1A,R24
    022B BB8B      OUT	P1B,R24
(0193)  PORTA = 0xCC;
    022C EC8C      LDI	R24,0xCC
    022D BB8B      OUT	P1B,R24
(0194)  while (1)
    022E CFFF      RJMP	0x022E
(0195)  	;
(0196) }
    022F 9508      RET
(0197) 
(0198) void led_car()
(0199) {
(0200)  DDRA = 0xFF; PORTA = 0xFF;
_led_car:
    0230 EF8F      LDI	R24,0xFF
    0231 BB8A      OUT	P1A,R24
    0232 BB8B      OUT	P1B,R24
(0201)  PORTA = 0x0F;
    0233 E08F      LDI	R24,0xF
    0234 BB8B      OUT	P1B,R24
(0202)  while (1)
    0235 CFFF      RJMP	0x0235
(0203)  	;
(0204) }
    0236 9508      RET
(0205) 
(0206) void main(void)
(0207) {
(0208)  unsigned temp;
(0209)  
(0210)  port_init();         //PA,PB,PC,PD 初始化
_main:
  temp                 --> R22
    0237 DDF5      RCALL	_port_init
(0211)  
(0212)  loop:
(0213) 
(0214)  PORTA = 0x00;delay_ms(500);
    0238 2422      CLR	R2
    0239 BA2B      OUT	P1B,R2
    023A EF04      LDI	R16,0xF4
    023B E011      LDI	R17,1
    023C DE08      RCALL	_delay_ms
(0215)  PORTA = 0xff;delay_ms(500);
    023D EF8F      LDI	R24,0xFF
    023E BB8B      OUT	P1B,R24
    023F EF04      LDI	R16,0xF4
    0240 E011      LDI	R17,1
    0241 DE03      RCALL	_delay_ms
(0216)  bianma = 0x0000;
    0242 2422      CLR	R2
    0243 92200067  STS	_bianma,R2
    0245 C05A      RJMP	0x02A0
(0217)  
(0218)  while(1)
(0219)      {
(0220) 	  remote = PINB & 0x0f;
    0246 B386      IN	R24,P16
    0247 708F      ANDI	R24,0xF
    0248 93800061  STS	_remote,R24
(0221) 	  PORTA = ~remote;
    024A 2E28      MOV	R2,R24
    024B 9420      COM	R2
    024C BA2B      OUT	P1B,R2
(0222) 	  switch (remote)
    024D 2F48      MOV	R20,R24
    024E 2755      CLR	R21
    024F 3041      CPI	R20,1
    0250 E0E0      LDI	R30,0
    0251 075E      CPC	R21,R30
    0252 F171      BEQ	0x0281
    0253 3042      CPI	R20,2
    0254 E0E0      LDI	R30,0
    0255 075E      CPC	R21,R30
    0256 F0A1      BEQ	0x026B
    0257 3044      CPI	R20,4
    0258 E0E0      LDI	R30,0
    0259 075E      CPC	R21,R30
    025A F029      BEQ	0x0260
    025B 3048      CPI	R20,0x8
    025C E0E0      LDI	R30,0
    025D 075E      CPC	R21,R30
    025E F0B9      BEQ	0x0276
    025F C037      RJMP	0x0297
(0223)       	{//按键检查
(0224)          case  0x04 : 
(0225) 	          {
(0226) 			   bianma=bianma | 0xA000;
    0260 91800067  LDS	R24,_bianma
    0262 6080      ORI	R24,0
    0263 93800067  STS	_bianma,R24
(0227) 			   bianma_count = bianma_count+1;
    0265 91800060  LDS	R24,_bianma_count
    0267 5F8F      SUBI	R24,0xFF
    0268 93800060  STS	_bianma_count,R24
(0228) 			  }
(0229)       	break;
    026A C02C      RJMP	0x0297
(0230)          case  0x02 : 
(0231) 	          {
(0232) 			   bianma=bianma | 0x0B00;
    026B 91800067  LDS	R24,_bianma
    026D 6080      ORI	R24,0
    026E 93800067  STS	_bianma,R24
(0233) 			   bianma_count = bianma_count+1;
    0270 91800060  LDS	R24,_bianma_count
    0272 5F8F      SUBI	R24,0xFF
    0273 93800060  STS	_bianma_count,R24
(0234) 			  }
(0235)       	break;
    0275 C021      RJMP	0x0297
(0236)          case  0x08 : 
(0237) 	          {
(0238) 			   bianma=bianma | 0x00C0;
    0276 91800067  LDS	R24,_bianma
    0278 6C80      ORI	R24,0xC0
    0279 93800067  STS	_bianma,R24
(0239) 			   bianma_count = bianma_count+1;
    027B 91800060  LDS	R24,_bianma_count
    027D 5F8F      SUBI	R24,0xFF
    027E 93800060  STS	_bianma_count,R24
(0240) 			  }
(0241)       	break;
    0280 C016      RJMP	0x0297
(0242)          case 0x01 : 
(0243) 	          {
(0244) 			   bianma=bianma | 0x000D;
    0281 91800067  LDS	R24,_bianma
    0283 608D      ORI	R24,0xD
    0284 93800067  STS	_bianma,R24
(0245) 			   bianma_count = bianma_count+1;
    0286 91800060  LDS	R24,_bianma_count
    0288 5F8F      SUBI	R24,0xFF
    0289 93800060  STS	_bianma_count,R24
(0246) 			  }
(0247)       	break;
    028B C00B      RJMP	0x0297
(0248)       	}
(0249) 	  while(1)
(0250) 	      {//释键检查
(0251) 		   temp = PINB & 0x0f;
    028C B366      IN	R22,P16
    028D 2777      CLR	R23
    028E 706F      ANDI	R22,0xF
    028F 7070      ANDI	R23,0
(0252) 		   if(temp != remote)
    0290 90200061  LDS	R2,_remote
    0292 2433      CLR	R3
    0293 1562      CP	R22,R2
    0294 0573      CPC	R23,R3
    0295 F009      BEQ	0x0297
(0253) 		   {break;}
    0296 C001      RJMP	0x0298
    0297 CFF4      RJMP	0x028C
(0254) 		  }
(0255) 	  if(bianma_count == 4)
    0298 91800060  LDS	R24,_bianma_count
    029A 3084      CPI	R24,4
    029B F421      BNE	0x02A0
(0256) 	    {//按键四次,认为 一次有效输入结束
(0257) 		 bianma_count=0;break;
    029C 2422      CLR	R2
    029D 92200060  STS	_bianma_count,R2
    029F C001      RJMP	0x02A1
    02A0 CFA5      RJMP	0x0246
(0258) 		}
(0259)  	 }
(0260)  delay_ms(200);
    02A1 EC08      LDI	R16,0xC8
    02A2 E010      LDI	R17,0
    02A3 DDA1      RCALL	_delay_ms
(0261)  PORTA = 0xaa;delay_ms(500);
    02A4 EA8A      LDI	R24,0xAA
    02A5 BB8B      OUT	P1B,R24
    02A6 EF04      LDI	R16,0xF4
    02A7 E011      LDI	R17,1
    02A8 DD9C      RCALL	_delay_ms
(0262)  PORTA = 0x55;delay_ms(500);
    02A9 E585      LDI	R24,0x55
    02AA BB8B      OUT	P1B,R24
    02AB EF04      LDI	R16,0xF4
    02AC E011      LDI	R17,1
    02AD DD97      RCALL	_delay_ms
(0263)  if(bianma == 0xa000)   
    02AE 91800067  LDS	R24,_bianma
    02B0 3080      CPI	R24,0
    02B1 F409      BNE	0x02B3
(0264)    {xuanya_car();}
    02B2 DEE7      RCALL	_xuanya_car
(0265)  if(bianma == 0x0b00)
    02B3 91800067  LDS	R24,_bianma
    02B5 3080      CPI	R24,0
    02B6 F409      BNE	0x02B8
(0266)    {remote_car();}
    02B7 DEA0      RCALL	_remote_car
(0267)  if(bianma == 0x00c0)
    02B8 91800067  LDS	R24,_bianma
    02BA 3C80      CPI	R24,0xC0
    02BB F409      BNE	0x02BD
(0268)    {music_car();}
    02BC DF6C      RCALL	_music_car
(0269)  if(bianma == 0x000d)
    02BD 91800067  LDS	R24,_bianma
    02BF 308D      CPI	R24,0xD
    02C0 F009      BEQ	0x02C2
    02C1 CF76      RJMP	0x0238
(0270)    {led_car();}
    02C2 DF6D      RCALL	_led_car
(0271)  else  goto  loop;
(0272) }
FILE: <library>
    02C3 9508      RET
push_gset1:
    02C4 935A      ST	R21,-Y
    02C5 934A      ST	R20,-Y
    02C6 9508      RET
pop_gset1:
    02C7 E0E1      LDI	R30,1
pop:
    02C8 9149      LD	R20,Y+
    02C9 9159      LD	R21,Y+
    02CA FDE0      SBRC	R30,0
    02CB 9508      RET
    02CC 9169      LD	R22,Y+
    02CD 9179      LD	R23,Y+
    02CE FDE1      SBRC	R30,1
    02CF 9508      RET
    02D0 90A9      LD	R10,Y+
    02D1 90B9      LD	R11,Y+
    02D2 FDE2      SBRC	R30,2
    02D3 9508      RET
    02D4 90C9      LD	R12,Y+
    02D5 90D9      LD	R13,Y+
    02D6 FDE3      SBRC	R30,3
    02D7 9508      RET
    02D8 90E9      LD	R14,Y+
    02D9 90F9      LD	R15,Y+
    02DA 9508      RET
push_gset2:
    02DB 937A      ST	R23,-Y
    02DC 936A      ST	R22,-Y
    02DD CFE6      RJMP	push_gset1
pop_gset2:
    02DE E0E2      LDI	R30,2
    02DF CFE8      RJMP	pop

⌨️ 快捷键说明

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