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