基于DSP的數(shù)字溫度計的設計_第1頁
基于DSP的數(shù)字溫度計的設計_第2頁
基于DSP的數(shù)字溫度計的設計_第3頁
基于DSP的數(shù)字溫度計的設計_第4頁
基于DSP的數(shù)字溫度計的設計_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

湖南工業(yè)大學本科生畢業(yè)設計(論文)PAGE湖南工業(yè)大學本科畢業(yè)設計(論文)PAGE0本科畢業(yè)設計(論文)資料題目名稱:基于DSP的數(shù)字溫度計的設計學院(部):電氣與信息工程學院專業(yè):信息工程學生姓名:班級:學號指導教師姓名:職稱教授最終評定成績:2012屆本科畢業(yè)設計(論文)資料第一部分畢業(yè)論文(2012屆)本科畢業(yè)設計(論文)學院(部):電氣與信息工程學院專業(yè):信息工程學生姓名:鄧仕林班級:信工081學號08401400131指導教師姓名:李圣清職稱教授最終評定成績:2012年6月湖南工業(yè)大學本科畢業(yè)設計(論文)PAGEV摘要溫度是過程檢測與控制的重要參量,隨著人們對溫度進行精確測量和控制要求的提高,傳統(tǒng)的溫度計已經(jīng)不能滿足人們在高精度方面的要求,設計一款能夠精確測量溫度的數(shù)字溫度計成為一件刻不容緩的事情。本設計綜述了數(shù)字溫度計的設計與制作原理,詳細介紹了數(shù)字溫度計的背景與意義、任務及要求,主控制芯片TMS320LF2407A及溫度傳感器DS18B20的工作原理,并繪出了總體設計原理框圖。本設計利用DSP作為控制內(nèi)核,給出了測溫電路、電源電路、復位電路、按鍵電路、液晶顯示電路的原理圖及相關參數(shù)。基于C語言程序,給出了主程序、初始化程序、測溫程序及超限報警系統(tǒng)程序的設計。本論文設計的多功能數(shù)字溫度計,可以設置上下報警溫度,當溫度不在設置范圍內(nèi)時,可以報警。與傳統(tǒng)的溫度計相比,具有讀數(shù)方便、測溫范圍廣、測溫準確及溫度液晶顯示等優(yōu)點。關鍵詞:數(shù)字溫度計,溫度傳感器DS18B20,DSP,溫度測量湖南工業(yè)大學本科畢業(yè)設計(論文)PAGEABSTRACTTemperaturesareanimportantparametersinprocessmeasurementandcontrol,Alongwithpeopletoaccuratemeasureandcontrolrequirementsofthetemperaturerequirementsimprove,traditionalthermometerscannothavesatisfiedpeopleinthehigh-precisionrequirements,designaprecisedigitalthermometerformeasuringtemperaturebecomesanurgentthing.Thissummaryofthedigitalthermometerprinciplesprincipleinthedesignandfabrication,detailsthebackgroundandsignificance,tasksandrequirementsofthethermometer,maincontrolchipTMS320LF2407AandtemperaturesensorDS18B20principleofwork,andsketchouttheGeneraldesignprincipleblockdiagram.ThedesignusingDSPascontrolkernel,givesthemeasuringcircuit,powersupplycircuits,keypadcircuits,liquidcrystaldisplaycircuitprinciplediagramandtherelatedparametersaboutthetemperature.Themainprogram,initialprogram,temperaturemeasurementproceduresandoverrunalarmsystemprogramdesignarebasedontheClanguageprogram.Thethesisdesignofthermometerisamulti-functionaldigitalthermometer,itcansettheupperandloweralarmtemperature,whenthetemperatureisnotwithinthesetrange,andcancallthepolice.Thethesisdesignofthermometerhavemanyadvantagescomparedwiththetraditionalthermometer,suchaseasyreading,widetemperaturerange,accuratetemperaturemeasurementandtemperatureoutputliquidcrystaldisplayandsoon.Keywords:Digitalthermometers,TemperaturesensorsDS18B20,DSP,Temperaturemeasurement

