用AD590溫度傳感器測溫_第1頁
用AD590溫度傳感器測溫_第2頁
用AD590溫度傳感器測溫_第3頁
用AD590溫度傳感器測溫_第4頁
用AD590溫度傳感器測溫_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

PAGE33目錄第一章緒論11.1課題背景及意義11.2課題應(yīng)用前景1第二章總體設(shè)計(jì)方案22.1總體設(shè)計(jì)框圖22.2元器件選擇22.21溫度傳感器AD590…………32.22模數(shù)轉(zhuǎn)換器ADC0808………………………52.23單片機(jī)芯片AT89C51………………………102.24顯示器件LED………………14第三章結(jié)構(gòu)和基本原理153.1AD590傳感器檢測電路單元153.2A/D轉(zhuǎn)換電路單元163.3鍵盤控制單元163.4LED顯示電路單元17第四章軟件設(shè)計(jì)分析164.1系統(tǒng)總流程圖174.2A/D轉(zhuǎn)換的啟動(dòng)及轉(zhuǎn)換結(jié)果獲取204.3程序?qū)崿F(xiàn)分析214.4實(shí)驗(yàn)源程序…………………224.5圖形仿真……………………28第五章結(jié)語31參考文獻(xiàn)32第四章軟件設(shè)計(jì)分析南昌工程學(xué)院??飘厴I(yè)設(shè)計(jì)第四章軟件設(shè)計(jì)分析第一章緒論1.1課題背景及意義一些傳感器市場比如壓力傳感器、溫度傳感器、流量傳感器、水平傳感器.稱重傳感器已表現(xiàn)出成熟市場的特征。流量傳感器、壓力傳感器、溫度傳感器.稱重傳感器的市場規(guī)模最大,分別占到整個(gè)傳感器市場的21%、19%和14%。傳感器市場的主要增長來自于無線傳感器、MEMS傳感器、生物傳感器等新興傳感器。其中,無線傳感器在2007-2010年復(fù)合年增長率預(yù)計(jì)會(huì)超過25%。與傳統(tǒng)的溫度計(jì)相比,由于采用了改進(jìn)型智能溫度傳感器AD590作為檢測元件,本數(shù)字溫度計(jì)減少了外部的硬件電路,具有低成本和易使用的特點(diǎn)。AD590溫度計(jì)還可以在過限報(bào)警、遠(yuǎn)距離多點(diǎn)測溫控制等方面進(jìn)行應(yīng)用開發(fā),具有很好的發(fā)展前景。AD590是一種可組網(wǎng)的高精度數(shù)字式溫度傳感器,由于其具有單總線的獨(dú)特優(yōu)點(diǎn),可以使用戶輕松地組建起傳感器網(wǎng)絡(luò),并可使多點(diǎn)溫度測量電路變得簡單、可靠在該論文中,我們通過對單片機(jī)和溫度傳感器的設(shè)計(jì),從中學(xué)到了許多有用的東西,其中我們明白了如何去設(shè)計(jì)一個(gè)產(chǎn)品,首先要有性價(jià)比、良好的適應(yīng)性,其次要知道設(shè)計(jì)的關(guān)鍵,最后也懂得了設(shè)計(jì)與實(shí)際的聯(lián)系

1.2課題的應(yīng)用前景

溫度傳感器的應(yīng)用范圍很廣,它不僅廣泛應(yīng)用于日常生活中,而且也大量應(yīng)用于自動(dòng)化和過程檢測控制系統(tǒng)。目前,全球的傳感器市場在不斷變化的創(chuàng)新之中呈現(xiàn)出快速增長的趨勢。有關(guān)專家指出,傳感器領(lǐng)域的主要技術(shù)將在現(xiàn)有基礎(chǔ)上予以延伸和提高,各國將競相加速新一代傳感器的開發(fā)和產(chǎn)業(yè)化,競爭也將日益激烈。新技術(shù)的發(fā)展將重新定義未來的傳感器市場,比如無線傳感器、光纖傳感器、智能傳感器和金屬氧化傳感器等新型稱重傳感器的出現(xiàn)與市場份額的擴(kuò)大。第二章總體設(shè)計(jì)方案2.1總體設(shè)計(jì)框圖測量溫度的方法多種多樣,測溫傳感器是決定技術(shù)指標(biāo)的關(guān)鍵元件,這次實(shí)訓(xùn)采用AD590作為溫度傳感,再通過模數(shù)轉(zhuǎn)換把模擬信號轉(zhuǎn)成數(shù)字信號,送入單片機(jī)進(jìn)行處理并顯示。溫度傳感器AD590溫度傳感器AD590模數(shù)轉(zhuǎn)換電路ADC0808CPUAT89C514位數(shù)碼管顯示圖2.1總體設(shè)計(jì)框圖2.2元器件選擇1傳感器型號選擇集成溫度傳感器實(shí)質(zhì)上是一種半導(dǎo)體集成電路,它是利用晶體管的b-e結(jié)壓降的不飽和值VBE與熱力學(xué)溫度T和通過發(fā)射極電流I的下述關(guān)系實(shí)現(xiàn)對溫度的檢測,集成溫度傳感器具有線性好、精度適中、靈敏度高、體積小、使用方便等優(yōu)點(diǎn),得到廣泛應(yīng)用。集成溫度傳感器的輸出形式分為電壓輸出和電流輸出兩種。電壓輸出型的靈敏度一般為10mV/K,溫度0℃時(shí)輸出為0,溫度25℃溫度傳感器AD590溫度傳感器的應(yīng)用范圍很廣,它不僅用于日常生活中,而且也大量應(yīng)用于自動(dòng)化和過程檢測控制系統(tǒng)。溫度傳感器的種類很多,根據(jù)現(xiàn)場使用條件,選擇恰當(dāng)?shù)膫鞲衅黝愋筒拍鼙WC測量的準(zhǔn)確可靠,并且同時(shí)達(dá)到增加使用壽命和降低成本的目的。AD590溫度傳感器不但實(shí)現(xiàn)了溫度轉(zhuǎn)化為線性電量測量,而且精度高、互換性好。AD590測量熱力學(xué)溫度、攝氏溫度、兩點(diǎn)溫度差、多點(diǎn)最低溫度、多點(diǎn)平均溫度的具體電路,廣泛應(yīng)用于不同的溫度控制場合。由于AD590精度高、價(jià)格低、不需輔助電源、線性好,常用于測溫和熱電偶的冷端補(bǔ)償。本設(shè)計(jì)采用AD590作為溫度傳感器,它只需要一個(gè)電源即可實(shí)現(xiàn)溫度到電流的線性變換,然后再終端使用一只取樣電阻,即可實(shí)現(xiàn)電流到電壓的轉(zhuǎn)換。它使用方便,并且具有較高的精度。圖3.5為AD590的封裝形式和基本應(yīng)用電路。圖3-5AD590封裝形式和應(yīng)用電路AD590集成溫度傳感器是將溫敏電阻晶體管與相應(yīng)的輔助電路集成在同一塊芯片上,能直接給出正比于絕對溫度的理想線形輸出,一般用于-55℃~+150℃之間的測量溫度。溫敏晶體管在管子的集電極電流恒定時(shí),其基極發(fā)射極電壓與溫度成線形關(guān)系,由于生產(chǎn)廠家生產(chǎn)時(shí)采用激光微調(diào)來校正集成電路內(nèi)的薄膜電阻,使其在攝氏零度(對應(yīng)絕對溫度為273.2K),輸出電流微273.2uA,靈敏度微1uA/K。當(dāng)其感受的溫度升高或者降低時(shí),則其電流就以1uA/K的速率增大或減小,從而將被測電流轉(zhuǎn)換為電壓,則可以用電壓來表示其溫度大小。為克服溫敏晶體管vb電壓產(chǎn)生時(shí)的離散性,采用了特殊的差分電路。集成溫度傳感器具有電壓型和電流型兩種。因此,它不容易受接觸電阻、引線電阻、電壓噪音的干擾,具有很好的線性特性。AD590溫度與電流的關(guān)系如下表所示攝氏溫度AD590電流經(jīng)10KΩ電壓0℃273.2uA2.732V10℃283.2uA2.832V20℃293.2uA2.932V30℃303.2uA3.032V40℃313.2uA3.132V50℃323.2uA3.232V60℃333.2uA3.332V100℃373.2uA3.732V表3.6AD590主要特性如下:●

