基于AT89C51單片機的簡易多種傳感器信號測試儀設計AD590溫度測試儀_第1頁
基于AT89C51單片機的簡易多種傳感器信號測試儀設計AD590溫度測試儀_第2頁
基于AT89C51單片機的簡易多種傳感器信號測試儀設計AD590溫度測試儀_第3頁
基于AT89C51單片機的簡易多種傳感器信號測試儀設計AD590溫度測試儀_第4頁
基于AT89C51單片機的簡易多種傳感器信號測試儀設計AD590溫度測試儀_第5頁
已閱讀5頁,還剩31頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、. . . . 簡易多種傳感器信號測試儀設計AD590溫度測試儀摘 要本課題主要介紹了溫度測量的硬件電路的設計和相關軟件設計。硬件電路主要包括主控制器,測溫電路和顯示電路等,控制器采用單片機AT89C51,溫度傳感器采用美國DALLAS半導體公司生產的AD590,顯示電路采用3位共陽極LED數碼管以動態掃描法直讀顯示。系統程序主要包括主程序,讀出溫度子程序,溫度轉換命令子程序,計算溫度子程序,顯示數據子程序等。此外,還介紹了系統的調試和性能分析。關鍵詞:AD590、ADC0804、AT89C51Abstract: This topic mainly introduces the tempera

2、ture sensor of hardware circuit design and software design of the system. Hardware circuit include Lord controller, temperature measurement circuit and display circuit by single chip microcomputer AT89C51, controller, the temperature sensor using the American DALLAS semiconductor company produces th

3、e AD590, show circuit with 3 a total of anode LED digital dynamic scanning tube method to read display. Straight The system includes main program, the program read temperature procedure, the temperature conversion command subroutine, the calculation of temperature subroutine, display data refresh pr

4、ocedure, etc. In addition, it introduces the system of debugging and performance analysis. Keywords: AD590, ADC0804, AT89C51目 錄第一章 緒論.11.1課題背景與意義.11.2課題應用前景.1第二章 總體設計方案.22.1 總體設計框圖.22.2 總體設計方案分析.2第三章 硬件設計原理.33.1 總原理圖與工作原理分析.33.2 AD590傳感器檢測電路單元.33.3 放大電路.53.4 A/D轉換電路單元.63.5 CPU主控電路單元.103.6 顯示電路單元.143

5、.7 供電電源單元.15第四章 軟件設計分析.164.1 系統總流程圖.164.2 A/D轉換的啟動與轉換結果獲取.194.3 程序流程分析.19第五章 結語.21參考文獻.21致詞.22附錄.2329 / 36第一章 緒 論1.1課題背景與意義一些傳感器市場比如壓力傳感器、溫度傳感器、流量傳感器、水平傳感器.稱重傳感器已表現出成熟市場的特征。流量傳感器、壓力傳感器、溫度傳感器.稱重傳感器的市場規模最大,分別占到整個傳感器市場的21%、19%和14%。傳感器市場的主要增長來自于無線傳感器、MEMS傳感器、生物傳感器等新興傳感器。其中,無線傳感器在2007-2010年復合年增長率預計會超過25%

6、。與傳統的溫度計相比,由于采用了改進型智能溫度傳感器AD590作為檢測元件,本數字溫度計減少了外部的硬件電路,具有低成本和易使用的特點。AD590溫度計還可以在過限報警、遠距離多點測溫控制等方面進行應用開發,具有很好的發展前景。AD590是一種可組網的高精度數字式溫度傳感器,由于其具有單總線的獨特優點,可以使用戶輕松地組建起傳感器網絡,并可使多點溫度測量電路變得簡單、可靠在該論文中,我們通過對單片機和溫度傳感器的設計,從中學到了許多有用的東西,其中我們明白了如何去設計一個產品,首先要有性價比、良好的適應性,其次要知道設計的關鍵,最后也懂得了設計與實際的聯系 1.2課題的應用前景