目錄摘要 IABSTRACT IIHYPERLINK目錄 III第1章緒論 51.1設計的背景和意義 51.2設計任務及要求 51.3溫度測量方案選擇 51.4本設計所做的工作 6第2章芯片功能介紹 PAGEREF_Toc325836351\h72.1主控制DSP芯片 72.1.1DSP芯片介紹 72.1.2主控制DSP芯片在本設計中的功能 354\h82.2DS18B20溫度傳感器簡介 82.2.1芯片簡介 82.2.2DS18B20外形和內(nèi)部結構 92.2.3DS18B20的工作時序 11第3章系統(tǒng)硬件電路的設計 133.1電源電路設計 13HYPERLINK3.2接口電路設計 143.3液晶顯示模塊設計 153.4復位電路的設計 163.5鍵盤及報警電路設計 173.5.1鍵盤電路的設計 173.5.2報警電路的設計 183.6主控制電路和測溫控制電路的總體設計 19第4章系統(tǒng)軟件程序的設計 204.1C語言簡介 204.2主程序 PAGEREF_Toc325836370\h204.3DS18B2初始化程序 234.4讀取溫度程序 234.5溫度超限報警程序 36373\h23結論 23參考文獻 23致謝 23附錄 23湖南工業(yè)大學本科畢業(yè)設計(論文)PAGE8第1章緒論1.1設計的背景和意義在日常生活及工農(nóng)業(yè)生產(chǎn)中,經(jīng)常要用到溫度的檢測及控制,傳統(tǒng)的數(shù)字溫度計大都采用放大、A/D轉換,轉換后的數(shù)字信號送入計算機處理,處理電路復雜,可靠性相對較差,占用計算機的資源較多,而且需要比較多的外部硬件支持,其缺點如下:(1)硬件電路復雜;(2)軟件調試復雜;(3)制作成本高。為了提高對數(shù)字溫度計的認識和了解,尤其是對溫度傳感器的深入研究以及其用法與用途,基于實用、廣泛和典型的原則,很有必要設計本設計的數(shù)字溫度計。本論文設計的數(shù)字溫度計使用的是DS18B20的一線制數(shù)字溫度傳感器,它可將溫度信號直接轉換成串行數(shù)字信號送給微處理器,電路簡單,成本低,每一只DS18B20內(nèi)部的ROM存儲器都有唯一的64位系列號,在一根地址/信號線上可以掛接多個DS18B20,易于擴展,便于組網(wǎng)和多點測量,更重要的是用戶可定義報警設置,設置報警搜索命令,識別并標志超過程序限定溫度的報警條件,超過條件立即發(fā)出報警信號,有穩(wěn)定性高等特點,進而使用DSP(DigitalSignalProcessing)芯片開發(fā)產(chǎn)品可使精度指標大大提高,在測量以及其他相關領域有著不可忽視的美好前景。1.2設計任務及要求設計一個以DSP為核心的溫度測量系統(tǒng),具體設計要求如下:(1)測量溫度值精度為±0.1℃。

(2)系統(tǒng)可由用戶預設溫度值,測溫范圍為-55℃~+125℃。

(3)超出預置值時系統(tǒng)會自動報警。(4)系統(tǒng)具有LCD液晶顯示功能,能實時顯示設定溫度值和測得的實際溫度值。1.3溫度測量方案選擇方案一:采用熱敏電阻由于本設計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應,在將隨被測溫度變化的電壓或電流采集過來,進行A/D轉換后,就可以用處理器進行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設計需要用到A/D轉換電路,感溫電路比較麻煩,而且熱敏電阻價格高,不線性,需要復雜的恒流源伺服電路,數(shù)據(jù)處理復雜,熱電偶要加上補償電路且材料價高。方案二:采用溫度傳感器DS18B20在設計中,大多都是使用傳感器,DS18B20只需三根導線和一個電阻,不需要其他任何外圍電路即可測得溫度數(shù)據(jù)。DS18B20保證精度足夠,電路簡單成本低。所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測溫度值,進行轉換,可以很好的滿足設計要求。從以上兩種方案,很容易看出,采用方案二,電路比較簡單,軟件設計也比較簡單,故采用了方案二。

本論文設計的數(shù)字溫度計采用美國DALLAS半導體公司繼DS1820之后推出的一種改進智能溫度傳感器DS18B20作為檢測元件,測溫范圍為-55℃~+125℃。DS18B20可以直接讀出被測量的溫度值,而采用3線制與DSP控制器相連,減少了外部的硬件電路,具有低成本和易使用的特點。

按照系統(tǒng)設計功能的要求,確定系統(tǒng)由7個模塊組成:主控制器,電源電路,復位電路,溫度傳感器DS18B20,按鍵電路,報警電路及驅動顯示電路。數(shù)字溫度計總體電路框圖如圖1.1所示。電源電路電源電路復位電路溫度傳感器按鍵電路報警電路驅動顯示電路主控制器DSP圖1.1總體電路框圖1.4本設計所做的工作第1章介紹主要介紹了數(shù)字溫度計的設計背景與意義,能夠達到的任務及要求,并對設計提出了總體設計的原理框圖。第2章對主控制芯片DSP和重要元件溫度傳感器DS18B20進行詳細介紹,給后面的硬件電路設計及軟件設計部分做準備。第3章是本設計的重要組成部分,即硬件電路的設計。其中包括穩(wěn)壓電源電路的設計,接口電路的設計,液晶顯示模塊設計,復位電路設計及按鍵報警電路的設計,并給出了相關的原理連接圖。第4章是本設計的軟件部分的設計,主要包括主程序設計,初始化程序設計等相關程序的設計,讓數(shù)字溫度計有一個很好的程序運行環(huán)境。第2章芯片功能介紹2.1主控制DSP芯片2.1.1DSP芯片介紹DSP即為數(shù)字信號處理器,是在模擬信號變換成數(shù)字信號以后進行高速實時處理的專用處理器。它的工作原理是將現(xiàn)實世界的模擬信號轉換成數(shù)字信號,再用數(shù)學方法處理此信號,得到相應的結果。自從數(shù)字信號處理器問世以來,由于它具有高速、靈活、可編程、低功耗和便于接口等特點,已在圖形、圖像處理,語音、語言處理,通用信號處理,測量分析,通信等領域發(fā)揮越來越重要的作用。隨著成本的降低,控制界已對此產(chǎn)生濃厚興趣,已在不少場合得到成功應用。TMS320LF2407A為美國德州儀器公司專門針對電機、逆變器、機器人、數(shù)控機床等控制而設計的一種單片新型高性能16位定點數(shù)字信號處理器,集DSP的高速信號處理能力及適用于控制的優(yōu)化外圍電路于一體,在數(shù)字控制系統(tǒng)中得以廣泛應用。它的適用于數(shù)字信號處理運算的特點主要有:

