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

📄 led_m16.lst

📁 51单片机的
💻 LST
📖 第 1 页 / 共 5 页
字号:
(0689) 			  { iIrMode=0;
    04EE 2422      CLR	R2
    04EF 922000C6  STS	_iIrMode,R2
(0690) 			    //确实只发送一次,后面的是按键保持信号,无按键码信息
(0691) 			  }
(0692) 		    return;
    04F1 C05C      RJMP	0x054E
(0693) 		  }
(0694) 	      
(0695) 	      break;
(0696) 		  
(0697) 	 case 2://接收用户码和按键码,共32Bit
(0698) 	      
(0699) 	      if ((iPreBit==1)&&(iNowBit==0))//1->0
    04F2 918000CA  LDS	R24,_iPreBit
    04F4 3081      CPI	R24,1
    04F5 F451      BNE	0x0500
    04F6 902000C9  LDS	R2,_iNowBit
    04F8 2022      TST	R2
    04F9 F431      BNE	0x0500
(0700) 		  { iPreBit=0;
(0701) 		    iLow=1;
    04FA 2422      CLR	R2
    04FB 922000CA  STS	_iPreBit,R2
    04FD E081      LDI	R24,1
    04FE 938000C7  STS	_iLow,R24
(0702) 		  }
(0703) 		  if ((iPreBit==0)&&(iNowBit==1))//0->1
    0500 902000CA  LDS	R2,_iPreBit
    0502 2022      TST	R2
    0503 F009      BEQ	0x0505
    0504 C049      RJMP	0x054E
    0505 918000C9  LDS	R24,_iNowBit
    0507 3081      CPI	R24,1
    0508 F009      BEQ	0x050A
    0509 C044      RJMP	0x054E
(0704) 		  { iPreBit=1;
(0705) 		    //已经接收1Bit,根据占空比判断01
(0706) 			if (iLow>(iHight+iHight)) iNowBit=0;else iNowBit=1;
    050A E081      LDI	R24,1
    050B 938000CA  STS	_iPreBit,R24
    050D 902000C8  LDS	R2,_iHight
    050F 2C32      MOV	R3,R2
    0510 0C32      ADD	R3,R2
    0511 902000C7  LDS	R2,_iLow
    0513 1432      CP	R3,R2
    0514 F420      BCC	0x0519
    0515 2422      CLR	R2
    0516 922000C9  STS	_iNowBit,R2
    0518 C003      RJMP	0x051C
    0519 E081      LDI	R24,1
    051A 938000C9  STS	_iNowBit,R24
(0707) 
(0708) 			//Bit0在前,右移位
(0709) 			iPos=iBitCount/4;
(0710) 			iIrData[iPos]=iIrData[iPos]>>1;
    051C 902000C5  LDS	R2,_iBitCount
    051E 9426      LSR	R2
    051F 9426      LSR	R2
    0520 922000CB  STS	_iPos,R2
    0522 EB8C      LDI	R24,0xBC
    0523 E090      LDI	R25,0
    0524 2433      CLR	R3
    0525 0E28      ADD	R2,R24
    0526 1E39      ADC	R3,R25
    0527 01F1      MOVW	R30,R2
    0528 8040      LDD	R4,Z+0
    0529 9446      LSR	R4
    052A 8240      STD	Z+0,R4
(0711) 	            if (iNowBit==1)  iIrData[iPos]|=0x80;
    052B 918000C9  LDS	R24,_iNowBit
    052D 3081      CPI	R24,1
    052E F459      BNE	0x053A
    052F EB8C      LDI	R24,0xBC
    0530 E090      LDI	R25,0
    0531 902000CB  LDS	R2,_iPos
    0533 2433      CLR	R3
    0534 0E28      ADD	R2,R24
    0535 1E39      ADC	R3,R25
    0536 01F1      MOVW	R30,R2
    0537 8180      LDD	R24,Z+0
    0538 6880      ORI	R24,0x80
    0539 8380      STD	Z+0,R24
(0712) 			
(0713) 			iBitCount++;
(0714) 			if (iBitCount>=24)
    053A 918000C5  LDS	R24,_iBitCount
    053C 5F8F      SUBI	R24,0xFF
    053D 938000C5  STS	_iBitCount,R24
    053F 3188      CPI	R24,0x18
    0540 F030      BCS	0x0547
(0715) 			{ bIrCmdOk=1;
(0716) 			  iIrMode=0;
    0541 E081      LDI	R24,1
    0542 938000C4  STS	_bIrCmdOk,R24
    0544 2422      CLR	R2
    0545 922000C6  STS	_iIrMode,R2
(0717) 			  //bCmdOk=1;iCmd=10;//Test..
(0718) 			}
(0719) 			
(0720) 			iHight=1;//must!
    0547 E081      LDI	R24,1
    0548 938000C8  STS	_iHight,R24
(0721) 		  }
(0722) 	 	  break;
    054A C003      RJMP	0x054E
