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

📄 slave.lis

📁 这是用C编的nrf905的通讯程序
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00F4                   .dbend
 00F4                   .dbfunc e RfSendProc _RfSendProc fV
 00F4           ;              i -> R20
                        .even
 00F4           _RfSendProc::
 00F4 0E940000          xcall push_gset1
 00F8                   .dbline -1
 00F8                   .dbline 125
 00F8           ;    
 00F8           ;    
 00F8           ;    //从机回送数据包,这样双方都能指示是否收到有效数据包
 00F8           ;    #ifndef MASTER
 00F8           ;      //RfSendProc();
 00F8           ;    #endif
 00F8           ; }
 00F8           ; 
 00F8           ; //发送测试
 00F8           ; void RfSendProc()
 00F8           ; {uchar i;
 00F8                   .dbline 126
 00F8 4427              clr R20
 00FA 0AC0              xjmp L23
 00FC           L20:
 00FC                   .dbline 126
 00FC 82E0              ldi R24,2
 00FE 849F              mul R24,R20
 0100 80E0              ldi R24,<_TxBuf
 0102 90E0              ldi R25,>_TxBuf
 0104 E42F              mov R30,R20
 0106 FF27              clr R31
 0108 E80F              add R30,R24
 010A F91F              adc R31,R25
 010C 0082              std z+0,R0
 010E           L21:
 010E                   .dbline 126
 010E 4395              inc R20
 0110           L23:
 0110                   .dbline 126
 0110           ;    for (i=0;i<SIZE;i++) TxBuf[i]=2*i;
 0110 4032              cpi R20,32
 0112 A0F3              brlo L20
 0114                   .dbline 127
 0114           ;    nrf905_SendData();//发送测试数据
 0114 0E940000          xcall _nrf905_SendData
 0118                   .dbline 128
 0118           ;    nrf905_RxOn();//重新回到接收状态
 0118 0E940000          xcall _nrf905_RxOn
 011C                   .dbline -2
 011C           L19:
 011C 0E940000          xcall pop_gset1
 0120                   .dbline 0 ; func end
 0120 0895              ret
 0122                   .dbsym r i 20 c
 0122                   .dbend
 0122                   .dbfunc e TimerFunc _TimerFunc fV
                        .even
 0122           _TimerFunc::
 0122                   .dbline -1
 0122                   .dbline 132
 0122           ; }
 0122           ; 
 0122           ; void TimerFunc()
 0122           ; {
 0122                   .dbline 133
 0122           ;    bTimer=0;
 0122 2224              clr R2
 0124 20920300          sts _bTimer,R2
 0128                   .dbline 136
 0128           ;    //WDR();//clear WDT
 0128           ;    
 0128           ;    CPL(PORTD,LED);
 0128 80E8              ldi R24,128
 012A 90E0              ldi R25,0
 012C 22B2              in R2,0x12
 012E 3324              clr R3
 0130 2826              eor R2,R24
 0132 3926              eor R3,R25
 0134 22BA              out 0x12,R2
 0136                   .dbline -2
 0136           L24:
 0136                   .dbline 0 ; func end
 0136 0895              ret
 0138                   .dbend
 0138                   .dbfunc e SystemIni _SystemIni fV
                        .even
 0138           _SystemIni::
 0138                   .dbline -1
 0138                   .dbline 141
 0138           ;    //SPDR=66;
 0138           ; }
 0138           ; 
 0138           ; void SystemIni()
 0138           ; {
 0138                   .dbline 142
 0138           ;   T0Cnt=T0N;
 0138 89E1              ldi R24,25
 013A 80930100          sts _T0Cnt,R24
 013E                   .dbline 143
 013E           ;   RfCnt=RFTN;
 013E 80930000          sts _RfCnt,R24
 0142                   .dbline -2
 0142           L25:
 0142                   .dbline 0 ; func end
 0142 0895              ret
 0144                   .dbend
 0144                   .dbfunc e DelayMs _DelayMs fV
 0144           ;              i -> R20
 0144           ;             ms -> R22
                        .even
 0144           _DelayMs::
 0144 0E940000          xcall push_gset2
 0148 602F              mov R22,R16
 014A                   .dbline -1
 014A                   .dbline 147
 014A           ; }
 014A           ; 
 014A           ; void DelayMs(uchar ms)
 014A           ; {char i;
 014A                   .dbline 148
 014A           ; for (i=0;i<ms;i++)
 014A 4427              clr R20
 014C 04C0              xjmp L30
 014E           L27:
 014E                   .dbline 149
 014E                   .dbline 149
 014E 08EE              ldi R16,1000
 0150 13E0              ldi R17,3
 0152 06D0              xcall _DelayUs
 0154                   .dbline 150
 0154           L28:
 0154                   .dbline 148
 0154 4395              inc R20
 0156           L30:
 0156                   .dbline 148
 0156 4617              cp R20,R22
 0158 D0F3              brlo L27
 015A                   .dbline 151
 015A           ;   {DelayUs(1000);
 015A           ;   }
 015A           ;   return;
 015A                   .dbline -2
 015A           L26:
 015A 0E940000          xcall pop_gset2
 015E                   .dbline 0 ; func end
 015E 0895              ret
 0160                   .dbsym r i 20 c
 0160                   .dbsym r ms 22 c
 0160                   .dbend
 0160                   .dbfunc e DelayUs _DelayUs fV
 0160           ;              i -> R20,R21
 0160           ;             us -> R16,R17
                        .even
 0160           _DelayUs::
 0160 0E940000          xcall push_gset1
 0164                   .dbline -1
 0164                   .dbline 155
 0164           ; }
 0164           ; 
 0164           ; void DelayUs(uint us)
 0164           ; {uint i;
 0164                   .dbline 156
 0164           ;   for (i=0;i<us;i++)
 0164 4427              clr R20
 0166 5527              clr R21
 0168 08C0              xjmp L35
 016A           L32:
 016A                   .dbline 157
 016A                   .dbline 157
 016A 0000              nop
 016C                   .dbline 157
 016C 0000              nop
 016E                   .dbline 157
 016E 0000              nop
 0170                   .dbline 157
 0170 0000              nop
 0172                   .dbline 157
 0172 0000              nop
 0174                   .dbline 157
 0174 0000              nop
 0176                   .dbline 158
 0176           L33:
 0176                   .dbline 156
 0176 4F5F              subi R20,255  ; offset = 1
 0178 5F4F              sbci R21,255
 017A           L35:
 017A                   .dbline 156
 017A 4017              cp R20,R16
 017C 5107              cpc R21,R17
 017E A8F3              brlo L32
 0180                   .dbline -2
 0180           L31:
 0180 0E940000          xcall pop_gset1
 0184                   .dbline 0 ; func end
 0184 0895              ret
 0186                   .dbsym r i 20 i
 0186                   .dbsym r us 16 i
 0186                   .dbend
 0186                   .dbfunc e main _main fV
                        .even
 0186           _main::
 0186                   .dbline -1
 0186                   .dbline 162
 0186           ;   {NOP();NOP();NOP();NOP();NOP();NOP();
 0186           ;   }
 0186           ; }
 0186           ; 
 0186           ; void main()
 0186           ; {
 0186                   .dbline 163
 0186           ;    init_devices();
 0186 82DF              xcall _init_devices
 0188                   .dbline 164
 0188           ;    SystemIni();
 0188 D7DF              xcall _SystemIni
 018A                   .dbline 165
 018A           ;    nrf905_Init();
 018A 0E940000          xcall _nrf905_Init
 018E                   .dbline 166
 018E           ;    ENLCD();
 018E 9198              cbi 0x12,1
 0190                   .dbline 167
 0190           ;    PutChar('W');
 0190 07E5              ldi R16,87
 0192 0E940000          xcall _PutChar
 0196                   .dbline 168
 0196           ;    PutChar('e');
 0196 05E6              ldi R16,101
 0198 0E940000          xcall _PutChar
 019C                   .dbline 169
 019C           ;    PutChar('l');
 019C 0CE6              ldi R16,108
 019E 0E940000          xcall _PutChar
 01A2                   .dbline 170
 01A2           ;    PutChar('c');
 01A2 03E6              ldi R16,99
 01A4 0E940000          xcall _PutChar
 01A8                   .dbline 171
 01A8           ;    PutChar('o');
 01A8 0FE6              ldi R16,111
 01AA 0E940000          xcall _PutChar
 01AE                   .dbline 172
 01AE           ;    PutChar('m');
 01AE 0DE6              ldi R16,109
 01B0 0E940000          xcall _PutChar
 01B4                   .dbline 173
 01B4           ;    PutChar('e');
 01B4 05E6              ldi R16,101
 01B6 0E940000          xcall _PutChar
 01BA                   .dbline 174
 01BA           ;    PutChar(' ');
 01BA 00E2              ldi R16,32
 01BC 0E940000          xcall _PutChar
 01C0                   .dbline 175
 01C0           ;    PutChar('t');
 01C0 04E7              ldi R16,116
 01C2 0E940000          xcall _PutChar
 01C6                   .dbline 176
 01C6           ;    PutChar('o');
 01C6 0FE6              ldi R16,111
 01C8 0E940000          xcall _PutChar
 01CC                   .dbline 177
 01CC           ;    PutChar(' ');
 01CC 00E2              ldi R16,32
 01CE 0E940000          xcall _PutChar
 01D2                   .dbline 178
 01D2           ;    PutChar('X');
 01D2 08E5              ldi R16,88
 01D4 0E940000          xcall _PutChar
 01D8                   .dbline 179
 01D8           ;    PutChar('G');
 01D8 07E4              ldi R16,71
 01DA 0E940000          xcall _PutChar
 01DE                   .dbline 180
 01DE           ;    PutChar('C');
 01DE 03E4              ldi R16,67
 01E0 0E940000          xcall _PutChar
 01E4                   .dbline 181
 01E4           ;    DelayMs(1000);
 01E4 08EE              ldi R16,232
 01E6 AEDF              xcall _DelayMs
 01E8                   .dbline 182
 01E8           ;    DelayMs(1000);
 01E8 08EE              ldi R16,232
 01EA ACDF              xcall _DelayMs
 01EC                   .dbline 183
 01EC           ;    DelayMs(1000);
 01EC 08EE              ldi R16,232
 01EE AADF              xcall _DelayMs
 01F0                   .dbline 184
 01F0           ;    DelayMs(1000);
 01F0 08EE              ldi R16,232
 01F2 A8DF              xcall _DelayMs
 01F4                   .dbline 188
 01F4           ; 
 01F4           ;  
 01F4           ;    
 01F4           ;    clear_lcd();
 01F4 0E940000          xcall _clear_lcd
 01F8                   .dbline 191
 01F8           ; 
 01F8           ; 
 01F8           ;    DISLCD();
 01F8 919A              sbi 0x12,1
 01FA 09C0              xjmp L38
 01FC           L37:
 01FC                   .dbline 194
 01FC           ; 
 01FC           ;    while (1)
 01FC           ;    {  
 01FC                   .dbline 197
 01FC           ;      // if (bTimer) TimerFunc();
 01FC           ;         #ifdef MASTER
 01FC           ;           if (bRfSend)
 01FC 20900200          lds R2,_bRfSend
 0200 2220              tst R2
 0202 21F0              breq L40
 0204                   .dbline 198
 0204           ;               { bRfSend=0;
 0204                   .dbline 198
 0204 2224              clr R2
 0206 20920200          sts _bRfSend,R2
 020A                   .dbline 199
 020A           ;                 RfSendProc();//发送测试
 020A 74DF              xcall _RfSendProc
 020C                   .dbline 200
 020C           ;               }
 020C           L40:
 020C                   .dbline 203
 020C 4DDF              xcall _RfRecvProc
 020E                   .dbline 204
 020E           L38:
 020E                   .dbline 193
 020E F6CF              xjmp L37
 0210           X0:
 0210                   .dbline -2
 0210           L36:
 0210                   .dbline 0 ; func end
 0210 0895              ret
 0212                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile C:\DOCUME~1\charon\MYDOCU~1\AVR\NRF905\slave.C
 0000           _RfCnt::
 0000                   .blkb 1
 0001                   .dbsym e RfCnt _RfCnt c
 0001           _T0Cnt::
 0001                   .blkb 1
 0002                   .dbsym e T0Cnt _T0Cnt c
 0002           _bRfSend::
 0002                   .blkb 1
 0003                   .dbsym e bRfSend _bRfSend c
 0003           _bTimer::
 0003                   .blkb 1
 0004                   .dbsym e bTimer _bTimer c
 0004           _key:
 0004                   .blkb 1
 0005                   .dbfile C:\DOCUME~1\charon\MYDOCU~1\AVR\NRF905/config.h
 0005                   .dbsym s key _key c

⌨️ 快捷键说明

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