(1)采用增強的哈佛(HARVARD)結構,芯片內(nèi)部具有六條16位總線,即程序地址總線(PAB)、數(shù)據(jù)讀地址總線(DRAB)、數(shù)據(jù)寫地址總線(DWAB)、程序讀總線(PRDB)、數(shù)據(jù)讀總線(DRDB)、數(shù)據(jù)寫總線(DWEB),高度并行運算大大提高運算速度。其程序存儲器總線和數(shù)據(jù)存儲器總線相互獨立,支持并行的程序和操作數(shù)尋址。TMS320LF2407A時鐘輸入引腳上接20MHz晶振,后經(jīng)內(nèi)部鎖相環(huán)倍頻后得40MHz時鐘頻率,這樣指令執(zhí)行周期可縮為25ns,較C240DSP速度整整提高了1倍,因此CPU的讀/寫可在同一周期內(nèi)進行,這種高速運算能力使自適應控制、神經(jīng)網(wǎng)絡、遺傳算法、線形變換(快速傅立葉變換、希爾伯特變換、余弦變換等)、數(shù)字濾波(有限沖擊響應濾波、無限沖擊響應濾波、卡爾曼濾波等)、卷積運算等復雜控制算法得以實現(xiàn)。

(2)TMS320LF2407A地址映象被組織為三個可獨立選擇的空間:程序存儲器(64K)、數(shù)據(jù)存儲器(64K)、輸入/輸出(I/O)空間(64K)。這些空間提供了共192K字的地址范圍。其片內(nèi)存儲器資源包括:544字×16位的雙端口數(shù)據(jù)/程序DARAM、2K字×16位的單端口數(shù)據(jù)/程序SARAM、片內(nèi)32K×16位的Flash程序存儲器、256字×16位片上BootROM、片上Flash/ROM具有可編程加密特性。

(3)具有兩個事件管理器模塊EVA和EVB,能夠實現(xiàn):三相反相器控制、PWM對稱和非對稱波形、外部引腳快速封鎖PWM通道。可編程的死區(qū)控制單元(DBTCON)用來產(chǎn)生可編程的軟件死區(qū),使得受每個全比較單元的兩路CMP/PWM輸出控制的功率器件的間次開啟周期間沒有重疊,最大可編程的軟件死區(qū)時間達16μs。

(4)10位16通道的A/D轉換器最小轉換時間為500ns。