7、60;  溫度傳感器的應用圍很廣,它不僅廣泛應用于日常生活中,而且也大量應用于自動化和過程檢測控制系統。目前,全球的傳感器市場在不斷變化的創新之中呈現出快速增長的趨勢。有關專家指出,傳感器領域的主要技術將在現有基礎上予以延伸和提高,各國將競相加速新一代傳感器的開發和產業化,競爭也將日益激烈。新技術的發展將重新定義未來的傳感器市場,比如無線傳感器、光纖傳感器、智能傳感器和金屬氧化傳感器等新型稱重傳感器的出現與市場份額的擴大。第二章 總體設計方案2.1總體設計框圖溫度傳感器采集到的微弱電壓信號經過濾波器放大器放大十倍后送入AD轉換器(ADC0804)的輸入端。ADC0804將模擬信號轉換

8、為數字信號后傳給AT89C51選用3個共陽極8段數碼顯示管用于動態顯示當前測量溫度。用單片機P1.0至P1.7驅動控制段碼,P2.0,P2.1至P2.2驅動三極管實現位選。驅動器74LS244使LED八段數碼管動態顯示。CPU 89C51模數轉換器ADC0804放大電路傳感器3位數碼管顯示圖2.1 總體設計框圖2.2 總體設計方案分析按功能要求簡易傳感器信號測試儀可以測量溫度,并在3位LED數碼管上顯示數值。測量最小分別率為0.019V,測量誤差約為0.02V。 按系統功能實際要求,控制系統采用89C51單片機,A/D轉換采用ADC0804。系統除能確保實現要求的功能外,還可以方便地進行壓力測

9、量和A/D的轉換量的測量、數碼顯示的功能。第三章 硬件設計原理3.1 總原理圖與工作原理分析簡易傳感器信號測試儀信號采集是通過溫度傳感器AD590將溫度的變化轉換為變化電壓,通過有源濾波器進行濾波放大,得到一個穩定的電壓信號,信號進過A/D轉換、數據處理,最后通過三位數碼管顯示出來。電路原理圖如圖3.1.1所示。 圖3.1.1 總電路原理圖3.2 AD590傳感器檢測電路單元1、 AD590基本知識AD590的主要特性:AD590是美國模擬器件公司生產的單片集成兩端感溫電流傳感器,是一種已經IC化的溫度感測器,它會將溫度轉換為電流。其規格如下:a、 每增加1,它會增加1A輸出電流b、 可測量圍

10、-55至150c、 供電電壓圍+4V至+30VAD590溫度與電流的關系如下表所示攝氏溫度AD590電流經10K電壓0273.2 uA2.732V10283.2 uA2.832 V20293.2 uA2.932 V30303.2 uA3.032 V40313.2 uA3.132 V50323.2 uA3.232 V60333.2 uA3.332 V100373.2 uA3.732 V表3.2.1AD590的管腳圖與元件符號如下圖所示:AD590是電流型溫度傳感器,通過對電流的測量可得到所需要的溫度值。根據特性分擋,AD590的后綴以I,J,K,L,M表示。AD590L,AD590M一般用于精密

11、溫度測量電路,其電路外形如圖1所示,它采用金屬殼3腳封裝,其中1腳為電源正端V;2腳為電流輸出端I0;3腳為管殼,一般不用。集成溫度傳感器的電路符號如圖2所示。AD590相當于一個溫度控制的恒流源,輸出電流大小只與溫度有關,且與溫度成正比。只需一個精密電阻,就可以將電流(溫度)信號轉化為電壓信號,總的靈敏度系數通過該電阻設定。AD590的溫度系數是1A/K,即溫度每增加1K,它會增加1A輸出電流。其輸出電流是以絕對溫度零度-273為基準,每增加1,它會增加1A輸出電流,因此 -10到100時AD590輸出電流為263A到373A。ADC0809的輸入電壓為0-5V,所以需要電流-電壓轉換電路。

12、2.AD590的工作原理在被測溫度一定時,AD590相當于一個恒流源,把它和530V的直流電源相連,并在輸出端串接一個1k的恒值電阻,那么,此電阻上流過的電流將和被測溫度成正比,此時電阻兩端將會有1mVK的電壓信號。數字顯示溫度計的設計AD590具有線性優良、性能穩定、靈敏度高、無需補償、熱容量小、抗干擾能力強、可遠距離測溫且使用方便等優點??蓮V泛應用于各種冰箱、空調器、糧倉、冰庫、工業儀器配套和各種溫度的測量和控制等領域。下面給出用AD590構成數字顯示溫度計的設計過程。在設計測溫電路時,首先應將電流轉換成電壓。由于AD590為電流輸出元件,它的溫度每升高1K,電流就增加1A。當AD590的

