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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機無線多路溫度采集系統 通信控制機和采集節點代碼

[復制鏈接]
跳轉到指定樓層
樓主
本課題設計的是一套無線多路溫度數據采集系統,主要用于對環境溫度的采集與監控。系統采用基于無線網絡的設計思想和溫度采集技術。無線傳輸避免了遠距離布線所帶來的施工困難,成本高的缺點。本設計用AT89C51單片機為主要硬件,設計了包括溫度采集,溫度顯示,系統控制,串口通信等外圍電路。單片機AT89C51作為主單片機完成測量和控制以及與通信單片機的數據通信、無線收發控制等功能。無線溫度數據采集系統是利用下位機設置溫度上下限和實時溫度的采集,并將結果傳輸到上位機,以達到對溫度的比較、控制。
主要模塊:AT89C51      溫度采集     溫度傳感器DS18B20   RS-232  MAX813      無線收發模塊PTR2000


通信控制機代碼+采集節點代碼

單片機源程序如下:
  1. /**************************************************************************************
  2. *文件名稱:main.c
  3. *說明:溫度采集節點主函數文件
  4. *功能:管理各驅動函數實現無線溫度采集
  5. *修改:無
  6. *版本:V1.0.0
  7. *作者:YuanDong
  8. *時間:2009.07.03
  9. *************************************************************************************/
  10. #include "nRF905.h"
  11. #include "ds18b20.h"
  12. #include "Include.h"
  13. /**********************變量定義******************************************************/
  14. uchar TxMemory[80];                //無線發送數據緩沖區        
  15. uchar TxRxd=0;                                //寄存器接收指針
  16. uchar TxTxd=0;                                //寄存器發送指針
  17. uchar TxZuShu=0;                        //每包發送的組數
  18. uint  TxBufGeShu=0;                //無線接收寄存器中未發送完的個數
  19. uchar TXFlag=0;                                //包結束標志位
  20. extern void nRF_Delay(uint time);  //延時函數,單位一個時鐘周期
  21. /****************************************************************************************
  22. *函數名稱:CPU_Init(void)
  23. *函數功能:系統初始化
  24. *函數入口:無
  25. *函數出口:無
  26. ***************************************************************************************/
  27. void cpu_Init(void)
  28. {
  29.         nRF905_Init();                         //nRF905初始化
  30.         ds18b20_init();     //ds18b20初始化
  31.         serial_Init();       //串口通信初始化
  32.         relay_Init();        //繼電器輸出初始化
  33.         buzzer_Init();       //揚聲器輸出初始化
  34.         init_key();          //鍵盤初始化
  35.         
  36.         sei();
  37. }
  38. /******************************************************************************************函數名稱:DataDispose(uchar num)
  39. *函數功能:數據處理子函數
  40. *函數入口:要處理的緩沖區數據個數num
  41. *函數出口:無
  42. *****************************************************************************************/
  43. void DataDispose(uchar num)
  44. {
  45.         uchar i;
  46.   for(i=0;i<num;i++)
  47.         {
  48.                 TxdBuf[i]=TxMemory[TxTxd];
  49.                 TxTxd++;
  50.                 if(TxTxd>79)        
  51.                          TxTxd=0;
  52.                 TxBufGeShu--;                                                      //發送了1個字節,個數減1
  53.         }

  54.         TxdBuf[4]=(TxZuShu<<4)|num;                        //標志字節,高位是組號,低位是這組里的字節個數
  55.         TxZuShu++;
  56.         if(TxZuShu>15)        
  57.                  TxZuShu=0;
  58.         for(i=0;i<3;i++)
  59.         {
  60.                  nRF905_SendData();
  61.         }
  62. }
  63. /*****************************************************************************************
  64. *函數名稱:ReceiveEnd(void)
  65. *函數功能:從nRF905接收完一包數據后,數據處理子函數
  66. *函數入口:無
  67. *函數出口:無
  68. *****************************************************************************************/
  69. void ReceiveEnd(void)
  70. {
  71.         if(TxBufGeShu>=4)                                                //還可以分組
  72.                 for(;TxBufGeShu>=4;)
  73.                         DataDispose(4);                                        //整組,每組為四個字節               
  74.         if(TxBufGeShu>0)                                                //分完組后剩余的字節,不多于4個
  75.         {
  76.                 DataDispose(TxBufGeShu);
  77.         }
  78.         TXFlag=0;
  79.         sei();                                                         //開總中斷
  80. }
  81. /******************************************************************************************函數名稱:TxdMain(void)
  82. *函數功能:向nRF905發送數據主函數
  83. *函數入口:無
  84. *函數出口:無
  85. *****************************************************************************************/
  86. void TxdMain(void)
  87. {
  88.         if(TXFlag==1)
  89.                 ReceiveEnd();
  90.         else
  91.         {
  92.                 if(TxBufGeShu>=4)                                //接收并積累夠4個字節后,分組發送
  93.                         DataDispose(4);                                //整組,每組為四個字節
  94.         }
  95. }
  96. /*****************************************************************************************
  97. *函數名稱:main(void)
  98. *函數功能:主函數
  99. *函數入口:無
  100. *函數出口:無
  101. *****************************************************************************************/
  102. void main(void)
  103. {
  104.         uchar i;
  105.         CPU_Init();                                                //CPU初始化
  106.         for(i=0;i<79;i++)
  107.                 TxMemory[i]=i;
  108.         
  109.         while(1)
  110.            {        
  111.                 RxdMain();
  112.                 if((UartBusy==0)&&(RxBufGeShu==0))  SendPoint=RxRxd;
  113.                 if((UartBusy==0)&&(RxBufGeShu>0))   //檢查串口中斷是否停止
  114.                 {
  115.                         UartBusy=1;        
  116.                         RxBufGeShu--;
  117.                         UDR=RxMemory[SendPoint];
  118.                 }
  119.            }//end while
  120. }