流過器件的電流(mA)等于器件所處環(huán)境的熱力學(xué)溫度(開爾文)度數(shù),即:

(3-1)式中:Ir為流過器件(AD590)的電流,單位為mA;

T為熱力學(xué)溫度,單位為K?!?/p>

AD590的測溫范圍為-55℃~+150℃。●

AD590的電源電壓范圍為4V~30V。電源電壓可在4V~6V范圍變化,電流變化mA,相當(dāng)于溫度變化1K。AD590可以承受44V正向電壓和20V反向電壓,因而器件反接也不會(huì)被損壞?!?/p>

輸出電阻為710MW?!?/p>

精度高。AD590共有I、J、K、L、M五檔,其中M檔精度最高,在-55℃~+150℃范圍內(nèi),非線性誤差為±0.3℃。AD590溫度傳感器作為一個(gè)恒流源,在本設(shè)計(jì)的溫度檢測電路中在AD590的輸出端接一取樣電阻可將輸出電流信號變化轉(zhuǎn)換為電壓信號變化。由于AD590溫度傳感器溫度每變化1℃其輸出電流變化1mA。所以在接上10K的取樣電阻的情況下,溫度每變化10℃,輸出電壓就將變化0.1V。2.模數(shù)轉(zhuǎn)換器傳感器輸出信號經(jīng)過電壓跟隨器和差分放大電路之后,輸出的是0-5V的電壓信號,為了把這一信號用數(shù)碼管顯示出來,還要經(jīng)過模數(shù)轉(zhuǎn)換器件ADC0808把0-5V的電壓轉(zhuǎn)為數(shù)字信號0-255。a/d轉(zhuǎn)換器的功能是把模擬量變換成數(shù)字量。由于實(shí)現(xiàn)這種轉(zhuǎn)換的工作原理和采用工藝技術(shù)不同,因此生產(chǎn)出種類繁多的a/d轉(zhuǎn)換芯片。a/d轉(zhuǎn)換器按分辨率分為4位。6位。8位。10位。14位。16位和bcd碼的31/2位。51/2位等。按照轉(zhuǎn)換速度可分為超高速(轉(zhuǎn)換時(shí)間≤330ns),次超高速,高速,低速(轉(zhuǎn)換時(shí)間>330μs)等。a/d轉(zhuǎn)換器按照轉(zhuǎn)換原理可分為直接a/d轉(zhuǎn)換器和間接a/d轉(zhuǎn)換器。所謂直接a/d轉(zhuǎn)換器,是把模擬信號直接轉(zhuǎn)換成數(shù)字信號,如逐次逼近型,并聯(lián)比較型等。其中逐次逼近型a/d轉(zhuǎn)換器,易于用集成工藝實(shí)現(xiàn),且能達(dá)到較高的分辨率和速度,故目前集成化a/d芯片采用逐次逼近型者多;間接a/d轉(zhuǎn)換器是先把模擬量轉(zhuǎn)換成中間量,然后再轉(zhuǎn)換成數(shù)字量,如電壓/時(shí)間轉(zhuǎn)換型(積分型),電壓/頻率轉(zhuǎn)換型,電壓/脈寬轉(zhuǎn)換型等。其中積分型a/d轉(zhuǎn)換器電路簡單,抗干擾能力強(qiáng),切能作到高分辨率,但轉(zhuǎn)換速度較慢。有些轉(zhuǎn)換器還將多路開關(guān)?;鶞?zhǔn)電壓源。時(shí)鐘電路。譯碼器和轉(zhuǎn)換電路集成在一個(gè)芯片內(nèi),已超出了單純a/d轉(zhuǎn)換功能,使用十分方便。A/D轉(zhuǎn)換器的主要技術(shù)參數(shù)1.分辨率:分辨率是指A/D轉(zhuǎn)換器輸出數(shù)字量的最低位變化一個(gè)數(shù)碼時(shí),對應(yīng)輸入模擬量的變化量.通常以A/D轉(zhuǎn)換器輸出數(shù)字量的位數(shù)表示分辨率的高低,因?yàn)槲粩?shù)越多,量化單位就越小,對輸入信號的分辨能力也就越高.例如,輸入模擬電壓滿量程為10V,若用8位A/D轉(zhuǎn)換器轉(zhuǎn)換時(shí),其分辨率為10V/28=39mV,10位的A/D轉(zhuǎn)換器是9.76Mv,而12位的A/D轉(zhuǎn)換器為2.44mV。2.轉(zhuǎn)換誤差:轉(zhuǎn)換誤差表示A/D轉(zhuǎn)換器實(shí)際輸出的數(shù)字量與理論上的輸出數(shù)字量之間的差別.通常以輸出誤差的最大值形式給出.轉(zhuǎn)換誤差也叫相對精度或相對誤差.轉(zhuǎn)換誤差常用最低有效位的倍數(shù)表示.例如,某A/D轉(zhuǎn)換的相對精度為±(1/2)LSB,這說明理論上應(yīng)輸出的數(shù)字量與實(shí)際輸出的數(shù)字量之間的誤差不大于最低位為1的一半。3.轉(zhuǎn)換速度:A/D轉(zhuǎn)換器從接收到轉(zhuǎn)換控制信號開始,到輸出端得到穩(wěn)定的數(shù)字量為止所需要的時(shí)間,即完成一次A/D轉(zhuǎn)換所需的時(shí)間稱為轉(zhuǎn)換速度.采用不同的轉(zhuǎn)換電路,其轉(zhuǎn)換速度是不同的,并行型比逐次逼近型要快得多.低速的A/D轉(zhuǎn)換器為1~30ms,中速A/D轉(zhuǎn)換器的時(shí)間在50μs左右,高速A/D轉(zhuǎn)換器的時(shí)間在50ns左右,ADC808的轉(zhuǎn)換時(shí)間在100μs左右。采樣頻率為8位的、以逐次逼近原理進(jìn)行?!獢?shù)轉(zhuǎn)換的器件。其內(nèi)部有一個(gè)8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個(gè)進(jìn)行A/D轉(zhuǎn)換。,當(dāng)數(shù)字量變化時(shí),d/a轉(zhuǎn)換器輸出的模擬量按比例關(guān)系變化的程度。理想的d/a轉(zhuǎn)換器是線性的,但是實(shí)際上是有誤差的,模擬輸出偏離理想輸出的最大值稱為線性誤差。8路8位A/D轉(zhuǎn)換器,即分辨率8位。具有轉(zhuǎn)換起??刂贫?。轉(zhuǎn)換時(shí)間為100μs單個(gè)+5V電源供電模擬輸入電壓范圍0~+5V,不需零點(diǎn)和滿刻度校準(zhǔn)。工作溫度范圍為-40~+85攝氏度低功耗,約15mW。(1)內(nèi)部結(jié)構(gòu):ADC0808是CMOS單片型逐次逼近式A/D轉(zhuǎn)換器,內(nèi)部結(jié)構(gòu)如圖13.22所示,它由8路模擬開關(guān)、地址鎖存與譯碼器、比較器、8位開關(guān)樹型D/A轉(zhuǎn)換器、逐次逼近ADC0808的內(nèi)部結(jié)構(gòu)和外部引腳分別如圖11.19和圖11.20所示。內(nèi)部各部分的作用和工作原理在內(nèi)部結(jié)構(gòu)圖中已一目了然,在此就不再贅述,下面僅對各引腳定義分述如下:圖11.19ADC0808內(nèi)部結(jié)構(gòu)框圖(2)外部特性(引腳功能):ADC0808芯片有28條引腳,采用雙列直插式封裝,如圖11.20所示。圖11.20ADC0808外部引腳圖下面說明各引腳功能。IN0~I(xiàn)N7:8路模擬量輸入端。2-1~2-8:8位數(shù)字量輸出端。ADDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入中的一路,如表11.3所示:表11.3地址信號與選中通道的關(guān)系地址選中通道ADDCADDBADDA000011110011001101010101IN0IN1IN2IN3IN4IN5IN6IN7ALE:地址鎖存允許信號,輸入,高電平有效。START:A/D轉(zhuǎn)換啟動(dòng)信號,輸入,高電平有效。EOC:A/D轉(zhuǎn)換結(jié)束信號,輸出,當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸出一個(gè)高電平。OE:數(shù)據(jù)輸出允許信號,輸入,高電平有效。當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸入一個(gè)高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。CLK:時(shí)鐘脈沖輸入端。要求時(shí)鐘頻率不高于640KHZ。REF(+)、REF(-):基準(zhǔn)電壓。Vcc:電源,單一+5V。GND:地。ADC0808的工作過程是:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動(dòng)A/D轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進(jìn)行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個(gè)信號可用作中斷申請。當(dāng)OE輸入高電平時(shí),輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上(3)工作時(shí)序與使用說明:ADC0808的工作時(shí)序如圖11.21所示。當(dāng)通道選擇地址有效時(shí),ALE信號一出現(xiàn),地址便馬上被鎖存,這時(shí)轉(zhuǎn)換啟動(dòng)信號緊隨ALE之后(或與ALE同時(shí))出現(xiàn)。START的上升沿將逐次逼近寄存器SAR復(fù)位,在該上升沿之后的2μs加8個(gè)時(shí)鐘周期內(nèi)(不定),EOC信號將變低電平,以指示轉(zhuǎn)換操作正在進(jìn)行中,直到轉(zhuǎn)換完成后EOC再變高電平。微處理器收到變?yōu)楦唠娖降腅OC信號后,便立即送出OE信號,打開三態(tài)門,讀取轉(zhuǎn)換結(jié)果。圖11.21ADC0808工作時(shí)序模擬輸入通道的選擇可以相對于轉(zhuǎn)換開始操作獨(dú)立地進(jìn)行(當(dāng)然,不能在轉(zhuǎn)換過程中進(jìn)行),然而通常是把通道選擇和啟動(dòng)轉(zhuǎn)換結(jié)合起來完成(因?yàn)锳DC0808的時(shí)間特性允許這樣做)。這樣可以用一條寫指令既選擇模擬通道又啟動(dòng)轉(zhuǎn)換。在與微機(jī)接口時(shí),輸入通道的選擇可有兩種方法,一種是通過地址總線選擇,一種是通過數(shù)據(jù)總線選擇。如用EOC信號去產(chǎn)生中斷請求,要特別注意EOC的變低相對于啟動(dòng)信號有2μs+8個(gè)時(shí)鐘周期的延遲,要設(shè)法使它不致產(chǎn)生虛假的中斷請求。為此,最好利用EOC上升沿產(chǎn)生中斷請求,而不是靠高電平產(chǎn)生中斷請求。(4)ADC0808與8031單片機(jī)的接口設(shè)計(jì)