13、電流通過一個10k的電阻時,這個電阻上的壓降為10mV,即轉換成10mVK,為了使此電阻精確(01),可用一個96k的電阻與一個1k電位器串聯,然后通過調節電位器來獲得精確的10k。圖3.1.2所示是一個電流電壓和絕對攝氏溫標的轉換電路,其中運算放大器A1被接成電壓跟隨器形式,以增加信號的輸入阻抗。而運放A2的作用是把絕對溫標轉換成攝氏溫標,給A2的同相輸入端輸入一個恒定的電壓(如1235V),然后將此電壓放大到273V。這樣,A1與A2輸出端之間的電壓即為轉換成的攝氏溫標,運放A3反相并放大倍輸送給A/D轉換器。圖 3.1.2將AD590放入0的冰水混合溶液中,A1同相輸入端的電壓應為273

14、V,同樣使A2的輸出電壓也為273V,因此A1與A2兩輸出端之間的電壓:2.732.730V即對應于0。3.3、放大電路741放大器為運算放大器中最常被使用的一種,擁有反相向與非反相兩輸入端,由輸入端輸入欲被放大的電流或電壓信號,經放大后由輸出端輸出。放大器作動時的最大特點為需要一對同樣大小的正負電源,其值由±12Vdc至±18Vdc不等,這里使用±12Vdc的電壓。741運算放大器的接腳配置如圖3.1.3圖 3.1.3741運算放大器使用時需于7、4腳位供應一對同等大小的正負電源電壓Vcc與Vcc,一旦于2、3腳位即兩輸入端間有電壓差存在,壓差即會被放大于輸出端

15、,唯Op放大器具有一特色,其輸出電壓值決不會大于正電源電壓Vcc或小于負電源電壓Vcc,輸入電壓差經放大后若大于外接電源電壓Vcc至Vcc之圍,其值會等于Vcc或Vcc,故一般運算放大器輸出電壓均具有如圖3.1.4之特性曲線,輸出電壓于到達Vcc和Vcc后會呈現飽和現象。圖3.1.43.4 A/D轉換電路單元ADC0804芯片介紹圖3.1.5:ADC0804規格與引腳分配圖本設計采用的A/D芯片為ADC0804,它是CMOS 8位單通道逐次漸近型的模/數轉換器,其規格與引腳圖如圖3所示,根據手冊我們可以得到各個引腳的大致功能如下:/CS:芯片片選信號,低電平有效,即/CS=0,該芯片才能正常工

16、作,在外接多個ADC0804芯片時,該信號可以作為選擇地址使用,通過不同的地址信號使能不同的ADC0804芯片,從而可以實現多個ADC通道的分時復用。/WR:啟動ADC0804進行ADC采樣,該信號低電平有效,即/WR信號由高電平變成低電平時,觸發一次ADC轉換。/RD:低電平有效,即/RD=0時,可以通過數據端口DB0DB7讀出本次的采樣結果。UIN(+)和UIN(-):模擬電壓輸入端,模擬電壓輸入接UIN(+)端,UIN(-)端接地。雙邊輸入時UIN(+)、UIN(-)分別接模擬電壓信號的正端和負端。當輸入的模擬電壓信號存在“零點漂移電壓”時,可在UIN(-)接一等值的零點補償電壓,變換時

17、將自動從UIN(+)中減去這一電壓。VREF/2:參考電壓接入引腳,該引腳可外接電壓也可懸空,若外界電壓,則ADC的參考電壓為該外界電壓的兩倍,如不外接,則Vref與Vcc共用電源電壓,此時ADC的參考電壓即為電源電壓Vcc的值。CLKR和CLKIN:外接RC電路產生模數轉換器所需的時鐘信號,時鐘頻率CLK = 1/1.1RC,一般要求頻率圍100KHz1.28MHz。AGND和DGND:分別接模擬地和數字地。/INT:中斷請求信號輸出引腳,該引腳低電平有效,當一次A/D轉換完成后,將引起/INT=0,實際應用時,該引腳應與微處理器的外部中斷輸入引腳相連(如51單片機的INT0,INT1腳),