復制代碼

所有資料51hei提供下載:
51單片機無線多路溫度采集系統.zip (36.54 KB, 下載次數: 77)

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:603222 發表于 2019-8-24 16:55 | 只看該作者
謝謝分享 好東西
回復

使用道具 舉報

板凳
ID:609834 發表于 2019-9-10 11:42 | 只看該作者
謝謝分享 好東西
回復

使用道具 舉報

地板
ID:625659 發表于 2019-10-19 12:30 | 只看該作者
謝謝分享 好東西
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜视频网站 | 欧美日韩国产一区二区三区 | 色在线看| 国产精品99 | www视频在线观看 | 午夜在线观看免费 | 精品亚洲一区二区三区四区五区 | 国产一级一片免费播放 | 久久综合一区 | 欧美 日韩 亚洲91麻豆精品 | 日韩视频在线免费观看 | 欧美freesex黑人又粗又大 | 国产精品区二区三区日本 | 四虎影| 国产亚洲精品久久午夜玫瑰园 | 久久久久国产一区二区三区四区 | 欧美日韩一区二区在线播放 | 亚洲精品区 | 欧美日韩在线播放 | 日日夜夜天天 | 亚洲女优在线播放 | 精品成人佐山爱一区二区 | 91网站在线观看视频 | 国产视频二区 | a国产视频 | 成人在线视频免费看 | 国产精品精品久久久久久 | 欧美mv日韩mv国产网站91进入 | 日韩久久久一区二区 | 欧美精品在线一区二区三区 | 欧美二区在线 | 欧美日韩午夜精品 | 成人精品一区二区三区中文字幕 | 免费人成激情视频在线观看冫 | 欧美黄色一区 | 国产高清免费在线 | 日韩和的一区二区 | 91精品久久久久 | av看片网| 久久久久一区二区三区 | 一级久久久久久 |