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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4693|回復: 4
收起左側

STC89C52RC單片機的NRF24L01無線通信程序,收發一體,由串口調試助手發送信息OLED屏幕

  [復制鏈接]
ID:389321 發表于 2019-7-24 10:07 | 顯示全部樓層 |閱讀模式
本設計由兩塊STC89C52RC單片機組成,通過NRF24L01實現最廉價的無線通信。
每塊單片機都是集收發于一體,先初始化會在OLED上顯示是否初始化成功,
然后通過按鍵可選擇收發模式,并在OLED屏幕上顯示出來
最后選擇串口調試助手,打開串口給單片機發送信息,單片機接收到后再通過NRF24L01向另一塊單片機發送
接收成功后會將接收到的信息顯示在OLED上。
OLED顯示屏較1602液晶顯示屏清楚,可現實的內容豐富,可以建立自己的字庫
并且占用的引腳較少

單片機源程序如下:
  1. #include "reg52.h"
  2. #include "oled.h"
  3. #include "bmp.h"
  4. #include "nrf24l01.h"
  5. #include "delay.h"
  6. #include "uart.h"
  7. #include "key.h"

  8. sbit LED0=P0^7;

  9. u8 *content;
  10. u8 *content1;
  11. u8 UART_BUFFER[64]={0};
  12. //u8 UART_BUFFER1[64];
  13. u8 RF24L01RxBuffer[64]={0};

  14. void main(void)
  15. {        
  16.         u32 num=0;
  17.          u8 i,flag1=1,flag2=1;
  18.          drv_spi_init( );           //SPI初始化
  19.          drv_uart_init();
  20.          NRF24L01_Gpio_Init( );    //RF24L01引腳初始化
  21.          OLED_Init();                        //初始化OLED  
  22.          OLED_Clear();
  23.          NRF24L01_check( );                   //檢測nRF24L01
  24.         RF24L01_Init( );
  25.          OLED_ShowString(0,0,"Init success");
  26.          while(flag1)
  27.          {
  28.                  if(KEY1==0)
  29.                  {
  30.                          delay_ms(5);
  31.                          if(KEY1==0)
  32.                          {
  33.                                  RF24L01_Set_Mode( MODE_TX );
  34.                                  flag1 = 0;
  35.                                  flag2 = 0;
  36.                                  OLED_ShowString(12*9+1,0,"TX");
  37. //                                 OLED_ShowString(0,3,UART_BUFFER);
  38.                          }
  39.                  }
  40.                  if(KEY2==0)
  41.                  {
  42.                          delay_ms(5);
  43.                          if(KEY2==0)
  44.                          {
  45.                                  RF24L01_Set_Mode( MODE_RX );
  46.                                  OLED_ShowString(12*9+1,0,"RX");
  47.                                  flag1 = 0;
  48.                                  flag2=1;
  49.                          }
  50.                  }
  51.          }
  52.          
  53.          if(flag2==1)
  54.          {
  55.                  OLED_ShowString(0,2,"receive message:");
  56.                  while(1)
  57.           {        
  58.                  RF24L01_Set_Mode( MODE_RX );
  59.                 if(NRF24L01_RxPacket( RF24L01RxBuffer ))
  60.                 {
  61.                   OLED_ShowString(0,4,RF24L01RxBuffer);        
  62.                   LED0=~LED0;
  63.                   delay_ms(500);
  64.                   LED0 = ~LED0;
  65.                 }
  66.          }
  67.    }
  68.          if(flag2==0)
  69.          {
  70.                  /*while(1)
  71.                  {
  72.                  if(KEY3==0)
  73.                  {
  74.                          num = drv_uart_rx_bytes();
  75.       if(num)
  76.                         {
  77.                                 content = UART_BUFFER;
  78.                                 for(i=0;i<=num;i++)
  79.                                 {
  80.                                         *(content+i) = UART_BUFFER[i];
  81.                                 }
  82.                                 NRF24L01_TxPacket(content, num );                //模式1發送固定字符,1S一包
  83.                                 LED0 = ~LED0;
  84.                                 delay_ms(500);
  85.                                 LED0 = ~LED0;
  86.                         }
  87.                  }         
  88.          }*/
  89.          while(1)
  90.          {
  91.                  num = drv_uart_rx_bytes();
  92.       if(num)
  93.                         {
  94.                                 content = UART_BUFFER;
  95. //                                content1 = UART_BUFFER;
  96. //                                OLED_ShowString(0,4,content1);        
  97.                                 for(i=0;i<num;i++)
  98.                                 {
  99.                                         *(content+i) = UART_BUFFER[i];
  100.                                 }
  101. //                                *(content+i+1)='\0';
  102.                                 NRF24L01_TxPacket(content, num );                //模式1發送固定字符,1S一包
  103. //                                for(i=0;i<64;i++)
  104. //                                {
  105. //                                        UART_BUFFER1[i]=UART_BUFFER[i];
  106. //                                }
  107.                                        
  108.                                 LED0 = ~LED0;
  109.                                 delay_ms(500);
  110.                                 LED0 = ~LED0;
  111.                         }
  112. //                        OLED_Clear();
  113. //                                                        OLED_ShowString(0,3,"wlma;cm");
  114. //                        OLED_ShowString(0,3,content);
  115.          }
  116.    }
  117. }
復制代碼

所有程序51hei提供下載:
NRF24L01TX-RX.zip (115.53 KB, 下載次數: 138)
回復

使用道具 舉報

ID:459048 發表于 2019-7-25 16:02 | 顯示全部樓層
沒原理圖頂不住啊
回復

使用道具 舉報

ID:389321 發表于 2019-7-28 22:36 | 顯示全部樓層
雷文浩 發表于 2019-7-25 16:02
沒原理圖頂不住啊

普通最小系統就可以用啊,又不需要接什么外設,IO口配置都有寫的
回復

使用道具 舉報

ID:836670 發表于 2020-11-3 18:28 | 顯示全部樓層
為什么全是程序呢,哪個是實現這個無線通信的程序呢
回復

使用道具 舉報

ID:581979 發表于 2020-12-1 21:01 | 顯示全部樓層
小晴a 發表于 2020-11-3 18:28
為什么全是程序呢,哪個是實現這個無線通信的程序呢

知道了嘛?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: av一级一片 | av天天看| 国产精品久久久久永久免费观看 | 成人永久免费视频 | 成人免费看电影 | 99re6在线视频 | 激情久久av一区av二区av三区 | 一区二区三区亚洲 | 亚洲最大成人综合 | 国产精品明星裸体写真集 | 欧美福利视频一区 | 日一区二区 | 国产精品久久久久久 | 欧美日韩精品中文字幕 | 亚洲+变态+欧美+另类+精品 | 国产福利在线小视频 | 精品久久99| 国产成人精品免费 | 国产精品一区二区三区久久久 | 欧美国产日本一区 | 成人高清在线 | 美日韩免费视频 | 欧美一级毛片久久99精品蜜桃 | 美女二区 | 中文字幕亚洲国产 | 九九久久99 | 午夜在线视频 | 成人三级网址 | 亚洲国产福利视频 | 亚洲免费久久久 | 黄色视频a级毛片 | 一本综合久久 | 一区二区在线 | 精品在线一区 | 一区二区三区不卡视频 | 免费在线观看一区二区 | 久久人人爽人人爽 | 九九热精品视频 | 国产成人自拍av | 日韩在线一区二区 | 中文字幕91av |