18、當產生/INT信號有效時,還需等待/RD=0才能正確讀出A/D轉換結果,若ADC0804單獨使用,則可以將/INT引腳懸空。DB0DB7:輸出A/D轉換后的8位二進制結果。ADC0804模擬轉數字對照表十六進制二進制高四位低四位相對電壓值(2.56V)分別與滿刻度的比率高四位低四位F111115/1615/2564.8000.300E111014/1614/2564.4800.280D110113/1613/2564.1600.260C110012/1612/2563.8400.240B101111/1611/2563.5200.220A101010/1610/2563.2000.200910

19、019/169/2562.8800.180810008/168/2562.5600.160701117/167/2562.2400.140601106/166/2561.9200.120501015/165/2561.6000.100401004/164/2561.2800.080300113/163/2560.9600.060200102/162/2560.6400.040100011/161/2560.3200.020000000/160/25600表3.4.1根據以上對照表,可以得出以下結論如果:輸入模擬量VIN=4V,由上表可知3.840+0.160=4V 數字為11001000=C8

20、H模數轉換器ADC0804的工作分為三個過程:,復位中斷觸發信號信號  表明ADC0804轉換已經結束,它提示單片機隨時可以讀取轉換結果,是ADC0804的一個輸出信號。一般情況下,啟動A/D轉換前應該復位這個 信號,以等待新的轉換完成后ADC0804發出新的 信號,這樣才可以讀到新的轉換結果。復位 信號的時序如圖2中的A,在實現片選 ( 0)的前提下,使用一個讀信號  的下降沿就可以復位 信號。    ,啟動ADC0804的A/D轉換ADC0804中的A/D轉換器在滿足一定條件時開始一個轉換過程,這個條件就是:在實現片選 ( 0)的

21、前提下, 引腳上出現的一個上升沿。啟動A/D轉換的時序如圖2中的B,實現片選以后( 0),使用一個寫信號就可以啟動一個轉換過程。圖中 是時間延遲,時間 是轉換時間。,讀取轉換結果在A/D轉換結束以后,ADC0804的 引腳將給出一個低脈沖,如果把這個引腳直接連接到單片機的外部中斷引腳P3.或P3.,這個低脈沖將引起單片機中斷,單片機可以在中斷處理程序中讀取ADC0804的轉換結果。實驗中我們由CH0輸入模擬量,DO輸出數字量。我們把AD0832的CS、CLK、D0、DI端分別連接在P3.3、P3.2,P3.1,P3.0端,所以ADC0804的片選、時鐘信號、啟動位和配置位均通過置位端口實現。由

22、于是CH0輸入模擬信號,所以配置位為10。ADC0804為單端輸出模式。由于AD是串行輸入輸出,故前3個脈沖上升沿完成設置,第411個脈沖下降沿后取1位AD轉換的結果,在第1118個脈沖下降沿后第二次取AD轉換結果,將兩次結果進行比對,如果一致,則完成轉換,關ADC0804;如果不一致,則重新開始轉換。經AD轉換后,數字量D與溫度值的轉換如下所示:本設計中的A/D轉換由集成電路0804完成。0804具有一個模擬電壓輸入端口。5腳為中斷請求信號輸出引腳,該引腳低電平有效,當一次A/D轉換完成后,將引起/INT1=0,實際應用時,該引腳應與微處理器的外部中斷輸入引腳相連(如51單片機的INT0,I

23、NT1腳),當產生/INT信號有效時,還需等待/RD=0才能正確讀出A/D轉換結果。CLKR和CLKIN引腳是外接RC電路產生模數轉換器所需的時鐘信號。/CS引腳為芯片片選信號,低電平有效,即/CS=0,該芯片才能正常工作。單片機的P1、P2.0P2.2端口作為3位LED數碼管顯示控制。P0端口用作A/D轉換數據讀入,P2.6、P3.6、P3.7用作0804的A/D轉換控制。為了提高精度,擴大測量圍,在A/D轉換前還要將信號加以放大并進行零點遷移,因而一個高穩定性的、高精度的放大電路是必須的。當溫度變化時,AD590會產生電流變化,當AD590的電流通過一個10k的電阻時,這個電阻上的壓降為1

