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