资源简介
该系统基于c语言,分发送端和接受端,利用单片机实现了呼叫系统的简易通信。
代码片段和文件信息
#include
#include
#include “2401driver.h“
uint bdata sta; //状态标志
sbit RX_DR =sta^6;
sbit TX_DS =sta^5;
sbit MAX_RT =sta^4;
uint const TX_ADDRESS[TX_ADR_WIDTH]= {0x340x430x100x100x01}; //本地地址
uint const RX_ADDRESS[RX_ADR_WIDTH]= {0x340x430x100x100x01}; //接收地址
//*****************************************长延时*****************************************
void Delay(unsigned int s)
{
unsigned int i;
s= s*6;
for(i=0; i for(i=0; i}
/******************************************************************************************
/*延时函数
/******************************************************************************************/
void inerDelay_us(unsigned char n)
{
n=n*6;
for(;n>0;n--)
_nop_();
}
//****************************************************************************************
/*NRF24L01初始化
//***************************************************************************************/
void init_NRF24L01(void)
{
inerDelay_us(100);
CE=0; // chip enable
CSN=1; // Spi disable
SCK=0; //
/*CLEAN FIFO*/SPI_RW_Reg(FLUSH_RX0);
/*CLEAN FIFO*/SPI_RW_Reg(FLUSH_TX0);
SPI_Write_Buf(WRITE_REG + TX_ADDR TX_ADDRESS TX_ADR_WIDTH); // 写本地地址
SPI_Write_Buf(WRITE_REG + RX_ADDR_P0 RX_ADDRESS RX_ADR_WIDTH); // 写接收端地址
SPI_RW_Reg(WRITE_REG + EN_AA 0x01); // 频道0自动 ACK应答允许
SPI_RW_Reg(WRITE_REG + EN_RXADDR 0x01); // 允许接收地址只有频道0,如果需要多频道可以参考Page21
SPI_RW_Reg(WRITE_REG + RF_CH 0); // 设置信道工作为2.4GHZ,收发必须一致
SPI_RW_Reg(WRITE_REG + RX_PW_P0 RX_PLOAD_WIDTH); //设置接收数据长度,本次设置为32字节
SPI_RW_Reg(WRITE_REG + RF_SETUP 0x07); //设置发射速率为1MHZ,发射功率为最大值0dB
}
/****************************************************************************************************
/*函数:uint SPI_RW(uint uchar)
/*功能:NRF24L01的SPI写时序
/****************************************************************************************************/
uint SPI_RW(uint uchar)
{
uint bit_ctr;
for(bit_ctr=0;bit_ctr<8;bit_ctr++) // output 8-bit
{
MOSI = (uchar & 0x80); // output ‘uchar‘ MSB to MOSI
uchar = (uchar << 1); // shift next bit into MSB..
SCK = 1; // Set SCK high..
uchar |= MISO; // capture current MISO bit
SCK = 0; // ..then set SCK low again
}
return(uchar); // return read uchar
}
/****************************************************************************************************
/*函数:uchar SPI_Read(uchar reg)
/*功能:NRF24L01的SPI时序
/****************************************************************************************************/
uchar SPI_Read(uchar reg)
{
uchar reg_val;
CSN = 0; // CSN low initialize SPI communication...
SPI_RW(reg); // Select register to read from..
reg_val = SPI_RW(0); // ..then read registervalue
CSN = 1; // CSN high terminate SPI communication
return(reg_val);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-03-22 19:08 最终版\
目录 0 2015-04-25 12:50 最终版\发送\
文件 7989 2015-03-22 04:41 最终版\发送\2401driver.c
文件 3390 2015-03-22 04:41 最终版\发送\2401driver.h
文件 12697 2015-03-22 05:58 最终版\发送\2401driver.LST
文件 16253 2015-03-22 05:58 最终版\发送\2401driver.OBJ
文件 26301 2015-03-22 04:41 最终版\发送\codetab.h
文件 41556 2015-03-22 05:58 最终版\发送\fiest
文件 23061 2015-03-22 05:58 最终版\发送\fiest.hex
文件 60 2015-03-22 05:58 最终版\发送\fiest.lnp
文件 38929 2015-03-22 05:58 最终版\发送\fiest.M51
文件 189 2015-04-25 12:50 最终版\发送\fiest.plg
文件 74901 2015-04-25 12:50 最终版\发送\fiest.uvgui.duan
文件 74525 2015-03-22 07:01 最终版\发送\fiest.uvgui_duan.bak
文件 7712 2015-04-25 12:50 最终版\发送\fiest.uvopt
文件 13610 2015-03-22 04:50 最终版\发送\fiest.uvproj
文件 63586 2015-03-22 04:41 最终版\发送\fiest_uvopt.bak
文件 13250 2015-03-22 04:41 最终版\发送\fiest_uvproj.bak
文件 1044 2015-03-22 04:41 最终版\发送\keyscan.h
文件 4774 2015-03-22 04:41 最终版\发送\LQ12864.h
文件 1887 2015-03-22 06:00 最终版\发送\main.c
文件 4549 2015-03-22 05:58 最终版\发送\main.LST
文件 29789 2015-03-22 05:58 最终版\发送\main.OBJ
文件 157 2015-03-22 04:41 最终版\发送\shengguang.h
文件 6376 2015-03-22 04:41 最终版\发送\STARTUP.A51
目录 0 2015-03-22 19:07 最终版\接收\
文件 7720 2015-03-22 04:41 最终版\接收\12864driver.c
文件 545 2015-03-22 04:41 最终版\接收\12864driver.h
文件 7717 2015-03-22 04:41 最终版\接收\2401driver.c
文件 3208 2015-03-22 04:41 最终版\接收\2401driver.h
文件 12152 2015-03-22 06:02 最终版\接收\2401driver.LST
............此处省略22个文件信息
- 上一篇:opencv实现surf算法
- 下一篇:ELGamal简单实现
相关资源
- 51单片机_GPS程序
- 单片机C语言实现流水灯,跑马灯仿真
- 基于单片机的光立方控制系统.doc
- 基于89C51的0-99秒表计8个成绩电路图和
- 文件转数组及C语言字符串工具
- 51单片机基于C语言双机通信
- IAR软件的安装与使用
- 单片机c头文件at89X51/AT89X52
- 999秒倒计时程序 单片机
- 六个8X8点阵.zip
- 用C8051F单片机写的中断控制程序C语言
- 单片机计时器/计数器产生方波
- C利用循环左移函数流水灯
- 单片机C语言关键语句
- VS2010调用Keil实现单片机c语言编程
- 51单片机c语言电子钟(已加入调时、
- 基于AT89C52单片机的语音录放系统的
- C语言实现PID控制直流电机调速含pro
- MSP430单片机实现FFT(全国大学生电子
- MAX485两个单片机半双工通信
- c51单片机24C01-24C16读写程序含PROTEUS仿
- pic18系列单片机C语言程序例程
- 基于8051单片机的数字电压表设计
- 基于51单片机的电子琴程序 protues仿真
- 单片机课程设计教程
- 51单片机做红外遥控
- 51单片机GPS程序
- 51单片机C语言电流电压测量代码
- 基于STM32单片机的多路数据采集系统设
- labview与单片机rs232串口通信
评论
共有 条评论