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

📄 2.4g+̤

📁 2.4G无线模块资料
💻 4G+̤
📖 第 1 页 / 共 5 页
字号:
 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 + -