📄 接受.s
字号:
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 + -