資源簡介
proteus仿真+Keil源工程文件+C#上位機
本系統主要利用串口通信,實現溫度的實時采集和處理分析等簡要功能。下位機(主控芯片8051)接收上位機(C#開發windows應用程序)的指令實現溫度采集、溫度報警功能,上位機通過發送指令控制采集時間間隔,報警上下限、報警溫度點的控制,具有實時溫度曲線顯示功能;并能夠調用數據庫來查看、刪除歷史數據,以圖表的形式作進一步統計分析。

代碼片段和文件信息
#include“18b20.h“
sbit?DQ=P2^3;?//數據通信串口
/************************************************
函數功能:延時子函數
入口參數:time
出口參數:無
**************************************************/
void?delay18b20(uint?time)
{
? uchar?n;
for(?n=0;n}
/**************************************************
函數功能:DS18B20初始化子程序
入口參數:無
出口參數:無
**************************************************/
uchar?Init_DS18B20(void)
{
uchar?x;
DQ=0;??????????????//電平拉低,發送復位脈沖
delay18b20(29);?????????//延時480-960us
DQ=1;
delay18b20(3);??????????//電平拉高后,需等待15-60us
x=DQ;
delay18b20(25);?????????//發送存在脈沖需要60-240us
return?(x);????????//返回值x位0,則DS18B20準備好
}
/***************************************************
函數功能:從DS18B20讀出一個字節
入口參數:無
出口參數:dat
*****************************************************/
uint?Read(void)????????????????????
{
?uchar?idat;
?for?(i=8;i>0;i--)?//每條數據位一字節,8位
?{
??dat>>=1;//從低位讀起
??DQ?=?0;????????????????
??_nop_();_nop_();_nop_();_nop_();//延時后拉高
??DQ?=?1;???????????????
??if(DQ)//次判斷讀取‘1’
??{
???dat|=0x80;
??}
??delay18b20(4);//次延時必須有,采樣需要45us???????????
??}
??return(dat);
}
/***************************************************
函數功能:向DS18B20寫一字節數據
入口參數:dat
出口參數:無
****************************************************/
void?Write(char?dat)???????????
{
?uchar?i;
?for?(i=8;?i>0;?i--)??
?{
??DQ?=?0;?????????
??_nop_();????????????
??DQ?=?dat&0x01;
??delay18b20(8);???????
??DQ?=?1;
??_nop_();
??dat>>=1;
??}
}
/**************************************************
函數功能:從DS18B20讀取溫度值
入口參數:無
出口參數:temperature
**************************************************/
float?CatchTemper(void)
{
?uchar?tempLtempH;
uint?temperature;
float?tem;
Init_DS18B20();?//初始化
Write(0xcc);????//跳過讀序列號的操作
Write(0x44); ???//啟動溫度轉換
Write(0x4e);
Init_DS18B20(); //初始化
Write(0xcc);
Write(0xbe); ???//讀溫度寄存器命令
tempL=Read(); ??//讀出溫度的低位
tempH=Read(); ??//讀出溫度的高位
temperature=tempH; ??????//將高位放在i的低位
temperature<<=8; ???????//將低位移至高位
temperature|=tempL; ?????//將低位放在i的低位
if((tempH&0x08))//判斷符號位,溫度為負值,則執行
{
temperature=0xffff-temperature+1;//二進制負數求原碼
tem=temperature*0.0625;
tem+=0x8000;
}
else?tem=temperature*0.0625;
return?tem;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1054??2012-06-13?19:16??TemCatch\TemCatch.PWI
?????文件?????141018??2012-06-13?19:06??TemCatch\Last?Loaded?TemCatch.DBK
?????文件?????141018??2012-06-13?19:06??TemCatch\TemCatch.DSN
?????文件?????708096??2012-06-24?09:38??TemCatch\徐龍秋?信息09級1班?27.doc
?????文件?????????50??2012-06-23?12:35??TemCatch\PCB\TemCatch.PrjPCBStructure
?????文件??????37500??2012-06-23?12:37??TemCatch\PCB\TemCatch.PrjPCB
?????文件?????460800??2012-06-23?14:42??TemCatch\PCB\TemCatch.PcbDoc
?????文件?????233984??2012-06-23?14:42??TemCatch\PCB\TemCatch.SchDoc
?????文件???????2595??2012-06-22?17:20??TemCatch\PCB\Project?Logs?for?TemCatch\TemCatch?SCH?ECO?2012-6-22?17-20-24.LOG
?????文件?????????68??2012-06-22?17:21??TemCatch\PCB\Project?Logs?for?TemCatch\TemCatch?SCH?ECO?2012-6-22?17-21-07.LOG
?????文件?????????67??2012-06-22?17:23??TemCatch\PCB\Project?Logs?for?TemCatch\TemCatch?SCH?ECO?2012-6-22?17-23-31.LOG
?????文件???????8362??2012-06-22?17:23??TemCatch\PCB\Project?Logs?for?TemCatch\TemCatch?PCB?ECO?2012-6-22?17-23-47.LOG
?????文件????????330??2012-06-22?17:36??TemCatch\PCB\Project?Logs?for?TemCatch\TemCatch?SCH?ECO?2012-6-22?17-36-21.LOG
?????文件???????1382??2012-06-22?17:36??TemCatch\PCB\Project?Logs?for?TemCatch\TemCatch?PCB?ECO?2012-6-22?17-36-31.LOG
?????文件?????????66??2012-06-22?17:48??TemCatch\PCB\Project?Logs?for?TemCatch\TemCatch?SCH?ECO?2012-6-22?17-48-21.LOG
?????文件????????271??2012-06-22?17:48??TemCatch\PCB\Project?Logs?for?TemCatch\TemCatch?PCB?ECO?2012-6-22?17-48-31.LOG
?????文件?????????27??2012-06-22?18:03??TemCatch\PCB\Project?Logs?for?TemCatch\TemCatch?PCB?ECO?2012-6-22?18-03-12.LOG
?????文件?????????27??2012-06-22?18:04??TemCatch\PCB\Project?Logs?for?TemCatch\TemCatch?PCB?ECO?2012-6-22?18-04-33.LOG
?????文件????????505??2012-06-22?18:05??TemCatch\PCB\Project?Logs?for?TemCatch\TemCatch?PCB?ECO?2012-6-22?18-05-07.LOG
?????文件??????10399??2012-06-22?18:05??TemCatch\PCB\Project?Logs?for?TemCatch\TemCatch?PCB?ECO?2012-6-22?18-05-44.LOG
?????文件???????1373??2012-06-23?12:20??TemCatch\PCB\Project?Logs?for?TemCatch\TemCatch?PCB?ECO?2012-6-23?12-20-43.LOG
?????文件????????121??2012-06-23?12:21??TemCatch\PCB\Project?Logs?for?TemCatch\TemCatch?PCB?ECO?2012-6-23?12-21-35.LOG
?????文件???????1046??2012-06-23?12:35??TemCatch\PCB\Project?Logs?for?TemCatch\TemCatch?PCB?ECO?2012-6-23?12-35-40.LOG
?????文件???????4053??2012-06-22?11:05??TemCatch\PCB\History\TemCatch.~(1).PrjPCB.Zip
?????文件???????4202??2012-06-22?11:09??TemCatch\PCB\History\TemCatch.~(2).PrjPCB.Zip
?????文件???????1465??2012-06-22?11:40??TemCatch\PCB\History\TemCatch.~(1).SchDoc.Zip
?????文件??????25949??2012-06-22?11:40??TemCatch\PCB\History\TemCatch.~(2).SchDoc.Zip
?????文件??????25949??2012-06-22?11:40??TemCatch\PCB\History\TemCatch.~(3).SchDoc.Zip
?????文件??????25949??2012-06-22?11:40??TemCatch\PCB\History\TemCatch.~(4).SchDoc.Zip
?????文件??????25949??2012-06-22?11:40??TemCatch\PCB\History\TemCatch.~(5).SchDoc.Zip
............此處省略169個文件信息
- 上一篇:c# 車牌識別系統,希望對各位有用,源碼分享
- 下一篇:C#簡單秒表程序設計
評論
共有 條評論