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

📄 rec.lst

📁 利用MEGA8控制RF02无线芯片接收RF01发送的四路数据
💻 LST
📖 第 1 页 / 共 2 页
字号:
      BF BE2B      OUT	0x3B,R2
      C0 9508      RET
_Delay_ms:
  i                    --> R10
  p                    --> R20
  amS                  --> R16
      C1 92AA      ST	R10,-Y
      C2 934A      ST	R20,-Y
(0167) }
(0168) 
(0169) /*延时*/
(0170) void Delay_ms(uchar amS)
(0171) {
(0172)   uchar i,p;
(0173)   for(i=0;i<amS;i++)
      C3 24AA      CLR	R10
      C4 C006      RJMP	0x00CB
(0174)     for(p=0;p<200;p++)
      C5 2744      CLR	R20
      C6 C001      RJMP	0x00C8
      C7 9543      INC	R20
      C8 3C48      CPI	R20,0xC8
      C9 F3E8      BCS	0x00C7
      CA 94A3      INC	R10
      CB 16A0      CP	R10,R16
      CC F3C0      BCS	0x00C5
      CD 9149      LD	R20,Y+
      CE 90A9      LD	R10,Y+
      CF 9508      RET
(0175) 	 ;
(0176) }
(0177) 
(0178) /*主程序*/
(0179) void main(void)
(0180) {
(0181)   uint i,p,q,counter=0,temp;
_main:
  counter              --> R10
  temp                 --> R10
  i                    --> R20
  p                    --> R22
  q                    --> R10
      D0 24AA      CLR	R10
      D1 24BB      CLR	R11
(0182)   
(0183)   for(p=0;p<10000;p++)
      D2 2766      CLR	R22
      D3 2777      CLR	R23
      D4 C00D      RJMP	0x00E2
(0184)     for(q=0;q<123;q++)
      D5 24AA      CLR	R10
      D6 24BB      CLR	R11
      D7 C003      RJMP	0x00DB
      D8 01C5      MOVW	R24,R10
      D9 9601      ADIW	R24,1
      DA 015C      MOVW	R10,R24
      DB 01C5      MOVW	R24,R10
      DC 378B      CPI	R24,0x7B
      DD E0E0      LDI	R30,0
      DE 079E      CPC	R25,R30
      DF F3C0      BCS	0x00D8
      E0 5F6F      SUBI	R22,0xFF
      E1 4F7F      SBCI	R23,0xFF
      E2 3160      CPI	R22,0x10
      E3 E2E7      LDI	R30,0x27
      E4 077E      CPC	R23,R30
      E5 F378      BCS	0x00D5
(0185) 	  ;
(0186)  
(0187)   init_main();
      E6 DFA2      RCALL	_init_main
(0188)     
(0189)   i=0; 
      E7 2744      CLR	R20
      E8 2755      CLR	R21
      E9 C0D1      RJMP	0x01BB
(0190)   while(1)
(0191)   { 
(0192)     while(!(PIND&(1<<2)))
(0193)       RF_RXBUF[i++]=RF01_RDFIFO();//read FIFO data
      EA 011A      MOVW	R2,R20
      EB 5F4F      SUBI	R20,0xFF
      EC 4F5F      SBCI	R21,0xFF
      ED 922F      PUSH	R2
      EE 923F      PUSH	R3
      EF DF6C      RCALL	_RF01_RDFIFO
      F0 903F      POP	R3
      F1 902F      POP	R2
      F2 E68A      LDI	R24,0x6A
      F3 E090      LDI	R25,0
      F4 01F1      MOVW	R30,R2
      F5 0FE8      ADD	R30,R24
      F6 1FF9      ADC	R31,R25
      F7 8300      STD	Z+0,R16
      F8 9B82      SBIS	0x10,2
      F9 CFF0      RJMP	0x00EA
(0194)       if(i==5)  //更新数据
      FA 3045      CPI	R20,5
      FB E0E0      LDI	R30,0
      FC 075E      CPC	R21,R30
      FD F009      BEQ	0x00FF
      FE C038      RJMP	0x0137
(0195)       {
(0196)         i=0;
      FF 2744      CLR	R20
     100 2755      CLR	R21
(0197)         RFXX_WRT_CMD(0xCE88);//reset FIFO for next frame recognition
     101 E808      LDI	R16,0x88
     102 EC1E      LDI	R17,0xCE
     103 DF3C      RCALL	_RFXX_WRT_CMD
(0198)         RFXX_WRT_CMD(0xCE8B);
     104 E80B      LDI	R16,0x8B
     105 EC1E      LDI	R17,0xCE
     106 DF39      RCALL	_RFXX_WRT_CMD
(0199) 
(0200)         ch0=RF_RXBUF[0];
     107 9020 006A LDS	R2,RF_RXBUF
     109 9220 0069 STS	ch0,R2
(0201)         ch1=RF_RXBUF[1];
     10B 9020 006B LDS	R2,RF_RXBUF+1
     10D 9220 0068 STS	ch1,R2
(0202)         ch2=RF_RXBUF[2];
     10F 9020 006C LDS	R2,RF_RXBUF+2
     111 9220 0067 STS	ch2,R2
(0203)         ch3=RF_RXBUF[3];
     113 9020 006D LDS	R2,RF_RXBUF+3
     115 9220 0066 STS	ch3,R2
(0204) 		
(0205)         Transmit(ch0);
     117 9100 0069 LDS	R16,ch0
     119 DF61      RCALL	_Transmit
(0206)         Transmit(ch1);
     11A 9100 0068 LDS	R16,ch1
     11C DF5E      RCALL	_Transmit
(0207)         Transmit(ch2);
     11D 9100 0067 LDS	R16,ch2
     11F DF5B      RCALL	_Transmit
(0208)         Transmit(ch3);
     120 9100 0066 LDS	R16,ch3
     122 DF58      RCALL	_Transmit
(0209) 		
(0210) 		for(p=0;p<55;p++)
     123 2766      CLR	R22
     124 2777      CLR	R23
     125 C00D      RJMP	0x0133
(0211) 		  for(q=0;q<123;q++)
     126 24AA      CLR	R10
     127 24BB      CLR	R11
     128 C003      RJMP	0x012C
     129 01C5      MOVW	R24,R10
     12A 9601      ADIW	R24,1
     12B 015C      MOVW	R10,R24
     12C 01C5      MOVW	R24,R10
     12D 378B      CPI	R24,0x7B
     12E E0E0      LDI	R30,0
     12F 079E      CPC	R25,R30
     130 F3C0      BCS	0x0129
     131 5F6F      SUBI	R22,0xFF
     132 4F7F      SBCI	R23,0xFF
     133 3367      CPI	R22,0x37
     134 E0E0      LDI	R30,0
     135 077E      CPC	R23,R30
     136 F378      BCS	0x0126
(0212) 		    ;
(0213)       } 
(0214) 	 count1++;
     137 9180 0060 LDS	R24,count1
     139 9190 0061 LDS	R25,count1+1
     13B 9601      ADIW	R24,1
     13C 9390 0061 STS	count1+1,R25
     13E 9380 0060 STS	count1,R24
(0215) 	 if(count1==6)
     140 3086      CPI	R24,6
     141 E0E0      LDI	R30,0
     142 079E      CPC	R25,R30
     143 F009      BEQ	0x0145
     144 C076      RJMP	0x01BB
(0216) 	 {
(0217) 	   PORTB^=0x01;
     145 E081      LDI	R24,1
     146 B228      IN	R2,0x18
     147 2628      EOR	R2,R24
     148 BA28      OUT	0x18,R2
(0218) 	   count1=0;
     149 2422      CLR	R2
     14A 2433      CLR	R3
     14B 9230 0061 STS	count1+1,R3
     14D 9220 0060 STS	count1,R2
(0219) 	   count2++;
     14F 9180 0062 LDS	R24,count2
     151 9190 0063 LDS	R25,count2+1
     153 9601      ADIW	R24,1
     154 9390 0063 STS	count2+1,R25
     156 9380 0062 STS	count2,R24
(0220) 	   if(count2==760)  //20ms
     158 3F88      CPI	R24,0xF8
     159 E0E2      LDI	R30,2
     15A 079E      CPC	R25,R30
     15B F449      BNE	0x0165
(0221) 	   {
(0222) 	    PORTB^=0x02;
     15C E082      LDI	R24,2
     15D B228      IN	R2,0x18
     15E 2628      EOR	R2,R24
     15F BA28      OUT	0x18,R2
(0223) 	    count2=0;
     160 2422      CLR	R2
     161 9230 0063 STS	count2+1,R3
     163 9220 0062 STS	count2,R2
(0224) 	   }
(0225) 	   if(count2<38)  //1ms
     165 9180 0062 LDS	R24,count2
     167 9190 0063 LDS	R25,count2+1
     169 3286      CPI	R24,0x26
     16A E0E0      LDI	R30,0
     16B 079E      CPC	R25,R30
     16C F420      BCC	0x0171
(0226) 	    { 
(0227) 		  PORTD|=0xE0;
     16D B382      IN	R24,0x12
     16E 6E80      ORI	R24,0xE0
     16F BB82      OUT	0x12,R24
(0228) 	    }
     170 C023      RJMP	0x0194
(0229) 	   else
(0230) 	    { 
(0231) 		 temp=count2/3;
     171 E023      LDI	R18,3
     172 E030      LDI	R19,0
     173 9100 0062 LDS	R16,count2
     175 9110 0063 LDS	R17,count2+1
     177 D047      RCALL	div16u
     178 0158      MOVW	R10,R16
(0232) 		 if(temp<ch0)  PORTD|=0x20;
     179 9020 0069 LDS	R2,ch0
     17B 2433      CLR	R3
     17C 1502      CP	R16,R2
     17D 0513      CPC	R17,R3
     17E F410      BCC	0x0181
     17F 9A95      SBI	0x12,5
     180 C001      RJMP	0x0182
(0233) 		 else 		   PORTD&=~0x20;
     181 9895      CBI	0x12,5
(0234) 		  
(0235) 		 if(temp<ch1)  PORTD|=0x40;
     182 9020 0068 LDS	R2,ch1
     184 2433      CLR	R3
     185 14A2      CP	R10,R2
     186 04B3      CPC	R11,R3
     187 F410      BCC	0x018A
     188 9A96      SBI	0x12,6
     189 C001      RJMP	0x018B
(0236) 		 else 		   PORTD&=~0x40;
     18A 9896      CBI	0x12,6
(0237) 		  
(0238) 		 if(temp<ch3)  PORTD|=0x80;
     18B 9020 0066 LDS	R2,ch3
     18D 2433      CLR	R3
     18E 14A2      CP	R10,R2
     18F 04B3      CPC	R11,R3
     190 F410      BCC	0x0193
     191 9A97      SBI	0x12,7
     192 C001      RJMP	0x0194
(0239) 		 else		   PORTD&=~0x80;
     193 9897      CBI	0x12,7
(0240) 		}
(0241) 	   speed++;
     194 9180 0064 LDS	R24,speed
     196 9190 0065 LDS	R25,speed+1
     198 9601      ADIW	R24,1
     199 9390 0065 STS	speed+1,R25
     19B 9380 0064 STS	speed,R24
(0242) 	   if(speed>255)
     19D EF8F      LDI	R24,0xFF
     19E E090      LDI	R25,0
     19F 9020 0064 LDS	R2,speed
     1A1 9030 0065 LDS	R3,speed+1
     1A3 1582      CP	R24,R2
     1A4 0593      CPC	R25,R3
     1A5 F440      BCC	0x01AE
(0243) 	   {
(0244) 	    speed=0;
     1A6 2422      CLR	R2
     1A7 2433      CLR	R3
     1A8 9230 0065 STS	speed+1,R3
     1AA 9220 0064 STS	speed,R2
(0245) 		PORTC&=~0x10;
     1AC 98AC      CBI	0x15,4
(0246) 	   }
     1AD C00D      RJMP	0x01BB
(0247) 	   else if(speed<ch2) 
     1AE 9020 0067 LDS	R2,ch2
     1B0 2433      CLR	R3
     1B1 9040 0064 LDS	R4,speed
     1B3 9050 0065 LDS	R5,speed+1
     1B5 1442      CP	R4,R2
     1B6 0453      CPC	R5,R3
     1B7 F410      BCC	0x01BA
(0248) 	    { PORTC|=0x10;}
     1B8 9AAC      SBI	0x15,4
     1B9 C001      RJMP	0x01BB
(0249) 	   else
(0250) 	   {   PORTC&=~0x10; }
FILE: <library>
     1BA 98AC      CBI	0x15,4
     1BB CF3C      RJMP	0x00F8
     1BC 9508      RET
mod16u:
     1BD 9468      BSET	6
     1BE C001      RJMP	xdiv16u
div16u:
     1BF 94E8      BCLR	6
xdiv16u:
     1C0 92EA      ST	R14,-Y
     1C1 92FA      ST	R15,-Y
     1C2 938A      ST	R24,-Y
     1C3 24EE      CLR	R14
     1C4 24FF      CLR	R15
     1C5 E180      LDI	R24,0x10
     1C6 0F00      LSL	R16
     1C7 1F11      ROL	R17
     1C8 1CEE      ROL	R14
     1C9 1CFF      ROL	R15
     1CA 16E2      CP	R14,R18
     1CB 06F3      CPC	R15,R19
     1CC F018      BCS	0x01D0
     1CD 1AE2      SUB	R14,R18
     1CE 0AF3      SBC	R15,R19
     1CF 9503      INC	R16
     1D0 958A      DEC	R24
     1D1 F7A1      BNE	0x01C6
     1D2 F416      BRTC	0x01D5
     1D3 2D0E      MOV	R16,R14
     1D4 2D1F      MOV	R17,R15
     1D5 9189      LD	R24,Y+
     1D6 90F9      LD	R15,Y+
     1D7 90E9      LD	R14,Y+
     1D8 9508      RET
push_xgsetF000:
     1D9 937A      ST	R23,-Y
     1DA 936A      ST	R22,-Y
     1DB 935A      ST	R21,-Y
     1DC 934A      ST	R20,-Y
     1DD 9508      RET
pop_xgsetF000:
     1DE 9149      LD	R20,Y+
     1DF 9159      LD	R21,Y+
     1E0 9169      LD	R22,Y+
     1E1 9179      LD	R23,Y+
     1E2 9508      RET

⌨️ 快捷键说明

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