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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2506|回復: 0
收起左側

單片機設計,基于單片機的NRF24L01 2.4G無線通信系統,附有源碼程序

[復制鏈接]
ID:600744 發表于 2021-7-14 17:19 | 顯示全部樓層 |閱讀模式
1、完成硬件電路的設計,其中包括單片機和NRF24L01芯片模塊的設計;
2、完成無線通信模塊的程序設計與實現進行分析和總結;

電路原理圖如下:
圖片1.png

單片機源程序如下:
  1. /**************************************************************************************
  2. *                              LCD1602液晶顯示實驗                                                                                                  *
  3. 實現現象:        具體接線操作請參考視頻教程
  4.                         下載程序后插上LCD1602液晶在開發板上,即可顯示
  5. 注意事項:                                                                                                                                                                  
  6. ***************************************************************************************/

  7. #include "reg52.h"                         //此文件中定義了單片機的一些特殊功能寄存器
  8. #include "lcd.h"


  9. typedef unsigned int u16;          //對數據類型進行聲明定義
  10. typedef unsigned char u8;


  11. sbit        KEY1=P2^3;
  12. sbit        KEY2=P2^2;


  13. void Delay(unsigned int s);
  14. void inerDelay_us(unsigned char n);
  15. void init_NRF24L01(void);
  16. u16 SPI_RW(u16 u8);
  17. u8 SPI_Read(u8 reg);
  18. void SetRX_Mode(void);
  19. void SetTX_Mode(void);
  20. u16 SPI_RW_Reg(u8 reg, u8 value);
  21. u16 SPI_Read_Buf(u8 reg, u8 *pBuf, u8 uchars);
  22. u16 SPI_Write_Buf(u8 reg, u8 *pBuf, u8 uchars);
  23. unsigned char nRF24L01_RxPacket(unsigned char* rx_buf);
  24. void nRF24L01_TxPacket(unsigned char * tx_buf);

  25.        
  26.         u8 TxBuf[20]={0};         
  27.        
  28.         u8 flag;
  29.         u8 data_count;
  30.         u8 word_length;
  31.        
  32. void UsartInit()
  33. {
  34.         SCON=0X50;                        //設置為工作方式1
  35.         TMOD=0X20;                        //設置計數器工作方式2
  36.         PCON=0X80;                        //波特率加倍
  37.         TH1=0XF3;                                //計數器初始值設置,注意波特率是4800的
  38.         TL1=0XF3;
  39.         ES=1;                                                //打開接收中斷
  40.         EA=1;                                                //打開總中斷
  41.         TR1=1;                                        //打開計數器
  42. }

  43. /*******************************************************************************
  44. * 函 數 名         : main
  45. * 函數功能                   : 主函數
  46. * 輸    入         : 無
  47. * 輸    出         : 無
  48. *******************************************************************************/
  49. void main(void)
  50. {
  51.         u8 i;
  52.   u8 RxBuf[20]={0};

  53.   init_NRF24L01() ;
  54.         Init_LCD1602();
  55.         UsartInit();       
  56.        
  57.         while(1)
  58.         {
  59.            if(KEY1 == 0 )
  60.                   {               
  61.                         SetTX_Mode();       
  62.                         for(i=word_length;i<20;i++)
  63.                                 {
  64.                                          TxBuf[i]=0x20;
  65.                                 }
  66.                         LCD1602_Dis_Str(0, 0, &TxBuf[0]);        //顯示字符串
  67.                        
  68.                         nRF24L01_TxPacket(TxBuf);        // Transmit Tx buffer data
  69.                         }
  70. //***********************************************************************************************
  71.                                 SetRX_Mode();
  72.                                 nRF24L01_RxPacket(RxBuf);
  73.                                 LCD1602_Dis_Str(0, 1, &RxBuf[0]);        //顯示字符串
  74.                                 Delay(1000);
  75.        
  76.                         if(KEY2 == 0)
  77.                         {
  78.                                         LCD1602_Write_Cmd(0x01); //清除顯示
  79.                         }
  80.         }
  81. }               

  82. void UART_Receive() interrupt 4{
  83. u8 temp,j;
  84.                 if(RI ==1 )

  85. {                RI=0;
  86.        
  87. //                LCD1602_Write_Cmd(0x01); //清除顯示
  88.        
  89.                 temp=SBUF;
  90.                 if(temp!='.')
  91.                 {
  92.                         TxBuf[data_count]=temp;//
  93.                         data_count++;
  94.                 }
  95.                 else{
  96.                         word_length=data_count;
  97.                         data_count=0;
  98.                 }
  99.                
  100.         }       
  101. }
復制代碼

所有程序51hei提供下載:
程序.zip (57.68 KB, 下載次數: 45)




評分

參與人數 1黑幣 +20 收起 理由
admin + 20 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产乱人伦精品一区二区 | 欧美久久久久久久久中文字幕 | 国产美女在线播放 | 久久久精品欧美 | 久久99久久99久久 | 一本大道久久a久久精二百 欧洲一区二区三区 | 欧美成人一区二区三区 | 人人性人人性碰国产 | 国产精品夜夜夜一区二区三区尤 | 久久久久久久久久久久一区二区 | 亚洲日本视频 | 免费国产视频 | 成人免费网站视频 | 激情久久网 | 免费观看av网站 | 国产激情视频在线观看 | 网站一区二区三区 | 91成人小视频 | 精品一区二区在线观看 | 日韩av一区二区在线观看 | 日本福利视频免费观看 | 91一区二区| www.久久99| 国产综合区 | 国产精品夜夜夜一区二区三区尤 | 成人免费区一区二区三区 | 中文字幕黄色大片 | 欧美猛交| 国产精品伦一区二区三级视频 | av电影手机版| 国产一区二区自拍 | 国产福利资源在线 | 欧美一区二区三区 | 免费国产一区二区视频 | 亚洲国产精品va在线看黑人 | 久久精品欧美一区二区三区不卡 | 久久国产激情视频 | 亚洲一区久久 | 亚洲国产精品激情在线观看 | 成人高潮片免费视频欧美 | 欧美1区 |