資源簡介
自己寫的,已經測試了的,能夠進行雙向通信,實現雙向控制,nrf24l01是2.4G無線發送接收模塊,傳輸數據速率可達2M。。。。

代碼片段和文件信息
#include?
#include?
typedef?unsigned?char?uchar;
typedef?unsigned?int?uint;
sbit? MISO =P2^0;
sbit? MOSI =P2^1;
sbit SCK ????=P2^2;
sbit CE ????=P2^3;
sbit CSN =P2^4;
//sbit IRQ =P2^5;
#define?TX_ADR_WIDTH????5???
#define?RX_ADR_WIDTH????5???
#define?TX_PLOAD_WIDTH??16?? ??
#define?RX_PLOAD_WIDTH??16
#define?READ_REG????????0x00?? //?讀寄存器指令
#define?WRITE_REG???????0x20? //?寫寄存器指令
#define?RD_RX_PLOAD?????0x61?? //?讀取接收數據指令
#define?WR_TX_PLOAD?????0xA0?? //?寫待發數據指令
#define?FLUSH_TX????????0xE1? //?沖洗發送?FIFO指令
#define?FLUSH_RX????????0xE2?? //?沖洗接收?FIFO指令
#define?REUSE_TX_PL?????0xE3?? //?定義重復裝載數據指令
#define?NOP?????????????0xFF?? //?保留
#define?CONFIG??????????0x00??//?配置收發狀態,CRC校驗模式以及收發狀態響應方式
#define?EN_AA???????????0x01??//?自動應答功能設置
#define?EN_RXADDR???????0x02??//?可用信道設置
#define?SETUP_AW????????0x03??//?收發地址寬度設置
#define?SETUP_RETR??????0x04??//?自動重發功能設置
#define?RF_CH???????????0x05??//?工作頻率設置
#define?RF_SETUP????????0x06??//?發射速率、功耗功能設置
#define?STATUS??????????0x07??//?狀態寄存器
#define?OBSERVE_TX??????0x08??//?發送監測功能
#define?CD??????????????0x09??//?地址檢測???????????
#define?RX_ADDR_P0??????0x0A??//?頻道0接收數據地址
#define?RX_ADDR_P1??????0x0B??//?頻道1接收數據地址
#define?RX_ADDR_P2??????0x0C??//?頻道2接收數據地址
#define?RX_ADDR_P3??????0x0D??//?頻道3接收數據地址
#define?RX_ADDR_P4??????0x0E??//?頻道4接收數據地址
#define?RX_ADDR_P5??????0x0F??//?頻道5接收數據地址
#define?TX_ADDR?????????0x10??//?發送地址寄存器
#define?RX_PW_P0????????0x11??//?接收頻道0接收數據長度
#define?RX_PW_P1????????0x12??//?接收頻道0接收數據長度
#define?RX_PW_P2????????0x13??//?接收頻道0接收數據長度
#define?RX_PW_P3????????0x14??//?接收頻道0接收數據長度
#define?RX_PW_P4????????0x15??//?接收頻道0接收數據長度
#define?RX_PW_P5????????0x16??//?接收頻道0接收數據長度
#define?FIFO_STATUS?????0x17??//?FIFO棧入棧出狀態寄存器設置
unsigned?char?const?TX_ADDRESS[TX_ADR_WIDTH]=?{0x340x430x100x100x01};
unsigned?char?const?RX_ADDRESS[RX_ADR_WIDTH]=?{0x340x430x100x100x01};
//unsigned?char?const?TX1_ADDRESS[TX_ADR_WIDTH]=?{0x340x430x100x100x01};
//unsigned?char?const?RX1_ADDRESS[RX_ADR_WIDTH]=?{0x340x430x100x100x01};
uchar?bdata?sta;???//狀態標志
sbit RX_DR =sta^6;
sbit TX_DS =sta^5;
sbit MAX_RT =sta^4;
uchar???send=0;??
uchar? receive=0;
//串口初始化
void?init_s(?void?)
{?? //波特率9600
?????SCON?=?0x50;
?????TMOD?=?0x20;
?????TH1?=?0xFD;
?????TL1?=?0xFD;
?????PCON?=?0x00;
?????TR1?=?1;
?ES?=?1;
?EA?=?1;
}
//通過串口將接收到數據發送給PC端
void?to_pc(uchar?r_datauchar?flag)
{
?SBUF?=?r_data;??
?????while(?flag?==?0?);
?? ?flag?=?0;????
}
//長延時
/*
void?delay_l(uint?s)
{
uint?i;
for(i=0;?i for(i=0;?i}
*/
//短延時
void?delay_s(uchar?n)
{
for(;n>0;n--)
_nop_();
}
//讀寫數據
uchar?spi_rw(uchar?u_char)
{
uchar?bit_ctr;
??? for(bit_ctr=0;bit_ctr<8;bit_ctr++)?
??? {
MOSI?=?(u_char?&?0x80);//先輸出高位?????????
u_char?=?(u_char?<1);???????????
SCK?=?1;??????????????????????
u_char?|=?MISO;??????? ??
SCK?=?0;???????????? ?
??? }
????return(u_char)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????7310??2011-04-07?11:07??雙向通信\主機\2401.c
?????文件????????750??2011-04-07?10:57??雙向通信\主機\2401.h
?????文件??????14383??2011-04-07?21:03??雙向通信\主機\2401.LST
?????文件??????14752??2011-04-07?21:03??雙向通信\主機\2401.OBJ
?????文件???????1750??2011-04-07?20:54??雙向通信\主機\lcd.c
?????文件????????517??2011-04-07?20:57??雙向通信\主機\lcd.h
?????文件???????5001??2011-04-07?21:03??雙向通信\主機\lcd.LST
?????文件???????7131??2011-04-07?21:03??雙向通信\主機\lcd.OBJ
?????文件??????25562??2011-04-07?21:03??雙向通信\主機\master
?????文件???????1044??2011-04-07?21:03??雙向通信\主機\master.c
?????文件???????4138??2011-04-07?21:03??雙向通信\主機\master.hex
?????文件?????????85??2011-04-07?21:03??雙向通信\主機\master.lnp
?????文件???????3800??2011-04-07?21:03??雙向通信\主機\master.LST
?????文件??????29351??2011-04-07?21:03??雙向通信\主機\master.M51
?????文件???????7216??2011-04-07?21:03??雙向通信\主機\master.OBJ
?????文件???????1741??2011-04-07?21:50??雙向通信\主機\master.Opt
?????文件??????18472??2011-04-07?21:50??雙向通信\主機\master.plg
?????文件???????2228??2011-04-06?22:23??雙向通信\主機\master.Uv2
?????文件???????1432??2011-04-07?20:26??雙向通信\主機\master_Opt.Bak
?????文件???????2228??2011-04-06?22:14??雙向通信\主機\master_Uv2.Bak
?????文件???????6376??2011-04-07?21:03??雙向通信\主機\STARTUP.A51
?????文件??????10767??2011-04-07?21:03??雙向通信\主機\STARTUP.LST
?????文件????????750??2011-04-07?21:03??雙向通信\主機\STARTUP.OBJ
?????文件???????7636??2011-04-07?11:04??雙向通信\從機\2401.c
?????文件????????743??2011-04-07?11:04??雙向通信\從機\2401.h
?????文件??????15061??2011-04-07?21:22??雙向通信\從機\2401.LST
?????文件??????13681??2011-04-07?21:22??雙向通信\從機\2401.OBJ
?????文件???????1958??2011-04-07?21:21??雙向通信\從機\lcd.c
?????文件????????571??2011-04-07?21:11??雙向通信\從機\lcd.h
?????文件???????5482??2011-04-07?21:22??雙向通信\從機\lcd.LST
............此處省略22個文件信息
評論
共有 條評論