資源簡介
一共有三個labview溫度控制程序,其中一個是自己編寫的,可以對溫度進行檢測調控

代碼片段和文件信息
//任務:實現對溫度傳感器件DS18B20的溫度值得讀取,并把溫度值發送到上位機labview處理
#include?
#include
#define?uchar?unsigned?char
#define?uint??unsigned?int
sbit?DQ?=P3^6;? //定義DS18B20通信端口
uchar?flag=0;
code?uchar?table[]={0xc00xf90xa40xb00x99
????????????????????0x920x820xf80x800x90???//0~9的段碼
????????????????????0x400x790x240x300x19
????????????????????0x120x020x780x000x10???//帶小數點0~9的段碼
????????????????????0xbf0xff};??????????????????????//“-“和“全滅“的段碼
//uchar?pc_command; //只要PC有發過來0x0a過來就算是告訴單片機啟動發送指令
uchar?flag;?????????????//正負號標志
void?delay(unsigned?int?i) //延時函數
{
while(i--);
}
//顯示程序
void?display(uchar?bit_countuchar?dat)
{
????P2=0x00;
????P0=table[dat];
????P2=(0x01)< ????delay(500);
}
void?dis_Temperature(uint?t)
{
????uchar?i;
if(flag==1)
{i=20;}
else
????{i=21;}
display(0i);
????i=t/100;
????display(1i);
????i=t%100/10;
????display(2i+10);
????i=t%100%10;
????display(3i);
}
void?Init_DS18B20(void) //初始化函數
{
unsigned?char?x=0;
DQ?=?1;? //DQ復位
delay(8);? //稍做延時
DQ?=?0;? //單片機將DQ拉低
delay(80);? //精確延時?大于?480us
DQ?=?1;? //拉高總線
delay(14);
x=DQ;? //稍做延時后?如果x=0則初始化成功?x=1則初始化失敗
delay(20);
}
uchar?Read(void) //讀一個字節
{
unsigned?char?i=0;
unsigned?char?dat?=?0;
for?(i=8;i>0;i--)
{
DQ?=?0;? //?給脈沖信號
dat>>=1;
DQ?=?1;? //?給脈沖信號
if(DQ)
dat|=0x80;
delay(4);
}
return(dat);
}
void?Write(unsigned?char?dat) //寫一個字節
{
unsigned?char?i;
for?(i=8;?i>0;?i--)
{
DQ?=?0;
DQ?=?dat&0x01;
delay(5);
DQ?=?1;
dat>>=1;
}
delay(4);
}
uint?ReadTemperature(void) //讀取溫度
{
unsigned?char?a=0;
unsigned?char?b=0;
unsigned?int?t=0;
float?f_t=0;
Init_DS18B20();
Write(0xCC);? //?跳過讀序號列號的操作
Write(0x44);? //?啟動溫度轉換
Init_DS18B20();
Write(0xCC);? //跳過讀序號列號的操作
Write(0xBE);? //讀取溫度寄存器等(共可讀9個寄存器)?前兩個就是溫度
a=Read();
b=Read();
if(b<127)
{
t=b;t<<=8;t=t|a;
flag=0;
}
else
{
a=~a;b=~b;
t=b;t<<=8;t=t|a;t=t+1;
flag=1;
}
f_t=t*0.0625;?????????//溫度值在寄存器中為11位,分辨率為0.0625
t=f_t*10+0.5;????????//乘以10表示小數點后面只取1位,加0.5是四舍五入
return(t);
}
void?serial_int()
{
????//設置定時器1的工作方式為方式2
????TMOD=0x20;
????//設定定時器1的初值,使串口通訊的波特率為9600bps
????TH1=0xfd;
?????TL1=0xfd;
????SCON=0x50;
????PCON=0x00;
????ES=1;
????EA=1;
????TR1=1;
}
void?com_send_byte(uchar?onebyte)
{
??ES?=?0;???????????//關串口中斷
??SBUF?=?onebyte;???//把要發送的數據寫入SBUF,單片機會自動發送該數據,需要一段時間
??while?(TI?==?0);??//等待發送結束
??TI?=?0;???????????//把發送標志清零
??ES=1;?
}
/*?當有數據發送到單片機時,會執行以下中斷服務函數*/
void?uart_int(void)?interrupt?4?using?3
{
??uchar?tmpData;
??if?(RI?==?1)??????????????????????/*?判斷是不是接收中斷*/
??{
????RI?=?0;?????????????????????????/*?清串口接收中斷???*/
????tmpData?=?SBUF;????????????????????/*?讀取接收到的數據*/
????//P0?=?LED_TAB[temp];
flag?=?1;
if(tmpData?==?1)???//加熱
{
/
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????37739??2017-08-24?16:50??labview溫度控制上位機\基于Arduino與LabVIEW的熱電偶高溫監測系統(2).vi
?????文件???????9492??2009-06-01?10:33??labview溫度控制上位機\溫度檢測與控制實驗\Derivative?action.vi
?????文件??????13068??2009-06-01?10:33??labview溫度控制上位機\溫度檢測與控制實驗\Get?dt.vi
?????文件??????16604??2009-06-01?10:33??labview溫度控制上位機\溫度檢測與控制實驗\Get?error?(sp-pv).vi
?????文件??????16348??2009-06-01?10:33??labview溫度控制上位機\溫度檢測與控制實驗\Get?PID?gains.vi
?????文件??????33032??2009-06-01?10:33??labview溫度控制上位機\溫度檢測與控制實驗\Integral?action.vi
?????文件??????17932??2009-06-01?10:33??labview溫度控制上位機\溫度檢測與控制實驗\manual.vi
?????文件??????16216??2009-03-20?16:06??labview溫度控制上位機\溫度檢測與控制實驗\PID(溫度-電壓).vi
?????文件??????29540??2009-06-16?10:49??labview溫度控制上位機\溫度檢測與控制實驗\PID.vi
?????文件???????5728??2009-06-01?10:33??labview溫度控制上位機\溫度檢測與控制實驗\Proportional?action.vi
?????文件??????10332??2009-06-01?10:33??labview溫度控制上位機\溫度檢測與控制實驗\PV?filter.vi
?????文件???????6376??2009-06-18?20:27??labview溫度控制上位機\溫度檢測與控制實驗\V?TO?T.vi
?????文件??????16032??2009-06-04?13:10??labview溫度控制上位機\溫度檢測與控制實驗\判斷加熱.vi
?????文件??????15972??2009-05-30?16:58??labview溫度控制上位機\溫度檢測與控制實驗\判斷散熱.vi
?????文件???????8344??2009-05-30?16:45??labview溫度控制上位機\溫度檢測與控制實驗\加熱溫度轉化電壓.vi
?????文件??????21572??2009-06-05?08:39??labview溫度控制上位機\溫度檢測與控制實驗\當前溫度值.vi
?????文件??????22640??2009-06-09?08:28??labview溫度控制上位機\溫度檢測與控制實驗\控制溫度1.vi
?????文件???????8348??2009-05-30?16:47??labview溫度控制上位機\溫度檢測與控制實驗\散熱溫度轉化電壓.vi
?????文件??????97368??2009-08-10?13:39??labview溫度控制上位機\溫度檢測與控制實驗\溫度測量與控制實驗.vi
?????文件??????19680??2009-06-26?16:42??labview溫度控制上位機\溫度檢測與控制實驗\轉化數字量.vi
?????文件??????38129??2015-05-31?21:58??labview溫度控制上位機\溫度采集系統\溫度采集系統\1.vi
?????文件???????5115??2015-05-23?12:51??labview溫度控制上位機\溫度采集系統\溫度采集系統\codeC\STARTUP.A51
?????文件??????10161??2015-05-31?21:31??labview溫度控制上位機\溫度采集系統\溫度采集系統\codeC\tempCap
?????文件???????4030??2015-05-31?21:30??labview溫度控制上位機\溫度采集系統\溫度采集系統\codeC\tempCap.c
?????文件???????4475??2015-05-31?21:31??labview溫度控制上位機\溫度采集系統\溫度采集系統\codeC\tempCap.hex
?????文件?????????31??2015-05-31?21:31??labview溫度控制上位機\溫度采集系統\溫度采集系統\codeC\tempCap.lnp
?????文件???????9699??2015-05-31?21:31??labview溫度控制上位機\溫度采集系統\溫度采集系統\codeC\tempCap.LST
?????文件??????14308??2015-05-31?21:31??labview溫度控制上位機\溫度采集系統\溫度采集系統\codeC\tempCap.M51
?????文件??????10449??2015-05-31?21:31??labview溫度控制上位機\溫度采集系統\溫度采集系統\codeC\tempCap.OBJ
?????文件???????1025??2015-05-23?12:51??labview溫度控制上位機\溫度采集系統\溫度采集系統\codeC\tempCap.opt.bak
............此處省略18個文件信息
評論
共有 條評論