wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

基于NRF24L01無線模塊的STC89C52單片機發射(TX)C語言程序

作者:佚名   來源:本站原創   點擊數:  更新時間:2013年04月19日   【字體:

在網上看到很多朋友都在苦苦尋找NRF24L01無線模塊相關程序,在此為了滿足大家貼出來,方便大家學習,此程序注釋詳細。功能簡單說一下:NRF24L01無線模塊就要完成TxDate數組數據的發送,很簡單的一個程序,只要你硬件沒有問題,一般都可以正常工作的!

        

#include <reg52.h>

#define unchar unsigned char

#define unint  unsigned int

/*******************************************************/

#define TX_ADDR_WITDH 5//發送地址寬度設置為5個字節

#define RX_ADDR_WITDH 5//接收地址寬度設置為5個字節

#define TX_DATA_WITDH 4//發送數據寬度1個字節

#define RX_DATA_WITDH 4//接收數據寬度1個字節

/*******************命令寄存器***************************/

#define  R_REGISTER      0x00//讀取配置寄存器

#define  W_REGISTER      0x20//寫配置寄存器

#define  R_RX_PAYLOAD 0x61//讀取RX有效數據

#define  W_TX_PAYLOAD 0xa0//寫TX有效數據

#define  FLUSH_TX 0xe1//清除TXFIFO寄存器

#define  FLUSH_RX 0xe2//清除RXFIFO寄存器

#define  REUSE_TX_PL     0xe3//重新使用上一包有效數據

#define  NOP             0xff//空操作

/******************寄存器地址****************************/

#define  CONFIG          0x00//配置寄存器

#define  EN_AA 0x01//使能自動應答

#define  EN_RXADDR       0x02//接收通道使能0-5個通道

#define  SETUP_AW        0x03//設置數據通道地址寬度3-5

#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//P0通道數據寬度設置

#define  RX_PW_P1        0x12//P1通道數據寬度設置

#define  RX_PW_P2        0x13//P2通道數據寬度設置

#define  RX_PW_P3        0x14//P3通道數據寬度設置

#define  RX_PW_P4        0x15//P4通道數據寬度設置

#define  RX_PW_P5        0x16//P5通道數據寬度設置

#define  FIFO_STATUS     0x17//FIFO狀態寄存器

/*******************相關函數聲明**************************/

unchar NRFACK();

unchar NRFSPI(unchar date);

unchar NRFReadReg(unchar RegAddr);

unchar NRFWriteReg(unchar RegAddr,unchar date);

unchar NRFReadRxDate(unchar RegAddr,unchar *RxDate,unchar DateLen);

unchar NRFWriteTxDate(unchar RegAddr,unchar *TxDate,unchar DateLen);

unchar NRFRevDate(unchar *RevDate);

void NRFSetTxMode(unchar *TxDate);

void NRF24L01Int();

void NRFSetRXMode();

unchar CheckACK();

unchar sta;

/******************SPI口定義*******************************/

sbit CE=P2^0;  //RX/TX模式選擇端

sbit IRQ=P2^5; //可屏蔽中斷端

sbit CSN=P2^3; //SPI片選端//就是SS

sbit MOSI=P2^4;//SPI主機輸出從機輸入端

sbit MISO=P2^2;//SPI主機輸出從機輸出端

sbit SCLK=P2^1;//SPI時鐘端

unchar code TxAddr[]={0x34,0x43,0x10,0x10,0x01};//發送地址

/*****************狀態標志*****************************************/

unchar bdata sta;   //狀態標志

sbit RX_DR=sta^6;

sbit TX_DS=sta^5;

sbit MAX_RT=sta^4;

/***************************延時函數****************/

void Delay(unint t)

{

 unint x,y;

 for(x=t;x>0;x--)

  for(y=110;y>0;y--);

}

/*****************SPI時序函數******************************************/

unchar NRFSPI(unchar date)

{

   unchar i;

  for(i=0;i<8;i++)          // 循環8次

  {

 if(date&0x80)

   MOSI=1;

 else

   MOSI=0;   // byte最高位輸出到MOSI

   date<<=1;             // 低一位移位到最高位

   SCLK=1;

 if(MISO)               // 拉高SCK,nRF24L01從MOSI讀入1位數據,同時從MISO輸出1位數據

     date|=0x01;       // 讀MISO到byte最低位

   SCLK=0;            // SCK置低

  }

   return(date);           // 返回讀出的一字節

}

/**********************NRF24L01初始化函數*******************************/

void NRF24L01Int()