ADC0808與8031單片機(jī)的硬件接口有三種方式,查詢方式,中斷方式和等待延時(shí)方式.究竟采用何種方式,應(yīng)視具體情況,按總體要求而選擇.

1.延時(shí)方式

ADC0808編程模式

在軟件編寫時(shí),應(yīng)令p2.7=A15=0;A0,A1,A2給出被選擇的模擬通道的地址;

執(zhí)行一條輸出指令,啟動(dòng)A/D轉(zhuǎn)換;

執(zhí)行一條輸入指令,讀取A/D轉(zhuǎn)換結(jié)果.

通道地址:7FF8H~7FFFH

下面的程序是采用延時(shí)的方法,分別對8路模擬信號輪流采樣一次,并依次把結(jié)果轉(zhuǎn)存到數(shù)據(jù)存儲區(qū)的采樣轉(zhuǎn)換程序.

START:MOVR1,#50H;置數(shù)據(jù)區(qū)首地址

MOVDPTR,#7FF8H;P2.7=0且指向通道0

MOVR7,#08H;置通道數(shù)

NEXT:MOVX@DPTR,A;啟動(dòng)A/D轉(zhuǎn)換

MOVR6,#0AH;軟件延時(shí)

DLAY:NOP

NOP

NOP

DJNZR6,DLAY