(0723)      default:
(0724) 	 	  iIrMode=0;
    054B 2422      CLR	R2
    054C 922000C6  STS	_iIrMode,R2
(0725) 		  break;
(0726)    }
(0727) }
    054E 9508      RET
(0728) //对红外命令判断操作
(0729) void CheckIrCmd()
(0730) {uchar i;
(0731)    bIrCmdOk=0;  
(0732)    if ((iIrData[0]>>4)==CUSTOMCODE)      //CUSTOMCODE ==9
_CheckIrCmd:
  i                    --> R16
    054F 2422      CLR	R2
    0550 922000C4  STS	_bIrCmdOk,R2
    0552 918000BC  LDS	R24,_iIrData
    0554 9582      SWAP	R24
    0555 708F      ANDI	R24,0xF
    0556 3089      CPI	R24,0x9
    0557 F439      BNE	0x055F
(0733)    i=(iIrData[2]+(iIrData[1]>>4));
    0558 918000BD  LDS	R24,_iIrData+1
    055A 9582      SWAP	R24
    055B 708F      ANDI	R24,0xF
    055C 910000BE  LDS	R16,_iIrData+2
    055E 0F08      ADD	R16,R24
(0734)    //BeepN(i&0x0f);
(0735)    switch (i)
    055F 2711      CLR	R17
    0560 3D00      CPI	R16,0xD0
    0561 E0E0      LDI	R30,0
    0562 071E      CPC	R17,R30
    0563 F409      BNE	0x0565
    0564 C040      RJMP	0x05A5
    0565 3D01      CPI	R16,0xD1
    0566 E0E0      LDI	R30,0
    0567 071E      CPC	R17,R30
    0568 F409      BNE	0x056A
    0569 C049      RJMP	0x05B3
    056A 3D02      CPI	R16,0xD2
    056B E0E0      LDI	R30,0
    056C 071E      CPC	R17,R30
    056D F409      BNE	0x056F
    056E C052      RJMP	0x05C1
    056F 3D04      CPI	R16,0xD4
    0570 E0E0      LDI	R30,0
    0571 071E      CPC	R17,R30
    0572 F159      BEQ	0x059E
    0573 3D08      CPI	R16,0xD8
    0574 E0E0      LDI	R30,0
    0575 071E      CPC	R17,R30
    0576 F101      BEQ	0x0597
    0577 3D09      CPI	R16,0xD9
    0578 E0E0      LDI	R30,0
    0579 071E      CPC	R17,R30
    057A F189      BEQ	0x05AC
    057B 3D0A      CPI	R16,0xDA
    057C E0E0      LDI	R30,0
    057D 071E      CPC	R17,R30
    057E F409      BNE	0x0580
    057F C03A      RJMP	0x05BA
    0580 3D0C      CPI	R16,0xDC
    0581 E0E0      LDI	R30,0
    0582 071E      CPC	R17,R30
    0583 F061      BEQ	0x0590
    0584 3D0D      CPI	R16,0xDD
    0585 E0E0      LDI	R30,0
    0586 071E      CPC	R17,R30
    0587 F009      BEQ	0x0589
    0588 C03E      RJMP	0x05C7
(0736)    { case POWER_ON:
(0737)         bCmdOk=1;iCmd=POWER_ON;
    0589 E081      LDI	R24,1
    058A 938000C3  STS	_bCmdOk,R24
    058C ED8D      LDI	R24,0xDD
    058D 938000C2  STS	_iCmd,R24
(0738)         break;
    058F C037      RJMP	0x05C7
(0739) 	 case STAND_BY:
(0740) 	    bCmdOk=1;iCmd=STAND_BY;
    0590 E081      LDI	R24,1
    0591 938000C3  STS	_bCmdOk,R24
    0593 ED8C      LDI	R24,0xDC
    0594 938000C2  STS	_iCmd,R24
(0741) 		break;
    0596 C030      RJMP	0x05C7
(0742) 	 case DMX:
(0743) 	    bCmdOk=1;iCmd=DMX;
    0597 E081      LDI	R24,1
    0598 938000C3  STS	_bCmdOk,R24
    059A ED88      LDI	R24,0xD8
    059B 938000C2  STS	_iCmd,R24
(0744) 		break;
    059D C029      RJMP	0x05C7
(0745) 	 case AUTO:
(0746) 	    bCmdOk=1;iCmd=AUTO;
    059E E081      LDI	R24,1
    059F 938000C3  STS	_bCmdOk,R24
    05A1 ED84      LDI	R24,0xD4
    05A2 938000C2  STS	_iCmd,R24
(0747) 		break;
    05A4 C022      RJMP	0x05C7
(0748) 	 case AUDIO:
(0749) 	    bCmdOk=1;iCmd=AUDIO;
    05A5 E081      LDI	R24,1
    05A6 938000C3  STS	_bCmdOk,R24
    05A8 ED80      LDI	R24,0xD0
    05A9 938000C2  STS	_iCmd,R24
(0750) 	    break;
    05AB C01B      RJMP	0x05C7
(0751) 	 case FADETIME_UP:
(0752) 	    bCmdOk=1;iCmd=FADETIME_UP;
    05AC E081      LDI	R24,1
    05AD 938000C3  STS	_bCmdOk,R24
    05AF ED89      LDI	R24,0xD9
    05B0 938000C2  STS	_iCmd,R24
(0753) 	    break;
    05B2 C014      RJMP	0x05C7
(0754) 	 case FADETIME_DOWN:
(0755) 	    bCmdOk=1;iCmd=FADETIME_DOWN;
    05B3 E081      LDI	R24,1
    05B4 938000C3  STS	_bCmdOk,R24
    05B6 ED81      LDI	R24,0xD1
    05B7 938000C2  STS	_iCmd,R24
(0756) 	    break;
    05B9 C00D      RJMP	0x05C7
(0757) 	 case PATTERN_UP:
(0758) 	    bCmdOk=1;iCmd=PATTERN_UP;
    05BA E081      LDI	R24,1
    05BB 938000C3  STS	_bCmdOk,R24
    05BD ED8A      LDI	R24,0xDA
    05BE 938000C2  STS	_iCmd,R24
(0759) 	    break;
    05C0 C006      RJMP	0x05C7
(0760) 	 case PATTERN_DOWN:
(0761) 	    bCmdOk=1;iCmd=PATTERN_DOWN;
    05C1 E081      LDI	R24,1
    05C2 938000C3  STS	_bCmdOk,R24
    05C4 ED82      LDI	R24,0xD2
    05C5 938000C2  STS	_iCmd,R24
(0762) 	    break;           
(0763)    }
(0764) }
    05C7 9508      RET
