
5 結論
隨著智能儀器儀表技術的發(fā)展,顯示模塊的液晶化已成為一種較為流行的趨勢。本文給出的軟硬件設計方案已在某武器系統(tǒng)的調試過程中得到正確、可靠、穩(wěn)定的運行。它不僅克NT模似儀表體積大、故障率高的缺陷,而且由于運用了RTOS技術,使數據檢測的敏捷度得到大幅提升。另外,ISP功能的在線集成也為系統(tǒng)功能的擴充預留了空間。
3.3 DSl8820的1-Wire子程序
DSl8820的突出優(yōu)點是將現場采集的環(huán)境溫度直接以數字形式輸出,這樣可以省去后續(xù)的信號放大及模/數轉換部分,構建外圍電路的元件少且相對簡單,系統(tǒng)成本低廉;1-Wire接口與AT89S52通信,其結構便于多點測量且易于擴展;測溫范圍寬(-550℃~1250℃)且精度高。
對l-Wire的操作關鍵是軟件時序的處理,對于不同的晶體振蕩器其延時參數是不同的,本系統(tǒng)以12MHz為例給出如下主要程序代碼:
bit DallassReset(void)
{
unsigned char presence=0;
DallassDataout=1; //發(fā)出復位脈沖前先釋
放總線
delay(10);
DallassDataout=0;
delay(240);//保證延時在4801μs~9601μs之間
DaUassDataout=1;
delay(35);
Dresence=DallassDataout;
delay(60);
return(presence);
}
//寫時序從主控制器把總線拉低時開始
void writeCommand(unsigned char command)
{
unsigned char count;
for(count=O;count<8;count++)
{
DallassDataout=0;
if(command&0x01==1)
{
DallassDataout=1;
//寫“1”時序在將總線拉低后,AT89S52主控制器必須在15μs內釋放總線,所以此語句之前不能有較長時間的延時語句
}
delay(35);//無論寫“1”還是寫“0”時序都必須有至少601as的低電平 DallassDataout=1;//總線恢復的過程
command=command>>1;
}
}
//讀時序從主控制器將總線拉低至少1μs后釋放總線的時刻開始
unsigned char readdata(void)
{
unsigned char value;
unsigned char midtemp=0;
for(value=0;value<8;Value++)
{
I DallassDataout=0;
midtemp=midtemp>>1;
-nop_O;
_nop_O;
DallassDataout=1;
//讀時序時,控制器必須在15μs內釋放總線,然后采樣總線狀態(tài),所以此語句之前不能延時太長的時間的延時語句
if(DallassDataout==1)
{
midtemp=midtemp | 0x80;
//因為midtemp初始被賦值為0,所以如果采樣總線狀態(tài)為0則不必處理,0會自動被返回
}
delay(35);
//延時70μs完成此次Bit
位讀時序過程,為下一次讀作準備