MOVXA,@DPTR;讀取轉(zhuǎn)換結(jié)果

MOV@R1,A;存儲數(shù)據(jù)

INCDPTR;指向下一個(gè)通道

INCR1;修改數(shù)據(jù)區(qū)指針

DJNZR7,NEXT;8個(gè)通道全采樣完了嗎

2.中斷方式

將ADC0808作為一個(gè)外部擴(kuò)展的并行I/O口,直接由8031的P2.0和脈沖進(jìn)行啟動(dòng).通道地址為FEF8H~FEFFH

用中斷方式讀取轉(zhuǎn)換結(jié)果的數(shù)字量,模擬量輸入通路選擇端A,B,C分別與8031的P0.0,P0.1,P0.2(經(jīng)74LS373)相連,

CLK由8031的ALE提供.

INTADC:SETBIT1;選擇為邊沿觸發(fā)方式

SETBEA;開中斷

SETBEX1;

MOVDPTR,#0FEF8H;通道地址送DPTR

MOVX@DPTR,A;啟動(dòng)A/D轉(zhuǎn)換

……

PINT1:……

MOVDPTR,#0FEF8H;通道地址送DPTR

MOVXA,@DPTR;讀取從IN0輸入的轉(zhuǎn)換結(jié)果存入

MOV50H,A;50H單元

MOVX@DPTR,A;啟動(dòng)A/D轉(zhuǎn)換

RETI;中斷返回

(5)接口電路設(shè)計(jì)中的幾點(diǎn)注意事項(xiàng)

1.關(guān)于ADC0808最高工作時(shí)鐘頻率的說明

由于ADC0808芯片內(nèi)無時(shí)鐘,所以必須靠外部提供時(shí)鐘;

外部時(shí)鐘的頻率范圍為10KHZ~1280KHZ.在前面的ADC0808通過中斷方式與8031單片機(jī)接口的電路中,8031單片機(jī)的主頻接為6MHZ,ALE提供ADC0808/0809的時(shí)鐘頻率為1MHZ(1000KHZ);