_ReadCmd:
    05C8 940E0616  CALL	push_gset1
(0765) 
(0766) //命令执行
(0767) void ReadCmd()
(0768) {
(0769)     bCmdOk=0;
(0770) 	//Beep();
(0771) 	switch (iCmd)
    05CA 2422      CLR	R2
    05CB 922000C3  STS	_bCmdOk,R2
    05CD 914000C2  LDS	R20,_iCmd
    05CF 2755      CLR	R21
    05D0 3D40      CPI	R20,0xD0
    05D1 E0E0      LDI	R30,0
    05D2 075E      CPC	R21,R30
    05D3 F121      BEQ	0x05F8
    05D4 3D41      CPI	R20,0xD1
    05D5 E0E0      LDI	R30,0
    05D6 075E      CPC	R21,R30
    05D7 F101      BEQ	0x05F8
    05D8 3D42      CPI	R20,0xD2
    05D9 E0E0      LDI	R30,0
    05DA 075E      CPC	R21,R30
    05DB F0D9      BEQ	0x05F7
    05DC 3D44      CPI	R20,0xD4
    05DD E0E0      LDI	R30,0
    05DE 075E      CPC	R21,R30
    05DF F0C1      BEQ	0x05F8
    05E0 3D48      CPI	R20,0xD8
    05E1 E0E0      LDI	R30,0
    05E2 075E      CPC	R21,R30
    05E3 F0A1      BEQ	0x05F8
    05E4 3D49      CPI	R20,0xD9
    05E5 E0E0      LDI	R30,0
    05E6 075E      CPC	R21,R30
    05E7 F081      BEQ	0x05F8
    05E8 3D4A      CPI	R20,0xDA
    05E9 E0E0      LDI	R30,0
    05EA 075E      CPC	R21,R30
    05EB F049      BEQ	0x05F5
    05EC 3D4C      CPI	R20,0xDC
    05ED E0E0      LDI	R30,0
    05EE 075E      CPC	R21,R30
    05EF F041      BEQ	0x05F8
    05F0 3D4D      CPI	R20,0xDD
    05F1 E0E0      LDI	R30,0
    05F2 075E      CPC	R21,R30
    05F3 F021      BEQ	0x05F8
    05F4 C003      RJMP	0x05F8
(0772) 	{
(0773) 	   case POWER_ON:
(0774) 	       
(0775) 	       break;
(0776) 	   case STAND_BY:
(0777) 	       
(0778) 	       break;
(0779) 	   case DMX:
(0780) 	       
(0781) 		   break;
(0782) 	   case AUTO:
(0783) 	      
(0784) 		   break;
(0785) 	   case AUDIO:
(0786) 	     
(0787) 		   break;
(0788) 	   case FADETIME_UP:
(0789) 	     
(0790) 		   break;
(0791) 	   case FADETIME_DOWN:
(0792) 	     
(0793) 		   break;
(0794) 	   case PATTERN_UP:
(0795) 	                      LED_DISPLAY_UP_DMX512();
    05F5 DC39      RCALL	_LED_DISPLAY_UP_DMX512
(0796) 		   break;
    05F6 C001      RJMP	0x05F8
(0797)            case PATTERN_DOWN:
(0798) 	                      LED_DISPLAY_DOWN_DMX512();
    05F7 DD42      RCALL	_LED_DISPLAY_DOWN_DMX512
(0799) 		   break;		   	   	   	   
(0800) 	}
(0801) }
FILE: <library>
    05F8 940E0619  CALL	pop_gset1
    05FA 9508      RET
