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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2459|回復: 0
打印 上一主題 下一主題
收起左側

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

[復制鏈接]
跳轉到指定樓層
樓主
1、完成硬件電路的設計,其中包括單片機和NRF24L01芯片模塊的設計;
2、完成無線通信模塊的程序設計與實現進行分析和總結;

電路原理圖如下:


單片機源程序如下:
  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 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区欧美 | 国产精品九九 | 久久成人在线视频 | 欧美日韩a | 精品1区2区 | 亚洲国产精品日韩av不卡在线 | 国色天香成人网 | 在线免费91 | 欧美日韩国产一区二区 | 欧洲精品一区 | 久久久区 | 欧洲一区二区三区 | 人人干超碰| 国产在线视频网 | 妞干网av| 国产精品久久久久久久久久不蜜臀 | 日韩毛片在线观看 | 自拍偷拍亚洲视频 | 一级黄色片毛片 | 九九热免费视频在线观看 | 色久伊人 | 日本久久网站 | 一区二区三区免费 | 午夜精品一区二区三区免费视频 | 日韩综合在线 | 亚洲国产精品久久久久婷婷老年 | 欧美男男videos | 美女精品一区 | 国产一区二区久久 | 最近日韩中文字幕 | 久久一视频| 亚洲另类视频 | a久久 | 国产yw851.c免费观看网站 | 国产在线观看网站 | 国产四区 | 欧美激情视频一区二区三区免费 | 九九综合九九 | 激情毛片 | 日本一二区视频 | 国产精品一区一区 |