版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 多點(diǎn)溫度測量系統(tǒng)項目設(shè)計方案</p><p><b> 1.1 課題背景</b></p><p> 在人類的生活環(huán)境中,溫度扮演著極其重要的角色。無論你生活在哪里,從事什么工作,無時無刻不在與溫度打著交道。自18世紀(jì)工業(yè)革命以來,工業(yè)發(fā)展對是否能掌握溫度有著絕對的聯(lián)系。在冶金、鋼鐵、石化、水泥、玻璃、醫(yī)藥等等行業(yè),可以說幾乎%80
2、的工業(yè)部門都不得不考慮著溫度的因素。</p><p> 溫度對于工業(yè)如此重要,由此推進(jìn)了溫度傳感器的發(fā)展。</p><p> 傳感器主要大體經(jīng)過了三個發(fā)展階段:模擬集成溫度傳感器。該傳感器是采用硅半導(dǎo)體集成工藝制成,因此亦稱硅傳感器或單片集成溫度傳感器。此種傳感器具有功能單一(僅測量溫度)、測溫誤差小、價格低、響應(yīng)速度快、傳輸距離遠(yuǎn)、體積小、微功耗等,適合遠(yuǎn)距離測溫、控溫,不需要進(jìn)行非
3、線性校準(zhǔn),外圍電路簡單。它是目前在國內(nèi)外應(yīng)用最為普遍的一種集成傳感器,典型產(chǎn)品有AD590、AD592、TMP17、LM135等;模擬集成溫度控制器。模擬集成溫度控制器主要包括溫控開關(guān)、可編程溫度控制器,典型產(chǎn)品有LM56、AD22105和MAX6509。某些增強(qiáng)型集成溫度控制器(例如TC652/653)中還包含了A/D轉(zhuǎn)換器以及固化好的程序,這與智能溫度傳感器有某些相似之處。但它自成系統(tǒng),工作時并不受微處理器的控制,這是二者的主要區(qū)別
4、;智能溫度傳感器。能溫度傳感器(亦稱數(shù)字溫度傳感器)是在20世紀(jì)90年代中期問世的。它是微電子技術(shù)、計算機(jī)技術(shù)和自動測試技術(shù)(ATE)的結(jié)晶。智能溫度傳感器內(nèi)部都包含溫度傳感器、A/D轉(zhuǎn)換器、信號處理器、存儲器(或寄存器)和接口電路。有的產(chǎn)品還帶多路選擇器、中央控制器(CPU)、隨機(jī)存取存儲器(R</p><p> 溫度傳感器的發(fā)展趨勢。</p><p> 進(jìn)入21世紀(jì)后,溫度傳感器正
5、朝著高精度、多功能、總線標(biāo)準(zhǔn)化、高可靠性及安全性、開發(fā)虛擬傳感器和網(wǎng)絡(luò)傳感器、研制單片測溫系統(tǒng)等高科技的方向迅速發(fā)展。 傳感器在溫度測控系統(tǒng)中的應(yīng)用。</p><p> 目前市場主要存在單點(diǎn)和多點(diǎn)兩種溫度測量儀表。對于單點(diǎn)溫測儀表,主要采用傳統(tǒng)的模擬集成溫度傳感器,其中又以熱電阻、熱電偶等傳感器的測量精度高,測量范圍大,而得到了普遍的應(yīng)用。此種產(chǎn)品測溫范圍大都在-200℃~800℃之間,分辨率12位,最
6、小分辨溫度在0.001~0.01之間。自帶LED顯示模塊,顯示4位到16位不等。有的儀表還具有存儲功能,可存儲幾百到幾千組數(shù)據(jù)。該類儀表可很好的滿足單個用戶單點(diǎn)測量的需要。多點(diǎn)溫度測量儀表,相對與單點(diǎn)的測量精度有一定的差距,雖然實(shí)現(xiàn)了多路溫度的測控,但價格昂貴。</p><p> 針對目前市場的現(xiàn)狀,本課題提出了一種可滿足要求、可擴(kuò)展的并且性價比高的單片機(jī)多路測溫系統(tǒng)。</p><p>
7、 1.2本課題研究意義</p><p> 隨著科學(xué)技術(shù)的不斷進(jìn)步與發(fā)展,溫度控制在工業(yè)控制、電子測溫計、醫(yī)療儀器、家用電器等各種溫度控制系統(tǒng)中廣泛應(yīng)用,且由過去的單點(diǎn)測量向多測量發(fā)展。目前溫度傳感器有模擬和數(shù)字兩類傳感器,為了克服模擬傳感器與微處理器接口時需要信號調(diào)理電路和A/D轉(zhuǎn)換器的弊端,大多數(shù)多點(diǎn)測溫控制系統(tǒng)采用數(shù)字傳感器,并大大方便了系統(tǒng)的設(shè)計。比較有代表性的數(shù)字溫度傳感器有DS18B20、MAX65
8、75、DS1722、MAX6635、SMT160-30等。</p><p> 在傳統(tǒng)的溫度測量系統(tǒng)設(shè)計中,往往采用模擬技術(shù)進(jìn)行設(shè)計,這樣就不可避免地遇到諸如引線誤差補(bǔ)償、多點(diǎn)測量中的切換誤差和信號調(diào)理電路的誤差等問題;而其中某一環(huán)節(jié)處理不當(dāng),就可能造成整個系統(tǒng)性能的下降。隨著現(xiàn)代科學(xué)技術(shù)的飛速發(fā)展,特別是大規(guī)模集成電路設(shè)計技術(shù)的發(fā)展,微型化、集成化、數(shù)字化正成為傳感器發(fā)展的一個重要方向。美國Dallas半導(dǎo)體公
9、司推出的數(shù)字溫度傳感器DS18B20,具有獨(dú)特的單總線接口,僅需要占用一個通用I/0端口即可完成與微處理器的通信;在-10~+85℃ 溫度范圍內(nèi)具有0.5℃ 精度;用戶可編程設(shè)定9~12位的分辨率。以上特性使得DS18B20非常適用于構(gòu)建高精度、多點(diǎn)溫度測量系統(tǒng)。</p><p><b> 1.3本課題的任務(wù)</b></p><p> 本課題主要是實(shí)現(xiàn)對溫度進(jìn)行多
10、點(diǎn)同時測量并準(zhǔn)確顯示。整個系統(tǒng)由單片機(jī)控制,要能夠接收傳感器的數(shù)據(jù)并顯示出來,可以從鍵盤輸入命令,系統(tǒng)根據(jù)命令,選擇對應(yīng)的傳感器,并由驅(qū)動電路驅(qū)動溫度顯示。設(shè)計一種合理、可行的單片機(jī)監(jiān)控軟件,完成多點(diǎn)測量和顯示的任務(wù),并編寫硬件底層驅(qū)動程序。</p><p><b> 1.4系統(tǒng)整體目標(biāo)</b></p><p> 利用一個單片機(jī)設(shè)計一個能夠進(jìn)行多點(diǎn)溫度進(jìn)行同時測量
11、的系統(tǒng)。該系統(tǒng)能夠同時對多個點(diǎn)的溫度進(jìn)行測量和進(jìn)行顯示,并且能夠?qū)Ξ惓G闆r進(jìn)行報警。</p><p> 第二章 方案論證比較與選擇</p><p><b> 2.1 引言</b></p><p> 溫度測量的方案有很多種,可以采用傳統(tǒng)的分立式傳感器、模擬集成傳感器以及新興的智能型傳感器。對于控制系統(tǒng)可以采用計算機(jī)、單片機(jī)等。</p
12、><p><b> 2.2方案設(shè)計</b></p><p> 2.2.1 設(shè)計方案一</p><p> 采用模擬分立元件,如電容、電感或晶體管等非線形元件,實(shí)現(xiàn)多點(diǎn)溫度的測量及顯示,該方案設(shè)計電路簡單易懂,操作簡單,且價格便宜,但采用分立元件分散性大,不便于集成數(shù)字化,而且測量誤差大。2.2.2 設(shè)計方案二</p>
13、<p> 本方案采用AT89C51單片機(jī)為核心,通過溫度傳感器AD590采集溫度信號,經(jīng)信號放大器放大后,送到A/D轉(zhuǎn)換芯片,最終經(jīng)單片機(jī)檢測處理溫度信號。 </p><p> 圖2.1 方案二的框圖</p><p> 如圖2.1,采用該方案技術(shù)已經(jīng)成熟,AD轉(zhuǎn)換電路設(shè)計較煩瑣,而且使用AD590進(jìn)行溫度檢測必須對冷端進(jìn)行補(bǔ)償,以減小誤差。</p>&
14、lt;p><b> 設(shè)計方案三</b></p><p> 本設(shè)計運(yùn)用主從分布式思想,由一臺上位機(jī)(PC微型計算機(jī)),下位機(jī)(單片機(jī))多點(diǎn)溫度數(shù)據(jù)采集,組成兩級分布式多點(diǎn)溫度測量的巡回檢測系統(tǒng)。該系統(tǒng)采用 RS-232串行通訊標(biāo)準(zhǔn),通過上位機(jī)(PC)控制下位機(jī)(單片機(jī))進(jìn)行現(xiàn)場溫度采集。溫度值既可以送回主控PC進(jìn)行數(shù)據(jù)處理,由顯示器顯示。也可以由下位機(jī)單獨(dú)工作,實(shí)時顯示當(dāng)前各點(diǎn)的溫度
15、值,對各點(diǎn)進(jìn)行控制。 </p><p> 下位機(jī)采用的是單片機(jī)基于數(shù)字溫度傳感器DS18B20的系統(tǒng)。DS18B20利用單總線的特點(diǎn)可以方便的實(shí)現(xiàn)多點(diǎn)溫度的測量,輕松的組建傳感器網(wǎng)絡(luò),系統(tǒng)的抗干擾性好、設(shè)計靈活、方便,而且適合于在惡劣的環(huán)境下進(jìn)行現(xiàn)場溫度測量。本系統(tǒng)可以應(yīng)用在大型工業(yè)及民用常溫多點(diǎn)監(jiān)測場合。如糧食倉儲系統(tǒng)、樓宇自動化系統(tǒng)、溫控制程生產(chǎn)線之溫度影像檢測、醫(yī)療與健診的溫度測試、空調(diào)系統(tǒng)的溫度檢測、石
16、化、機(jī)械…等。系統(tǒng)框圖如下:</p><p> 圖2 .2 方案三的系統(tǒng)框圖</p><p> 2.3 方案的比較與選擇</p><p> 基于數(shù)字式溫度計DS18B20的溫度測量儀的硬軟件開發(fā)過程,DS18B20將溫度信號直接轉(zhuǎn)換為數(shù)字信號,實(shí)現(xiàn)了與單片機(jī)的直接接口,從而省去了信號調(diào)理電路。該儀器電路簡單、功能可靠、測量效率高,很好地彌補(bǔ)了傳統(tǒng)溫度測量方法
17、的不足。相對與方案1,在功能、性能、可操作性等方面都有較大的提升。相對與方案2,硬件電路簡單,易于操作,具有更高的性價比,更大的市場。所以我采用方案3完成本設(shè)計。</p><p> 2.4 方案的闡述與論證</p><p> 方案三以DS18B20為傳感器、AT89C51單片機(jī)為控制核心組成多點(diǎn)溫度測試系統(tǒng),該系統(tǒng)包括傳感器電路、鍵盤與顯示電路、串口通信電路等組成部。采用美國Dalla
18、s半導(dǎo)體公司推出的數(shù)字溫度傳感器DS18B20,屬于新一代適配微處理器的智能溫度傳感器。它具有獨(dú)特的單總線接口,僅需要占用一個通用I/0端口即可完成與微處理器的通信。全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集要求通過簡單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式。其可以分別93.75ms和750ms內(nèi)完成9位和12位的數(shù)字量,最大分辨率為0.0625℃ , 而且從DS18B20讀出或?qū)懭隓S18B20的信息僅需要一根口線(單線接口)讀寫。
19、</p><p> 它有如下的性能特點(diǎn):</p><p> 1)獨(dú)特的單線接口,既可通過串行口線,也可通過其它I/O口線與微機(jī)接口,無需變換其它電路,直接輸出被測溫度值; </p><p> 2)多點(diǎn)能力使分布式溫度檢測應(yīng)用得以簡化;</p><p> 3)不需要外部元件;</p><p> 4) 既可用數(shù)據(jù)
20、線供電,也可采用外部電源供電;</p><p><b> 5)不需備份電源;</b></p><p> 6) 測量范圍為-55~+125℃ , 固有測溫分辨率為0.5℃ ;</p><p> 7)通過編程可實(shí)現(xiàn)9~12位的數(shù)字讀數(shù)方式;</p><p> 8)用戶可定義非易失性的溫度告警設(shè)置;</p>
21、<p> 9)警告搜索命令能識別和尋址溫度在編定的極限之外的器件(溫度警告情況);</p><p> 10)應(yīng)用范圍包括恒溫控制、工業(yè)系統(tǒng)、消費(fèi)類產(chǎn)品、溫度計或任何熱敏系統(tǒng)。</p><p> 以上特性使得DS18B20非常適用于構(gòu)建高精度、多點(diǎn)溫度測量系統(tǒng)。</p><p> 根據(jù)DS18B20以上的特點(diǎn)我選用方案三來實(shí)現(xiàn)本課題。</p
22、><p><b> 硬件設(shè)計</b></p><p> 本課題研究的多點(diǎn)測溫系統(tǒng)是以單片機(jī)和單總線數(shù)字溫度傳感器DS18B20為核心,充分利用單片機(jī)優(yōu)越的內(nèi)部和外部資源及數(shù)字溫度傳感器DS18B20的優(yōu)越性能構(gòu)成一個完備的測溫系統(tǒng),實(shí)現(xiàn)對溫度的多點(diǎn)測量。整個系統(tǒng)由單片機(jī)控制,能夠接收傳感器的溫度數(shù)據(jù)并顯示出來,可以從鍵盤輸入命令,系統(tǒng)根據(jù)命令,選擇對應(yīng)的溫度傳感器,并
23、由驅(qū)動電路驅(qū)動溫度顯示。本課題設(shè)計了一種合理、可行的單片機(jī)監(jiān)控軟件,完成測量和顯示的任務(wù)。由于單片機(jī)具有強(qiáng)大的運(yùn)算和控制功能,使得整個系統(tǒng)具有模塊化、硬件電路簡單以及操作方便等優(yōu)點(diǎn)。</p><p> 本課題的整個系統(tǒng)是由單片機(jī)、顯示電路、鍵盤電路、驅(qū)動電路,串口通信等構(gòu)成。</p><p> 3.1 溫度傳感器</p><p> 3.1.1 溫度
24、傳感器選用細(xì)則</p><p> 現(xiàn)代傳感器在原理與結(jié)構(gòu)上千差萬別,如何根據(jù)具體的測量目的、測量對象以及測量環(huán)境合理地選用傳感器,是在進(jìn)行某個量的測量時首先要解決的題。當(dāng)傳感器確定之后,與之相配套的測量方法和測量設(shè)備也就可以確定了。測量結(jié)果的成敗,在很大程度上取決于傳感器的選用是否合理。</p><p> 根據(jù)測量對象與測量環(huán)境確定傳感器的類型</p><p>
25、 要進(jìn)行—個具體的測量工作,首先要考慮采用何種原理的傳感器,這需要分析多方面的因素之后才能確定。因?yàn)椋词故菧y量同一物理量,也有多種原理的傳感器可供選用,哪一種原理的傳感器更為合適,則需要根據(jù)被測量的特點(diǎn)和傳感器的使用條件考慮以下一些具體問題:量程的大?。槐粶y位置對傳感器體積的要求;測量方式為接觸式還是非接觸式;信號的引出方法,有線或是非接觸測量;傳感器的來源,國產(chǎn)還是進(jìn)口,價格能否承受,還是自行研制。2)靈敏度的選擇</p&g
26、t;<p> 通常,在傳感器的線性范圍內(nèi),希望傳感器的靈敏度越高越好。因?yàn)橹挥徐`敏度高時,與被測量變化對應(yīng)的輸出信號的值才比較大,有利于信號處理。但要注意的是,傳感器的靈敏度高,與被測量無關(guān)的外界噪聲也容易混入,也會被放大系統(tǒng)放大,影響測量精度。因此,要求傳感器本身應(yīng)具有較高的信噪比,盡員減少從外界引入的串?dāng)_信號</p><p><b> 3)頻率響應(yīng)特性</b></
27、p><p> 傳感器的頻率響應(yīng)特性決定了被測量的頻率范圍,必須在允許頻率范圍內(nèi)保持不失真的測量條件,實(shí)際上傳感器的響應(yīng)總有—定延遲,希望延遲時間越短越好。傳感器的頻率響應(yīng)高,可測的信號頻率范圍就寬,而由于受到結(jié)構(gòu)特性的影響,機(jī)械系統(tǒng)的慣性較大,因有頻率低的傳感器可測信號的頻率較低。</p><p><b> 4)線性范圍</b></p><p>
28、; 傳感器的線形范圍是指輸出與輸入成正比的范圍。以理論上講,在此范圍內(nèi),靈敏度保持定值。傳感器的線性范圍越寬,則其量程越大,并且能保證一定的測量精度。在選擇傳感器時,當(dāng)傳感器的種類確定以后首先要看其量程是否滿足要求。但實(shí)際上,任何傳感器都不能保證絕對的線性,其線性度也是相對的。當(dāng)所要求測量精度比較低時,在一定的范圍內(nèi),可將非線性誤差較小的傳感器近似看作線性的,這會給測量帶來極大的方便。</p><p><
29、b> 5) 穩(wěn)定性</b></p><p> 傳感器使用一段時間后,其性能保持不變化的能力稱為穩(wěn)定性。影響傳感器長期穩(wěn)定性的因素除傳感器本身結(jié)構(gòu)外,主要是傳感器的使用環(huán)境。因此,要使傳感器具有良好的穩(wěn)定性,傳感器必須要有較強(qiáng)的環(huán)境適應(yīng)能力。在選擇傳感器之前,應(yīng)對其使用環(huán)境進(jìn)行調(diào)查,并根據(jù)具體的使用環(huán)境選擇合適的傳感器,或采取適當(dāng)?shù)拇胧瑴p小環(huán)境的影響。</p><p>
30、;<b> 6) 精度</b></p><p> 精度是傳感器的一個重要的性能指標(biāo),它是關(guān)系到整個測量系統(tǒng)測量精度的一個重要環(huán)節(jié)。傳感器的精度越高,其價格越昂貴,因此,傳感器的精度只要滿足整個測量系統(tǒng)的精度要求就可以,不必選得過高。這樣就可以在滿足同一測量目的的諸多傳感器中選擇比較便宜和簡單的傳感器。</p><p> 如果測量目的是定性分析的,選用重復(fù)精度高的
31、傳感器即可,不宜選用絕對量值精度高的;如果是為了定量分析,必須獲得精確的測量值,就需選用精度等級能滿足要求的傳感器。對某些特殊使用場合,無法選到合適的傳感器,則需自行設(shè)計制造傳感器。自制傳感器的性能應(yīng)滿足使用要求。</p><p> 3.1.2 溫度傳感器DS18B20</p><p> DS18B20型單線智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器。全部傳感元
32、件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。與傳統(tǒng)的熱敏電阻相比,它能夠直接讀出被測溫度,并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式。其可以分別93.75ms和750ms內(nèi)完成9位和12位的數(shù)字量,最大分辨率為0.0625℃ , 而且從DS18B20讀出或?qū)懭隓S18B20的信息僅需要一根口線(單線接口)讀寫。</p><p> DS18B20的性能特點(diǎn)</p><p&
33、gt; 單線數(shù)字化智能集成溫度的傳感器,其特點(diǎn)是:</p><p> DSI8B20可將被測溫度直接轉(zhuǎn)換成計算機(jī)能識別的數(shù)字信號輸出,溫度值不需要經(jīng)電橋電路先獲取電壓模擬量,再經(jīng)信號放大和A/D轉(zhuǎn)換成數(shù)字信號,解決了傳統(tǒng)溫度傳感器存在的因參數(shù)不一致性,在更換傳感器時會因放大器零漂而必須對電路進(jìn)行重新調(diào)試的問題,使用方便.</p><p> DS18B20能提供9到12位溫度讀數(shù),精度
34、高,且其信息傳輸只需1根信號線,與計算機(jī)接口十分簡便,讀寫及溫度變換的功率來自于數(shù)據(jù)線而不需額外的電源.</p><p> 每一個DS18B20都有一個惟一的序列號,這就允許多個DS18B20連接到同一總線上.尤其適合于多點(diǎn)溫度檢測系統(tǒng).</p><p> ?、?負(fù)壓特性:當(dāng)電源極性接反時,DS18B20雖然不能正常工作,但不會因發(fā)熱而燒毀 正是由于具有以上特點(diǎn),DS18B20在解決各種
35、誤差、可靠性和實(shí)現(xiàn)系統(tǒng)優(yōu)化等方面與傳統(tǒng)各種溫度傳感器相比,有無可比擬的優(yōu)越性,因而廣泛應(yīng)用于過程控制、環(huán)境控制、建筑物、機(jī)器設(shè)備中的溫度檢測。其外形和管腳如下圖:</p><p> 圖3.1 DS18B20外部形狀及管腳圖</p><p> ?、疲瓺S18B20與單片機(jī)的典型接口設(shè)計</p><p> DS18B20測溫系統(tǒng)具有測溫系統(tǒng)簡單、測溫精度高、連接方
36、便、占用口線少等優(yōu)點(diǎn)。Dsl8B20與單片機(jī)的硬件連接有兩種方法:一是Vcc接外部電源,GND接地,I/0與單片機(jī)的I/0線相連;二是用寄生電源供電,此時,~UDD和GND接地,I/0接單片機(jī)I/0。無論是哪種供電方式,I/0口線都要接4.7k Q左右的上拉電阻。圖4給出了DSl8B20與微處理器的典型連接。</p><p> ?、?DS18B20寄生電源供電方式:</p><p>
37、如下面圖3.2(a)所示,在寄生電源供電方式下,DS18B20從單線信號線上汲取能量:在信號線DQ處于高電平期間把能量儲存在內(nèi)部電容里,在信號線處于低電平期間消耗電容上的電能工作,直到高電平到來再給寄生電源(電容)充電。 獨(dú)特的寄生電源方式有三個好處:</p><p> 進(jìn)行遠(yuǎn)距離測溫時,無需本地電源</p><p> 可以在沒有常規(guī)電
38、源的條件下讀取ROM</p><p> 電路更加簡潔,僅用一根I/O口實(shí)現(xiàn)測溫</p><p> 要想使DS18B20進(jìn)行精確的溫度轉(zhuǎn)換,I/O線必須保證在溫度轉(zhuǎn)換期間提供足夠的能量,由于每個DS18B20在溫度轉(zhuǎn)換期間工作電流達(dá)到1mA,當(dāng)幾個溫度傳感器掛在同一根I/O線上進(jìn)行多點(diǎn)測溫時,只靠4.7K上拉電阻就無法提供足夠的能量,會造成無法轉(zhuǎn)換溫度或溫度誤差極大。</p>
39、<p> 因此,該電路只適應(yīng)于單一溫度傳感器測溫情況下使用,不適宜采用電池供電系統(tǒng)中。并且工作電源VCC必須保證在5V,當(dāng)電源電壓下降時,寄生電源能夠汲取的能量也降低,會使溫度誤差變大。</p><p> ② DS18B20寄生電源強(qiáng)上拉供電方式:</p><p> 改進(jìn)的寄生電源供電方式如下面圖3.2(b)所示,為了使DS18B20在動態(tài)轉(zhuǎn)換周期中獲得足夠的電流供應(yīng),
40、當(dāng)進(jìn)行溫度轉(zhuǎn)換或拷貝到E2存儲器操作時,用MOSFET把I/O線直接拉到VCC就可提供足夠的電流,在發(fā)出任何涉及到拷貝到E2存儲器或啟動溫度轉(zhuǎn)換的指令后,必須在最多10μS內(nèi)把I/O線轉(zhuǎn)換到強(qiáng)上拉狀態(tài)。在強(qiáng)上拉方式下可以解決電流供應(yīng)不走的問題,因此也適合于多點(diǎn)測溫應(yīng)用,缺點(diǎn)就是要多占用一根I/O口線進(jìn)行強(qiáng)上拉切換。</p><p> ?、?DS18B20的外部電源供電方式:</p><p>
41、; 如下面圖3.2(c)所示,在外部電源供電方式下,DS18B20工作電源由VDD引腳接入,其VDD端用3~5.5V電源供電,此時I/O線不需要強(qiáng)上拉,不存在電源電流不足的問題,可以保證轉(zhuǎn)換精度,同時在總線上理論可以掛接任意多個DS18B20傳感器,組成多點(diǎn)測溫系統(tǒng)。注意:在外部供電的方式下,DS18B20的GND引腳不能懸空,否則不能轉(zhuǎn)換溫度,讀取的溫度總是85℃。 </p><p> (c)DS
42、18B20外部電源供電方式 (a)DS18B20寄生電源供電方式</p><p> (b) DS18B20溫度轉(zhuǎn)換期間的強(qiáng)上拉供電(寄生電源方式)</p><p> 圖3.2 DS18B20與微處理器的典型連接圖</p><p> ?。?)DS18B20 的內(nèi)部結(jié)構(gòu):</p><p> 圖3.3 為DS18B2
43、0 的內(nèi)部框圖,它主要包括寄生電源、溫度傳感器、64 位激光ROM 單線接口、存放中間數(shù)據(jù)的高速暫存器(內(nèi)含便箋式RAM),用于存儲用戶設(shè)定的溫度上下限值的TH 和TL 觸發(fā)器存儲與控制邏輯、8 位循環(huán)冗余校驗(yàn)碼(CRC)發(fā)生器等七部分。64位光刻ROM 的排列是:開始8位是產(chǎn)品類型標(biāo)號,接著的48位是該DS18B20自身的序列號,最后8位是前面56位的循環(huán)冗余校驗(yàn)碼。光刻R0M 的作用是使每一個DS18B20都各不相同,這可實(shí)現(xiàn)一根總
44、線上掛接多個DS18B20的目的。暫存存儲器包含了8個連續(xù)字節(jié),前2個字節(jié)是測得的溫度信息,第1個字節(jié)的內(nèi)容是溫度的低8位,第2個字節(jié)是溫度的高8位。第3個和第4個字節(jié)是TH、TL的易失性拷貝,第5個字節(jié)是結(jié)構(gòu)寄存器的易失性拷貝,這3個字節(jié)的內(nèi)容在每一次上電復(fù)位時被刷新。第6、7、8個字節(jié)用于內(nèi)部計算。第9個字節(jié)是冗余檢驗(yàn)字節(jié)</p><p> 圖3.3 DS18B20的內(nèi)部結(jié)構(gòu)</p><
45、;p> (4)DS18B20 的測溫原理:</p><p> DS1820測溫原理如下圖所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計數(shù)器1。</p><p> 圖 3.4 DS18B20測溫原理</p><p> 高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為計數(shù)器2的脈沖輸入。計數(shù)器1和溫度寄存器
46、被預(yù)置在-55℃所對應(yīng)的一個基數(shù)值。計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計數(shù),當(dāng)計數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1,計數(shù)器1的預(yù)置將重新被裝入,計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計數(shù),如此循環(huán)直到計數(shù)器2計數(shù)到0時,DS1 8B20測量溫度原理停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。</p><p> 在正常測溫情況下,DS18B20 的測溫分辨力為0.
47、5℃,可采用下述方法獲得高分辨率的溫度測量結(jié)果:首先用DS18B20 提供的讀暫存器指令(BEH)讀出以0.5℃為分辨率的溫度測量結(jié)果,然后切去測量結(jié)果中的最低有效位(LSB),得到所測實(shí)際溫度的整數(shù)部分TZ,然后再用BEH 指令取計數(shù)器1 的計數(shù)剩余值CS 和每度計數(shù)值CD。考慮到DS18B20測量溫度的整數(shù)部分以0.25℃、0.75℃為進(jìn)位界限的關(guān)系,實(shí)際溫度TS 可用下式計算:TS=(TZ-0.25℃) +(CD-CS)/CD&l
48、t;/p><p><b> ?。?)告警信號:</b></p><p> DS18B20 完成溫度轉(zhuǎn)換后,就把測得的溫度值與TH、TL 作比較。若T>TH 或T<TL,則將該器件內(nèi)的告警標(biāo)志置位,并對主機(jī)發(fā)出的告警搜索命令作出響應(yīng)。因此,可用多只DS18B20 同時測量溫度并進(jìn)行告警搜索。一旦某測溫點(diǎn)越限,主機(jī)利用告警搜索命令即可識別正在告警的器件,并讀出其
49、序號,而不必考慮非告警器件。</p><p> ?。?)CRC 的產(chǎn)生:</p><p> 在64 位ROM 的最高有效字節(jié)中存有循環(huán)冗余校驗(yàn)碼(CRC)。主機(jī)根據(jù)ROM 的前56 位來計算CRC 值,并和存入DS18B20 中的CRC 值作比較,以判斷主機(jī)收到的ROM 數(shù)據(jù)是否正確。CRC 的函數(shù)表達(dá)式為:CRC=X+X+X+1。此外,DS18B20 尚需依上式為暫存器中的數(shù)據(jù)來產(chǎn)生一
50、個8位CRC 送給主機(jī),以確保暫存器數(shù)據(jù)傳送無誤。</p><p> 在本課題中采用四個數(shù)字式溫度傳感器DS18B20與單片機(jī)89C51連接如下圖</p><p> 圖3.5 DS18B20多點(diǎn)溫度測量連接電路圖</p><p> (7) DS1820使用中注意事項</p><p> DS18B20雖然具有測溫系統(tǒng)簡單、測溫精度高
51、、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問題:</p><p> ?、佥^小的硬件開銷需要相對復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS18B20與微處理器間采用串行數(shù)據(jù)傳送,因此,在對DS18B20進(jìn)行讀寫編程時,必須嚴(yán)格的保證讀寫時序,否則將無法讀取測溫結(jié)果。</p><p> ②在DS18B20的有關(guān)資料中均未提及單總線上所掛DS18B20數(shù)量問題,容易使人誤認(rèn)為可以掛任意
52、多個DS18B20,在實(shí)際應(yīng)用中并非如此。當(dāng)單總線上所掛DS18B20超過8個時,就需要解決微處理器的總線驅(qū)動問題,這一點(diǎn)在進(jìn)行多點(diǎn)測溫系統(tǒng)設(shè)計時要加以注意。</p><p> ③連接DS18B20的總線電纜是有長度限制的。試驗(yàn)中,當(dāng)采用普通信號電纜傳輸長度超過50m時,讀取的測溫數(shù)據(jù)將發(fā)生錯誤。當(dāng)將總線電纜改為雙絞線帶屏蔽電纜時,正常通訊距離可達(dá)150m,當(dāng)采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時,正常通訊距
53、離進(jìn)一步加長。這種情況主要是由總線分布電容使信號波形產(chǎn)生畸變造成的。因此,在用DS18B20進(jìn)行長距離測溫系統(tǒng)設(shè)計時要充分考慮總線分布電容和阻抗匹配問題。</p><p> ④在DS18B20測溫程序設(shè)計中,向DS18B20發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS18B20的返回信號,一旦某個DS18B20接觸不好或斷線,當(dāng)程序讀該DS18B20時,將沒有返回信號,程序進(jìn)入死循環(huán)。這一點(diǎn)在進(jìn)行DS18B20硬件連接
54、和軟件設(shè)計時也要給予一定的重視。</p><p> 3.2.單片機(jī)系統(tǒng)設(shè)計</p><p> 在當(dāng)今新科學(xué)技術(shù)飛速發(fā)展的年代里,單片機(jī)的應(yīng)用已越來越受到人們的重視,它被廣泛的應(yīng)用于家電、醫(yī)療、智能儀表、工業(yè)自動化等各個領(lǐng)域。單片機(jī)全稱單片微型計算機(jī),是將計算機(jī)的基本部分微型化,使之集成在一塊芯片上的微機(jī)。目前市場上較為流行的單片機(jī)有Intel公司和Philip公司的8051系列單片機(jī).
55、Motorola 公司的M 6800系列單片機(jī)。Intel公司的MCS96系列單片機(jī)以及Microchip 公司的PIC 系列單片機(jī)。片內(nèi)含有CPU、ROM、RAM、并行I/O口、串行I/O口、定時/計數(shù)器、A/D、D/A、中斷控制、系統(tǒng)時鐘及系統(tǒng)總線等。本課題是利用Intel的89c51控制整個系統(tǒng)。89c51單片機(jī)包含下列幾個部件:1個8位CPU、1個片內(nèi)震蕩器及時鐘電路、4KB ROM程序存儲器、128B RAM數(shù)據(jù)存儲器、可尋址
56、64KB外部數(shù)據(jù)存儲器和64KB外部程序存儲器的控制電路、32條可編程的I/O線、2個16位的定時/計數(shù)器、1個可編程全雙工串行接口、5個中斷源、2個優(yōu)先級嵌套中斷結(jié)構(gòu)。</p><p> 本課題運(yùn)用Intel公司的8051進(jìn)行系統(tǒng)控制,運(yùn)用到了復(fù)位電路,時鐘電路,串口,I/O口。</p><p> 復(fù)位電路:無論哪種單片機(jī),都會涉及到復(fù)位電路。如果復(fù)位電路不可靠,在工作中就有可能出現(xiàn)
57、“死機(jī)”,“程序走飛”等現(xiàn)象。所以,一個單片機(jī)復(fù)位電路的好壞,直接影響到整個系統(tǒng)工作的可靠性。復(fù)位操作完成單片機(jī)片內(nèi)電路的初始化,使單片機(jī)從一種確定的狀態(tài)開始運(yùn)行。當(dāng)89c51單片機(jī)的復(fù)位引腳RST出現(xiàn)5ms以上的高電平時,單片機(jī)就完成了復(fù)位操作,如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài),而無法執(zhí)行程序,因此要求單片機(jī)復(fù)位后能脫離復(fù)位狀態(tài)。復(fù)位操作通常有上電和開關(guān)復(fù)位。上電復(fù)位要求接通電源后,自動實(shí)現(xiàn)復(fù)位操作。開關(guān)復(fù)位要求在電源
58、接通的條件下,在單片機(jī)運(yùn)行期間,如果發(fā)生死機(jī),用按鈕開關(guān)操作使單片機(jī)復(fù)位。常用的上電復(fù)位且開關(guān)復(fù)位電路如圖3.6所示,上電后,由于電容充電,使RST持續(xù)一段高電平時間。當(dāng)單片機(jī)已在運(yùn)行之中時,按下復(fù)位鍵也能使RST持續(xù)一段時間的高電平,從而實(shí)現(xiàn)上電且開關(guān)復(fù)位的操作。單片機(jī)的復(fù)位操作使單片機(jī)進(jìn)入初始化過程,其中包括是程序計數(shù)器PC=0000H,P0-P3=FFH,SP=07H,其他寄存器處于零,程序從0000H地址單元開始執(zhí)行,單片機(jī)復(fù)位
59、后不改變片內(nèi)RAM區(qū)中的內(nèi)容。</p><p> 圖3.6 .復(fù)位電路</p><p> 時鐘電路:89c51單片機(jī)的時鐘信號通常用內(nèi)部振蕩和外部振蕩方式。在引腳XTAL1和XTAX2外接晶體振蕩器,就夠成了內(nèi)部振蕩方式。由于單片機(jī)內(nèi)部有一個高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時鐘脈沖。晶振通常選用6MHZ、12MHZ或24MHZ。內(nèi)部振蕩器方式如下。如圖3.
60、7,電容器C1、C2起穩(wěn)定振蕩頻率、快速起振的作用,電容值一般為5-30PF。內(nèi)部振蕩方式所得的時鐘信號比較穩(wěn)定。外部振蕩方式是把已有的時鐘信號引入單片機(jī)內(nèi),這種方式適于用于用來使單片機(jī)的時鐘與外部信號保持一致。</p><p> 圖3.7 時鐘電路</p><p> 串口:串行通信是CPU與外界交換的一種基本方式。單片機(jī)運(yùn)用于數(shù)據(jù)采集或工業(yè)控制時,往往作為前端機(jī)安裝在工作現(xiàn)場,遠(yuǎn)離
61、主機(jī),現(xiàn)場數(shù)據(jù)采用串行通信方式主機(jī)并進(jìn)行處理,以降低通信成本,提高通信可靠性。51系列單片機(jī)自身有全雙工的異步通信接口,通過軟件編程,它可以作為通用異步接受和發(fā)送器使用,也可作為同步移位寄存器。</p><p> 89c51單片機(jī)串口主要由兩個數(shù)據(jù)緩沖寄存器SBUF和一個輸入移位寄存器組成,其內(nèi)部還有一個串行控制寄存器SCON和一個波特率發(fā)生器。接受緩沖器與發(fā)送緩沖器占用同一個地址99H,其名稱亦同樣為SBUF
62、。CPU寫SBUF,一方面修改發(fā)送寄存器,同時啟動數(shù)據(jù)串行發(fā)送;讀SBUF,就是讀接受寄存器,完成數(shù)據(jù)的接受。特殊功能寄存器SCON用以存放串行口的控制和狀態(tài)信息。根據(jù)對其寫的控制字決定工作方式,從而決定波特率發(fā)生器的時鐘是來自系統(tǒng)時鐘還是來自定時器T1。特殊功能寄存器PCON的最高位SMOD為串行口波特率的倍增控制位。</p><p> 89c51單片機(jī)的串行口正是通過對上述專用寄存器的設(shè)置,檢測與讀取來管理
63、串行通信。在進(jìn)行通信時,外界的串行數(shù)據(jù)是通過引腳RXD輸入的。輸入數(shù)據(jù)先逐位進(jìn)入輸入移位寄存器,在送入接受SBUF。在此采用了雙緩沖結(jié)構(gòu),為了避免在接受到第二幀數(shù)據(jù)之前,CPU未及時響應(yīng)接受器的前一幀的中斷請求而把前一幀數(shù)據(jù)讀走,造成兩幀數(shù)據(jù)重疊的錯誤。對于發(fā)送器,因?yàn)榘l(fā)送時CPU是主動的,不會產(chǎn)生寫重疊問題,不需要雙緩沖器結(jié)構(gòu),為了保持最大傳送速率,僅用了SBUF一個緩沖器。</p><p> I/O口:計算
64、機(jī)對外設(shè)進(jìn)行數(shù)據(jù)操作時,外設(shè)的數(shù)據(jù)是不能直接連到CPU的數(shù)據(jù)線上的,必須經(jīng)過接口。這是由于CPU的數(shù)據(jù)線是外設(shè)或存儲器和CPU進(jìn)行數(shù)據(jù)傳輸?shù)奈ㄒ还餐ǖ溃瑸榱耸箶?shù)據(jù)線的使用對象不產(chǎn)生使用總線的沖突,以及協(xié)調(diào)快速的CPU和慢速的外設(shè),CPU和外設(shè)之間必須有接口電路,接口起著緩沖、鎖存數(shù)據(jù)、地址譯碼、信息格式轉(zhuǎn)換、傳遞狀態(tài)、發(fā)布命令等功能,I/O接口有并行接口、串行接口、定時/計數(shù)器、A/D、D/A等,根據(jù)外設(shè)的不同情況的應(yīng)用要求,選擇不同
65、的接口。單片機(jī)的I/0 口一般是雙向的. 既可以做輸入. 也可以做輸出。以5 1系列為例,其P0、P 1、P2、P3均為雙向口,且可位操作。</p><p> 89c51單片機(jī)內(nèi)部有P0、P1、P2、P3四個8位雙向I/O口,外設(shè)可直接連接于這幾個接口上,而無須另加接口芯片。P0-P3的每個端口可以按字節(jié)輸入或輸出,也可以按位進(jìn)行輸入或輸出,共32根口線,用作控制十分方便。P0口為三態(tài)雙向口,能帶8個TTL電路
66、。P1、P2、P3口為準(zhǔn)雙向口,負(fù)載能力為4個TTL電路,如果外設(shè)需要的驅(qū)動電流大,可加接驅(qū)動器。</p><p> P0口具有雙重功能:可以作為輸入/輸出用,外接輸入/輸出設(shè)備;在有外接存儲器和I/O接口時常作為低8位地址/數(shù)據(jù)總線,即低8位地址與數(shù)據(jù)線分時使用P0口。此時低8位地址由ALE信號的下跳沿使它鎖存到外部地址鎖存器中,爾后,P0口出現(xiàn)數(shù)據(jù)信息。</p><p> P1口具
67、有單一接口功能,P1口每一位都能作為可編程的輸入或輸出口線。</p><p> P2口具有雙重功能:作為輸入口或輸出口使用,外接輸入/輸出設(shè)備;在有外接存儲器I/O接口時,作為系統(tǒng)的地址總線。輸出高位地址,與P0口低8位地址一起組成16位地址總線。</p><p> P3口為雙重功能口:可以作為輸入/輸出口,外接輸入/輸出設(shè)備;作為第二功能使用。</p><p>
68、; 圖 3.8 單片機(jī)</p><p> 3.3 顯示電路設(shè)計</p><p> 本課題要將傳感器的溫度信號和鍵盤輸入的控制信號都顯示出來,利用單片機(jī)89c51傳輸控制信號。本課題要用到MAXIM 公司生產(chǎn)的MAX7219串行LED驅(qū)動顯示器,此顯示器具有接口簡單.占用資源少、控制靈活方便、LED級聯(lián)擴(kuò)展便利的優(yōu)點(diǎn)。MAX7219是串行輸出共陰極顯示驅(qū)動芯片,每片可驅(qū)動8個LED
69、,具有級聯(lián)功能可控制更多的LED 。MAX7219為24引腳芯片,除與LED顯示相連的線外,與微控制器只需3根連線相接:芯片端管腳分別為CLK.DIN.LOAD,其中CLK為時鐘輸入端,DIN為數(shù)據(jù)輸入端,LOAD為鎖存信號。MAX7219的工作時序?yàn)椋簳r鐘的上升沿MAX7219把DIN引腳數(shù)據(jù)移入內(nèi)部移位寄存器, 在時鐘下降沿MAX7219把數(shù)據(jù)移向DOUT端, 而LOAD的上升沿則鎖存最后移入的16位串行數(shù)據(jù)。對MAX7219的控制
70、操作很方便,其片內(nèi)具有8個位寄存器和6個控制寄存器.位寄存器對應(yīng)LED的具體內(nèi)容,控制寄存器決定LED的工作方式??刂萍拇嫫鞣謩e為:不工作方式寄存器、譯碼方式寄存器、亮度控制寄存器、</p><p> 掃描個數(shù)寄存器、關(guān)閉寄存器.顯示測試寄存器.寄存器的操作格式為2字節(jié)的串行數(shù)據(jù),第一個字節(jié)為寄存器地址,第二個字節(jié)為控制命令或待顯示數(shù)據(jù)。</p><p> 寄存器的地址分配及功能如下所
71、示:</p><p> 不工作寄存器(0x00):用于MAX7219級聯(lián)控制。</p><p> 位寄存器(0x01-0x08):8位LED待顯示內(nèi)容。</p><p> 譯碼方式寄存器(0x0g):決定譯碼方式,分B碼和不譯碼兩種。</p><p> 亮度控制寄存器(0x0A):LED段電流控制。</p><p&
72、gt; 掃描個數(shù)寄存器(0x0B):決定顯示多少個LED 。</p><p> 關(guān)閉寄存器(0x0C):決定正常工作方式或關(guān)閉LED顯示。</p><p> 顯示測試寄存器(0x0D):決定正常工作方式或顯示測試。</p><p> MAX7219是在脈沖控制下工作的,因此其抗干擾就更為重要。一般在其電源和地之間接一十幾f 的電容。另外,當(dāng)MAX72l9和其
73、他串行芯片共用I/O引腳時,最好在其外邊加一上拉電阻。P1口內(nèi)部有上拉電阻,如不在其外部接上拉電阻,有時出現(xiàn)驅(qū)動能力不足的現(xiàn)象。</p><p> 要用MAX7219控制多于8個的LED時,可以將多個MAX7219級聯(lián)使用。各芯片的CLK和LOAD端并接在一起。上一級MAX7219的DOUT端接下一級的D 端。級聯(lián)顯示時,如欲控制次級的MAX7219,只需向前幾級的MAX7219的不工作方式寄存器送空操作數(shù):本
74、級則送欲顯示的數(shù)據(jù)。另外,需注意,LOAD信號只需執(zhí)行一次清O和置位,分別在整個過程的始末。即:級聯(lián)調(diào)用WrTwoByte()程序時,應(yīng)將程序里的LOAD清O和置位語句屏蔽掉。只在級聯(lián)顯示的開始和最后分別將LOAD置O和1。</p><p> 本課題用了六個LED數(shù)碼管,具體連接如下圖:</p><p> 圖3.9 顯示電路圖</p><p> 3.4 鍵
75、盤電路設(shè)計</p><p> 鍵盤是電子設(shè)備常見的輸入裝置,作為人們與電子設(shè)備交流的重要途徑,一旦出錯,將影響到電子設(shè)備的整體使用,所以鍵盤電路雖然簡單,但鍵盤的穩(wěn)定性、可靠性,應(yīng)引起足夠的重視。鍵盤是計算機(jī)系統(tǒng)中不可缺少的輸入設(shè)備。單片機(jī)的鍵盤電路主要有矩陣掃描和單鍵電路兩種,其中以使用Ⅳ +Ⅳ 條l/0 線實(shí)現(xiàn)Ⅳ×Ⅳ 的矩陣掃描式鍵盤電路最為常用,4×4的矩陣掃描式鍵盤如圖所示。當(dāng)按鍵少
76、時可接成線性鍵盤;當(dāng)按鍵較多時,可以將鍵盤接成矩陣形式,這種形式節(jié)省口線。矩陣鍵盤按鍵的狀態(tài)同樣需要變成數(shù)字量1和0。開關(guān)的一端通過電阻接VCC,開關(guān)另一段的接地是通過程序輸出數(shù)字0實(shí)現(xiàn)的。矩陣鍵盤每個按鍵都有它的行值和列值,行值和列值的組合就是這個這個按鍵的編碼。矩陣行線和列線分別通過兩個并行接口和CPU通信,其中,一個輸出掃描碼,使按鍵逐行動態(tài)接地,另一個并行口輸入按鍵狀態(tài)。由行掃描值和列回饋信號共同形成鍵編碼。</p>
77、<p> 鍵盤一般采用行列掃描方式來設(shè)計。行列掃描是指:把鍵盤按鍵排列成n行×m列的n×m行列點(diǎn)陣,使用軟件或硬件的方法對其行、列分別進(jìn)行掃描,從而判斷是否有鍵按下,并獲得掃描碼。當(dāng)無鍵按下時,行線與列線斷開,所有列線均為高電平。當(dāng)有一個鍵按下時,則與此鍵對應(yīng)的行線與列線接通。如此行線為低電平,則此列線也為低電平。為確定是否有鍵按下,CPU先通過并行輸出口使所有的行線為低電平,然后通過并行輸入口讀入列
78、信號,若為全“1”,則沒有鍵按下,若有一個為“0”,則表示有一個鍵已按下。若有一個為“0”,則表示有一個鍵已按下。為消去按下時的抖動現(xiàn)象,程序延遲20ms后再判斷具體是哪一個鍵按下先將第一行置為低電平,然后讀入列信號,若有一個為“0”,則按下的鍵在此行;若為全“1”,則按下的鍵不在此行,再將下一行置為低電平,并測試列信號。</p><p> 如果在最后一行也為低電平時仍未找到按下的鍵,則認(rèn)為剛才有鍵按下的情況為
79、誤動作。對找到的鍵,進(jìn)行分析并處理。當(dāng)按鍵時間較為短促時,系統(tǒng)判斷不到有鍵按下。經(jīng)測試,按鍵在按下或釋放時,通常伴隨著幾ms到十幾ms的觸點(diǎn)抖動,然后才能穩(wěn)定下來。在觸點(diǎn)抖動期間檢測按鍵的通斷狀態(tài),會導(dǎo)致一次按鍵或釋放被錯誤地認(rèn)為是多次操作。所以,當(dāng)檢測到有鍵按下或釋放時,應(yīng)通過軟件延時20 ms左右,避開觸點(diǎn)抖動的影響。去抖時間既不能太短也不能太長:如果時間太短,無法起到去抖作用;如果時間太長,超過了鍵按下的持續(xù)時間,則會判不到按鍵。
80、軟件去抖時間不宜太短也不宜太長,定為20ms 。本設(shè)計使用行列掃描方式,其電路原理圖如下圖所示。</p><p> 圖3.10 鍵盤電路原理圖</p><p> 本課題使用行列掃描方式,在單片機(jī)的P1口上連接上4*4的鍵盤,單片機(jī)掃描鍵盤,如果有鍵按下,單片機(jī)會根據(jù)鍵碼執(zhí)行相應(yīng)的程序,使整個系統(tǒng)的功能更加完善。</p><p> 3.5 報警電路設(shè)計 &l
81、t;/p><p> 為了實(shí)現(xiàn)多點(diǎn)溫度檢測報警系統(tǒng),本課題采用AT89C51單片機(jī)作為主控制器,采用掃描的方式對多點(diǎn)DS18B20溫度傳感器獲取對應(yīng)該位置的溫度值,經(jīng)處理后通過串口可以立即發(fā)送到上位機(jī),如溫度不在設(shè)定的范圍內(nèi),給出報警信號。系統(tǒng)總體硬件電路如圖3.11所示。</p><p> 圖 3.11 溫度報警電路</p><p> 3.6 通信模塊設(shè)計
82、160;</p><p> 3.6.1 RS-232接口簡介 </p><p> RS232是目前異步串行通信中應(yīng)用最廣泛的標(biāo)準(zhǔn)總線,適用于數(shù)據(jù)中斷設(shè)備(DTE和數(shù)據(jù)通信設(shè)備(DEC)ELA RS232是目前最常用的串行接口標(biāo)準(zhǔn),用于計算機(jī)與計算機(jī)之間,計算機(jī)與單片機(jī)的數(shù)據(jù)通信。此標(biāo)準(zhǔn)的目的是定義數(shù)據(jù)終端設(shè)備(DTE)之間的電氣特性。RS232提供了單片機(jī)與單片機(jī)、單片機(jī)與P
83、C機(jī)之間串行數(shù)據(jù)通信的標(biāo)準(zhǔn)接口。但RS232規(guī)定的邏輯電平與單片機(jī)的邏輯電平是不一致的。因此在應(yīng)用中,必須把微處理器的信號電平(TTL電平)轉(zhuǎn)換為RS232電平,或者對二者進(jìn)行逆轉(zhuǎn)換。選用電平轉(zhuǎn)換芯片MAX232來實(shí)現(xiàn)的。</p><p> ?。?)RS-232通訊協(xié)議特性</p><p> 由于MCS51單片機(jī)的串口采用TTL電平,信號幅值低易受干擾,只能在很近的距離內(nèi)實(shí)現(xiàn)通訊.鑒于M
84、CS51單片機(jī)串行接口的弱點(diǎn),在單片機(jī)系統(tǒng)串行通訊中廣泛采用標(biāo)準(zhǔn)接口.許多儀器儀表出廠時配有串行接口或附件模塊銷售.在標(biāo)準(zhǔn)串行接口中RS-232由于使用方便、線少而得到廣泛地應(yīng)用,多年來不但沒有被淘汰,相反使用更加廣泛.</p><p> 由于PC機(jī)串行口使用的是RS- 232C邏輯電平,而AT89C51單片機(jī)串行口的輸入輸出均為TTL電平,因此,當(dāng)PC機(jī)與單片機(jī)通信時必須進(jìn)行電平轉(zhuǎn)換。常見的電平轉(zhuǎn)換方法有以下
85、3種:</p><p> ①使用MC1488和MC1489電平轉(zhuǎn)換器。由于MC1488和MC1489需要15V或12V供電,所以使用不方便,而且工作穩(wěn)定性和可靠性也不高。</p><p> ?、谑褂?個三極管構(gòu)成準(zhǔn)RS- 232C電平轉(zhuǎn)換器。采用此方法串行通信只能工作于半雙工狀態(tài),而且程序設(shè)計復(fù)雜。</p><p> ?、凼褂秒p向電平轉(zhuǎn)換集成芯片。此方法優(yōu)點(diǎn)是只需
86、單一個+5V 電源供電,可靠性高,無需增加程序設(shè)計的復(fù)雜性,常用的芯片有ICL232,MAX232,TSC232等。</p><p> 本文采用最后一種方法,芯片選用MAX232。</p><p> 3.6.2 MAX232芯片簡介</p><p> MAX232芯片是MAXIM 公司生產(chǎn)的,包含兩路接收器和驅(qū)動器的IC片.MAX232芯片內(nèi)部有一個電源電壓
87、轉(zhuǎn)換器,可以把輸入的+5V 電壓變換為RS-232輸出電平所需的一1O~+ 10V 電壓.所以采用此芯片接口串行通信系統(tǒng)只需單一的+5V電源就可以了.對于沒有一12~+12V 的場合,其適應(yīng)性更強(qiáng).加之其價格適中,硬件接口簡單,所以被廣泛采用.MAX232芯片的引腳結(jié)構(gòu)如下圖所示.</p><p> MAX232 組成框圖 MAX232引腳圖</p><p>
88、 圖3.12 MAX232 芯片的框圖和引腳圖</p><p> 圖中上半部分電容C1,C2,C3,C4及V+,V-是電源變換電路部分.在實(shí)際應(yīng)用中,器件對電源噪聲很敏感,因此VCC必須對地加去耦電容,其值為0.1F。電容C1,C2,C3,C4取同樣數(shù)值的膽電解電容取1.0F/16V。用于提高抗干擾能力,在連接時必須盡量靠近器件.圖中下半部分為發(fā)送和接收部分.實(shí)際應(yīng)用中,T1IN,T2IN 可直接連接TTL
89、/CMOS電平的MCS51的單片機(jī)的串行發(fā)送端TXD;R1OUT,R2OUT 可直接連接TTL/CMOS電平的MCS51的單片機(jī)的串行接收端RXD/TXD;T1OUT,T2OUT可直接連接PC機(jī)的RS-232串口的接收端RXD/TXD;RIIN,R2IN可直接連接PC機(jī)的R 232串口的發(fā)送端TXD.</p><p> 3.6.3 PC機(jī)與單片機(jī)的串行通信接口電路</p><p>
90、在設(shè)計硬件接口電路時,應(yīng)充分考慮到電路的電氣特性、邏輯電平以及驅(qū)動能力的匹配問題,若匹配得不好,將會導(dǎo)致通信失敗。</p><p> 如前所述,本文采用MAX232作為PC機(jī)與單片機(jī)的串行通信接口芯片。硬件連接時,可從MAX232中的2路發(fā)送器和接收器中任選一路,只要注意發(fā)送與接收的引腳對應(yīng)關(guān)系即可。接口電路如圖所示。</p><p> 圖 3.13 PC機(jī)與單片機(jī)通信接口電路&l
91、t;/p><p><b> 軟件設(shè)計</b></p><p> 4.1 軟件開發(fā)工具的選擇</p><p> 要使單片機(jī)系統(tǒng)按照人的意圖辦事,需設(shè)法讓人與計算機(jī)對話,并聽從人的指揮。程序設(shè)計語言是實(shí)現(xiàn)人機(jī)交換信息的最基本工具,可分為機(jī)器語言、匯編語言和高級語言。</p><p> 機(jī)器語言用二進(jìn)制編碼表示
92、每一條指令,是計算機(jī)能直接識別和執(zhí)行的語言。用機(jī)器語言編寫的程序成為機(jī)器語言程序或者指令程序(機(jī)器碼程序)。因?yàn)闄C(jī)器只能識別和執(zhí)行這種機(jī)器碼程序,所以又稱它為目標(biāo)程序。用機(jī)器語言編寫程序不易記憶、不易查錯、不易修改。</p><p> 為了克服機(jī)器語言的上述缺點(diǎn),可采用有一定含義的符號,即指令助記符來表示,一般都采用某些有關(guān)的英文單詞的縮寫。這樣就出現(xiàn)了另一種程序語言—匯編語言。</p><
93、p> 匯編語言是用助記符、符號和數(shù)字等來表示指令的程序語言,容易理解和記憶,它與機(jī)器語言指令是一一對應(yīng)的。匯編語言不像高級語言(如BASIC)那樣通用型強(qiáng),而是屬于某種計算機(jī)所獨(dú)有,與計算機(jī)的內(nèi)部硬件結(jié)構(gòu)密切相關(guān)。用匯編語言編寫的程序稱為匯編語言程序。</p><p> 以上兩種語言都是低級語言。盡管匯編語言有不少優(yōu)點(diǎn),但它仍存在著機(jī)器語言的某些缺陷:與CPU的硬件結(jié)構(gòu)密切相關(guān),不同的CPU其匯編語言是
94、不同的。這使得匯編語言程序不能移植,使用不便;其次,要使用匯編語言進(jìn)行程序設(shè)計必須了解所使用CPU硬件的結(jié)構(gòu)與性能,對程序設(shè)計人員有較高的要求。為此,又出現(xiàn)了對單片機(jī)進(jìn)行編程的高級語言,如PL\M,C等。</p><p> Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言
95、后再使用C來開發(fā),體會更加深刻。 </p><p> Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。</p><p> 經(jīng)分析綜合得知,本課題采用C語言進(jìn)行編程。&
96、lt;/p><p> 4.2 系統(tǒng)軟件設(shè)計的一般原則</p><p> 在單片機(jī)應(yīng)用開發(fā)中代碼使用效率、單片機(jī)的抗干擾性以及軟件可靠性是實(shí)際工程設(shè)計的重點(diǎn)。</p><p> 單片機(jī)應(yīng)用軟件系統(tǒng)設(shè)計包括功能模塊劃分、程序流程確立、模塊接口設(shè)計以及程序代碼編寫。我們依據(jù)系統(tǒng)的功能要求,將整體軟件系統(tǒng)分割成若干個獨(dú)立的程序模塊。這些程序模塊可以是幾條語句的集合、功能函
97、數(shù)或程序文件。隨后,根據(jù)個程序模塊的實(shí)現(xiàn)功能寫出流程,一般需要寫出具體的實(shí)現(xiàn)功能描述。程序代碼通常采用匯編語言或高級語言(C語言)編寫。</p><p> 本課題采用C語言編程,在此必須注意以下問題:</p><p> ?。?)提高程序代碼效率</p><p> 必須熟悉當(dāng)前使用的C語言編譯器,試驗(yàn)每條C語言編譯以后對應(yīng)的匯編語言的語句行數(shù),這樣就可以很明確的知
98、道代碼效率。</p><p><b> ?。?)減少程序錯誤</b></p><p> 我們在編寫程序時,要注重考慮如下方面。</p><p> [1]物理參數(shù) [2]資源參數(shù) [3]應(yīng)用參數(shù) [4]過程參數(shù)</p><p> ?。?)單片機(jī)的抗干擾性</p><p> 防止干擾最有效的方法
99、是去除干擾源、隔離干擾路徑。單片機(jī)干擾最常見的現(xiàn)象就是復(fù)位,導(dǎo)致程序運(yùn)行異常。設(shè)計系統(tǒng)是一般需要添加一個“看門狗”監(jiān)控模塊,在系統(tǒng)出現(xiàn)不可逆轉(zhuǎn)的干擾時,監(jiān)控模塊將重啟系統(tǒng),并從斷點(diǎn)處繼續(xù)執(zhí)行。</p><p><b> ?。?)系統(tǒng)的可靠性</b></p><p> [1]要測試單片機(jī)軟件功能的完善性。</p><p> [2]上電、掉電測
100、試。</p><p> [3]系統(tǒng)耗損測試。</p><p> 4..3系統(tǒng)軟件設(shè)計的一般步驟</p><p> 系統(tǒng)進(jìn)行軟件設(shè)計時,先要對本課題硬件有一個熟練的掌握,知道系統(tǒng)的組成,數(shù)據(jù)的傳輸,信號是如何被控制的,以及信號的顯示。然后進(jìn)行軟件設(shè)計時,先搞清楚各個部分的子程序及他們的流程圖,然后進(jìn)行C語言編程,最后將它們系統(tǒng)的編程</p><
101、;p><b> 4.4 軟件實(shí)現(xiàn)</b></p><p> 系統(tǒng)軟件設(shè)計主要包括系統(tǒng)程序和流程圖,根據(jù)整個系統(tǒng)的要求,完成溫度的測量與控制必須經(jīng)過以下幾個步驟:單片機(jī)接受傳感器的溫度信號,并通過MAX7219驅(qū)動顯示出來,單片機(jī)掃描鍵盤,接受控制信號,并將溫度顯示出來,若溫度不在范圍內(nèi)則發(fā)出報警。</p><p> 4.4.1系統(tǒng)主程序流程圖</p
102、><p> 圖4.1 系統(tǒng)主程序流程圖</p><p> 4.4.2 傳感器程序設(shè)計</p><p> ?。?)DSl8b20編程簡介</p><p> 每一片單總線芯片內(nèi)部都有一個全球惟一的64 位編碼,在多路測溫時就是通過匹配每個芯片的ROM編碼(ID),來搜尋該路的溫度。DS18b20有9個可擦寫的內(nèi)部寄存器,稱為便箋式RAM。所
103、有的串行通訊,讀寫每一個bit位數(shù)據(jù)都必須嚴(yán)格遵守器件的時序邏輯來編程,同時還必須遵守總線命令序列,對單總線的DS18b20芯片來說,訪問每個器件都要遵守下列命令序列:</p><p> 首先是初始化;其次執(zhí)行ROM 命令;最后就是執(zhí)行功能命令(R0M命令和功能命令后面以表格形式給出)。</p><p> 如果出現(xiàn)序列混亂,則單總線器件不會響應(yīng)主機(jī)。當(dāng)然,搜索ROM 命令和報警搜索命令
104、,在執(zhí)行兩者中任何一條命令之后,要返回初始化。</p><p> 基于單總線上的所有傳輸過程都是以初始化開始的,初始化過程由主機(jī)發(fā)出的復(fù)位脈沖和從機(jī)響應(yīng)的應(yīng)答脈沖組成。應(yīng)答脈沖使主機(jī)知道,總線上有從機(jī)設(shè)備,且準(zhǔn)備就緒。</p><p> 每次訪問任何單總線器件,必須嚴(yán)格遵守這個命令序列;如果出現(xiàn)序列混亂,則單總線器件不會響應(yīng)主機(jī)。但是這個準(zhǔn)則對于搜索ROM命令和報警搜索命令例外,在執(zhí)行
105、兩者中任何一條命令之后,主機(jī)不能執(zhí)行其后的功能命令,必須返回至第一步。在 主 機(jī) 發(fā)出ROM命令,以訪問某個指定的DS18B20,接著就可以發(fā)出DS18 B20支持的某個功能命令。這些命令允許主機(jī)寫人或讀出DS18 B20暫存器,啟動溫度轉(zhuǎn)換以及判斷從機(jī)的供電方式。</p><p><b> ?。?)軟件實(shí)現(xiàn)</b></p><p> 前面提及單總線器件的ROM命令
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 多點(diǎn)溫度檢測系統(tǒng)設(shè)計
- 溫度控制系統(tǒng)設(shè)計方案
- 基于atc單片機(jī)的多點(diǎn)溫度測量系統(tǒng)設(shè)計
- 大棚溫度自動控制系統(tǒng)項目設(shè)計方案
- 多點(diǎn)溫度檢測系統(tǒng)設(shè)計.doc
- 多點(diǎn)溫度采樣系統(tǒng)設(shè)計
- atc單片機(jī)多點(diǎn)溫度測量
- 無線多點(diǎn)溫度傳感系統(tǒng)設(shè)計.pdf
- 多點(diǎn)溫度檢測系統(tǒng)課程設(shè)計
- 基于ds18b20單線多點(diǎn)溫度測量系統(tǒng)
- 多點(diǎn)溫度檢測系統(tǒng)畢業(yè)設(shè)計
- 課程設(shè)計---基于ds18b20的多點(diǎn)溫度測量系統(tǒng)
- 畢業(yè)設(shè)計--多點(diǎn)溫度巡回檢測系統(tǒng)
- 多點(diǎn)溫度巡回檢測系統(tǒng)畢業(yè)設(shè)計
- 畢業(yè)論文——多點(diǎn)溫度檢測系統(tǒng)設(shè)計
- gsm技術(shù)多點(diǎn)溫度巡回檢測系統(tǒng)設(shè)計
- 基于單片機(jī)的多點(diǎn)化溫度測量系統(tǒng)研制.pdf
- 景區(qū)導(dǎo)游系統(tǒng)項目設(shè)計方案
- 工業(yè)加溫爐溫度控制系統(tǒng)設(shè)計方案
- 溫度控制系統(tǒng)的設(shè)計方案【文獻(xiàn)綜述】
評論
0/150
提交評論