📄 nrf2401.lst
字号:
216 2 CLK1 = 1; //*P_IOB_Buffer |= CLK1;
217 2 Delay_Us(1);
218 2 CLK1 = 0; //*P_IOB_Buffer &=~CLK1;
219 2 uiData = uiData<<1;
220 2 }
221 1 }
222
223 //=============================================================
224 // 语法格式: void nRF2401_SendByte(unsigned int TxData)
225 // 实现功能: 将目标地址+字节数据写入nRF2401A
226 // 参数: unsigned int TxData: 待发送字节数据
227 // 返回值: 无
228 //=============================================================
229 void nRF2401_SendByte(unsigned int TxData)
230 {
231 1 unsigned int i;
232 1
233 1 // *P_IOB_Dir |= DATA;
234 1 CE = 1; //*P_IOB_Buffer |= CE;
235 1 //Delay_Us(1); //
236 1 for(i=0; i<AddrByteCnt; i++)
237 1 {
238 2 nRF2401_WriteByte(AddrBuffer[i]);
239 2 }
240 1 nRF2401_WriteByte(TxData);
241 1 CE = 0; //*P_IOB_Buffer &= ~CE;
C51 COMPILER V8.17 NRF2401 02/02/2009 22:23:53 PAGE 5
242 1 DATA = 0; //*P_IOB_Buffer &= ~DATA;
243 1 Delay_Us(10);
244 1 }
245
246 //=============================================================
247 // 语法格式: void nRF2401_SendWord(unsigned int TxData)
248 // 实现功能: 将目标地址+字数据写入nRF2401A
249 // 参数: unsigned int TxData: 待发送字数据
250 // 返回值: 无
251 //=============================================================
252 void nRF2401_SendWord(unsigned int TxData)
253 {
254 1 unsigned int i;
255 1
256 1 // *P_IOB_Dir |= DATA;
257 1 CE = 1; //*P_IOB_Buffer |= CE;
258 1 Delay_Us(10); //
259 1 for(i=0; i<AddrByteCnt; i++)
260 1 {
261 2 nRF2401_WriteByte(AddrBuffer[i]);
262 2 }
263 1 nRF2401_WriteWord(TxData);
264 1 CE = 0; //*P_IOB_Buffer &= ~CE;
265 1 DATA = 0; //*P_IOB_Buffer &= ~DATA;
266 1 Delay_Us(20);
267 1 }
268
269 //=============================================================
270 // 语法格式: void nRF2401_SendBuffer_Byte(unsigned int *TxData,unsigned int DataByte)
271 // 实现功能: 向nRF2401A发送一个数组的数据(字节方式)
272 // 参数: unsigned int *TxData: 待发送数组
273 // unsigned int DataByte:数组的长度
274 // 返回值: 无
275 //=============================================================
276 void nRF2401_SendBuffer_Byte(unsigned int *TxData,unsigned int DataByte)
277 {
278 1 unsigned int i;
279 1
280 1 // *P_IOB_Dir |= DATA;
281 1 CE = 1; //*P_IOB_Buffer |= CE;
282 1 Delay_Us(10); //
283 1 for(i=0; i<AddrByteCnt; i++)
284 1 {
285 2 nRF2401_WriteByte(AddrBuffer[i]);
286 2 }
287 1 for(i=0; i<DataByte; i++)
288 1 {
289 2 nRF2401_WriteByte(TxData[i]);
290 2 }
291 1 CE = 0; //*P_IOB_Buffer &= ~CE;
292 1 DATA = 0; //*P_IOB_Buffer &= ~DATA;
293 1 Delay_Us(20);
294 1 }
295
296 //=============================================================
297 // 语法格式: void nRF2401_SendBuffer_Word(unsigned int *TxData,unsigned int DataWord)
298 // 实现功能: 向nRF2401A发送一个数组的数据(字方式)
299 // 参数: unsigned int *TxData: 待发送数组
300 // unsigned int DataWord:数组的长度
301 // 返回值: 无
302 //=============================================================
303 void nRF2401_SendBuffer_Word(unsigned int *TxData,unsigned int DataWord)
C51 COMPILER V8.17 NRF2401 02/02/2009 22:23:53 PAGE 6
304 {
305 1 unsigned int i;
306 1
307 1 // *P_IOB_Dir |= DATA;
308 1 CE = 1; //*P_IOB_Buffer |= CE;
309 1 Delay_Us(10); //
310 1 for(i=0; i<AddrByteCnt; i++)
311 1 {
312 2 nRF2401_WriteByte(AddrBuffer[i]);
313 2 }
314 1 for(i=0; i<DataWord; i++)
315 1 {
316 2 nRF2401_WriteWord(TxData[i]);
317 2 }
318 1 CE = 0; //*P_IOB_Buffer &= ~CE;
319 1 DATA = 0; //*P_IOB_Buffer &= ~DATA;
320 1 Delay_Us(20);
321 1 }
322
323 //=============================================================
324 // 语法格式: unsigned int nRF2401_RxStatus()
325 // 实现功能: 判断nRF2401A的接收状态
326 // 参数: 无
327 // 返回值: 0: 没有接收到数据
328 // 1: 已经接收到数据,等待读出
329 //=============================================================
330 unsigned int nRF2401_RxStatus()
331 {
332 1 // CE=1;
333 1 if ( DR1 == 0 ) //if((*P_IOB_Data&DR1) == 0)
334 1 return(0);
335 1 else
336 1 return(1);
337 1 }
338
339 //=============================================================
340 // 语法格式: void nRF2401_ReceiveByte(unsigned int *RxData)
341 // 实现功能: 从nRF2401A读出一个字节的数据
342 // 参数: unsigned int *RxData:读出的数据
343 // 返回值: 无
344 //=============================================================
345 void nRF2401_ReceiveByte(unsigned int *RxData)
346 {
347 1 unsigned int i = 0,j = 0;
348 1 unsigned int dat = 0;
349 1
350 1 //*P_IOB_Dir &= ~DATA; // 输入
351 1 while(DR1==1) //while(*P_IOB_Data&DR1)
352 1 {
353 2 dat <<= 1;
354 2 CLK1 = 0; //*P_IOB_Buffer &= ~CLK1;
355 2
356 2 if(DATA==1) //if(*P_IOB_Data&DATA)
357 2 dat |= 0x01;
358 2 i++;
359 2 CLK1 = 1; //*P_IOB_Buffer |= CLK1;
360 2 Delay_Us(1);
361 2 if(i>7)
362 2 {
363 3 i = 0;
364 3 RxData[j] = dat;
365 3 dat = 0;
C51 COMPILER V8.17 NRF2401 02/02/2009 22:23:53 PAGE 7
366 3 j++;
367 3 }
368 2 CLK1 = 0; //*P_IOB_Buffer &= ~CLK1;
369 2 }
370 1 //*P_IOB_Dir |= DATA; // 输出
371 1 }
372
373 //=============================================================
374 // 语法格式: void nRF2401_ReceiveWord(unsigned int *RxData)
375 // 实现功能: 从nRF2401A读出一个字的数据
376 // 参数: unsigned int *RxData:读出的数据
377 // 返回值: 无
378 //=============================================================
379 void nRF2401_ReceiveWord(unsigned int *RxData)
380 {
381 1 unsigned int i = 0,j = 0;
382 1 unsigned int dat = 0;
383 1
384 1 DATA = 0; //*P_IOB_Dir &= ~DATA; // 输入
385 1 while(DR1 == 1) //while(*P_IOB_Data&DR1)
386 1 {
387 2 dat <<= 1;
388 2 CLK1 = 0; //*P_IOB_Buffer &= ~CLK1;
389 2 if(DATA==1) //if(*P_IOB_Data&DATA)
390 2 dat |= 0x01;
391 2 i++;
392 2 CLK1 = 1; //*P_IOB_Buffer |= CLK1;
393 2 Delay_Us(1);
394 2 if(i>15)
395 2 {
396 3 i = 0;
397 3 RxData[j] = dat;
398 3 dat = 0;
399 3 j++;
400 3 }
401 2 CLK1 = 0; //*P_IOB_Buffer &= ~CLK1;
402 2 }
403 1 //*P_IOB_Dir |= DATA; // 输出
404 1 }
405
406 //=============================================================
407 // 语法格式: void Delay_Us(unsigned int TimeCnt)
408 // 实现功能: 延时(uS)
409 // 参数: unsigned int TimeCnt:延时的us数
410 // 返回值: 无
411 //=============================================================
412 void Delay_Us(unsigned int TimeCnt)
413 {
414 1 int i;
415 1 //*P_SystemClock = 0x98;
416 1 for(i = 0; i < TimeCnt; i++);
417 1
418 1
419 1 }
420
421
422 //******************************** END *************************************
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1045 ----
CONSTANT SIZE = 30 ----
C51 COMPILER V8.17 NRF2401 02/02/2009 22:23:53 PAGE 8
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 56
IDATA SIZE = 10 ----
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 + -