资源简介
该收发程序用NRF24l01的0通道作为通信渠道,载频为2.4GHZ,将受到的32个字节通过串口与上位机通信,可在串口助手软件中查看所收数据。同时液晶宣示所收发字节数。

代码片段和文件信息
#include
#define uchar unsigned char
#define uint unsigned int
#define LCD1602_Port P3 //数据端口
//控制端口定义**********************************************************
sbit LcdRs = P1^5;
sbit LcdRw = P1^6;
sbit LcdEn = P1^7;
sbit LED = P2^6;
//**************************************************************************************
sbit MISO = P2^0;
sbit MOSI = P2^3;
sbit SCK = P2^2;
sbit CE = P2^4;
sbit CSN = P2^5;
sbit IRQ = P2^1;
//************************************按键***************************************************
//sbit KEY1 = P3^4;
//************************************LED***************************************************
//记录发送次数计数器
long uint Send_Count = 0;
uchar const code TX_ADDRESS[5]= {0x340x430x100x100x01}; //本地地址
uchar const code RX_ADDRESS[5]= {0x340x430x100x100x01}; //接收地址
//*************************************中断标志********************************************
//以下任意一个中断都会使IRQ引脚编程低电平,判断IRQ引脚就可以知道当前接收或者发送的状态了
uchar bdata NRF24L01_Sta; //状态标志
sbit RX_DR =NRF24L01_Sta^6; //接收中断标志
sbit TX_DS =NRF24L01_Sta^5; //发送中断标志
sbit MAX_RT =NRF24L01_Sta^4; //重发次数中断标志,当重发次数超过了最大允许的重发次数该中断产生
//***********************************发送缓冲区*********************************************
uchar TxBuf[32]=
{
0x0a0x0b0x0c0x040x050x060x070x08
0x090x100x110x120x130x140x150x16
0x170x180x190x200x210x220x230x24
0x250x260x270x280x290x300x310x32
};
void Delay_us(uint n)
{
for(;n>0;n--) ;
}
void Delay_ms(uint z)
{
uint xy;
for(x = 0;x < z;x++)
for(y = 0;y < 110;y++);
}
uchar LCD1602_Wait(void) //读1602内部状态字 ,查看是否准备好
{
uchar Sta;
LcdRs=0; //LcdRS=LLcdRw=HLcdEn=H 输出D0~D7状态字
LcdRw=1;
Delay_ms(1);
LcdEn=1;
Delay_ms(1);
Sta = LCD1602_Port;
Delay_ms(1);
LcdEn=0;
Sta = Sta & 0x80;
return Sta;
}
void LCD1602_Write(bit style uchar input)
{
while(LCD1602_Wait()); //若忙碌,则等待免得显示乱码
LcdEn = 0;
LcdRs = style; //设置是数据‘1‘还是命令‘0‘
LcdRw = 0;
Delay_ms(1);
LCD1602_Port = input;
Delay_ms(1);
LcdEn = 1;
Delay_ms(1);
LcdEn = 0;
Delay_ms(1);
}
void LCD1602_Initial()
{
LcdEn=0;
LCD1602_Write(00x38); //8位数据端口2行显示5*7点阵
LCD1602_Write(00x0c); //开启显示 无光标
LCD1602_Write(00x06); //AC递增 画面不动
LCD1602_Write(00x01); //清屏
Delay_ms(10);
}
void LCD1602_GotoXY(uchar x uchar y) //X为显示指针的位置,即为各行的第几个位置,Y选行
{
if(x==0)
LCD1602_Write(00x80+y);
if(x==1)
LCD1602_Write(0(0x80+0x40+y));
}
void LCD1602_Display_NoXY(uchar *str) //向LCD写入字符串
{
while(*str!=‘\0‘)
{
LCD1602_Write(1*str);
str++;
}
}
uchar SPI_RW(uchar dat) //发送dat数据,并返回接收到得数据
{
uchar Bit_Count; //位计数器,用于确定接收或者发送的位数,这里是一个字节即8位
for(Bit_Count=0;Bit_Count<8;Bit_Count++)
{
MOSI = (dat & 0x80); // 输出数据 MSB to MOSI,即先
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-03-24 10:15 NRF24L01带lcd1602液晶和串口通信\
目录 0 2013-03-24 10:15 NRF24L01带lcd1602液晶和串口通信\发送\
文件 5115 2012-03-02 09:37 NRF24L01带lcd1602液晶和串口通信\发送\STARTUP.A51
文件 11764 2013-03-23 20:22 NRF24L01带lcd1602液晶和串口通信\发送\STARTUP.lst
文件 854 2013-03-23 20:22 NRF24L01带lcd1602液晶和串口通信\发送\STARTUP.obj
文件 12136 2013-03-23 20:22 NRF24L01带lcd1602液晶和串口通信\发送\发送
文件 7109 2013-03-21 13:37 NRF24L01带lcd1602液晶和串口通信\发送\发送.c
文件 3524 2013-03-23 20:22 NRF24L01带lcd1602液晶和串口通信\发送\发送.hex
文件 13801 2013-03-23 20:22 NRF24L01带lcd1602液晶和串口通信\发送\发送.LST
文件 17088 2013-03-23 20:22 NRF24L01带lcd1602液晶和串口通信\发送\发送.M51
文件 13803 2013-03-23 20:22 NRF24L01带lcd1602液晶和串口通信\发送\发送.OBJ
文件 1092 2013-03-23 20:24 NRF24L01带lcd1602液晶和串口通信\发送\发送.Opt
文件 757 2013-03-23 20:22 NRF24L01带lcd1602液晶和串口通信\发送\发送.plg
文件 2051 2013-03-09 13:31 NRF24L01带lcd1602液晶和串口通信\发送\发送.Uv2
文件 1091 2013-03-22 20:32 NRF24L01带lcd1602液晶和串口通信\发送\发送_Opt.Bak
文件 2051 2013-03-09 00:24 NRF24L01带lcd1602液晶和串口通信\发送\发送_Uv2.Bak
目录 0 2013-03-24 10:15 NRF24L01带lcd1602液晶和串口通信\接收\
文件 5115 2012-03-02 09:37 NRF24L01带lcd1602液晶和串口通信\接收\STARTUP.A51
文件 11764 2013-03-23 20:23 NRF24L01带lcd1602液晶和串口通信\接收\STARTUP.lst
文件 854 2013-03-23 20:23 NRF24L01带lcd1602液晶和串口通信\接收\STARTUP.obj
文件 15618 2013-03-23 20:23 NRF24L01带lcd1602液晶和串口通信\接收\接收
文件 8587 2013-03-09 13:17 NRF24L01带lcd1602液晶和串口通信\接收\接收.c
文件 4197 2013-03-23 20:23 NRF24L01带lcd1602液晶和串口通信\接收\接收.hex
文件 17755 2013-03-23 20:23 NRF24L01带lcd1602液晶和串口通信\接收\接收.LST
文件 21971 2013-03-23 20:23 NRF24L01带lcd1602液晶和串口通信\接收\接收.M51
文件 17902 2013-03-23 20:23 NRF24L01带lcd1602液晶和串口通信\接收\接收.OBJ
文件 1093 2013-03-23 20:24 NRF24L01带lcd1602液晶和串口通信\接收\接收.Opt
文件 559 2013-03-23 20:24 NRF24L01带lcd1602液晶和串口通信\接收\接收.plg
文件 2051 2013-03-09 13:31 NRF24L01带lcd1602液晶和串口通信\接收\接收.Uv2
文件 1092 2013-03-21 13:39 NRF24L01带lcd1602液晶和串口通信\接收\接收_Opt.Bak
文件 2051 2013-03-09 00:24 NRF24L01带lcd1602液晶和串口通信\接收\接收_Uv2.Bak
............此处省略0个文件信息
- 上一篇:考毕兹(Colpitts)振荡电路
- 下一篇:nierInterface.dll
相关资源
- 易语言OTG串口通信
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- DELPHI与西门子200PLC的串口通信实例
- NRF24L01实现51与STM32双向通讯
- [免费]msp430f149控制PS2键盘并用1602显示
- vhdl与lcd1602实现的多控制电子钟
- ADC0809数字电压表 LCD1602显示 汇编程序
- 《Visual Basic 串口通信与测控应用技术
- nRF24L01无线模块在单片机与FPGA上的应
- STM32F103C8T6+NRF24l01无线通信
- EESkill NRF24L01 无线模块用户手册
- 基于nRF24L01的射频收发电路原理图
- nRF24L01无线模块原理图和与5V单片机的
- 基于AVR的NRF24L01跳频通信程序
- MFC串口通信
- 基于STM32的深海钻机甲板控制系统
- 4_USART串口通信(空闲中断+DMA.zip
- 三菱PLC串口通信调试软件.rar
- VC++ RS232 RS485串口通信源代码_
- 51串口通信程序+仿真
- LCD1602显示程序
- Visual Basic串口通信与测控应用技术实
- Visual Basic串口通信工程开发导航.(配
- Visual Basic.NET自动化系统监控.(范逸之
- Visual Basic串口通信与测控应用技术实
- Visual Basic串口通信与测控应用技术实
- 第四章 畅学多功能实验箱液晶资源详
- STM32+DHT11+OLED+RTC+MQ2+NRF24L01+串口12
- proteus仿真、keil4、DHT11、LCD1602
- 081_《Delphi串口通信编程》(4/4)
评论
共有 条评论