久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

nRF24L01無(wú)線模塊(51單片機(jī)收發(fā)源碼)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
nRF24L01無(wú)線模塊

單片機(jī)源程序如下:
  1. #include <reg51.h>
  2. #include <api.h>
  3. #include "1602.h"
  4. #define uchar unsigned char
  5. #define TX_ADR_WIDTH 5 // 5字節(jié)寬度的發(fā)送/接收地址
  6. #define TX_PLOAD_WIDTH 20// 數(shù)據(jù)通道有效數(shù)據(jù)寬度
  7. uchar TX_ADDRESS[TX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; //定義一個(gè)靜態(tài)發(fā)送地址
  8. uchar RX_BUF[TX_PLOAD_WIDTH];
  9. uchar RX_date[3]={0x30,0x30,0x30};
  10. uchar flag;
  11. uchar bdata sta;
  12. sbit  RX_DR=sta^6;
  13. sbit  TX_DS=sta^5;
  14. sbit  MAX_RT=sta^4;
  15. sbit  led=P1^5;
  16. void init_io(void)
  17. {
  18.         CE  = 0; //待機(jī)
  19.         CSN = 1;//SPI禁止
  20.         SCK = 0;//SPI時(shí)鐘置低
  21.         IRQ = 1;//中斷復(fù)位
  22. }
  23. uchar SPI_RW(uchar byte)
  24. {
  25.         uchar i;
  26.            for(i=0; i<8; i++)          // 循環(huán)8次
  27.            {
  28.                    MOSI = (byte & 0x80);   // byte最高位輸出到MOSI
  29.                    byte <<= 1;       // 低一位移位到最高位
  30.                    SCK = 1;         // 拉高SCK,nRF24L01從MOSI讀入1位數(shù)據(jù),同時(shí)從MISO輸出1位數(shù)據(jù)
  31.                    byte |= MISO;   // 讀MISO到byte最低位
  32.                    SCK = 0;             // SCK置低
  33.            }
  34.     return(byte);                   // 返回讀出的一字節(jié)
  35. }
  36. uchar SPI_RW_Reg(uchar reg, uchar value)   
  37. {
  38.         uchar status;
  39.           CSN = 0;                   // CSN置低,開(kāi)始傳輸數(shù)據(jù)
  40.           status = SPI_RW(reg);      // 選擇寄存器,同時(shí)返回狀態(tài)字
  41.           SPI_RW(value);             // 然后寫(xiě)數(shù)據(jù)到該寄存器
  42.           CSN = 1;                   // CSN拉高,結(jié)束數(shù)據(jù)傳輸
  43.           return(status);            // 返回狀態(tài)寄存器
  44. }
  45. uchar SPI_Read(uchar reg)
  46. {
  47.         uchar reg_val;
  48.           CSN = 0;                    // CSN置低,開(kāi)始傳輸數(shù)據(jù)
  49.           SPI_RW(reg);                // 選擇寄存器
  50.           reg_val = SPI_RW(0);        // 然后從該寄存器讀數(shù)據(jù)
  51.           CSN = 1;                    // CSN拉高,結(jié)束數(shù)據(jù)傳輸
  52.           return(reg_val);            // 返回寄存器數(shù)據(jù)
  53. }
  54. uchar SPI_Read_Buf(uchar reg, uchar * pBuf, uchar bytes)
  55. {
  56.         uchar status, i;
  57.           CSN = 0;                    // CSN置低,開(kāi)始傳輸數(shù)據(jù)
  58.           status = SPI_RW(reg);       // 選擇寄存器,同時(shí)返回狀態(tài)字
  59.           for(i=0; i<bytes; i++)
  60.             pBuf[i] = SPI_RW(0);    // 逐個(gè)字節(jié)從nRF24L01讀出
  61.           CSN = 1;                    // CSN拉高,結(jié)束數(shù)據(jù)傳輸
  62.           return(status);             // 返回狀態(tài)寄存器
  63. }
  64. uchar SPI_Write_Buf(uchar reg, uchar * pBuf, uchar bytes)
  65. {
  66.         uchar status, i;
  67.           CSN = 0;                    // CSN置低,開(kāi)始傳輸數(shù)據(jù)
  68.           status = SPI_RW(reg);       // 選擇寄存器,同時(shí)返回狀態(tài)字
  69.           for(i=0; i<bytes; i++)
  70.             SPI_RW(pBuf[i]);        // 逐個(gè)字節(jié)寫(xiě)入nRF24L01
  71.           CSN = 1;                    // CSN拉高,結(jié)束數(shù)據(jù)傳輸
  72.           return(status);             // 返回狀態(tài)寄存器
  73. }
  74. void RX_Mode(void)
  75. {
  76.         CE = 0;
  77.           SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH);  // 接收設(shè)備接收通道0使用和發(fā)送設(shè)備相同的發(fā)送地址
  78.           SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);               // 使能接收通道0自動(dòng)應(yīng)答
  79.           SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);           // 使能接收通道0
  80.           SPI_RW_Reg(WRITE_REG + RF_CH, 40);                 // 選擇射頻通道0x40
  81.           SPI_RW_Reg(WRITE_REG + RX_PW_P0, TX_PLOAD_WIDTH);  // 接收通道0選擇和發(fā)送通道相同有效數(shù)據(jù)寬度
  82.           SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);            // 數(shù)據(jù)傳輸率1Mbps,發(fā)射功率0dBm,低噪聲放大器增益
  83.           SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f);              // CRC使能,16位CRC校驗(yàn),上電,接收模式
  84.           CE = 1;                                            // 拉高CE啟動(dòng)接收設(shè)備
  85. }
  86. void main(void)
  87. {
  88.   int i;
  89.    Inte();
  90.         init_io();                              // 初始化IO
  91.         RX_Mode();                              // 設(shè)置為接收模式
  92.         while(1)
  93.         {
  94.                 sta = SPI_Read(STATUS);// 讀狀態(tài)寄存器
  95.             if(RX_DR)// 判斷是否接受到數(shù)據(jù)
  96.                 {
  97.                         SPI_Read_Buf(RD_RX_PLOAD,RX_BUF,TX_PLOAD_WIDTH);//從RX FIFO讀出數(shù)據(jù)
  98.                         flag = 1;
  99.                 }
  100.                 SPI_RW_Reg(WRITE_REG + STATUS,sta);// 清除RX_DS中斷標(biāo)志
  101.                 if(flag) //接受完成
  102.                 {
  103.                         flag=0;// 清標(biāo)志
  104.          RX_date[i++]=RX_BUF[0];
  105.                          
  106.                         if(i==3)
  107.                         {
  108. ……………………

  109. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
無(wú)線模塊(51收發(fā)).zip (89.88 KB, 下載次數(shù): 290)


評(píng)分

參與人數(shù) 2黑幣 +55 收起 理由
a455914479 + 5 共享資料的黑幣獎(jiǎng)勵(lì)!
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:313743 發(fā)表于 2018-4-25 11:20 | 只看該作者
你們都好會(huì)啊,我才開(kāi)始學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

板凳
ID:287642 發(fā)表于 2018-4-27 15:02 | 只看該作者
可不可以免費(fèi)給我發(fā)啊
回復(fù)

使用道具 舉報(bào)

地板
ID:287642 發(fā)表于 2018-4-27 18:39 | 只看該作者
冷鋒484 發(fā)表于 2018-4-27 15:02
可不可以免費(fèi)給我發(fā)啊

我的郵箱是3372008661@qq.com,萬(wàn)分感謝
回復(fù)

使用道具 舉報(bào)

5#
ID:225778 發(fā)表于 2018-8-2 16:54 | 只看該作者
學(xué)完32學(xué)51,一臉懵逼啊
回復(fù)

使用道具 舉報(bào)

6#
ID:377382 發(fā)表于 2018-8-4 13:37 | 只看該作者
不錯(cuò)
回復(fù)

使用道具 舉報(bào)

7#
ID:184706 發(fā)表于 2019-1-23 15:34 | 只看該作者
很不錯(cuò)的程序
回復(fù)

使用道具 舉報(bào)

8#
ID:487194 發(fā)表于 2019-3-8 23:21 | 只看該作者
WITHER 發(fā)表于 2018-8-2 16:54
學(xué)完32學(xué)51,一臉懵逼啊

先從51入手較好
回復(fù)

使用道具 舉報(bào)

9#
ID:478236 發(fā)表于 2019-3-17 21:32 | 只看該作者
這個(gè)是收發(fā)都在一個(gè)程序里面嗎?
回復(fù)

使用道具 舉報(bào)

10#
ID:383987 發(fā)表于 2019-3-19 20:43 | 只看該作者
WITHER 發(fā)表于 2018-8-2 16:54
學(xué)完32學(xué)51,一臉懵逼啊

太久沒(méi)接觸都忘記了
回復(fù)

使用道具 舉報(bào)

11#
ID:489605 發(fā)表于 2019-3-29 14:06 | 只看該作者
一直在學(xué)習(xí)還是不太會(huì)
回復(fù)

使用道具 舉報(bào)

12#
ID:489605 發(fā)表于 2019-3-29 14:07 | 只看該作者
51的地址線和時(shí)鐘線怎么區(qū)分的呢
回復(fù)

使用道具 舉報(bào)

13#
ID:585455 發(fā)表于 2019-7-23 17:15 | 只看該作者
感謝分享好物
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品成人品 | 亚洲久在线 | 午夜精品久久久久久久久久久久 | 在线免费黄色小视频 | 国产精品久久亚洲7777 | 九九热在线观看 | 国产精品国产三级国产aⅴ原创 | 欧美视频免费在线 | 亚洲精品视频一区 | 国产精品综合视频 | 成人一区av | 国产精品精品久久久 | 国产一区二区三区 | 久久精品视频一区二区 | 国产美女在线观看 | 一级欧美一级日韩片免费观看 | 日韩视频1| 天天射天天干 | 日韩日韩日韩日韩日韩日韩日韩 | 亚洲一区 | 国产精品毛片无码 | 欧美一区二区三区在线观看 | 亚洲女人的天堂 | 国产成人99久久亚洲综合精品 | 久久久久久一区 | 免费性视频 | 久久国产精品久久久久久久久久 | 国产精品一级在线观看 | 欧美bondage紧缚视频 | 亚洲国产精品一区二区第一页 | 99久久精品国产毛片 | 日韩在线中文字幕 | 国产专区免费 | 中文字幕国产 | 精品一二区 | 日韩在线免费看 | 久久婷婷国产麻豆91 | 国产一区二区三区在线视频 | 黄色毛片免费视频 | 性一交一乱一透一a级 | 欧美中文一区 |