24、0mV,即轉換成10mVK,為了使此10k電阻精確,可用一個9k的電阻與一個2k的電位器串聯,然后通過調節電位器來獲得精確的10k。運算放大器A1被接成電壓跟隨器形式,以增加信號的輸入阻抗,由運放A2減去2.732做零位調整(即把絕對溫度轉成攝氏溫度),最后由運放A3反相并放大倍輸送給A/D轉換器。具體硬件連接圖如圖3.4所示。 圖3.4 AD590溫度采集與模數轉換電路3.5 CPU主控電路單元1 、89C51簡介AT89C51是美國ATMEL公司生產的低電壓 ,高性能CMOS 8位單片機,片含4k bytes的可反復擦寫的Flash只讀程序存儲器和128 bytes的隨機存取數據存儲器(R

25、AM ),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,片置通用8位中央處理器(CPU)和Flash存儲單元,功能強大的AT89C51單片機能應用許多高性價比的場合,可靈活應用于各種控制領域。圖3.5.1 89C51封裝圖89C51的主要參數(1)主要特性:4K字節可編程閃爍存儲器;壽命:1000寫/擦循環;數據保留時間:10年全靜態工作:0Hz-24Hz,三級程序存儲器鎖定,128*8位部RAM,32可編程I/O線,兩個16位定時器/計數器,5個中斷源,可編程串行通道,低功耗的閑置和掉電模式,片振蕩器和時鐘電路(2)管腳說明: VCC:供電電壓。GND:

26、接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。P2口:P2口為一個部上拉電阻的8位雙向I/O口,P

27、2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P

28、3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下所示。P3口管腳 (備選功能)P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時器0外部輸入)P3.5 T1(記時器1外部輸入)P3.6 /WR(外部數據存儲器寫選通)P3.7 /RD(外部數據存儲器讀選通)P3口同時為閃爍編程和編程校驗接收一些控制信號。RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的

29、地位字節。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE 端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ALE禁止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的 /PSEN信號將不出現。/EA/VP

30、P:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有部程序存儲器。注意加密方式1時, /EA將部鎖定為RESET;當/EA端保持高電平時,此間部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入與部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。(3)振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片振蕩器。石晶振蕩和瓷振蕩均可采用。如采用外部時鐘源驅動器件,XTAL2應不接。有余輸入至部時鐘信號要通過一個二分頻觸發器,因此對外部時鐘信號的脈寬無任何要求,但

31、必須保證脈沖的高低電平要求的寬度。(4)芯片擦除整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節被重復編程以前,該操作必須被執行。此外,AT89C51設有穩態邏輯,可以在低到零頻率的條件下靜態邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數器,串口和中斷系統仍在工作。在掉電模式下,保存RAM的容并且凍結振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止。 2、單片機電路設計l 89C51的復位電路:同時在第9腳引出一個22uF的電容和一個2

32、K的電阻接+5V的電源組成一個復位電路,如圖3.4.2所示。圖3.5.2 AT89C51復位電路原理圖l 89C51的時鐘電路:AT89C51的+5V電源由39腳引入,第19腳接地,第17腳和第18腳間由12MHz的晶振與兩個20pF的無極性電路組成一個時鐘振蕩電路,如圖3.4.3所示。圖3.5.3 AT89C51時鐘電路原理圖3.6 顯示電路單元 數碼管結構數碼管由8個發光二極管(以下簡稱字段)構成,通過不同的組合可用來顯示數字0 9、字符A F、H、L、P、R、U、Y、符號“-”與小數點“.”。數碼管的外型結構如圖圖3.6.1外型結構數碼管工作原理 共陽極數碼管的8個發光二極管的陽極(二極

33、管正端)連接在一起,通常,公共陽極接高電平(一般接電源),其它管腳接段驅動電路輸出端。當某段驅動電路的輸出端為低電平時,則該端所連接的字段導通并點亮,根據發光字段的不同組合可顯示出各種數字或字符。此時,要求段驅動電路能吸收額定的段導通電流,還需根據外接電源與額定段導通電流來確定相應的限流電阻。共陰極數碼管的8個發光二極管的陰極(二極管負端)連接在一起,通常,公共陰極接低電平(一般接地),其它管腳接段驅動電路輸出端,當某段驅動電路的輸出端為高電平時,則該端所連接的字段導通并點亮,根據發光字段的不同組合可顯示出各種數字或字符。此時,要求段驅動電路能提供額定的段導通電流,還需根據外接電源與額定段導通

