📄 fasong.lst
字号:
142 1 }
143 //-----------------------------------------------------发送数据打包---------------------------------------
-------------
144 void TxPacket(uchar *TxRxBuf)
145 {
146 1 uchar i;
147 1 //Config905();
148 1 CSN=0;
149 1 SpiWrite(WTP); // Write payload command
150 1 for (i=0;i<4;i++)
151 1 {
152 2 SpiWrite(TxRxBuf[i]); // Write 32 bytes Tx data
153 2 }// Spi enable for write a spi command
154 1 CSN=1;
155 1 Delay(1); // Spi disable
156 1 CSN=0; // Spi enable for write a spi command
157 1 SpiWrite(WTA); // Write address command
158 1 for (i=0;i<4;i++) // Write 4 bytes address
159 1 {
160 2 SpiWrite(TxAddress[i]);
161 2 }
162 1 CSN=1; // Spi disable
C51 COMPILER V7.06 FASONG 08/12/2008 12:43:43 PAGE 4
163 1 TRX_CE=1; // Set TRX_CE high,start Tx data transmission
164 1 Delay(1); // while (DR!=1);
165 1 TRX_CE=0; // Set TRX_CE low
166 1 }
167 //----------------------------------------------------------设置发送状态----------------------------------
------------
168 void SetTxMode(void)
169 {
170 1 TRX_CE=0;
171 1 TXEN=1;
172 1 Delay(1); // delay for mode change(>=650us)
173 1 }
174 //-----------------------------------------------设置发送状态---------------------------------------------
-------
175 void SetRxMode(void)
176 {
177 1 TXEN=0;
178 1 TRX_CE=1;
179 1 Delay(1); // delay for mode change(>=650us)
180 1 }
181 //-------------------------------------------------判断数据接收状态---------------------------------------
---------------
182 unsigned char CheckDR(void) //检查是否有新数据传入 Data Ready
183 {
184 1 if (DR=1&&TRX_CE==1 && TXEN==0)
185 1 {
186 2 // Delay(50) ;
187 2 return 1;
188 2 }
189 1 else
190 1 {
191 2 return 0;
192 2 }
193 1 }
194 //----------------------------------------------------读NRF905接收数据------------------------------------
-------------------------
195 void RxPacket(void)
196 {
197 1 uchar i;
198 1 Delay(1);
199 1 // TRX_CE=0; // Set nRF905 in standby mode
200 1 Delay(100);
201 1 TRX_CE=0;
202 1 CSN=0; // Spi enable for write a spi command
203 1 Delay(1);
204 1 SpiWrite(RRP);
205 1 for (i = 0 ;i < 4 ;i++)
206 1 {
207 2 TxRxBuf[i]=SpiRead(); // Read data and save to buffer
208 2 }
209 1 CSN=1;
210 1 Delay(10);
211 1 TRX_CE=1;
212 1 }
213 //--------------------------------------------------------数据接收----------------------------------------
---------
214 void RX(void)
215 {
216 1 SetRxMode(); // Set nRF905 in Rx mode
217 1 while (CheckDR()==0);
218 1 Delay(10);
219 1 RxPacket();
C51 COMPILER V7.06 FASONG 08/12/2008 12:43:43 PAGE 5
220 1 if(TxRxBuf[0]==0x29)
221 1 {
222 2 P0= seg[3];
223 2 led0=0;
224 2 led1=0;
225 2 led2=0;
226 2 led3=0;
227 2 }
228 1 if(TxRxBuf[0]==0x30)
229 1 {
230 2 P0= seg[4];
231 2 led0=0;
232 2 led1=0;
233 2 led2=0;
234 2 led3=0;
235 2 }
236 1 }
237 //--------------------------------------------------------------------------------------------------------
----------
238 void main(void)
239 {
240 1 nRF905Init();
241 1 Config905();
242 1 P0= seg[0];
243 1 led0=0;
244 1 led1=0;
245 1 led2=0;
246 1 led3=0;
247 1 while(1)
248 1 {
249 2 RX();
250 2 if(KEY0 ==0 )
251 2 {
252 3 tf = 1 ;
253 3 TxRxBuf[0]=0x29;
254 3 TxRxBuf[1]=0x30;
255 3 TxRxBuf[2]=0x31;
256 3 TxRxBuf[3]=0x32;
257 3 P0= seg[1];
258 3 led0=0;
259 3 led1=0;
260 3 led2=0;
261 3 led3=0;
262 3 }
263 2 if(KEY1 ==0 )
264 2 { tf = 1 ;
265 3 TxRxBuf[0]=0x30;
266 3 TxRxBuf[1]=0x31;
267 3 TxRxBuf[2]=0x32;
268 3 TxRxBuf[3]=0x29;
269 3 P0= seg[2];
270 3 led0=0;
271 3 led1=0;
272 3 led2=0;
273 3 led3=0;
274 3 }
275 2 if (tf==1)
276 2 {
277 3 SetTxMode();// Set nRF905 in Tx mode
278 3 TxPacket(TxRxBuf);// Send data by nRF905
279 3 tf = 0;
280 3 }
C51 COMPILER V7.06 FASONG 08/12/2008 12:43:43 PAGE 6
281 2 }
282 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 448 ----
CONSTANT SIZE = 8 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 16 3
IDATA SIZE = 11 ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -