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

📄 接受.s

📁 利用MEGA8控制RF02无线芯片接收RF01发送的四路数据
💻 S
📖 第 1 页 / 共 2 页
字号:
	out 0x3b,R2
	.dbline -2
L27:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Delay_ms _Delay_ms fV
;              i -> R10
;              p -> R20
;            amS -> R16
	.even
_Delay_ms::
	st -y,R10
	st -y,R20
	.dbline -1
	.dbline 171
; }
; 
; /*延时*/
; void Delay_ms(uchar amS)
; {
	.dbline 173
;   uchar i,p;
;   for(i=0;i<amS;i++)
	clr R10
	rjmp L32
L29:
	.dbline 174
;     for(p=0;p<200;p++)
	clr R20
	rjmp L36
L33:
	.dbline 175
; 	 ;
L34:
	.dbline 174
	inc R20
L36:
	.dbline 174
	cpi R20,200
	brlo L33
X7:
L30:
	.dbline 173
	inc R10
L32:
	.dbline 173
	cp R10,R16
	brlo L29
X8:
	.dbline -2
L28:
	.dbline 0 ; func end
	ld R20,y+
	ld R10,y+
	ret
	.dbsym r i 10 c
	.dbsym r p 20 c
	.dbsym r amS 16 c
	.dbend
	.dbfunc e main _main fV
;        counter -> R10,R11
;           temp -> R10,R11
;              i -> R20,R21
;              p -> R22,R23
;              q -> R10,R11
	.even
_main::
	.dbline -1
	.dbline 180
; }
; 
; /*主程序*/
; void main(void)
; {
	.dbline 181
;   uint i,p,q,counter=0,temp;
	clr R10
	clr R11
	.dbline 183
;   
;   for(p=0;p<10000;p++)
	clr R22
	clr R23
	rjmp L41
L38:
	.dbline 184
;     for(q=0;q<123;q++)
	clr R10
	clr R11
	rjmp L45
L42:
	.dbline 185
; 	  ;
L43:
	.dbline 184
	movw R24,R10
	adiw R24,1
	movw R10,R24
L45:
	.dbline 184
	movw R24,R10
	cpi R24,123
	ldi R30,0
	cpc R25,R30
	brlo L42
X9:
L39:
	.dbline 183
	subi R22,255  ; offset = 1
	sbci R23,255
L41:
	.dbline 183
	cpi R22,16
	ldi R30,39
	cpc R23,R30
	brlo L38
X10:
	.dbline 187
;  
;   init_main();
	rcall _init_main
	.dbline 189
;     
;   i=0; 
	clr R20
	clr R21
	rjmp L47
L49:
	.dbline 193
;   while(1)
;   { 
;     while(!(PIND&(1<<2)))
;       RF_RXBUF[i++]=RF01_RDFIFO();//read FIFO data
	movw R2,R20
	subi R20,255  ; offset = 1
	sbci R21,255
	push R2
	push R3
	rcall _RF01_RDFIFO
	pop R3
	pop R2
	ldi R24,<_RF_RXBUF
	ldi R25,>_RF_RXBUF
	movw R30,R2
	add R30,R24
	adc R31,R25
	std z+0,R16
L50:
	.dbline 192
	sbis 0x10,2
	rjmp L49
X11:
	.dbline 194
;       if(i==5)  //更新数据
	cpi R20,5
	ldi R30,0
	cpc R21,R30
	breq X24
	rjmp L52
X24:
X12:
	.dbline 195
;       {
	.dbline 196
;         i=0;
	clr R20
	clr R21
	.dbline 197
;         RFXX_WRT_CMD(0xCE88);//reset FIFO for next frame recognition
	ldi R16,52872
	ldi R17,206
	rcall _RFXX_WRT_CMD
	.dbline 198
;         RFXX_WRT_CMD(0xCE8B);
	ldi R16,52875
	ldi R17,206
	rcall _RFXX_WRT_CMD
	.dbline 200
; 
;         ch0=RF_RXBUF[0];
	lds R2,_RF_RXBUF
	sts _ch0,R2
	.dbline 201
;         ch1=RF_RXBUF[1];
	lds R2,_RF_RXBUF+1
	sts _ch1,R2
	.dbline 202
;         ch2=RF_RXBUF[2];
	lds R2,_RF_RXBUF+2
	sts _ch2,R2
	.dbline 203
;         ch3=RF_RXBUF[3];
	lds R2,_RF_RXBUF+3
	sts _ch3,R2
	.dbline 205
; 		
;         Transmit(ch0);
	lds R16,_ch0
	rcall _Transmit
	.dbline 206
;         Transmit(ch1);
	lds R16,_ch1
	rcall _Transmit
	.dbline 207
;         Transmit(ch2);
	lds R16,_ch2
	rcall _Transmit
	.dbline 208
;         Transmit(ch3);
	lds R16,_ch3
	rcall _Transmit
	.dbline 210
; 		
; 		for(p=0;p<55;p++)
	clr R22
	clr R23
	rjmp L60
L57:
	.dbline 211
; 		  for(q=0;q<123;q++)
	clr R10
	clr R11
	rjmp L64
L61:
	.dbline 212
; 		    ;
L62:
	.dbline 211
	movw R24,R10
	adiw R24,1
	movw R10,R24
L64:
	.dbline 211
	movw R24,R10
	cpi R24,123
	ldi R30,0
	cpc R25,R30
	brlo L61
X13:
L58:
	.dbline 210
	subi R22,255  ; offset = 1
	sbci R23,255
L60:
	.dbline 210
	cpi R22,55
	ldi R30,0
	cpc R23,R30
	brlo L57
X14:
	.dbline 213
;       } 
L52:
	.dbline 214
; 	 count1++;
	lds R24,_count1
	lds R25,_count1+1
	adiw R24,1
	sts _count1+1,R25
	sts _count1,R24
	.dbline 215
; 	 if(count1==6)
	cpi R24,6
	ldi R30,0
	cpc R25,R30
	breq X25
	rjmp L65
X25:
X15:
	.dbline 216
; 	 {
	.dbline 217
; 	   PORTB^=0x01;
	ldi R24,1
	in R2,0x18
	eor R2,R24
	out 0x18,R2
	.dbline 218
; 	   count1=0;
	clr R2
	clr R3
	sts _count1+1,R3
	sts _count1,R2
	.dbline 219
; 	   count2++;
	lds R24,_count2
	lds R25,_count2+1
	adiw R24,1
	sts _count2+1,R25
	sts _count2,R24
	.dbline 220
; 	   if(count2==760)  //20ms
	cpi R24,248
	ldi R30,2
	cpc R25,R30
	brne L67
X16:
	.dbline 221
; 	   {
	.dbline 222
; 	    PORTB^=0x02;
	ldi R24,2
	in R2,0x18
	eor R2,R24
	out 0x18,R2
	.dbline 223
; 	    count2=0;
	clr R2
	sts _count2+1,R3
	sts _count2,R2
	.dbline 224
; 	   }
L67:
	.dbline 225
; 	   if(count2<38)  //1ms
	lds R24,_count2
	lds R25,_count2+1
	cpi R24,38
	ldi R30,0
	cpc R25,R30
	brsh L69
X17:
	.dbline 226
; 	    { 
	.dbline 227
; 		  PORTD|=0xE0;
	in R24,0x12
	ori R24,224
	out 0x12,R24
	.dbline 228
; 	    }
	rjmp L70
L69:
	.dbline 230
; 	   else
; 	    { 
	.dbline 231
; 		 temp=count2/3;
	ldi R18,3
	ldi R19,0
	lds R16,_count2
	lds R17,_count2+1
	rcall div16u
	movw R10,R16
	.dbline 232
; 		 if(temp<ch0)  PORTD|=0x20;
	lds R2,_ch0
	clr R3
	cp R16,R2
	cpc R17,R3
	brsh L71
X18:
	.dbline 232
	sbi 0x12,5
	rjmp L72
L71:
	.dbline 233
; 		 else 		   PORTD&=~0x20;
	cbi 0x12,5
L72:
	.dbline 235
; 		  
; 		 if(temp<ch1)  PORTD|=0x40;
	lds R2,_ch1
	clr R3
	cp R10,R2
	cpc R11,R3
	brsh L73
X19:
	.dbline 235
	sbi 0x12,6
	rjmp L74
L73:
	.dbline 236
; 		 else 		   PORTD&=~0x40;
	cbi 0x12,6
L74:
	.dbline 238
; 		  
; 		 if(temp<ch3)  PORTD|=0x80;
	lds R2,_ch3
	clr R3
	cp R10,R2
	cpc R11,R3
	brsh L75
X20:
	.dbline 238
	sbi 0x12,7
	rjmp L76
L75:
	.dbline 239
; 		 else		   PORTD&=~0x80;
	cbi 0x12,7
L76:
	.dbline 240
; 		}
L70:
	.dbline 241
; 	   speed++;
	lds R24,_speed
	lds R25,_speed+1
	adiw R24,1
	sts _speed+1,R25
	sts _speed,R24
	.dbline 242
; 	   if(speed>255)
	ldi R24,255
	ldi R25,0
	lds R2,_speed
	lds R3,_speed+1
	cp R24,R2
	cpc R25,R3
	brsh L77
X21:
	.dbline 243
; 	   {
	.dbline 244
; 	    speed=0;
	clr R2
	clr R3
	sts _speed+1,R3
	sts _speed,R2
	.dbline 245
; 		PORTC&=~0x10;
	cbi 0x15,4
	.dbline 246
; 	   }
	rjmp L78
L77:
	.dbline 247
; 	   else if(speed<ch2) 
	lds R2,_ch2
	clr R3
	lds R4,_speed
	lds R5,_speed+1
	cp R4,R2
	cpc R5,R3
	brsh L79
X22:
	.dbline 248
; 	    { PORTC|=0x10;}
	.dbline 248
	sbi 0x15,4
	.dbline 248
	rjmp L80
L79:
	.dbline 250
; 	   else
; 	   {   PORTC&=~0x10; }
	.dbline 250
	cbi 0x15,4
	.dbline 250
L80:
L78:
	.dbline 251
; 	 }
L65:
	.dbline 253
; 	 
;    }//while1
L47:
	.dbline 190
	rjmp L50
X23:
	.dbline -2
L37:
	.dbline 0 ; func end
	ret
	.dbsym r counter 10 i
	.dbsym r temp 10 i
	.dbsym r i 20 i
	.dbsym r p 22 i
	.dbsym r q 10 i
	.dbend
	.area bss(ram, con, rel)
	.dbfile F:\915M\接受\接受.c
_ch3::
	.blkb 1
	.dbsym e ch3 _ch3 c
_ch2::
	.blkb 1
	.dbsym e ch2 _ch2 c
_ch1::
	.blkb 1
	.dbsym e ch1 _ch1 c
_ch0::
	.blkb 1
	.dbsym e ch0 _ch0 c
_RF_RXBUF::
	.blkb 4
	.dbsym e RF_RXBUF _RF_RXBUF A[4:4]c
;   }//main
;     
;     
;     
;     

⌨️ 快捷键说明

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