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

📄 main.c

📁 菜鸟,详细NRF24E1运用,程序,电路
💻 C
字号:
/********************************************************************
/                        **程序说明**
/SRAM配置成数据存储空间,默认地址是从0x0000到0x03FF,
/下面的程序将对这个1KB的XDATA进行测试。
********************************************************************/
#include "reg24le1.h"
/*******************************************************************
/建立一个全局数组,可以存储500个int类型的变量
********************************************************************/
int xdata dat[500]={0x00};
/********************************************************************
/函数名称:delay()
/函数功能:根据输入的参数的大小控制软件延时的长度
/传入参数:x,延时的时间数
/返回参数:无
********************************************************************/
void delay(unsigned int x)
{
  unsigned char di;
   for(;x>0;x--)
     for(di=175;di>0;di--)
	  {
	   ;
	  }
}

/********************************************************************
/函数名称:IO_cof()
/函数功能:初始化nRF24LE1的I/O口和工作时钟
/传入参数:无
/返回参数:无
********************************************************************/
void IO_cof()
{
CLKCTRL=0X28;
CLKLFCTRL = 0x01; 

P0CON=0X00;
P0DIR=0X00;

P1DIR=0X00;
P1CON=0X00;
}
/*******************************************************************
/函数名称:uart_init()
/函数功能:nRF24LE1的串口初始化
/传入参数:无
/返回参数:无
********************************************************************/
void uart_init()
{	
	P0DIR &= 0xF7;		    /* 配置P0.3 (TXD)为输出	 */
  	P0DIR |= 0x10;     	    /* 设置P0.4 (RXD)为输入  */ 
	P0    |=0x18;	 
		
	S0CON = 0x50;  
   	PCON |= 0x80; 		    /*配置波特率倍增          */
  	WDCON |= 0x80;          /*选择使用内部波特率发生器*/ 
	 	
    S0RELL = 0xF3;          /*设置波特率为38400       */
  	S0RELH = 0x03;		  	 
}
/********************************************************************
/函数名称:send()
/函数功能:串口发送一个字符
/传入参数:ch,发送的字符
/返回参数:无
*********************************************************************/
void send(char ch)
{

 S0BUF=ch;
 while(!TI0);
 TI0=0;
}
/********************************************************************
/函数名称:puts()
/函数功能:串口发送一个字符串
/传入参数:s,指向想发送的字符串的指针
/返回参数:无
********************************************************************/
void puts(unsigned char* s)
{
 while(*s!='\0')
{
 send(*s++);
}
}
/*******************************************************************
/函数名称:datainit()
/函数功能:初始化数组dat的500个数组成员
/传入参数:无
/返回参数:无
********************************************************************/
void datainit(void)
{
 int inum=0;
 for(inum=0;inum<500;inum++)
     dat[inum]=inum*2;
}
/********************************************************************
/主函数
********************************************************************/
void main(void)
{
 int num;
 IO_cof();
 uart_init();
 datainit();
 delay(100);				  
 puts("************************This Is A nRF24LE1 \
 Ram Test Program***********************");
 send('\n');				 
 delay(100);
 for(num=0;num<500;num++)         /*利用循环在串口上显示dat的成员数据*/
 {
 if((num%50)==0)
 {
 send('\n');
 }
 send(((dat[num]/100)+'0'));      /*显示dat数组成员的百位            */
 delay(1);
 send(((dat[num]%100)/10+'0'));   /*显示dat数组成员的千位            */
 delay(1);
 send((dat[num]%10)+'0');         /*显示dat数组成员的个位            */
 delay(1);
 puts("  ");                      /*显示每个dat数组成员之间的间隔    */
 }
 while(1);				          /*程序进入等待                      */
}

⌨️ 快捷键说明

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