實(shí)際應(yīng)用系統(tǒng)使用證明,ADC0808能夠正??煽康毓ぷ?但在用戶進(jìn)行ADC0808應(yīng)用設(shè)計(jì)時(shí),推薦選用640KHZ左右的時(shí)鐘頻率.3.AT89C51芯片介紹:AT89C51是一種帶4K字節(jié)FLASH存儲器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低電壓、高性能CMOS8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。外形及引腳排列如圖所示AT89C51外形及引腳排列。編輯本段主要特性:·與MCS-51兼容·4K字節(jié)可編程FLASH存儲器·壽命:1000寫/擦循環(huán)·數(shù)據(jù)保留時(shí)間:10年·全靜態(tài)工作:0Hz-24MHz·三級程序存儲器鎖定·128×8位內(nèi)部RAM·32可編程I/O線·兩個(gè)16位定時(shí)器/計(jì)數(shù)器·5個(gè)中斷源·可編程串行通道·低功耗的閑置和掉電模式·片內(nèi)振蕩器和時(shí)鐘電路編輯本段特性概述:AT89C51提供以下標(biāo)準(zhǔn)功能:4k字節(jié)Flash閃速存儲器,128字節(jié)內(nèi)部RAM,32個(gè)I/O口線,兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量兩級中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。編輯本段管腳說明:VCC:供電電壓。GND:接地。P0口:P0口為一個(gè)8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P0口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的低八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須接上拉電阻。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為低八位地址接收。P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號和控制信號。P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示:口管腳備選功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INT0(外部中斷0)P3.3/INT1(外部中斷1)P3.4T0(記時(shí)器0外部輸入)P3.5T1(記時(shí)器1外部輸入)P3.6/WR(外部數(shù)據(jù)存儲器寫選通)P3.7/RD(外部數(shù)據(jù)存儲器讀選通)P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問外部存儲器時(shí),地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時(shí),這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號要通過一個(gè)二分頻觸發(fā)器,因此對外部時(shí)鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。編輯本段芯片擦除:整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。串口通訊單片機(jī)的結(jié)構(gòu)和特殊寄存器,這是你編寫軟件的關(guān)鍵。至于串口通信需要用到那些特殊功能寄存器呢,它們是SCON,TCON,TMOD,SCON等,SBUF數(shù)據(jù)緩沖寄存器這是一個(gè)可以直接尋址的串行口專用寄存器。SBUF包含了兩個(gè)獨(dú)立的寄存器,一個(gè)是發(fā)送寄存,另一個(gè)是接收寄存器,但它們都共同使用同一個(gè)尋址地址-99H。CPU在讀SBUF時(shí)會(huì)指到接收寄存器,在寫時(shí)會(huì)指到發(fā)送寄存器,而且接收寄存器是雙緩沖寄存器,這樣可以避免接收中斷沒有及時(shí)的被響應(yīng),數(shù)據(jù)沒有被取走,下一幀數(shù)據(jù)已到來,而造成的數(shù)據(jù)重疊問題。發(fā)送器則不需要用到雙緩沖,一般情況下我們在寫發(fā)送程序時(shí)也不必用到發(fā)送中斷去外理發(fā)送數(shù)據(jù)。操作SBUF寄存器的方法則很簡單,只要把這個(gè)99H地址用關(guān)鍵字sfr定義為一個(gè)變量就可以對其進(jìn)行讀寫操作了,如sfrSBUF=0x99;當(dāng)然你也可以用其它的名稱。通常在標(biāo)準(zhǔn)的reg51.h或at89x51.h等頭文件中已對其做了定義,只要用#include引用就可以了。SCON串行口控制寄存器通常在芯片或設(shè)備中為了監(jiān)視或控制接口狀態(tài),都會(huì)引用到接口控制寄存器。SCON就是51芯片的串行口控制寄存器。它的尋址地址是98H,是一個(gè)可以位尋址的寄存器,作用就是監(jiān)視和控制51芯片串行口的工作狀態(tài)。51芯片的串口可以工作在幾個(gè)不同的工作模式下,其工作模式的設(shè)置就是使用SCON寄存器。它的各個(gè)位的具體定義如下:SM0SM1SM2RENTB8RB8TIRISM0、SM1為串行口工作模式設(shè)置位,這樣兩位可以對應(yīng)進(jìn)行四種模式的設(shè)置。串行口工作模式設(shè)置。SM0SM1模式功能波特率000同步移位寄存器fosc/120118位UART可變1029位UARTfosc/32或fosc/641139位UART可變在這里只說明最常用的模式1,其它的模式也就一一略過,有興趣的朋友可以找相關(guān)的硬件資料查看。表中的fosc代表振蕩器的頻率,也就是晶振的頻率。UART為(UniversalAsynchronousReceiver)的英文縮寫。SM2在模式2、模式3中為多處理機(jī)通信使能位。在模式0中要求該位為0。REM為允許接收位,REM置1時(shí)串口允許接收,置0時(shí)禁止接收。REM是由軟件置位或清零。如果在一個(gè)電路中接收和發(fā)送引腳P3.0,P3.1都和上位機(jī)相連,在軟件上有串口中斷處理程序,當(dāng)要求在處理某個(gè)子程序時(shí)不允許串口被上位機(jī)來的控制字符產(chǎn)生中斷,那么可以在這個(gè)子程序的開始處加入REM=0來禁止接收,在子程序結(jié)束處加入REM=1再次打開串口接收。大家也可以用上面的實(shí)際源碼加入REM=0來進(jìn)行實(shí)驗(yàn)。TB8發(fā)送數(shù)據(jù)位8,在模式2和3是要發(fā)送的第9位。該位可以用軟件根據(jù)需要置位或清除,通常這位在通信協(xié)議中做奇偶位,在多處理機(jī)通信中這一位則用于表示是地址幀還是數(shù)據(jù)幀。RB8接收數(shù)據(jù)位8,在模式2和3是已接收數(shù)據(jù)的第9位。該位可能是奇偶位,地址/數(shù)據(jù)標(biāo)識位。在模式0中,RB8為保留位沒有被使用。在模式1中,當(dāng)SM2=0,RB8是已接收數(shù)據(jù)的停止位。TI發(fā)送中斷標(biāo)識位。在模式0,發(fā)送完第8位數(shù)據(jù)時(shí),由硬件置位。其它模式中則是在發(fā)送停止位之初,由硬件置位。TI置位后,申請中斷,CPU響應(yīng)中斷后,發(fā)送下一幀數(shù)據(jù)。在任何模式下,TI都必須由軟件來清除,也就是說在數(shù)據(jù)寫入到SBUF后,硬件發(fā)送數(shù)據(jù),中斷響應(yīng)(如中斷打開),這時(shí)TI=1,表明發(fā)送已完成,TI不會(huì)由硬件清除,所以這時(shí)必須用軟件對其清零。RI接收中斷標(biāo)識位。在模式0,接收第8位結(jié)束時(shí),由硬件置位。其它模式中則是在接收停止位的半中間,由硬件置位。RI=1,申請中斷,要求CPU取走數(shù)據(jù)。但在模式1中,SM2=1時(shí),當(dāng)未收到有效的停止位,則不會(huì)對RI置位。同樣RI也必須要靠軟件清除。常用的串口模式1是傳輸10個(gè)位的,1位起始位為0,8位數(shù)據(jù)位,低位在先,1位停止位為1。它的波特率是可變的,其速率是取決于定時(shí)器1或定時(shí)器2的定時(shí)值(溢出速率)。AT89C51和AT89C2051等51系列芯片只有兩個(gè)定時(shí)器,定時(shí)器0和定時(shí)器1,而定時(shí)器2是89C52系列芯片才有的。波特率在使用串口做通訊時(shí),一個(gè)很重要的參數(shù)就是波特率,只有上下位機(jī)的波特率一樣時(shí)才可以進(jìn)行正常通訊。波特率是指串行端口每秒內(nèi)可以傳輸?shù)牟ㄌ匚粩?shù)。有一些初學(xué)的朋友認(rèn)為波特率是指每秒傳輸?shù)淖止?jié)數(shù),如標(biāo)準(zhǔn)9600會(huì)被誤認(rèn)為每秒種可以傳送9600個(gè)字節(jié),而實(shí)際上它是指每秒可以傳送9600個(gè)二進(jìn)位,而一個(gè)字節(jié)要8個(gè)二進(jìn)位,如用串口模式1來傳輸那么加上起始位和停止位,每個(gè)數(shù)據(jù)字節(jié)就要占用10個(gè)二進(jìn)位,9600波特率用模式1傳輸時(shí),每秒傳輸?shù)淖止?jié)數(shù)是9600÷10=960字節(jié)。51芯片的串口工作模式0的波特率是固定的,為fosc/12,以一個(gè)12M的晶振來計(jì)算,那么它的波特率可以達(dá)到1M。模式2的波特率是固定在fosc/64或fosc/32,具體用那一種就取決于PCON寄存器中的SMOD位,如SMOD為0,波特率為focs/64,SMOD為1,波特率為focs/32。模式1和模式3的波特率是可變的,取決于定時(shí)器1或2(52芯片)的溢出速率。那么我們怎么去計(jì)算這兩個(gè)模式的波特率設(shè)置時(shí)相關(guān)的寄存器的值呢?可以用以下的公式去計(jì)算。波特率=(2SMOD÷32)×定時(shí)器1溢出速率上式中如設(shè)置了PCON寄存器中的SMOD位為1時(shí)就可以把波特率提升2倍。通常會(huì)使用定時(shí)器1工作在定時(shí)器工作模式2下,這時(shí)定時(shí)值中的TL1做為計(jì)數(shù),TH1做為自動(dòng)重裝值,這個(gè)定時(shí)模式下,定時(shí)器溢出后,TH1的值會(huì)自動(dòng)裝載到TL1,再次開始計(jì)數(shù),這樣可以不用軟件去干預(yù),使得定時(shí)更準(zhǔn)確。在這個(gè)定時(shí)模式2下定時(shí)器1溢出速率的計(jì)算公式如下:溢出速率=(計(jì)數(shù)速率)/(256-TH1)上式中的“計(jì)數(shù)速率”與所使用的晶體振蕩器頻率有關(guān),在51芯片中定時(shí)器啟動(dòng)后會(huì)在每一個(gè)機(jī)器周期使定時(shí)寄存器TH的值增加一,一個(gè)機(jī)器周期等于十二個(gè)振蕩周期,所以可以得知51芯片的計(jì)數(shù)速率為晶體振蕩器頻率的1/12,一個(gè)12M的晶振用在51芯片上,那么51的計(jì)數(shù)速率就為1M然而使用12M晶體的時(shí)候計(jì)算出來的TH1不為整數(shù),而TH1的值只能取整數(shù),這樣它就會(huì)有一定的誤差存在不能產(chǎn)生精確的9600波特率。當(dāng)然一定的誤差是可以在使用中被接受的,就算使用11.0592M的晶體振蕩器也會(huì)因晶體本身所存在的誤差使波特率產(chǎn)生誤差,但晶體本身的誤差對波特率的影響是十分之小的,可以忽略不計(jì)。5.顯示器件的選擇:在系統(tǒng)中要顯示時(shí)間,就必需有顯示無器件,目前市場上顯示元器件很多,有LCD、點(diǎn)陣顯顯、7段數(shù)碼管顯示等。LED顯示器與LCD顯示器相比,LED在亮度、功耗、可視角度和刷新速率等方面,都更具優(yōu)勢。LED與LCD的功耗比大約為10:1,而且更高的刷新速率使得LED在視頻方面有更好的性能表現(xiàn),能提供寬達(dá)160°的視角,可以顯示各種文字、數(shù)字、彩色圖像及動(dòng)畫信息,也可以播放電視、錄像、VCD、DVD等彩色視頻信號,多幅顯示屏還可以進(jìn)行聯(lián)網(wǎng)播出。有機(jī)LED顯示屏的單個(gè)元素反應(yīng)速度是LCD液晶屏的1000倍,在強(qiáng)光下也可以照看不誤,并且適應(yīng)零下40度的低溫。利用LED技術(shù),可以制造出比LCD更薄、更亮、更清晰的顯示器,擁有廣泛的應(yīng)用前景。由此可知LCD缺點(diǎn)是比較耗電,而且成本也較高。從節(jié)約成本和節(jié)約能源的角度作為出發(fā)點(diǎn),我們選擇一組4位7段共陽數(shù)碼管作為時(shí)間顯示,以便節(jié)約成本和功耗。數(shù)碼管的驅(qū)動(dòng)方式:數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類。靜態(tài)顯示驅(qū)動(dòng):靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O端口進(jìn)行驅(qū)動(dòng),或者使用如BCD碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡單,顯示亮度高,缺點(diǎn)是占用I/O端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來驅(qū)動(dòng),要知道一個(gè)89S51單片機(jī)可用的I/O端口才32個(gè)呢:),實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。動(dòng)態(tài)顯示驅(qū)動(dòng):數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會(huì)亮。通過分時(shí)輪流控制各個(gè)數(shù)碼管的的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。第三章結(jié)構(gòu)和基本原理本電路主要分為這幾部下:傳感器及外圍元件、信號處理放大電路、模數(shù)轉(zhuǎn)換電路、單片機(jī)傳感器模樣數(shù)轉(zhuǎn)換電路鍵盤輸入顯示電路報(bào)警電路單片機(jī)傳感器模樣數(shù)轉(zhuǎn)換電路鍵盤輸入顯示電路報(bào)警電路圖3.1系統(tǒng)框圖3.1傳感器傳感器輸出電流是以絕對溫度零度(-273℃)為基準(zhǔn),每增加1℃,它會(huì)增加1μA輸出電流,因此在室溫25℃時(shí),其輸出電流Iout=(273+25)=298μA。測量Vo時(shí),不可分出任何電流,所以在應(yīng)用時(shí)我們還要通過運(yùn)算放大器來作相應(yīng)處理才能達(dá)到測量V0時(shí),不分出任何的電流,電路如圖3.2所示。圖3.2傳感器信號放大電路電路分析:AD590的輸出電流I=(273+T)μA(T為攝氏溫度),因此測量的電壓為2.V。為了將電壓測量出來又務(wù)須使輸出電流I不分流出來,我們使用電壓跟隨器其輸出電壓V2等于輸入電壓V。由于一般電源供應(yīng)教多器件之后,電源是帶雜波的,因此我們使用齊納二極管作為穩(wěn)壓元件,再利用可變電阻分壓,其輸出電壓V1需調(diào)整至2.73V接下來我們使用差動(dòng)其輸出Vo為(100K/10K)×(V2-V1)=T/10,如果現(xiàn)在為攝氏28℃3.2模數(shù)轉(zhuǎn)換電路本次實(shí)訓(xùn)只用到一路模擬信號,所以ADC0808的地址選擇端A、B、C直接與地相邊,默認(rèn)選擇IN0輸入通道。ALE與START端直接相連再邊到單片機(jī)的P2口,ADC0808必須由外部提供時(shí)鐘信號,其時(shí)鐘信號頻率范圍是:10-1248kHZ,所以時(shí)鐘信號可以由單片機(jī)提供,單片機(jī)ALE端輸出頻率是晶振頻率的六分之一。所以單片機(jī)的晶振應(yīng)選6MHz這樣ALE端輸出1000kHz的頻率就可以供給ADC0808使用。3.3鍵盤消抖鍵盤是計(jì)算機(jī)和工業(yè)控制等領(lǐng)域不可缺少的輸入設(shè)備,通過它可以實(shí)現(xiàn)人機(jī)對話,完成各種功能操作。但是,通常的按鍵所用開關(guān)為機(jī)械彈性開關(guān),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開關(guān)在閉合時(shí)不會(huì),馬上穩(wěn)定地接通,在斷開時(shí)也不會(huì)一下子斷開,因而在閉合及斷開的瞬間均伴隨有一連串的抖動(dòng),鍵抖動(dòng)會(huì)引起一次按鍵被誤讀多次,為了確保對按鍵的一次閉合僅作一次處理,必須去除按鍵抖動(dòng)。常見的消抖方法采用軟件或硬件來實(shí)現(xiàn):軟件消抖主要是采用延時(shí)多次讀取鍵盤接口數(shù)據(jù),通過比較前后兩次讀取鍵盤端口的數(shù)據(jù)來判斷是否有鍵按下;簡單硬件消抖則簡單硬件消抖則是采用電容來平掉信號的毛刺。但是對穩(wěn)定性要求比較高的應(yīng)用則需要采用相對復(fù)雜的集成電路來實(shí)現(xiàn)。按鍵抖動(dòng)時(shí)間的長短由按鍵的機(jī)械特性決定,一般為5ms~10ms,按鍵穩(wěn)定閉合時(shí)間的長短則是由操作人員的按鍵動(dòng)作決定的,一般為零點(diǎn)幾秒至數(shù)秒,利用軟件延時(shí)消除鍵盤抖動(dòng)所產(chǎn)生的毛刺信號時(shí)需設(shè)置一個(gè)定時(shí)器中斷,每中斷一次則讀取鍵盤接口的信號數(shù) 據(jù),如果與上次讀取的數(shù)據(jù)不一致,說明當(dāng)前讀取的是前沿抖動(dòng)數(shù)據(jù),將當(dāng)前的數(shù)據(jù)保留,等待下次定時(shí)器中斷。如果當(dāng)前讀取的數(shù)據(jù)和前次讀取數(shù)據(jù)相同則說明讀取的是穩(wěn)定狀態(tài)下的數(shù)據(jù),則確認(rèn)為真正有鍵按下。當(dāng)檢測到按鍵釋放后,需要延時(shí)5ms到10ms的時(shí)間,待后沿抖動(dòng)消失后才能轉(zhuǎn)入該鍵的處理程序。軟件延時(shí)并不需要增加新的硬件,但采用這種方式來設(shè)計(jì),一般通過軟件指令或者定時(shí)器的方式來設(shè)定延時(shí)的時(shí)間,采用通用處理器,由于運(yùn)行速度不一致,需要將軟件做相應(yīng)的修改。3.4顯示電路顯示部分是傳感器最后的部分,常用的顯示器主要有發(fā)光二極管和液晶顯示器,發(fā)光二極管由于其亮度高、價(jià)格低、壽命長,對電流、電壓的要求較低等優(yōu)點(diǎn),因而得到廣泛應(yīng)用。發(fā)光二極管由特殊的半導(dǎo)體材料砷化鎵、磷砷化鎵等制成,可以單獨(dú)使用,也可以組裝成分段式或點(diǎn)陣式LED顯示器件(半導(dǎo)體顯示器)。分段式顯示器(LED數(shù)碼管)由7條線段圍成8型,每一段包含一個(gè)發(fā)光二極管。外加正向電壓時(shí)二極管導(dǎo)通,發(fā)出清晰的光,有紅、黃、綠等色。只要按規(guī)律控制各發(fā)光段的亮、滅,就可以顯示各種字形或符號。共需要4位LED顯示器。采用動(dòng)態(tài)顯示方式,由于端口的問題以及動(dòng)態(tài)顯示方式的優(yōu)越性,在此設(shè)計(jì)的連接方式上采用共陰級接法。顯示器LED有段選和位選兩個(gè)端口,首先說段選端,它由LED八個(gè)端口構(gòu)成,通過對這八個(gè)端口輸入的不同的二進(jìn)制數(shù)據(jù)使得它的時(shí)間顯示也不同,從而可以得到我們所要的時(shí)間顯示和溫度。第四章軟件設(shè)計(jì)分析4.1系統(tǒng)總流程圖在主程序中,系統(tǒng)上電自動(dòng)復(fù)位以后首先設(shè)置堆棧,然后啟動(dòng)ADC0808,開始轉(zhuǎn)換AD590測溫電路輸入的電信號,待數(shù)據(jù)轉(zhuǎn)換結(jié)束后讀入到累加器A,然后進(jìn)行十進(jìn)制數(shù)據(jù)轉(zhuǎn)換調(diào)整,輸出給顯示電路。主程序流程圖如圖4所示。圖4.1.1主程序流程圖由于ADC0808轉(zhuǎn)換后的數(shù)據(jù)是二進(jìn)制數(shù)據(jù),而七段碼LED顯示器所要顯示的數(shù)據(jù)是十進(jìn)制數(shù)據(jù),因此需要進(jìn)行二、十進(jìn)制數(shù)據(jù)轉(zhuǎn)換。ADC0808輸出的最大轉(zhuǎn)換值為FFH(255),由于運(yùn)放A3放大5倍,因此本數(shù)字溫度計(jì)的最大測量溫度為5.V/5=1.0V,即100℃。由255*X=100,得知X=0.4,即先乘4再除10。要將其變成BCD碼形式,所以可以先將AD轉(zhuǎn)換結(jié)果除以250得到百位數(shù)BCD碼;余數(shù)除以10得到十位數(shù)BCD碼,余數(shù)為小數(shù),如果其為奇數(shù),則小數(shù)部分為5,如果是偶數(shù),小數(shù)部分為0。所以,十進(jìn)制轉(zhuǎn)換調(diào)整流程為A/D(二進(jìn)制)→十進(jìn)制→乘4→顯示。程序流程圖如圖4.1.2圖4.1.2十進(jìn)制數(shù)據(jù)轉(zhuǎn)換調(diào)整子程序流程圖十進(jìn)制轉(zhuǎn)換調(diào)整后的數(shù)據(jù)送到寄存器R5、R4中,然后通過P1口把數(shù)據(jù)輸出給D4、D3、D2、D1四個(gè)數(shù)碼顯示器中,從而最終把測得的溫度顯示出來。顯示子程序流程圖如圖4.1.3所示。參考文獻(xiàn)圖4.1.3數(shù)據(jù)顯示程序