{

Delay(2);//讓系統什么都不干

CE=0; //待機模式1  

CSN=1;  

SCLK=0;

IRQ=1;

}

/*****************SPI讀寄存器一字節函數*********************************/

unchar NRFReadReg(unchar RegAddr)

{

  unchar BackDate;

  CSN=0;//啟動時序

  NRFSPI(RegAddr);//寫寄存器地址

  BackDate=NRFSPI(0x00);//寫入讀寄存器指令  

  CSN=1;

  return(BackDate); //返回狀態

}

/*****************SPI寫寄存器一字節函數*********************************/

unchar NRFWriteReg(unchar RegAddr,unchar date)

{

  unchar BackDate;

  CSN=0;//啟動時序

  BackDate=NRFSPI(RegAddr);//寫入地址

  NRFSPI(date);//寫入值

  CSN=1;

  return(BackDate);

}

/*****************SPI讀取RXFIFO寄存器的值********************************/

unchar NRFReadRxDate(unchar RegAddr,unchar *RxDate,unchar DateLen)

{  //寄存器地址//讀取數據存放變量//讀取數據長度//用于接收

   unchar BackDate,i;

CSN=0;//啟動時序

BackDate=NRFSPI(RegAddr);//寫入要讀取的寄存器地址

for(i=0;i<DateLen;i++) //讀取數據

 {

    RxDate[i]=NRFSPI(0);

 }

   CSN=1;

  return(BackDate);

}

/*****************SPI寫入TXFIFO寄存器的值**********************************/

unchar NRFWriteTxDate(unchar RegAddr,unchar *TxDate,unchar DateLen)

{ //寄存器地址//寫入數據存放變量//讀取數據長度//用于發送

  unchar BackDate,i;

  CSN=0;

  BackDate=NRFSPI(RegAddr);//寫入要寫入寄存器的地址

  for(i=0;i<DateLen;i++)//寫入數據

    {

   NRFSPI(*TxDate++);

}  

  CSN=1;

  return(BackDate);

}

/*****************NRF設置為發送模式并發送數據******************************/

void NRFSetTxMode(unchar *TxDate)

{//發送模式

   CE=0;

  NRFWriteTxDate(W_REGISTER+TX_ADDR,TxAddr,TX_ADDR_WITDH);//寫寄存器指令+接收地址使能指令+接收地址+地址寬度

NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH);//為了應答接收設備,接收通道0地址和發送地址相同

NRFWriteTxDate(W_TX_PAYLOAD,TxDate,TX_DATA_WITDH);//寫入數據

/******下面有關寄存器配置**************/

 NRFWriteReg(W_REGISTER+EN_AA,0x01);       // 使能接收通道0自動應答

 NRFWriteReg(W_REGISTER+EN_RXADDR,0x01);   // 使能接收通道0

 NRFWriteReg(W_REGISTER+SETUP_RETR,0x0a);  // 自動重發延時等待250us+86us,自動重發10次

 NRFWriteReg(W_REGISTER+RF_CH,0x40);         // 選擇射頻通道0x40

 NRFWriteReg(W_REGISTER+RF_SETUP,0x07);    // 數據傳輸率1Mbps,發射功率0dBm,低噪聲放大器增益

NRFWriteReg(W_REGISTER+CONFIG,0x0e);      // CRC使能,16位CRC校驗,上電  

CE=1;

Delay(5);//保持10us秒以上

}

/*****************NRF設置為接收模式并接收數據******************************/

//主要接收模式

void NRFSetRXMode()

{

CE=0;  

 NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH);  // 接收設備接收通道0使用和發送設備相同的發送地址

 NRFWriteReg(W_REGISTER+EN_AA,0x01);               // 使能接收通道0自動應答

 NRFWriteReg(W_REGISTER+EN_RXADDR,0x01);           // 使能接收通道0

 NRFWriteReg(W_REGISTER+RF_CH,0x40);                 // 選擇射頻通道0x40

 NRFWriteReg(W_REGISTER+RX_PW_P0,TX_DATA_WITDH);  // 接收通道0選擇和發送通道相同有效數據寬度

 NRFWriteReg(W_REGISTER+RF_SETUP,0x07);            // 數據傳輸率1Mbps,發射功率0dBm,低噪聲放大器增益*/

 NRFWriteReg(W_REGISTER+CONFIG,0x0f);              // CRC使能,16位CRC校驗,上電,接收模式

 CE = 1;

Delay(5);//保持10us秒以上    

}

/****************************檢測應答信號******************************/

