资源简介
该收发程序用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
相关资源
- STC15W4-nRF24L01 项目
- LCD1602液晶完整中文资料
- 基于两块430单片机及nrf24l01无线数据传
- 单片机和LCD1602实现的简易计算器
- 基于89c51的等精度频率计lcd1602显示
- 基于STM32和SIM900A的短信发送程序
- 2.4G无线通信模块(接收端代码+发射端
- 串口通信插件.txt
- qt实现串口读取GPS信息
- 51+bmp180+lcd1602+proteus.zip
- 基于AT89C51的串口通信
- QT串口通信程序
- 5Kg电子秤程序LCD1602显示
- 单片机串口通信程序.rar
- 51单片机nrf24L01遥控小车
- 51单片机的步进电机控制,lcd1602显示
- 基于nRF24L01和STM32的无线文件收发系统
- Serialport接收并保存串口的数据
- 串口通信-温湿度
- LCD1602显示实时温度代码
- C51单片机密码锁4×4矩阵键盘+LCD1602液
- 基于adc0832的数字电压表
- lcd1602显示时分秒
- STM8 UART 半双工串口通信
- mySerialPort.rar
- verilog 实现串口通信 含fifo很好用!
- fpga串口通信,利用fifo转发
- 带串口通信的温度控制器(带proteus仿
- 51单片机 lcd1602测试C程序
- 基于LCD1602读取DS18B20序列号proteus仿真
评论
共有 条评论