4.2A/D轉(zhuǎn)換的啟動(dòng)及轉(zhuǎn)換結(jié)果獲取開始開始啟動(dòng)轉(zhuǎn)換(P2.7=1,P3.6=1)A/D 轉(zhuǎn)換結(jié)束?(P3.3=0)取數(shù)據(jù)(P3.7=1)讀取結(jié)束?結(jié)束圖4.2A/D轉(zhuǎn)換流程圖4.3程序?qū)崿F(xiàn)分析由于數(shù)據(jù)采集部分由硬件AD590通過運(yùn)算放大把信號輸入到ADC0808,ADC0808將輸入信號轉(zhuǎn)化成對應(yīng)的二進(jìn)制數(shù),因此程序只需通過控制ADC0808的/rd和/wd端來讀取二進(jìn)制即可。程序每隔50ms將當(dāng)前溫度值與設(shè)定值比較一次,當(dāng)小于設(shè)定溫度值時(shí)發(fā)出控制信號,即p2.1是0,該思路可用定時(shí)器T0來完成,比較判斷是否控制信號為判斷子程序中的內(nèi)容。

設(shè)定溫度下限部分,由于硬件通過74c922來輸出對應(yīng)的按鍵值,因此該程序只需讀取該值,然后轉(zhuǎn)換成對應(yīng)的十進(jìn)制數(shù)即可。