unchar CheckACK()

{  //用于發射

sta=NRFReadReg(R_REGISTER+STATUS);                    // 返回狀態寄存器

if(TX_DS||MAX_RT) //發送完畢中斷

{

  NRFWriteReg(W_REGISTER+STATUS,0xff);  // 清除TX_DS或MAX_RT中斷標志

  CSN=0;

  NRFSPI(FLUSH_TX);//用于清空FIFO !!關鍵!!不然會出現意想不到的后果!!!大家記住!!  

      CSN=1;

  return(0);

}

else

  return(1);

}

/****************************主函數******************************/

void main()

{

  char TxDate[4]={0x00,0x01,0x02,0x03};

  NRF24L01Int();

  while(1)

   {

NRFSetTxMode(TxDate);//發送溫度

while(CheckACK());//檢測是否發送完畢

}

}
關閉窗口

相關文章

日韩视频一区二区三区四区| 美女国内精品自产拍在线播放| 一区二区三区在线影院| 久久九九全国免费| 99久久久国产精品| 成人福利电影精品一区二区在线观看| 国产乱理伦片在线观看夜一区| 久久99精品久久久久久动态图| 男女精品网站| 日韩电影免费在线| 美国十次了思思久久精品导航| av在线天堂| 影音先锋在线影院| 亚洲成人精品一区二区三区| 一个人免费观看视频www在线播放| 992tv在线影院| 在线免费毛片| 狠狠v欧美ⅴ日韩v亚洲v大胸| 精品视频二区| 免费大片黄在线观看视频网站| 求av网址在线观看| 国产区美女在线| 欧美momandson| 高清一区二区中文字幕| 高清日韩欧美| 日韩在线高清| 国产欧美一级| 国内欧美视频一区二区| 91亚洲精品一区二区乱码| 国产午夜精品久久| 夜夜亚洲天天久久| 日本韩国精品在线| 日韩欧美国产系列| 综合网日日天干夜夜久久| 久久久久久久久久久亚洲| 国产精品久久久久久久久久三级| 97超碰人人看人人| 亚洲欧美丝袜| 成人av一级片| 性高潮久久久久久| jizz日本在线播放| www亚洲视频| 性做久久久久久久久久| 欧美性猛交ⅹxxx乱大交免费| 免费vip影院| 一区二区三区视频国产日韩 | 欧美性猛交xxxx黑人交| 精品日韩欧美一区二区| 色视频www在线播放国产成人| 97国产精品免费视频| 成人日韩av在线| 欧美精品成人一区二区在线观看 | 97在线视频免费观看| 国产欧美欧洲在线观看| 欧美极品日韩| 最近日韩中文字幕中文| 日本亚洲欧美三级| 久久久久久国产精品免费免费| 喜爱夜蒲2在线| 国产探花在线观看视频| 日日操免费视频| 亚洲视频在线免费播放| 性欧美最新另类| 日本免费看黄色| 国产丝袜在线观看视频| 人妖一区二区三区| 老**午夜毛片一区二区三区| 久久一日本道色综合| 一本色道久久综合亚洲精品按摩| 亚洲精品网站在线播放gif| 日韩av片免费在线观看| 日韩电影天堂视频一区二区| 亚洲老女人av| 欧美黄色一级网站| 色婷婷视频在线| aaa一级毛片| 老色鬼在线视频| 成人影院天天5g天天爽无毒影院| 黑人巨大精品欧美黑白配亚洲 | 日本不卡一区二区三区在线观看 | 加勒比视频一区| 亚洲永久免费| 中文字幕av不卡| 91麻豆精品国产91| 91av在线免费观看| 中文字幕中文字幕在线中一区高清 | 日韩视频在线直播| 国产精品女主播一区二区三区| 国产清纯白嫩初高生在线观看91| 欧美日韩免费观看一区二区三区| 超碰97人人做人人爱少妇| 国产精品久久精品国产| 九一精品在线观看| 免费观看一级视频| 欧美18一14sex性处hd| 国产高清视频免费最新在线| 亚洲精品aⅴ| 免费美女久久99| 国产精品久久久久久麻豆一区软件 | 中文字幕色一区二区| 91视频在线免费| 国产又粗又猛又爽又黄91| chinesemodel无套啪啪| 国产精品xx| 欧美黄色aaaa| 最近日韩中文字幕| 亚洲一区二区国产| 欧美精品亚洲精品| 性色av蜜臀av色欲av| www.国产精品视频| 屁屁影院在线观看| 视频精品二区| 国产成人免费在线观看| 欧美一区二区三区四区五区| 国产精品自拍偷拍| 亚洲五月天综合| 日本a级c片免费看三区| 麻豆资源在线| 激情综合五月| 国产不卡一区视频| 精品嫩草影院久久| 精品国产一区二区三区免费| 亚洲视频在线播放免费| 无码国产精品一区二区免费16| 成人高清在线| 日韩综合网站| 亚洲老妇xxxxxx| 国模极品一区二区三区| 黄页免费在线观看视频| 日韩黄色三级视频| 影视先锋午夜av| 国产高清精品二区| 成人午夜私人影院| 日韩精品视频中文在线观看| 日本一区二区三不卡| 手机在线中文字幕| 多人啪嗒啪嗒在线观看免费| 国产精品久久久久久妇女| 国内外成人在线| 亚洲福利视频在线| 色噜噜色狠狠狠狠狠综合色一| 国产18无套直看片| 日本簧片在线观看| 成人黄色理论片| 国产91色综合久久免费分享| 国产一区二区三区视频免费| 久久久成人精品一区二区三区 | 亚洲欧美综合7777色婷婷| 91视频福利| 九九热这里有精品| a美女胸又www黄视频久久| 一道本无吗dⅴd在线播放一区| 一区二区三区免费看| 国产亚洲第一页| 97影视大全免费追剧大全在线观看| 自拍亚洲一区| 亚洲一区影音先锋| 国产日韩欧美视频| 少妇一级淫片免费放播放| 狂野欧美性猛交xxxx乱大交| 日韩一区精品| www欧美成人18+| 久久久久久久香蕉网| 久久久久久久久久一区二区| 男女啪啪无遮挡| 日韩精品三区| 91色综合久久久久婷婷| 国产精品色在线观看| 久久综合88中文色鬼| 国产一级不卡毛片| 亚洲第一色网| 国产精品毛片久久久久久久久久99999999| 精品无人码麻豆乱码1区2区| 国产亚洲精品一区二区| 国产视频一视频二| 蜜桃av中文字幕| 成人影院入口| 久久午夜老司机| 国产91精品久久久久久| 男人的天堂影院| www.午夜| 国产精品久久久久久久久久10秀| 欧美久久免费观看| 伊人婷婷久久| 亚洲一级特黄毛片| 91探花在线观看| 成人av在线观| 欧美在线观看视频| 蜜臀久久99精品久久久久久| 黄网在线播放| 亚洲久久成人| 亚洲欧洲在线看| 手机视频在线观看| 国产欧美日本亚洲精品一4区| 99这里只有精品视频| 亚洲www啪成人一区二区麻豆| 国产伦精品一区二区三区免费视频| 精品无码久久久久久久| 97超碰人人在线| 国产伦精品一区二区三区视频青涩 | 99视频在线观看免费| 蜜桃麻豆av在线| 国产欧美一区二区在线| 成人深夜直播免费观看| 久久免费小视频| 欧美天天影院| 91老师国产黑色丝袜在线| 国产精品久久中文| 国产真实夫妇交换视频| 97caopron在线视频| 26uuu欧美日本| 91精品视频在线播放| 日韩精品国产一区二区| 性欧美videoshd高清| 久久久五月婷婷| 99久久精品免费看国产四区| 日韩在线播放中文字幕| 国产小视频一区| 久久久精品区| 在线视频中文字幕一区二区| 日本一二三区视频在线| 久久午夜宅男免费网站| 香蕉久久夜色精品国产更新时间| 欧美日韩一区二区欧美激情| 国产免费黄视频| 日本jizzcom| 激情久久久久久| 久久综合九色九九| 人人妻人人澡人人爽| 国产精品麻豆一区二区三区| 99视频一区二区| http;//www.99re视频| 在线播放国产一区| 亚洲精品第一| 精品视频999| 久久久国产欧美| 在线看片地址| 美女www一区二区| 国产精品成人一区| 无码人妻精品一区二区蜜桃色欲| 成人啊v在线| 欧美性猛片aaaaaaa做受| 女人扒开屁股爽桶30分钟| www.狠狠| 麻豆一区二区99久久久久| 国产精品免费一区| 中文在线观看免费高清| 欧美精品影院| 日韩色在线观看| 日本一卡二卡在线| 秋霞午夜理伦电影在线观看| 中文字幕亚洲精品在线观看| 亚洲成人网上| 国产秒拍福利视频露脸| 亚洲黄页一区| 日本免费久久高清视频| 久久久久久av无码免费看大片| 日韩精品视频中文字幕| 欧美成人精品高清在线播放 | 已婚少妇美妙人妻系列| gay网站在线| 粉嫩av一区二区三区在线播放| 国产精品中出一区二区三区| 亚洲色图图片区| 欧美涩涩视频| 人人做人人澡人人爽欧美| 色婷婷久久综合中文久久蜜桃av| 在线综合色站| 国产一区二区三区直播精品电影| 99鲁鲁精品一区二区三区| 成人在线爆射| 日韩一区二区三区观看| 不卡一区二区在线观看| 色av手机在线| 欧美亚洲丝袜传媒另类| 日本一二区免费| av资源在线观看免费高清| 玉米视频成人免费看| 成年人视频在线免费| 中文字幕国产在线| 亚洲天堂久久久久久久| 看av免费毛片手机播放| 亚洲av中文无码乱人伦在线视色| 日本成人一区二区| 亚洲免费av片| 久久久久久久久久久久久久久久久| 色999久久久精品人人澡69| 精品国产成人系列| 国精产品视频一二二区| 日日夜夜一区| 国产亚洲精品美女| 精品成人久久久| 久久91在线| 欧美插天视频在线播放| 在线免费观看高清视频| 久久中文字幕二区| 欧美野外猛男的大粗鳮| www.国产黄色| 性一交一乱一区二区洋洋av| 国产精品推荐精品| 九色视频在线观看免费| 99久久99久久精品免费观看| 国产一线二线三线女| 青青草视频免费在线观看| 亚洲国产一区二区三区青草影视| 色网站在线视频| a视频在线观看免费| 欧美理论电影在线| 日韩在线一卡二卡| 另类尿喷潮videofree| 久久久久久综合网天天| 特黄aaaaaaaaa真人毛片| 香蕉精品999视频一区二区| 久久99精品久久久久久三级| wwww在线观看| 国产精品久久久99| 日本高清免费在线视频| 伊人网在线播放| 国产一区二区三区视频| 91黑人精品一区二区三区| 我不卡影院28| 国产91aaa| 成人国产视频在线| 午夜视黄欧洲亚洲| 国产高清一区二区三区四区| 日韩视频1区| 欧美一级在线播放| 欧美白人猛性xxxxx交69| 91在线小视频| 一道本在线免费视频| 中文在线а√天堂| x99av成人免费| 欧美特级特黄aaaaaa在线看| 国内成人免费视频| 成人在线免费观看av| 伊人222成人综合网| 日韩av综合网站| 91tv国产成人福利| 日本不卡免费在线视频| 日韩精品手机在线观看| 理论片午午伦夜理片在线播放| 天堂蜜桃91精品| 精品一区二区三区无码视频| 黄色网页网址在线免费| 精品小视频在线| www.亚洲欧美| 国产精品亚洲一区二区三区妖精 | 日韩欧美在线一区二区三区| 国产一区二区三区影院| 黄色成人91| 亚洲国产午夜伦理片大全在线观看网站| 亚洲男人都懂的网站| 9191成人精品久久| 天天操天天干天天摸| 视频一区视频二区中文| 女人色极品影院| 七七成人影院| 精品国产欧美一区二区三区成人 | 色婷婷综合网| 欧美日韩一区在线观看视频| 你懂的在线观看| 日韩不卡在线观看| 日本韩国免费观看| www精品美女久久久tv| 偷偷色噜狠狠狠狠的777米奇| 国产亚洲精品美女久久| 亚洲一区美女视频在线观看免费| 全部孕妇毛片丰满孕妇孕交| 555www色欧美视频| 国产一区二区网站| 高清国产午夜精品久久久久久| 五月天婷婷影视| gogo人体一区| 好看的日韩精品| 国产黄色片在线播放| 在线看日韩欧美| 国产日韩网站| 精品成人乱色一区二区| 国产精品久久久久久99| 美女尤物国产一区| www.亚洲自拍| 久久99影视| 亚洲一区精彩视频| 欧美aa在线观看| 国产精品国产亚洲伊人久久| 色琪琪免费视频网站| 欧美精品一区二区不卡 | 99久久自偷自偷国产精品不卡| 白白色在线发布| 亚洲精品mp4| 亚洲视频日韩| 亚洲6080在线| 最近免费中文字幕大全免费版视频| 国产一区在线不卡| 影音先锋资源av| 91精品一区二区三区综合| 美女扒开大腿让男人桶| 欧美经典影片视频网站| 欧美极品jizzhd欧美| 日韩深夜视频|