欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2506|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

NRF24L01小車程序已經(jīng)完全調(diào)通51單片機(jī)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:483213 發(fā)表于 2019-3-23 15:04 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/*發(fā)送*/
#include <reg52.h>
#include <intrins.h>
typedef unsigned char uchar;
typedef unsigned char uint;
/************************************NRF24L01端口定義***********************************/
sbit MISO=P2^5;            //數(shù)字輸出(從 SPI 數(shù)據(jù)輸出腳)
sbit MOSI=P2^4;            //數(shù)字輸入(從 SPI 數(shù)據(jù)輸入腳)
sbit SCK=P2^7;            //數(shù)字輸入(SPI 時鐘)
sbit CE=P2^1;            //數(shù)字輸入(RX 或 TX 模式選擇)
sbit CSN=P2^2;            //數(shù)字輸入(SPI片選信號)
sbit IRQ=P2^6;            //數(shù)字輸入(可屏蔽中斷)
/************************************按鍵***********************************************/
sbit KEY1=P3^3;     //按鍵S1
sbit KEY2=P3^2;     //按鍵S2
sbit KEY3=P3^4;     //按鍵S3
sbit KEY4=P3^5;     //按鍵S4
/*********************************************NRF24L01***********************************/
#define TX_ADR_WIDTH 5             
#define RX_ADR_WIDTH 5      
#define TX_PLOAD_WIDTH 20         
#define RX_PLOAD_WIDTH 20         
uint const TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01};        //本地地址
uint const RX_ADDRESS[RX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01};        //接收地址
/***************************************NRF24L01寄存器指令*******************************/
#define READ_REG        0x00        // 讀寄存器指令
#define WRITE_REG       0x20        // 寫寄存器指令
#define RD_RX_PLOAD     0x61        // 讀取接收數(shù)據(jù)指令
#define WR_TX_PLOAD     0xA0        // 寫待發(fā)數(shù)據(jù)指令
#define FLUSH_TX        0xE1        // 沖洗發(fā)送 FIFO指令
#define FLUSH_RX        0xE2        // 沖洗接收 FIFO指令
#define REUSE_TX_PL     0xE3        // 定義重復(fù)裝載數(shù)據(jù)指令
#define NOP             0xFF        // 保留
/*************************************SPI(nRF24L01)寄存器地址***********************/
#define CONFIG          0x00        // 配置收發(fā)狀態(tài),CRC校驗?zāi)J揭约笆瞻l(fā)狀態(tài)響應(yīng)方式
#define EN_AA           0x01        // 自動應(yīng)答功能設(shè)置
#define EN_RXADDR       0x02        // 可用信道設(shè)置
#define SETUP_AW        0x03        // 收發(fā)地址寬度設(shè)置
#define SETUP_RETR      0x04        // 自動重發(fā)功能設(shè)置
#define RF_CH           0x05         // 工作頻率設(shè)置
#define RF_SETUP                0x06        // 發(fā)射速率、功耗功能設(shè)置
#define STATUS                        0x07        // 狀態(tài)寄存器
#define OBSERVE_TX                0x08        // 發(fā)送監(jiān)測功能
#define CD                                0x09        // 地址檢測
#define RX_ADDR_P0                0x0A        // 頻道0接收數(shù)據(jù)地址
#define RX_ADDR_P1                0x0B        // 頻道1接收數(shù)據(jù)地址
#define RX_ADDR_P2                0x0C        // 頻道2接收數(shù)據(jù)地址
#define RX_ADDR_P3                0x0D        // 頻道3接收數(shù)據(jù)地址
#define RX_ADDR_P4                0x0E        // 頻道4接收數(shù)據(jù)地址
#define RX_ADDR_P5                0x0F        // 頻道5接收數(shù)據(jù)地址
#define TX_ADDR                        0x10        // 發(fā)送地址寄存器
#define RX_PW_P0                0x11        // 接收頻道0接收數(shù)據(jù)長度
#define RX_PW_P1                0x12        // 接收頻道0接收數(shù)據(jù)長度
#define RX_PW_P2                0x13        // 接收頻道0接收數(shù)據(jù)長度
#define RX_PW_P3                0x14        // 接收頻道0接收數(shù)據(jù)長度
#define RX_PW_P4                0x15        // 接收頻道0接收數(shù)據(jù)長度
#define RX_PW_P5                0x16        // 接收頻道0接收數(shù)據(jù)長度
#define FIFO_STATUS                0x17        // FIFO棧入棧出狀態(tài)寄存器設(shè)置

/*************************************函數(shù)聲明****************************************/
void Delay(unsigned int s);                                                                        //大延時
void inerDelay_us(unsigned char n);                                                        //小延時
void init_NRF24L01(void);                                                                        //NRF24L01 初始化
uint SPI_RW(uint dat);                                                                                //根據(jù)SPI協(xié)議,寫一字節(jié)數(shù)據(jù)到nRF24L01,同時從nRF24L01讀出一字節(jié)
uchar SPI_Read(uchar reg);                                                                        //從reg寄存器讀一字節(jié)
void SetRX_Mode(void);                                                                                //數(shù)據(jù)接收配置
uint SPI_RW_Reg(uchar reg, uchar value);                                        //寫數(shù)據(jù)value到reg寄存器
uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars);        //從reg寄存器讀出bytes個字節(jié),通常用來讀取接收通道數(shù)據(jù)或接收/發(fā)送地址
uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars);        //把pBuf緩存中的數(shù)據(jù)寫入到nRF24L01,通常用來寫入發(fā)射通道數(shù)據(jù)或接收/發(fā)送地址
unsigned char nRF24L01_RxPacket(unsigned char* rx_buf);                //數(shù)據(jù)讀取后放入rx_buf接收緩沖區(qū)中
void nRF24L01_TxPacket(unsigned char * tx_buf);                                //發(fā)送 tx_buf中數(shù)據(jù)

/*****************************************長延時*****************************************/
void Delay(unsigned int s)
{
        unsigned int i;
        for(i=0; i<s; i++);
}

/******************************************************************************************/
uint        bdata sta;                        //狀態(tài)標(biāo)志
sbit        RX_DR        =sta^6;                //RX_DR 為 sta 的第六位
sbit        TX_DS        =sta^5;                //TX_DS 為 sta 的第五位
sbit        MAX_RT        =sta^4;                //MAX_RT 為 sta 的第四位

/******************************************延時函數(shù)(短延時)*************************************************/
void inerDelay_us(unsigned char n)        //延時,us 級
{
        for(;n>0;n--)
                _nop_();
}

/****************************************NRF24L01初始化************************************************/
void init_NRF24L01(void)
余下代碼請從附件下載。

NRF24L01小車程序已經(jīng)完全調(diào)通51單片機(jī).rar

4.37 KB, 下載次數(shù): 75, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2019-3-23 17:14 | 只看該作者
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復(fù)

使用道具 舉報

板凳
ID:79544 發(fā)表于 2019-12-13 10:12 | 只看該作者
感謝分享學(xué)習(xí)啦!送人玫瑰手留余香!
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表