📄 2.4g+̤
字号:
0002 ; #define nRF24L01_CSN_DIR SETBIT(DDRD, nRF24L01_CSN) //OUTPUT
0002 ;
0002 ; #define nRF24L01_SCKH SETBIT(PORTD,nRF24L01_SCK)
0002 ; #define nRF24L01_SCKL CLEARBIT(PORTD,nRF24L01_SCK)
0002 ; #define nRF24L01_SCK_DIR SETBIT(DDRD,nRF24L01_SCK) //OUTPUT
0002 ;
0002 ; #define nRF24L01_MOSIH SETBIT(PORTB,nRF24L01_MOSI)
0002 ; #define nRF24L01_MOSIL CLEARBIT(PORTB,nRF24L01_MOSI)
0002 ; #define nRF24L01_MOSI_DIR SETBIT(DDRB,nRF24L01_MOSI)
0002 ;
0002 ; #define nRF24L01_CEH SETBIT(PORTD,nRF24L01_CE) //OUTPUT
0002 ; #define nRF24L01_CEL CLEARBIT(PORTD,nRF24L01_CE)
0002 ; #define nRF24L01_CE_DIR SETBIT(DDRD,nRF24L01_CE)
0002 ;
0002 ; #define nRF24L01_IRQ_DIR CLEARBIT(DDRB,nRF24L01_IRQ) //INPUT
0002 ;
0002 ; #define nRF24L01_MISO_DIR CLEARBIT(DDRB,nRF24L01_MISO) //INPUT
0002 ; #define key1 BIT5
0002 ; #define key2 BIT6
0002 ; #define key3 BIT7
0002 ; #define key4 BIT0
0002 ; #define key5 BIT1
0002 ; #define key6 BIT2
0002 ; #define bit20ms BIT0
0002 ; unsigned char flag;
0002 ; unsigned char key1_pulse;
0002 ; unsigned char key2_pulse;
0002 ; unsigned char key3_pulse;
0002 ; unsigned char key4_pulse;
0002 ; unsigned char key5_pulse;
0002 ; unsigned char key6_pulse;
0002 ; unsigned char key1_flag;
0002 ; unsigned char key2_flag;
0002 ; unsigned char key3_flag;
0002 ; unsigned char key4_flag;
0002 ; unsigned char key5_flag;
0002 ; unsigned char key6_flag;
0002 ; unsigned char send_flag;
0002 ; unsigned char key1_time;
0002 ; unsigned char key2_time;
0002 ; unsigned char key3_time;
0002 ; unsigned char key4_time;
0002 ; unsigned char key5_time;
0002 ; unsigned char key6_time;
0002 ;
0002 ; //-----------------------------------------------------------------------------
0002 ; void main(void)
0002 ; {
0002 .dbline 150
0002 ; unsigned char Get_SO=0;
0002 4427 clr R20
0004 .dbline 151
0004 ; CLI(); /* global interrupt disable */
0004 F894 cli
0006 .dbline 152
0006 ; init_CPU ();
0006 67D0 rcall _init_CPU
0008 .dbline 153
0008 ; delayms(100); //延时10ms*10=100ms
0008 04E6 ldi R16,100
000A 10E0 ldi R17,0
000C 8CD0 rcall _delayms
000E .dbline 154
000E ; delayms(100); //延时10ms*10=100ms
000E 04E6 ldi R16,100
0010 10E0 ldi R17,0
0012 89D0 rcall _delayms
0014 .dbline 155
0014 ; RX_Mode();
0014 00D1 rcall _RX_Mode
0016 .dbline 156
0016 ; send_flag=0;
0016 2224 clr R2
0018 20924600 sts _send_flag,R2
001C 52C0 rjmp L3
001E L2:
001E .dbline 158
001E ; while(1)
001E ; {
001E .dbline 160
001E ; // if(!(PINB& 0x01))
001E ; WDR();
001E A895 wdr
0020 .dbline 161
0020 ; if(!(PINB& nRF24L01_IRQ))
0020 1A99 sbic 0x3,2
0022 22C0 rjmp L5
0024 .dbline 162
0024 ; {//nRF24L01 接收数据
0024 .dbline 163
0024 ; key_debug=SPI_Read(STATUS); // read register STATUS's value
0024 07E0 ldi R16,7
0026 B7D0 rcall _SPI_Read
0028 00931400 sts _key_debug,R16
002C .dbline 164
002C ; if(key_debug&RX_DR) // if renRF24L01_CEive data ready (RX_DR) interrupt
002C 06FF sbrs R16,6
002E 06C0 rjmp L7
0030 .dbline 165
0030 ; SPI_Read_Buf(RD_RX_PLOAD,Buffer,TX_PLOAD_WIDTH);// read renRF24L01_CEive payload from RX_FIFO buffer
0030 84E1 ldi R24,20
0032 8883 std y+0,R24
0034 20E0 ldi R18,<_Buffer
0036 30E0 ldi R19,>_Buffer
0038 01E6 ldi R16,97
003A BBD0 rcall _SPI_Read_Buf
003C L7:
003C .dbline 166
003C ; if(key_debug&MAX_RT) SPI_RW_Reg(FLUSH_TX,0);
003C 20901400 lds R2,_key_debug
0040 24FE sbrs R2,4
0042 03C0 rjmp L9
0044 .dbline 166
0044 2227 clr R18
0046 01EE ldi R16,225
0048 97D0 rcall _SPI_RW_Reg
004A L9:
004A .dbline 167
004A ; SPI_RW_Reg(WRITE_REG+STATUS,0xff);// clear RX_DR or TX_DS or MAX_RT interrupt flag
004A 2FEF ldi R18,255
004C 07E2 ldi R16,39
004E 94D0 rcall _SPI_RW_Reg
0050 .dbline 168
0050 ; RX_Mode();
0050 E2D0 rcall _RX_Mode
0052 .dbline 169
0052 ; if((Buffer[0]==80)&&(Buffer[1]==02))//data accept
0052 80910000 lds R24,_Buffer
0056 8035 cpi R24,80
0058 39F4 brne L11
005A 80910100 lds R24,_Buffer+1
005E 8230 cpi R24,2
0060 19F4 brne L11
0062 .dbline 170
0062 ; {
0062 .dbline 171
0062 ; accept_flag=1;
0062 81E0 ldi R24,1
0064 80934500 sts _accept_flag,R24
0068 .dbline 175
0068 ; // PORTB = 0x80;
0068 ; // delayms(5000); //延时10ms*10=100ms
0068 ; // PORTB = 0x00;
0068 ; }
0068 L11:
0068 .dbline 176
0068 ; }
0068 L5:
0068 .dbline 177
0068 ; if(send_flag==1)
0068 80914600 lds R24,_send_flag
006C 8130 cpi R24,1
006E D1F4 brne L14
0070 .dbline 178
0070 ; {
0070 .dbline 179
0070 ; accept_time++;
0070 80914700 lds R24,_accept_time
0074 90914800 lds R25,_accept_time+1
0078 0196 adiw R24,1
007A 90934800 sts _accept_time+1,R25
007E 80934700 sts _accept_time,R24
0082 .dbline 181
0082 ; // PORTB = 0x00;
0082 ; if(accept_time>1000)
0082 88EE ldi R24,1000
0084 93E0 ldi R25,3
0086 20904700 lds R2,_accept_time
008A 30904800 lds R3,_accept_time+1
008E 8215 cp R24,R2
0090 9305 cpc R25,R3
0092 40F4 brsh L16
0094 .dbline 182
0094 ; {
0094 .dbline 183
0094 ; send_flag=0;
0094 2224 clr R2
0096 20924600 sts _send_flag,R2
009A .dbline 184
009A ; accept_time=0;
009A 3324 clr R3
009C 30924800 sts _accept_time+1,R3
00A0 20924700 sts _accept_time,R2
00A4 .dbline 185
00A4 ; }
00A4 L16:
00A4 .dbline 186
00A4 ; }
00A4 L14:
00A4 .dbline 187
00A4 ; if(accept_flag==1)
00A4 80914500 lds R24,_accept_flag
00A8 8130 cpi R24,1
00AA 59F4 brne L18
00AC .dbline 188
00AC ; {
00AC .dbline 189
00AC ; accept_flag=0;
00AC 2224 clr R2
00AE 20924500 sts _accept_flag,R2
00B2 .dbline 190
00B2 ; PORTB = 0x80;
00B2 80E8 ldi R24,128
00B4 85B9 out 0x5,R24
00B6 .dbline 191
00B6 ; delayms(1000); //延时10ms*10=100ms
00B6 08EE ldi R16,1000
00B8 13E0 ldi R17,3
00BA 35D0 rcall _delayms
00BC .dbline 192
00BC ; PORTB = 0x00;
00BC 2224 clr R2
00BE 25B8 out 0x5,R2
00C0 .dbline 201
00C0 ; // nrf24l01init();
00C0 ; // nRF24L01_CEL;
00C0 ; // delay();
00C0 ; // nRF24L01_CSNH; // Spi disable
00C0 ; // delay();
00C0 ; // nRF24L01_SCKL;
00C0 ; // delay();
00C0 ; // Buffer[1]=0;
00C0 ; RX_Mode();
00C0 AAD0 rcall _RX_Mode
00C2 .dbline 203
00C2 ; // delayms(1000); //延时10ms*10=100ms
00C2 ; }
00C2 L18:
00C2 .dbline 204
00C2 L3:
00C2 .dbline 157
00C2 ADCF rjmp L2
00C4 X0:
00C4 .dbline -2
00C4 L1:
00C4 2196 adiw R28,1
00C6 .dbline 0 ; func end
00C6 0895 ret
00C8 .dbsym r Get_SO 20 c
00C8 .dbend
00C8 .dbfunc e nrf24l01init _nrf24l01init fV
.even
00C8 _nrf24l01init::
00C8 .dbline -1
00C8 .dbline 209
00C8 ; }
00C8 ;
00C8 ;
00C8 ; }
00C8 ; void nrf24l01init(void)
00C8 ; {
00C8 .dbline 210
00C8 ; nRF24L01_IRQ_DIR;
00C8 2298 cbi 0x4,2
00CA .dbline 211
00CA ; nRF24L01_MISO_DIR;
00CA 2198 cbi 0x4,1
00CC .dbline 212
00CC ; nRF24L01_CE_DIR;
00CC 559A sbi 0xa,5
00CE .dbline 213
00CE ; nRF24L01_SCK_DIR;
00CE 579A sbi 0xa,7
00D0 .dbline 214
00D0 ; nRF24L01_CSN_DIR;
00D0 569A sbi 0xa,6
00D2 .dbline 215
00D2 ; nRF24L01_MOSI_DIR;
00D2 209A sbi 0x4,0
00D4 .dbline -2
00D4 L20:
00D4 .dbline 0 ; func end
00D4 0895 ret
00D6 .dbend
00D6 .dbfunc e init_CPU _init_CPU fV
.even
00D6 _init_CPU::
00D6 .dbline -1
00D6 .dbline 222
00D6 ; }
00D6 ; /*-----------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -