當前位置:首頁 > 單片機 > 單片機
[導讀]#include#include#include"lcd12864.h"#defineuintunsignedint#defineucharunsignedchar#defineMISOPINB.6#defineSCKPORTB.7#defineMOSIPORTB.5#defineCSNPORTC.0#defineCEPORTC.1#defineIRQPORTC.2#defineCONFIG0x0

#include

#include

#include"lcd12864.h"

#defineuintunsignedint

#defineucharunsignedchar

#defineMISOPINB.6

#defineSCKPORTB.7

#defineMOSIPORTB.5

#defineCSNPORTC.0

#defineCEPORTC.1

#defineIRQPORTC.2

#defineCONFIG0x00//配置收發(fā)狀態(tài),CRC校驗模式以及收發(fā)狀態(tài)響應方式

#defineEN_AA0x01//自動應答使能

#defineEN_RXADDR0x02//接收地址允許

#defineSETUP_AW0x03//設置地址寬度

#defineSETUP_RETR0x04//建立自動重發(fā)

#defineRF_CH0x05//射頻通道

#defineRF_SETUP0x06//射頻寄存器

#defineSTATUS0x07//狀態(tài)寄存器

#defineOBSTERVE_TX0x08//發(fā)送檢測寄存器

#defineCD0x09//載波檢測

#defineRX_ADDR_P00x0a//數(shù)據通道0接收地址

#defineRX_ADDR_P10x0b//數(shù)據通道0接收地址

#defineRX_ADDR_P20x0c//數(shù)據通道0接收地址

#defineRX_ADDR_P30x0d//數(shù)據通道0接收地址

#defineRX_ADDR_P40x0e//數(shù)據通道0接收地址

#defineRX_ADDR_P50x0f//數(shù)據通道0接收地址

#defineTX_ADDR0x10//發(fā)送地址

#defineRX_PW_P00x11//

#defineRX_PW_P10x12//

#defineRX_PW_P20x13//

#defineRX_PW_P30x14//

#defineRX_PW_P40x15//

#defineRX_PW_P50x16//

#defineFIFO_STATUS0x17//FIFO狀態(tài)寄存器

#defineREAD_REG0x00//讀寄存器指令

#defineWRITE_REG0x20//寫寄存器指令

#defineRD_RX_PLOAD0x61//讀取接收數(shù)據指令

#defineWR_TX_PLOAD0xA0//寫待發(fā)數(shù)據指令

#defineFLUSH_TX0xE1//沖洗發(fā)送FIFO指令

#defineFLUSH_RX0xE2//沖洗接收FIFO指令

#defineREUSE_TX_PL0xE3//定義重復裝載數(shù)據指令

#defineNOP0xFF//保留

#defineTX_ADR_WIDTH5//5uintsTXaddresswidth

#defineRX_ADR_WIDTH5//5uintsRXaddresswidth

#defineTX_PLOAD_WIDTH20//20uintsTXpayload

#defineRX_PLOAD_WIDTH20//20uintsTXpayload

ucharstatus;

ucharstr[30];

ucharTX_ADDRESS[TX_ADR_WIDTH]={0x05,0x04,0x03,0x02,0x01};//本地地址

ucharRX_ADDRESS[RX_ADR_WIDTH]={0x05,0x04,0x03,0x02,0x01};//接收地址

ucharTxBuf[17]="anywhereyouare";

ucharSPI_RW(ucharuuchar)//SPI寫時序

{

ucharbit_ctr;

for(bit_ctr=0;bit_ctr<8;bit_ctr++)

{

MOSI=(uuchar&0x80);

uuchar=(uuchar<<1);

SCK=1;

uuchar|=MISO;

SCK=0;

}

return(uuchar);

}

ucharSPI_Read(ucharreg)//SPI讀取一個字節(jié)

{

ucharreg_val;

CSN=0;

SPI_RW(reg);

delay_ms(1);

reg_val=SPI_RW(0);

delay_ms(1);

CSN=1;

return(reg_val);

}

ucharSPI_RW_Reg(ucharreg,ucharvalue)//寫一個自接到寄存器函數(shù)

{

ucharstatus;

CSN=0;

status=SPI_RW(reg);

delay_ms(1);

SPI_RW(value);

delay_ms(1);

CSN=1;

return(status);

}

uchar*ucharostr(ucharnum)

{

ucharx00,xx,x0,x,n;

x00=num/100;

xx=num0;

x0=xx/10;

x=xx;

n=0;

if(x00!=0)

{

str[n]=x00+48;

n++;

}

if(!(x00==0&x0==0))

{

str[n]=x0+48;

n++;

}

str[n]=x+48;

n++;

str[n]='