(5)看門狗定時器和實時中斷定時器模塊。2.1.2主控制DSP芯片在本設計中的功能DSP技術在各領域的應用日益滲透,比如在電力系統(tǒng)自動化中,數(shù)字通訊技術領域,工業(yè)控制領域,儀器儀表領域等都有較大應用。DSP已經(jīng)涉足測量儀表和測試儀器行業(yè),而且大有取代高檔單片機的趨勢。使用DSP開發(fā)測量儀表和測試儀器可將產(chǎn)品提升到一個嶄新的水平。新款DSP豐富的片內(nèi)資源可以大大簡化儀器儀表的硬件電路,實現(xiàn)儀器儀表的SOC(SystemOnChip,即片上系統(tǒng))設計。儀器儀表的測量精度和速度是一項重要的指標,使用DSP芯片開發(fā)產(chǎn)品可使這兩項指標大大提高。以TMS320LF2407A為例,其高效的16位CPU內(nèi)核、優(yōu)異的A/D轉換器、豐富的片內(nèi)存儲器以及靈活的指令系統(tǒng)為我們開發(fā)快速、高精度儀器搭建了廣闊的平臺。在本設計中,DSP芯片主要應用于儀器儀表方面,一個典型的DSP系統(tǒng)應該包括數(shù)據(jù)采集A/D轉換器、數(shù)字信號處理器DSP、D/A轉換器和低通濾波器等。DSP系統(tǒng)處理過程:首先將輸入信號進行濾波,濾掉高于折疊頻率的分量,以防止信號的頻譜混疊,然后采樣和A/D轉換,數(shù)字信號處理器的處理得到數(shù)字信號,在經(jīng)過D/A轉換,得到模擬信號,經(jīng)過低通濾波器,得到屁平滑的模擬信號。該設計也是一樣,就是實現(xiàn)其這個功能,將采樣來的溫度數(shù)據(jù)進行轉換分析,然后在用液晶顯示出來。2.2DS18B20溫度傳感器簡介2.2.1芯片簡介DALLAS最新單線數(shù)字溫度傳感器DS18B20是一種新型的“一線器件”,其體積更小、更適用于多種場合、且適用電壓更寬、更經(jīng)濟。DALLAS半導體公司的數(shù)字化溫度傳感器DS18B20是世界上第一片支持“一線總線”接口的溫度傳感器。其特點如下:(1)適應電壓范圍更寬,電壓范圍:3.0V~5.5V,在寄生電源方式下可由數(shù)據(jù)線供電。(2)獨特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實現(xiàn)控制器與DS18B20的雙向通訊。(3)DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉換電路集成在形如一只三極管的集成電路內(nèi)。(4)測溫范圍-55℃~+125℃,在-10℃~+85℃時精度為±0.5℃。(5)可編程的分辨率為9~12位,對應的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃,可實現(xiàn)高精度測溫。(6)在9位分辨率時最多在93.75ms內(nèi)把溫度轉換為數(shù)字,12位分辨率時最多在750ms內(nèi)把溫度值轉換為數(shù)字,速度更快。(7)測量結果直接輸出數(shù)字溫度信號,以“一線總線”串行傳送給處理器,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力。(8)負壓特性:電源極性接反時,芯片不會因發(fā)熱而燒毀,但不能正常工作。2.2.2DS18B20外形和內(nèi)部結構DS18B20內(nèi)部結構如圖2.1所示,主要由4部分組成:64位ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。DS18B20的外形及管腳排列如圖2.2所示,引腳定義如表2.3所示。64位ROM和單線接口高速緩存存儲器存儲器和控制器8位CRC生成器溫度傳感器低溫觸發(fā)器TL高溫觸發(fā)器TH配置寄存器電源檢測圖2.1DS18B20的內(nèi)部結構圖2.2DS18B20的外型與管腳排列表2.3DS18B20引腳定義序號名稱引腳功能描述1GND地信號2DQ數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當被用著在寄生電源下,也可以向器件提供電源。3VDD可選擇的VDD引腳。當工作于寄生電源時,此引腳必須接地。下面就對DS18B20內(nèi)部結構主要部分進行介紹:(1)64位ROMROM中的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼,每個DS18B20的64位序列號均不相同。64位ROM的循環(huán)冗余校驗碼(CRC=X8+X5+X4+1)。ROM的作用是使每一個DS18B20都各不相同,這樣可以在一根總線實現(xiàn)上。DS18B20中的溫度傳感器完成對溫度的測量,用16位符號擴展的二進制補碼讀數(shù)形式提供,以0.0625℃/LSB形式表達,其中S為符號位。DS18B20溫度值格式如表2.4所示。表2.4DS18B20溫表度格式bit7bit6bit5bit4bit3bit2bit1bit0LSByte22222222bit15bit14bit13bit12bit11bit10bit9bit8MSByteSSSSS222這是16位轉化后得到的16位數(shù)據(jù),存儲在DS18B20的兩個8比特的RAM中,二進制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實際溫度。例如+25.0625℃的數(shù)字輸出為0191H,-25.0625℃的數(shù)字輸出為FF6FH。(2)高低溫報警觸發(fā)器TH和TLDS18B20溫度傳感器的內(nèi)部存儲器包括一個高速暫存RAM和一個非易失性的可電擦除的EEPRAM,后者存放高溫度和低溫度觸發(fā)器TH、TL和結構寄存器。(3)配置寄存器該字節(jié)各位的意義如下表2.5所示。表2.5配置寄存器結構TMR1R0111112.2.3DS18B20的工作時序DS18B20的工作協(xié)議流程是:初始化→ROM操作指令→存儲器操作指令→數(shù)據(jù)傳輸。其工作時序包括初始化時序、寫時序和讀時序,分別如圖2.6、圖2.7、圖2.8所示。初始化時序:主機控制DS18B20完成任何操作之前必須先初始化,即主機發(fā)一復位脈沖(最短為480us的低電平),接著主機釋放總線進入接收狀態(tài),DS18B20在檢測到I/O引腳上的上升沿之后,等待15-60us然后發(fā)出存在脈沖(60-240us的低電平)。DS18B20等待DS18B20Tx產(chǎn)生15us—16us脈沖60--240主機復位脈沖VCC480us<TX<960us主機Rxmin480us1-WireBusGND圖2.6初始化時序寫時序:將數(shù)據(jù)從高電平拉至低電平,產(chǎn)生寫起始信號。在15us之內(nèi)將所需寫的位送到數(shù)據(jù)線上,在15us到60us之間對數(shù)據(jù)線進行采樣,如果采樣為高電平,就寫1,如果為低電平,寫0就發(fā)生。在開始另一個寫周期前必須有1us以上的高電平恢復期。圖2.7寫時序讀時序:主機將數(shù)據(jù)線從高電平拉至低電平1us以上,再使數(shù)據(jù)線升為高電平,從而產(chǎn)生讀起始信號。主機在讀時間片下降沿之后15us內(nèi)完成讀位。每個讀周期最短的持續(xù)期為60us,各個讀周期之間也必須有1us以上的高電平恢復期。圖2.8讀時序第3章系統(tǒng)硬件電路的設計本設計利用電源電路設計提供+5V穩(wěn)壓電源,溫度傳感器電路連接DSP芯片的I/O端口進行溫度采集,通過液晶顯示屏來顯示溫度,同時4×4矩陣按鍵電路的設計很方便實現(xiàn)溫度的預設值設定,超過預設的溫度值時,報警系統(tǒng)的蜂鳴器和發(fā)光二極管會起到報警的作用。3.1電源電路設計電源電路負責提供給系統(tǒng)+5V的電壓。電源穩(wěn)壓電路如圖3.1所示,如圖所示電路為輸出電壓+5V、輸出電流1.5A的穩(wěn)壓電源電路。它由電源變壓器B,橋式整流電路D1~D4,濾波電容C1、C3,防止自激電容C2、C4和一只固定式三端穩(wěn)壓器(LM7805)極為簡捷方便地搭成的。電源電路的穩(wěn)壓原理:220V交流市電通過電源變壓器變換成交流低壓,再經(jīng)過橋式整流電路D1~D4和濾波電容C1的整流和濾波,在固定式三端穩(wěn)壓器LM7805的Vin和GND兩端形成一個并不十分穩(wěn)定的直流電壓(該電壓常常會因為市電電壓的波動或負載的變化等原因而發(fā)生變化)。此直流電壓經(jīng)過LM7805的穩(wěn)壓和C3的濾波便在穩(wěn)壓電源的輸出端產(chǎn)生了精度高、穩(wěn)定度好的直流輸出電壓。本穩(wěn)壓電源可作為TTL電路或DSP電路的電源。三端穩(wěn)壓器是一種標準化、系列化的通用線性穩(wěn)壓電源集成電路,以其體積小、成本低、性能好、工作可靠性高、使用簡捷方便等特點,成為目前穩(wěn)壓電源中應用最為廣泛的一種單片式集成穩(wěn)壓器件。圖3.1電源穩(wěn)壓電路采用這種電路的+5V電源在輸出前經(jīng)過了電感和電容組合網(wǎng)絡濾波,實測紋波小于3mV。3.2接口電路設計DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時DS18B20的1腳接地,2腳作為信號線,3腳接電源,如圖3.2所示。另一種是寄生電源供電方式,如圖3.3所示。DSP端口接單線總線,為保證在有效的DS18B20時鐘周期內(nèi)提供足夠的電流,可用一個MOSFET管來完成對總線的上拉。當DS18B20處于寫存儲器操作和溫度A/D轉換時,總線必須有強的上拉,上拉開啟時間最大為10us。采用寄生電源供電方式時,VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。圖3.2DS18B20與DSP的接口電路圖3.3DS18B20與DSP的另一種接口電路3.3液晶顯示模塊設計本設計中使用的溫度顯示模塊是具有ST7920控制器的液晶模塊,可顯示漢字及圖形。模塊供電電源為+3.3V~+5V(內(nèi)置升壓電路,無需負壓),DSP完全滿足其電壓的要求。在液晶模塊的各引腳中,VDD,VSS分別為模塊供電電源的正、負引腳;V0為模塊驅動電壓輸入引腳。模塊有并行和串行兩種連接方法,當PSB=0時為串行選擇方式,當PSB=1時為并行選擇方式,本文采用8位并行連接的方式實現(xiàn)液晶模塊與2407A的數(shù)據(jù)通訊。硬件電路中液晶模塊的RS、R/W、E、PSB、REST控制引腳分別與2407A的IOPA3~7引腳相連,液晶模塊的數(shù)據(jù)引腳DB0~7分別與2407A的IOPB0~7引腳相連。液晶顯示原理圖如圖3.4所示。圖3.4液晶顯示原理圖具體液晶顯示具體連接圖如圖3.5所示。圖3.5液晶顯示連接圖3.4復位電路的設計為確保系統(tǒng)中電路穩(wěn)定可靠工作,復位電路是必不可少的一部分,復位電路的第一功能是上電復位。一般微機電路正常工作需要供電電源為5V±5%,即4.75~5.25V。由于電路是時序數(shù)字電路,它需要穩(wěn)定的時鐘信號,因此在電源上電時,只有當VCC超過4.75V低于5.25V以及晶體振蕩器穩(wěn)定工作時,復位信號才被撤除,微機電路開始正常工作。DSP控制系統(tǒng)的復位方式有:手動按鈕復位和上電復位。手動按鈕復位需要人為在復位輸入端RST上加入高電平。一般采用的辦法是在RST端和正電源VCC之間接一個按鈕。當人為按下按鈕時,則VCC的+5V電平就會直接加到RST端。上電復位的工作過程是在加電時,復位電路通過電容加給RST端一個短暫的高電平信號,此高電平信號隨著VCC對電容的充電過程而逐漸回落,即RST端的高電平持續(xù)時間取決于電容的充電時間。為了保證系統(tǒng)能夠可靠地復位,RST端的高電平信號必須維持足夠長的時間。DSP控制器復位電路的設計如圖3.6所示。該復位電路采用手動復位與上電復位相結合的方式。當按下按鍵S1時,VCC通過R1電阻給復位輸入端口一個高電平,實現(xiàn)復位功能,即手動復位。上電復位就是VCC通過電阻R2和電容C構成回路,該回路是一個對電容C充電和放電的電路,所以復位端口得到一個周期性變化的電壓值,并且有一定時間的電壓值高于CPU復位電壓,實現(xiàn)上電復位功能。圖3.6DSP復位電路3.5鍵盤及報警電路設計3.5.1鍵盤電路的設計4×4掃描鍵盤用8位數(shù)據(jù)線,可以提供16個不同的按鍵信號。這樣做的好處是:(1)節(jié)省FPGA管腳資源;(2)系統(tǒng)簡單化減小電路規(guī)模;特別是在資源比較緊張,對成本要求嚴格的系統(tǒng)中這是一種非常流行的設計方法。由于用手把鍵按下的時間長度等問題,如果不去抖動可以把時鐘加快。實際中操作與理論分析是有差別的因為一般的開關在大約20ms內(nèi)信號不穩(wěn)定,存在所謂的“開關抖動”,會產(chǎn)生多個脈沖影響電路正常工作。所以含開關輸入的設計需要做防抖動處理,在本設計可以用20Hz的時鐘采樣實現(xiàn)防抖。為實現(xiàn)溫度上、下限的設定功能,同時為盡量減少因鍵盤的輸入而引起的抖動,系統(tǒng)設有鍵盤,并通過掃描的方式進行工作。鍵盤電路設計圖如圖3.7所示。圖3.7鍵盤電路設計圖3.5.2報警電路的設計為實現(xiàn)當溫度超過設定的限定值時聲光報警的功能,在2407A芯片外圍的設有報警電路。當溫度超限時,IOPE0口輸出高電平,三極管NPN導通,二極管和蜂鳴器同時工作;當溫度正常時,IOPE0口輸出低電平,三極管截止,二極管和蜂鳴器不工作。報警系統(tǒng)電路設計圖如圖3.8所示。圖3.8報警系統(tǒng)電路設計圖3.6主控制電路和測溫控制電路的總體設計主控制電路由TMS320LF2407A及外圍元件構成,測溫電路由DS18B20、預置數(shù)電路和報警電路組成。TMS320LF2407A是此硬件電路設計的核心,通過TMS320LF2407A的管腳與DS18B20相連,控制溫度的讀出和顯示。預置數(shù)電路由兩個按鍵和兩個數(shù)碼管組成,兩個按鍵分別與TMS320LF2407A的管腳相連。報警電路很簡單,由一個發(fā)光二極管和一個報警蜂鳴器組成,與TMS320LF2407A的管腳相連,若實際測量的溫度值大于預置溫度值,則發(fā)光二極管亮,即為報警標志。硬件電路的功能都是與軟件編程相結合而實現(xiàn)的。具體硬件原理圖如3.9所示。圖3.9硬件原理圖第4章系統(tǒng)軟件程序的設計4.1C語言簡介1978年,BrianW.Kernighian和DennisM.Ritchie出版了名著《TheCProgrammingLanguage》,從而使C語言成為目前世界上流行最廣泛的高級程序設計語言。隨著微型計算機的日益普及,出現(xiàn)了許多C語言版本。由于沒有統(tǒng)一的標準,使得這些C語言之間出現(xiàn)了一些不一致的地方。為了改變這種情況,美國國家標準研究所(ANSI)為C語言制定了一套ANSI標準,成為現(xiàn)行的C語言標準。C語言發(fā)展迅速,而且成為最受歡迎的語言之一,主要因為它具有強大的功能。C語言是目前世界上流行、使用最廣泛的高級程序設計語言。C語言對操作系統(tǒng)和系統(tǒng)使用程序以及需要對硬件進行操作的場合,用C語言明顯優(yōu)于其它高級語言,許多大型應用軟件都是用C語言編寫的。C語言的特點:1.簡潔緊湊、靈活方便,C語言一共只有32個關鍵字,9種控制語句,程序書寫自由。2.運算符豐富,C的運算符包含的范圍很廣泛,共有種34個運算符。C語言把括號、賦值、強制類型轉換等都作為運算符處理。3.數(shù)據(jù)結構豐富,C的數(shù)據(jù)類型有:整型、實型、字符型、數(shù)組類型、指針類型、結構體類型、共用體類型等,能用來實現(xiàn)各種復雜的數(shù)據(jù)類型的運算。4.C是結構式語言,結構式語言的顯著特點是代碼及數(shù)據(jù)的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便于使用、維護以及調試。5.C語法限制不太嚴格、程序設計自由度大,一般的高級語言語法檢查比較嚴,能夠檢查出幾乎所有的語法錯誤。而C語言允許程序編寫者有較大的自由度。6.C語言允許直接訪問物理地址,可以直接對硬件進行操作。7.C語言程序生成代碼質量高,程序執(zhí)行效率高,一般只比匯編程序生成的目標代碼效率低10~20%。8.C語言適用范圍大,可移植性好,C語言有一個突出的優(yōu)點就是適合于多種操作系統(tǒng),如DOS、UNIX,也適用于多種機型。4.2主程序本設計利用2407A作為控制器,主要對其進行軟件編程,解決好溫度測量過程中時序控制問題,軟件采用C語言進行編譯。程序主要包括DS18B20的初始化、溫度采集、溫度讀取等幾部分。整個程序采用軟件定時的方法,實現(xiàn)每隔30秒循環(huán)一次,從而完成對溫度每隔30秒行一次采集與顯示。主程序流程圖如圖4.1所示。程序初始化程序初始化數(shù)據(jù)處理數(shù)據(jù)顯示DS18B20是否正常否是圖4.1主程序流程圖下面是程序中的一些相關說明:(1)按鍵功能說明:實時測量溫度,超過上下限報警,報警溫度可手動調整。K1是用來進入上下限調節(jié)模式的,當按一下K1進入上限調節(jié)模式,再按一下進入下限調節(jié)模式。在正常模式下,按一下K2進入查看上限溫度模式,顯示1s左右自動退出;按一下K3進入查看下限溫度模式,顯示1s左右自動退出;在調節(jié)上下限溫度模式下,K2是實現(xiàn)加1功能,K1是實現(xiàn)減1功能,K3是用來設定上下限溫度正負的。(2)用到的全局變量:無符號字符型變量temp(測得的溫度整數(shù)部分),temp_d(測得的溫度小數(shù)部分),標志位f(測量溫度的標志位‘0’表示“正溫度”、‘1’表示“負溫度”),標志位f_max(上限溫度的標志位‘0’表示“正溫度”、‘1’表示“負溫度”),標志位f_min(下限溫度的標志位‘0’表示“正溫度”、‘1’表示“負溫度”),標志位w(報警標志位‘1’啟動報警、‘0’關閉報警)。#include<TMS320LF2407A.h>#include<intrins.h>#defineuintunsignedint #defineucharunsignedcharucharmax_int=0x00,max_dot=0x00,min_int=0x00,min_dot=0x00;bits=0,s1=0;#include"ds18b20.h"#include"keyscan.h"#include"display.h"voidmain(){ beer=0; led=1; IT1=1; EX1=0; EA=1; timer1_init(0); get_temperature(1); while(1) { keyscan(); get_temperature(0); keyscan(); display(temp,temp_d*0.625); alarm(); keyscan(); }}#ifndef__ds18b20_h__#define__ds18b20_h__#defineuintunsignedint #defineucharunsignedcharsbitDQ=P2^3;sbitbeer=P3^0; sbitled=P3^1;uchartemp=0; //溫度的整數(shù)部分uchartemp_d=0; //溫度的小數(shù)部分ucharn;bitf=0,f_max=0,f_min=0;w=0;/***********************延時子函數(shù)************************/voidds18b20_delayus(uintt){while(t--);}voidds18b20_delayms(uintt){ uinti,j; for(i=t;i>0;i--) for(j=120;j>0;j--);}4.3DS18B20初始化程序初始化就是將程序中即將要用的寄存器設置一個初始值。給DS18B20設計一個初始化程序,能夠讓DSP在斷電或者通電時,能夠從初設值進行操作,有數(shù)據(jù)保存功能。voidds18b20_init() //DS18B20初始化{ DQ=1; DQ=0; //控制器向DS18B20發(fā)低電平脈沖 ds18b20_delayus(30); //延時480μs DQ=1; //控制器拉高總線 while(DQ); //等待DS18B20拉低總線,在60-240μs之間 ds18b20_delayus(20); //延時,等待上拉電阻拉高總線 DQ=1; //提升數(shù)據(jù)線,準備數(shù)據(jù)傳輸}/***********************DS18B20字節(jié)讀函數(shù)************************/uchards18b20_read() //DS18B20字節(jié)讀取{ uchari; uchard=0; DQ=1; //準備讀 for(i=8;i>0;i--) { d>>=1;//低位先發(fā) DQ=0; _nop_(); _nop_(); _nop_(); DQ=1; //必須寫1,否則讀出來的將是不預期的數(shù)據(jù); if(DQ) //在12us處讀取數(shù)據(jù); d|=0x80; ds18b20_delayus(10); } returnd; }/************************DS18B20字節(jié)寫函數(shù)***********************/voidds18b20_write(uchard) //ds18b20字節(jié)寫{uchari;for(i=8;i>0;i--){ DQ=0; _nop_(); _nop_(); _nop_(); DQ=d&0x01; ds18b20_delayus(5); DQ=1; d>>=1;}}4.4讀取溫度程序溫度數(shù)據(jù)從溫度傳感器DS18B20采集到,通過DSP的溫度讀取程序控制,將溫度的數(shù)值顯示在液晶顯示屏上。voidget_temperature(bitf) //得到整數(shù)的溫度值{ uchara=0,b=0,c=0,d=0;uinti; ds18b20_init(); //DS18B20初始化 ds18b20_write(0xcc); //向DS18B20發(fā)SKIPROM命令 ds18b20_write(0x44); //啟動DS18B20進行溫度轉換,結果存入內(nèi)部RAM ds18b20_delayms(1); ds18b20_init(); //DS18B20初始化 ds18b20_write(0xcc); //向DS18B20發(fā)SKIPROM命令 ds18b20_write(0xbe); //讀內(nèi)部RAM中9字節(jié)的內(nèi)容命令 a=ds18b20_read(); //讀內(nèi)部RAM(LSB) b=ds18b20_read(); //讀內(nèi)部RAM(MSB) if(f==1) { max_int=ds18b20_read(); //讀內(nèi)部RAM(LSB) min_int=ds18b20_read(); } if((max_int&0x80)==0x80) {f_max=1;max_int=(max_int-0x80);} if((min_int&0x80)==0x80) {f_min=1;min_int=(min_int-0x80);} i=b; i>>=4; if(i==0) {f=0; //i為0,正溫度,設立正溫度標記temp=((a>>4)|(b<<4)); //整數(shù)部分 a=(a&0x0f); temp_d=a; //小數(shù)部分 } else { f=1; //i為1,負溫度,設立負溫度標記 a=~a+1; b=~b; temp=((a>>4)|(b<<4)); //整數(shù)部分 a=(a&0x0f); //小數(shù)部分 temp_d=a; }}voidstore_t(){ if(f_max==1) max_int=max_int+0x80; if(f_min==1) min_int=min_int+0x80; ds18b20_init(); //DS18B20初始化 ds18b20_write(0xcc); //向DS18B20發(fā)SKIPROM命令 ds18b20_write(0x4e); ds18b20_write(max_int); ds18b20_write(min_int); ds18b20_write(0xff); ds18b20_init(); //DS18B20初始化 ds18b20_write(0xcc); //向DS18B20發(fā)SKIPROM命令 ds18b20_write(0x48);}4.5溫度超限報警程序本設計由用戶預設報警溫度,通過與DS18B20讀取當前溫度值的比較,自定義的兩個位變量得到對應值,再通過對該值判斷,從而控制發(fā)光二極管和蜂鳴器的狀態(tài)。voidalarm(){ if(f_max==0) { if(f_min==0) { if(f==0) {if((temp+temp_d*0.0625)<=min_int||(temp+temp_d*0.0625)>=max_int) {w=1;TR1=1;} if((temp+temp_d*0.0625)<max_int&&(temp+temp_d*0.0625)>min_int) {w=0;} } if(f==1){w=1;TR1=1;} } if(f_min==1) { if(f==0) { if((temp+temp_d*0.0625)>=max_int) {w=1;TR1=1;} if((temp+temp_d*0.0625)<max_int) {w=0;} } if(f==1) { if((temp+temp_d*0.0625)>=min_int) {w=1;TR1=1;} if((temp+temp_d*0.0625)<min_int) {w=0;} } } } if(f_max==1) { if(f_min==1) { if(f==1) { if((temp+temp_d*0.0625)<=max_int||(temp+temp_d*0.0625)>=min_int) {w=1;TR1=1;} if((temp+temp_d*0.0625)<min_int&&(temp+temp_d*0.0625)>max_int) {w=0;} } if(f==0){w=1;TR1=1;} } } }#endif/***********************鍵盤設定設定上下限報警溫度************************/#ifndef__keyscan_H__#define__keyscan_H__sbitkey1=P2^2; sbitkey2=P2^1; sbitkey3=P2^0;sbitkey4=P3^3;uchara=0,i=0;bit k4=0,v=0,v1=0,v2=0;結論本論文設計的數(shù)字溫度計是一款多功能數(shù)字溫度計,能測量-55℃~+125℃的溫度值,由DSP控制整個系統(tǒng),包括其中的電源電路、接口電路、復位電路、復位電路、驅動顯示電路等主要電路,而且具有用按鍵設定溫度值和超過限定溫度報警

溫馨提示

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

評論

0/150

提交評論