亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
51單片機無線多路溫度采集系統 通信控制機和采集節點代碼
[打印本頁]
作者:
v帆帆帆帆
時間:
2019-7-23 09:57
標題:
51單片機無線多路溫度采集系統 通信控制機和采集節點代碼
本課題設計的是一套無線多路溫度數據采集系統,主要用于對環境溫度的采集與監控。系統采用基于無線網絡的設計思想和溫度采集技術。無線傳輸避免了遠距離布線所帶來的施工困難,成本高的缺點。本設計用AT89C51單片機為主要硬件,設計了包括溫度采集,溫度顯示,系統控制,串口通信等外圍電路。單片機AT89C51作為主單片機完成測量和控制以及與通信單片機的數據通信、無線收發控制等功能。無線溫度數據采集系統是利用下位機設置溫度上下限和實時溫度的采集,并將結果傳輸到上位機,以達到對溫度的比較、控制。
主要模塊:AT89C51 溫度采集 溫度傳感器DS18B20 RS-232 MAX813 無線收發模塊PTR2000
0.png
(4.92 KB, 下載次數: 66)
下載附件
2019-7-24 03:53 上傳
0.png
(50.25 KB, 下載次數: 75)
下載附件
2019-7-24 03:54 上傳
通信控制機代碼+采集節點代碼
單片機源程序如下:
/**************************************************************************************
*文件名稱:main.c
*說明:溫度采集節點主函數文件
*功能:管理各驅動函數實現無線溫度采集
*修改:無
*版本:V1.0.0
*作者:YuanDong
*時間:2009.07.03
*************************************************************************************/
#include "nRF905.h"
#include "ds18b20.h"
#include "Include.h"
/**********************變量定義******************************************************/
uchar TxMemory[80]; //無線發送數據緩沖區
uchar TxRxd=0; //寄存器接收指針
uchar TxTxd=0; //寄存器發送指針
uchar TxZuShu=0; //每包發送的組數
uint TxBufGeShu=0; //無線接收寄存器中未發送完的個數
uchar TXFlag=0; //包結束標志位
extern void nRF_Delay(uint time); //延時函數,單位一個時鐘周期
/****************************************************************************************
*函數名稱:CPU_Init(void)
*函數功能:系統初始化
*函數入口:無
*函數出口:無
***************************************************************************************/
void cpu_Init(void)
{
nRF905_Init(); //nRF905初始化
ds18b20_init(); //ds18b20初始化
serial_Init(); //串口通信初始化
relay_Init(); //繼電器輸出初始化
buzzer_Init(); //揚聲器輸出初始化
init_key(); //鍵盤初始化
sei();
}
/******************************************************************************************函數名稱:DataDispose(uchar num)
*函數功能:數據處理子函數
*函數入口:要處理的緩沖區數據個數num
*函數出口:無
*****************************************************************************************/
void DataDispose(uchar num)
{
uchar i;
for(i=0;i<num;i++)
{
TxdBuf[i]=TxMemory[TxTxd];
TxTxd++;
if(TxTxd>79)
TxTxd=0;
TxBufGeShu--; //發送了1個字節,個數減1
}
TxdBuf[4]=(TxZuShu<<4)|num; //標志字節,高位是組號,低位是這組里的字節個數
TxZuShu++;
if(TxZuShu>15)
TxZuShu=0;
for(i=0;i<3;i++)
{
nRF905_SendData();
}
}
/*****************************************************************************************
*函數名稱:ReceiveEnd(void)
*函數功能:從nRF905接收完一包數據后,數據處理子函數
*函數入口:無
*函數出口:無
*****************************************************************************************/
void ReceiveEnd(void)
{
if(TxBufGeShu>=4) //還可以分組
for(;TxBufGeShu>=4;)
DataDispose(4); //整組,每組為四個字節
if(TxBufGeShu>0) //分完組后剩余的字節,不多于4個
{
DataDispose(TxBufGeShu);
}
TXFlag=0;
sei(); //開總中斷
}
/******************************************************************************************函數名稱:TxdMain(void)
*函數功能:向nRF905發送數據主函數
*函數入口:無
*函數出口:無
*****************************************************************************************/
void TxdMain(void)
{
if(TXFlag==1)
ReceiveEnd();
else
{
if(TxBufGeShu>=4) //接收并積累夠4個字節后,分組發送
DataDispose(4); //整組,每組為四個字節
}
}
/*****************************************************************************************
*函數名稱:main(void)
*函數功能:主函數
*函數入口:無
*函數出口:無
*****************************************************************************************/
void main(void)
{
uchar i;
CPU_Init(); //CPU初始化
for(i=0;i<79;i++)
TxMemory[i]=i;
while(1)
{
RxdMain();
if((UartBusy==0)&&(RxBufGeShu==0)) SendPoint=RxRxd;
if((UartBusy==0)&&(RxBufGeShu>0)) //檢查串口中斷是否停止
{
UartBusy=1;
RxBufGeShu--;
UDR=RxMemory[SendPoint];
}
}//end while
}
復制代碼
所有資料51hei提供下載:
51單片機無線多路溫度采集系統.zip
(36.54 KB, 下載次數: 77)
2019-7-23 09:47 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
zzcdfp
時間:
2019-8-24 16:55
謝謝分享 好東西
作者:
158987
時間:
2019-9-10 11:42
謝謝分享 好東西
作者:
Captain銭
時間:
2019-10-19 12:30
謝謝分享 好東西
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1