34、電流來確定相應的限流電阻。圖3.6.2 數碼LED顯示電路3.7 供電電源電路本設計中采用了5V電源供電。圖3.7 供電電源電路第四章 軟件設計分析4.1 系統總流程圖在主程序中,系統上電自動復位以后首先設置堆棧,然后啟動ADC0804,開始轉換AD590測溫電路輸入的電信號,待數據轉換結束后讀入到累加器A,然后進行十進制數據轉換調整,輸出給顯示電路。主程序流程圖如圖4所示。圖4.1.1 主程序流程圖 由于ADC0804轉換后的數據是二進制數據,而七段碼LED顯示器所要顯示的數據是十進制數據,因此需要進行二、十進制數據轉換。ADC0804輸出的最大轉換值為FFH(255),由于運放放大倍,因此

35、本數字溫度計的最大測量溫度為5.V/51.0,即100。由255*=100,得知0.4,即先乘再除10。要將其變成BCD碼形式,所以可以先將AD轉換結果除以250得到百位數BCD碼;余數除以10得到十位數BCD碼,余數為小數,如果其為奇數,則小數部分為5,如果是偶數,小數部分為0。所以,十進制轉換調整流程為A/D(二進制)十進制乘顯示。程序流程圖如圖4.1.2所示。圖4.1.2十進制數據轉換調整子程序流程圖十進制轉換調整后的數據送到寄存器R5、R4中,然后通過P1口把數據輸出給D4、D3、D2、D1四個數碼顯示器中,從而最終把測得的溫度顯示出來。顯示子程序流程圖如圖4.1.3所示。圖4.1.3

36、 數據顯示程序4.2 A/D轉換的啟動與轉換結果獲取開始啟動轉換(P2.7=1,P3.6=1)A/D轉換結束?(P3.3=0)取數據(P3.7=1)讀取結束? 結束 圖4.2 A/D轉換流程圖4.3 程序實現分析由于數據采集部分由硬件AD590通過運算放大把信號輸入到ADC0804,ADC0804將輸入信號轉化成對應的二進制數,因此程序只需通過控制ADC0804的/rd和/wd端來讀取二進制即可。程序每隔50ms將當前溫度值與設定值比較一次,當小于設定溫度值時發出控制信號,即p2.1是0,該思路可用定時器T0來完成,比較判斷是否控制信號為判斷子程序中的容。 設定溫度下限部分,由于硬件

37、通過74c922來輸出對應的按鍵值,因此該程序只需讀取該值,然后轉換成對應的十進制數即可。 顯示部分:通過動態掃描實現,具體實現為當通過p1口送入數據時需將相應的控制數碼管的三極管導通,即將p1.4或p1.5輪流置1即可。3.2程序的具體實現 程序具體實現分為以下幾個步驟: (1)初始化 將用到的RAM單元30H到35H清零,其中30H用來存放當前溫度的個位數,31H用來存放當前溫度的十位數,33H用來存放設定溫度的個位數。34H用來存放設定溫度的十位數,設置定時器工作在T0模式,并設定TH0、TL0的初值。 (2)主程序循環部分 啟

38、動ADC0804開始轉換,即令/wr=0。本程序是利用movx  r0, a 來實現的,當執行該語句時,單片機的/wr置0,然后向p0口輸出數據。判斷是否按了“”鍵,如按則轉到顯示設定溫度子程序。然后檢測AD轉換是否完成,由于啟動ADC0804后,當數值轉化完成時,在INTR端發出低脈沖,因此單片機只有在接收到該低電平后才開始讀取ADC0804的數據。 調用二進制轉換子程序,將讀取的二進制數轉換成數存入30H,31H。 調用顯示子程序,然后延時掃描,再返回。 (3)二進制轉換成十進制子程序 利用DA調整指令來完成二進制到十進制的轉換。具體的實現