mod8u:
    05FB 9468      BSET	6
    05FC C001      RJMP	xdiv8u
div8u:
    05FD 94E8      BCLR	6
xdiv8u:
    05FE 932A      ST	R18,-Y
    05FF 92FA      ST	R15,-Y
    0600 92EA      ST	R14,-Y
    0601 24FF      CLR	R15
    0602 24EE      CLR	R14
    0603 E120      LDI	R18,0x10
    0604 0F00      LSL	R16
    0605 1CFF      ROL	R15
    0606 1CEE      ROL	R14
    0607 16E1      CP	R14,R17
    0608 F010      BCS	0x060B
    0609 1AE1      SUB	R14,R17
    060A 9503      INC	R16
    060B 952A      DEC	R18
    060C F7B9      BNE	0x0604
    060D F40E      BRTC	0x060F
    060E 2D0E      MOV	R16,R14
    060F 90E9      LD	R14,Y+
    0610 90F9      LD	R15,Y+
    0611 9129      LD	R18,Y+
    0612 9508      RET
pop_gset2:
    0613 E0E2      LDI	R30,2
    0614 940C061A  JMP	pop
push_gset1:
    0616 935A      ST	R21,-Y
    0617 934A      ST	R20,-Y
    0618 9508      RET
pop_gset1:
    0619 E0E1      LDI	R30,1
pop:
    061A 9149      LD	R20,Y+
    061B 9159      LD	R21,Y+
    061C FDE0      SBRC	R30,0
    061D 9508      RET
    061E 9169      LD	R22,Y+
    061F 9179      LD	R23,Y+
    0620 FDE1      SBRC	R30,1
    0621 9508      RET
    0622 90A9      LD	R10,Y+
    0623 90B9      LD	R11,Y+
    0624 FDE2      SBRC	R30,2
    0625 9508      RET
    0626 90C9      LD	R12,Y+
    0627 90D9      LD	R13,Y+
    0628 FDE3      SBRC	R30,3
    0629 9508      RET
    062A 90E9      LD	R14,Y+
    062B 90F9      LD	R15,Y+
    062C 9508      RET
push_gset2:
    062D 937A      ST	R23,-Y
    062E 936A      ST	R22,-Y
    062F 940C0616  JMP	push_gset1
push_lset:
    0631 93FA      ST	R31,-Y
    0632 93EA      ST	R30,-Y
    0633 93BA      ST	R27,-Y
    0634 93AA      ST	R26,-Y
    0635 939A      ST	R25,-Y
    0636 938A      ST	R24,-Y
    0637 933A

⌨️ 快捷键说明

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