顯示部分:通過動(dòng)態(tài)掃描實(shí)現(xiàn),具體實(shí)現(xiàn)為當(dāng)通過p1口送入數(shù)據(jù)時(shí)需將相應(yīng)的控制數(shù)碼管的三極管導(dǎo)通,即將p1.4或p1.5輪流置1即可。

4.4實(shí)驗(yàn)源程序#include<reg51.H>unsignedcharcodedispbitcode[]={0x08,0x04,0x02,0x01};//四位數(shù)碼管的地址unsignedcharcodedispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff,0xbf};//數(shù)碼管顯示“0-F”unsignedchardispbuf[8]={0,0,0,0,0,0,0,0};unsignedintdispcount;unsignedlonggetdata;unsignedlongtemp;unsignedinti;inttempmax=3732;//對應(yīng)上限溫度100度intm=0;intn=0;intm1;bitsflag;sbitST=P3^0;//AD轉(zhuǎn)換啟動(dòng)信號sbitOE=P3^1;//輸出允許信號sbitEOC=P3^2;//AD轉(zhuǎn)換結(jié)束標(biāo)志sbitCLK=P3^3;sbitLED=P2^4;sbitkey1=P3^5;sbitkey2=P3^6;voiddelay(void);voidmain(void){ST=0;OE=0;TMOD=0x12;//定時(shí)器T1工作在方式1,定時(shí)器T0工作在方式2TH0=0x216;TL0=0x216;TH1=0xfc;//定時(shí)器T1定時(shí)1msTL1=0x18;TR1=1;//啟動(dòng)T1工作TR0=1;//啟動(dòng)T0工作ET0=1;//T0中斷允許ET1=1;//T1中斷允許EA=1;//開放總中斷ST=1;//啟動(dòng)AD轉(zhuǎn)換ST=0;key1=1;key2=1;delay();while(1){ ;//等待中斷}}voiddelay(void){unsignedchari; for(i=0;i<10;i++) ; //延時(shí)10}voidt0(void)interrupt1using0{CLK=~CLK;}voidt1(void)interrupt3using0{TH1=0xfc;TL1=0x18;if(EOC==1)/AD/轉(zhuǎn)換結(jié)束{OE=1;getdata=P0;//讀P0口數(shù)據(jù)OE=0;temp=(getdata);//電壓模擬量i=0; temp=temp*1000;//擴(kuò)大1000倍全變?yōu)檎麛?shù) temp=((float)temp)/255.0*5.0;//模數(shù)轉(zhuǎn)換 if(temp>tempmax)//報(bào)警子程序,若超限,則燈亮且清零 { LED=1; temp=2732; } temp=(temp-2725)/10;//將溫度的個(gè)位、十位、百位顯示出來 while(temp/10){dispbuf[i]=temp%10;temp=temp/10;i++;}dispbuf[i]=temp;ST=1;ST=0;}P2=dispbitco

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論