39、方法請參見程序。 (4)設定溫度子程序 該部分在33H,34H中,可通過三條指令 mov a , 20H ;xch A,33H ;xch a,34H (20H為按鍵數值的暫存地址)來簡潔而方便的完成。 (5)顯示子程序 利用R1要存放顯示數值的地址,這樣可方便的通過MOV A,R1;ADD A,#20H,來完成的,即將P1.5口置1 ,且保持P1口低四位不變,同理加載輸出個位數,為保證數碼管顯示亮度,每加載一次輸出顯示后要有一定的延時時間1.5ms左右即可。 (6)T0中斷子程序 進入中斷后重新初值,然后比較十位數,用MOV a,34

40、H ;CJNZ  A,T當A>=31H時,c=0,否則c1.同理用一樣方法判斷個位數。當現在溫度大于設定溫度時將P2.1口置1,否則清零,最后中斷返回。第五章 結語通過本次課程設計,我主要掌握了一下幾個方面的知識: 首先是各個芯片的功能和結構,其次是protel 99 se的畫圖。作為一個學生,發現我們掌握的知識是多么的疏淺,很多東西都是要重新拾起課本學習。另外自己鉆研精神還不夠,只想在一天之得到滿意的實驗結果,不能沉下心一點點調試?,F在想起來很慚愧,在設計的過程中發現了自己的不足之處,比如編程問題,硬件的連接,怎樣去調試。參考文獻【1】 天漢 單片機原理與接口技術 電子工業【

41、2】 柳春鋒 Protel 99se實用教程 高等教育【3】 梁 森 自動檢測與轉換技術 機械工業【4】 任致程 經典智能電路300例 機械工業【5】 何希才 傳感器與其應用電路 電子工業【6】 還有很多來自網絡上無法說明具體出處的寶貴資料致詞感各位評委老師在百忙之中抽出寶貴的時間為我們審稿。你們的審閱是對我們論文成果的一種肯定與負責,讓我在此向你們表示最誠摯的問候:老師,您辛苦了這次論文從選題、實驗到最終完成,每一步都是在曾瑄老師的精心安排和悉心指導下完成的,傾注了老師大量的心血。她廣博的學識,豐富的經驗,嚴謹的治學態度,事業上積極進取的精神對我影響深遠。在此,謹向曾萱老師表示崇高的敬意和衷

42、心的感!曾萱老師在我撰寫論文的過程中給予我極幫助。同時,論文的順利完成,也離不開同組其他同學的關心和幫助,在此對他們表示衷心的感。在整個論文創作中,各位老師、同學和朋友給我提供了寶貴的建議和意見,使得論文順利完成。 大學三年學習時光已經接近尾聲,在此我想對我的母校,我的父母、親人們,我的老師和同學們表達我由衷的意。感我的家人對我大學三年學習的默默支持;感我的母校工程學院給了我在大學深造的機會,讓我能繼續學習與提高;感老師與同學在生活和學習上的幫助與鼓勵,所有這些都讓我三年中充滿了感動,你們! 附錄1:總原理圖:附錄:程序清單/=; 主程序 ORG 0000H AJMP MAIN ORG 003

43、0H MAIN: MOV SP,#60H MOV R4,#100 LOOP: LCALL ADCONV LCALL BCDCON LOOP1: LCALL DISPLAY DJNZ R4,LOOP1 MOV R4,#100 SJMP LOOP;/=; AD子程序;/=ADCONV:ADCS BIT P3.3 ;使能CSADCLK BIT P3.2 ;時鐘CLKADDO BIT P3.1 ;數據輸出接口ADDI BIT P3.0 ;數據輸入接口 SETB ADDI ;初始化通道選擇(CH0=10) SETB ADDO SETB ADCLK CLR ADCS ; 拉低CS端,開始AD轉換 NOP NOP SETB ADDI NOP NOP SETB ADCLK ;拉高CLK端 NOP NOP CLR ADCLK ;:拉低CLK端,形成下降沿1 SETB ADDI SETB ADCLK ;:拉高CLK端,形成上升沿1 N

溫馨提示

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

評論

0/150

提交評論