<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 用nRF905和DS18B20制作的51單片機溫度數(shù)據(jù)無線傳輸系統(tǒng)

          用nRF905和DS18B20制作的51單片機溫度數(shù)據(jù)無線傳輸系統(tǒng)

          作者: 時間:2016-11-28 來源:網(wǎng)絡(luò) 收藏
          我用DS18B20和兩套由nRF905組成的無線數(shù)傳模塊制作了一套溫度數(shù)據(jù)的無線傳輸采集系統(tǒng),已經(jīng)調(diào)試通過,效果良好。其硬件電路框圖如下:

          本文引用地址:http://www.ex-cimer.com/article/201611/322865.htm

          (AM,CD與單片機的P1.3,P1.4的連接未畫出)

          DS18B20是MAXIM公司推出的數(shù)字溫度傳感器,將它測量的溫度數(shù)據(jù)直接送到單片機,再由單片機傳給nRF905,數(shù)據(jù)經(jīng)調(diào)制后被發(fā)送出去。nRF905工作于433/868/915MHz三個ISM(工業(yè)、科學(xué)和醫(yī)學(xué))頻道,這里使用的是433MHz的載頻。另外一套nRF905無線數(shù)傳模塊收到信號后,經(jīng)解調(diào)得到的原始溫度數(shù)據(jù)傳給單片機,單片機通過串口把數(shù)據(jù)再傳給上位電腦,最后經(jīng)過處理的溫度數(shù)據(jù)連同日期、時間、采集點等相關(guān)信息可以被自動錄入電腦保存并實時顯示在電腦屏幕上。簡單的電腦數(shù)據(jù)顯示界面如下圖:


          本系統(tǒng)實物照片如下:


          照片中左邊為帶有DS18B20數(shù)字溫度傳感器的用作發(fā)射數(shù)據(jù)的nRF905無線數(shù)傳模塊,右邊為用作接收數(shù)據(jù)的nRF905數(shù)傳模塊,其中的單片機可以通過串口和電腦相連,上傳數(shù)據(jù)。

          /

          #include 
          #include 
          #define uchar unsigned char
          #define uintunsigned int
          #define WC0x00// Write configuration register command
          #define RC0x10// Readconfiguration register command
          #define WTP0x20// Write TX Payloadcommand
          #define RTP0x21// ReadTX Payloadcommand
          #define WTA0x22// Write TX Addresscommand
          #define RTA0x23// ReadTX Addresscommand
          #define RRP0x24// ReadRX Payloadcommand
          typedef struct RFConfig
          {
          uchar n;
          uchar buf[10];
          }RFConfig;
          code RFConfig RxTxConf =
          {
          10,
          0x01, 0x0c, 0x44, 0x20, 0x20, 0xcc, 0xcc, 0xcc,0xcc, 0x58
          };
          // The content of this struct is nRF905s initialize data.初始化數(shù)據(jù)
          // CH_NO=1;433MHZ;Normal Opration,No Retrans;RX,TX Address is 4 Bytes
          // RX TX Payload Width is 32 Bytes;Disable Extern Clock;Fosc=16MHZ
          // 8 Bits CRC And enable
          uchar data TxBuf[32];
          uchar data RxBuf[32];
          uchar key,rsbrf,delayf,tf;
          uchar bdata DATA_BUF;
          sbit flag =DATA_BUF^7;
          sbit flag1 =DATA_BUF^0;
          sbit TX_EN =P1^7;
          sbit TRX_CE =P1^6;
          sbit PWR_UP =P1^5;
          sbit MISO =P1^1;
          sbit MOSI =P1^0;
          sbit SCK=P3^7;
          sbit CSN=P3^3;
          sbit AM=P1^3;
          sbit DR=P3^2;
          sbit CD=P1^4;
          sbitLED1=P3^4;
          sbitLED2=P3^5;
          sbitKEY1=P3^0;
          sbitKEY2=P3^1;
          void InitIO(void);// Initialize IO port
          void Inituart(void);// initialize 232 uart
          void Config905(void);// Config nRF905 module配置NRF905模式
          void SetTxMode(void);// Set nRF905 in Tx mode
          void SetRxMode(void);// Set nRF905 in Rx mode
          void TxPacket(void);// Send data by nRF905
          void RxPacket(void);// Recive data by nRF905
          void SpiWrite(uchar);// Write data to nRF905
          uchar SpiRead(void);// Read data to nRF905
          void Delay(uchar n);// Delay 100us
          void Scankey(void);// Scan key
          void TxData (uchar x);// Send key_value to CRT display
          void comdebug(void);
          void Delay(uchar n)
          {
          uint i;
          while(n--)
          for(i=0;i<80;i++);
          }
          
          				
                      
                          
          			
          							
          上一頁 1 2 下一頁

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();