基于單片機的溫度控制系統 The Design of Temperature Control System Based on SCM 摘 要 本文提出的溫度采集控制系統以單片機(AD590)為核心,由控制部分、顯示部分和溫度測量部分組成。該系統大部分功能通過硬件來實現,電路簡單明了,系統穩定性很高。 這套溫度控制系統可以方便地實現溫度測量、溫度顯示等功能,并通過與單片機連接的鍵盤可以實時設定測控溫度的下限,還可以連接相應的外圍電路,在收到單片機發出的指令后對環境進行檢測 本文首先描述系統硬件工作原理,并附以系統結構框圖加以說明,著重介紹了本系統所應用的各硬件模塊的功能和它的工作過程;其次,詳細闡述了程序的各個模塊及其實現過程。本系統的主要設計思想是以硬件為基礎,軟件和硬件相結合,最終實現各個模塊的功能。
1 引 言在國民經濟各部門,如電力、化工、機械、冶金、農業、醫學以及人們的日常生活中,溫度檢測是十分重要的。在許多模擬量控制和監視應用中,溫度測控通常是基于 -40℃~125℃溫度范圍內的應用,如環境監測、蔬菜大棚、糧庫、熱電偶冷端溫度補償、設備運行的可靠性等應用。實時采集溫度信息,及時發現潛在故障,并采取相應的處理措施,對確保設備良好運行具有重要意義。 本文介紹了一個基于單片機的溫度控制系統,該系統可以方便地實現溫度采集、溫度顯示等功能。本系統的溫度控制部分采用單片機完成。單片機有著體積小、功耗低、功能強、性能價格比高、使用電子元件較少、內部配線少、制造調試方便等顯著優點,將其用于溫度檢測和控制系統中可大大地提高控制質量和自動化水平,具有良好的經濟效益和推廣價值。利用單片機對溫度進行測控的技術,日益得到廣泛應用。 在眾多的溫度控制系統中,測溫元件常常選用熱敏電阻、半導體測溫二極管、三極管、集成溫度傳感器等。相比而言,集成溫度傳感器具有線性好、穩定度高、互換性強、易處理等突出優點,故在許多場所得到了廣泛應用。本系統中單片機作為下位機,完成測溫任務,并通過與單片機連接的鍵盤可以實時設定測控溫度的下限。本系統還可以連接相應的外圍加熱電路,當環境溫度低于設定下限溫度時,單片機發出的指令,加熱器起動對環境進行加熱,當溫度回升到下限溫度時加熱器停止加熱。為了便于操作,還設計一個簡單的操作面板,它主要由鍵盤與按鈕開關組成,通過操作面板可以進行系統的開停、RESET、設置溫度下限告警值等。鍵盤輸入部分采用了鍵盤專用IC74C922,簡化了軟件編程,用起來非常方便。 系統軟件主要由初始化程序、主程序、監控顯示程序等組成。其中初始化程序是對單片機的接口工作方式,A/D轉換方式等進行設置;顯示程序包括對顯示模塊的初始化、顯示方式設定及輸出顯示;主程序則完成對采集數據進行處理。 該系統應用范圍相當廣泛,同時采用單片機技術, 由于單片機自身功能強大,因而系統設計簡單,工作可靠,抗干擾能力強,也可在此基礎上加入通信接口電路,實現與上位機之間的通信。 2.1 功能與設計要求 這套溫度采集、控制系統可以方便地實現溫度測量、溫度顯示等功能,并通過與單片機連接的鍵盤可以隨時設定測控溫度的下限,還可以連接相應的外圍電路,在收到單片機發出的指令后對環境進行監測,當溫度回升到下限溫度時加熱器停止監測。 1、采集溫度并顯示溫度值。對溫度控制器而言,最基本的功能是測溫功能即能時時采集被測環境的溫度并通過顯示部分顯示出來。 2、設定測控溫度下限。溫度采集一般都具有設定限定溫度功能,即預設一個溫度值,一旦溫度低于這個溫度值,控制器就會發出提示,連接相應的外圍電路就可以對環境進行檢測。 3、采用專用直流供電電源。與其它的溫度控制器相比,本系統的溫度采集器輸出模擬電流,易受干擾。因而必須以專用直流電源供電,分別為模擬部分和數字部分提供專用電壓。 2.2 方案論證方案一 采用美國DALLAS半導體公司繼DS1820之后推出的一種該進型智能溫度傳感器DS18B20作為檢測元件,檢測范圍—55~125℃,最大分辨率可達0. 0625℃。DS18B20可以直接讀出被測溫度值,而且采用三線制與單片機相連,減少了外部的硬件電路,具有低成本和易使用的特點, 本電路由3個模塊組成;主控制器,測溫電路及顯示電路。 主控制電路; 單片機AT89C2051具有低電壓供電和小體積等特點。 顯示電路; 采用4位共陽LED數碼管,從P1口輸出段碼,到掃描用P3.0-P3.1口來實現,列驅動用9012三極管。 DS18B20與單片機的接口電路 DS18B20可以采用兩種方式供電,一種是采用電源供電方法,如圖此時DS18B20的1腳接地,2腳作為信號線,3腳接電源,另一種是寄生電源供電方式,單片機接口接單線總線,為保證有效的DS18B20時鐘周期內提供足夠的電源,可用一個MOSFET管來完成總線的上位。 當DS18B20處于寫存儲器操作和溫度A/D轉換操作時,總線上必須有強的上位,上位開啟時最大為10uA。采用寄生電源供電方式時VDD和GND端軍接地。由于單線制只有一根線,因此發送接口必須是三態的。 方案二 由AD590配以ADC0809。ADC0809是最常用的8位模數轉換器,屬于逐次逼近型。ADC0809采用單一的+5V供電,片內有帶鎖存功能的8路模擬開關,可對0—5V,8路模擬信號分時進行轉換,完成一次轉換的的時間是100US,數字輸出信號具有TTL三態鎖存器,可以直接與AT89C51相連。 2.2.1方案比較 方案一中使用DS18B20采集溫度,結構較復雜,價格也稍顯昂貴,適合較大規模的工業農業使用。成本較高故從以上兩種方案,很容易看出采用方案二,電路不僅比較簡單,軟件設計也比較簡單,故采用了方案二 系統組成方框圖 2.2.1 傳感器的選擇測量溫度有很多傳感器。熱電偶靈敏度較低,但能在很寬廣的溫度范圍內使用;熱敏電阻的工作溫度范圍較窄,但靈敏度高,有利于檢測微小溫差,其輸出特性量非線性,檢測時需要有線性化裝置;廉價的集成電路(IC)溫度傳感器性能離散度很大,用于高精度測量時,必須進行校準;測溫鉑電阻溫度系數的離散度很小,精確度高,靈敏度也較好,特別適用于1000度以下的溫度測量 ,但價格昂貴。 集成電路溫度傳感器利用了半導體PN結電流電壓特性和溫度的相關性,與熱敏電阻、熱電偶相比 ,最大優點是輸出線好,測溫精度較高。感溫部分、傳感器驅動部分、信號處理部分等電路均集成化并封閉在一個小型管殼內,使用方便。 AD590是一種集成電路溫度傳感器,作為電流輸出型傳感器的特點是,具有很強的抗外界干擾能力。其輸出電流和絕對溫度成正比。當兩端加上+4V~+30V之間的電壓時,器件呈現高阻抗,輸出電流按1uA/1.0K變化。電氣上耐用,可承受正向+44V,反向 -20V的電壓而不損壞,不必擔心管腳接錯。由于采用激光微調來較正IC內的薄膜電阻,而使AD590在298.2K(+25度)時輸出穩定的298.2uA電流。基于以上優點,本系統采用AD590作為溫度傳感器。 2.2.2 控制芯片的選擇本設計選用單片機為控制芯片是因為它有以下優點。第一,可靠性良好。單片機是按照工業控制要求所設計的,其抗工業噪聲優于一般的CPU,程序指令及常數數據都燒寫在ROM內,其許多信號通道均在同一個芯片內,因此可靠性高;第二,易擴充。單片機具有一般微電腦所必需的器件,如三態雙向總線、并行及串行的輸入/輸出引腳,可以擴充為各種規模的微電腦系統;第三,控制功能強。為了滿足工業控制的要求,單片機的指令除了輸入/輸出控制指令、邏輯判斷指令外,還有更為豐富的條件分支跳躍指令。 利用單片機的智能性,可方便的實現具有智能的數據采集和處理。在采用單片機為實現形式時,有很多種單片機可以實現數據采集、數據處理功能,通常會用以下幾種單片機來實現: 1、采用PIC來實現。美國微芯科技股份有限公司推出的采用RISC(精簡指令集)和哈佛總線(Harvard)結構的PIC系列CMOS 8位單片機,其主要特點是數據總線是8位的,而其指令總線則有12位、14位和16位3種。 2、采用AVR來實現。AVR單片機的特點:速度快、片內資源豐富、保密性好、可重復擦寫及在系統編程ISP、工作電壓范圍寬、功耗低、支持JTAG仿真、與C語言的完美配合。 3、采用AT89S52來實現。ATMEL公司生產的AT89S52單片機采用高性能的靜態設計,由先進工藝制造,并帶非易失性Flash程序存儲器。它是一種高性能、低功耗的8位CMOS微處理芯片。 AT89S52是美國ATMEL公司生產的低功耗,高性能單片機,兼容標準AT89S52指令系統及引腳。它集Flash程序存儲器既可在線編程(ISP)也可用傳統方法進行編程及能用8位微處理器于單片機中,ATMEL公司的生產AT89S52可靈活應用于各種控制領域。基于以上優點本系統采用AT89S52作為主控芯片。 3 溫度傳感器簡介溫度的測量控制一般采用各式各樣的溫度傳感器,常用的溫度傳感器及其測溫范圍(℃)為:熱電偶(-184~2300),熱電阻(-200~850),熱敏電阻(-55~300),半導體(-55~150)。根據溫度傳感器輸出方式及接口方式的不同,大體可以分為模擬溫度傳感器和數字溫度傳感器。 3.1 模擬溫度傳感器1、輸出電壓或電流信號的模擬溫度傳感器 熱電偶、熱電阻、熱敏電阻及半導體溫度傳感器都是將溫度值經過一定的接口電路轉換后輸出模擬電壓或電流信號,利用這些電壓或電流信號即可進行測量控制。如果想將這種模擬信號轉換成微處理器可以處理的信號,需利用模數轉換器將其轉換為數碼,然后由微處理器讀取即可,如圖3-1所示。 圖3-1 采用A/D接口的電路 另一種轉換方式是進行V/F變換。V/F變換器實際上是一個振蕩頻率隨控制電壓變化而變化的振蕩電路。其特點是有良好的精度、線性度和積分輸入,且電路簡單。圖3-2 為微處理器與V/F變換器及溫度傳感器的接口電路。其中V/F變換器采用AD公司的AD654。通過調整,AD654可輸出0~500kHz的脈沖串,將輸出與單片機的定時器/計數器T1相連進行計數,并用定時器T0進行定時。通過對所計的數進行計算與轉換,便可得到傳感器當前溫度值。 電壓輸出溫度傳感器的主要特點是電源電壓和電流比較低,在傳輸線路電壓降和電壓噪聲不是主要影響因素時,其電壓輸出可直接成為控制系統和數據采集系統的輸入信號。常用的電壓輸出半導體溫度傳感器有AD公司的TMP35/36/37、NS公司的LM35/45/50/60等。 在某些特殊場合,需使用電流輸出的溫度傳感器。電流輸出溫度傳感器的主要特點是輸出阻抗高,輸出電流不受傳輸線路電壓降和電壓噪聲的影響,且對電源電壓的脈動和漂移具有很強的抑制能力。電流輸出溫度傳感器欲與微處理器接口時,一般需將電流變成電壓,然后再用A/D轉換器轉換成微處理器可以處理的信號。這樣的傳感器有AD公司的AD590、TMP17等。 圖3-2 采用V/F接口的電路 2、輸出跳變信號的模擬溫度傳感器 在某些系統中,并不需要知道精確的溫度值,而只需了解溫度是否高于或低于某特定值即可。該信息可用來觸發風扇、空調、加熱器等控制單元。這種特殊的模擬溫度傳感器一般只是輸出跳變信號進行控制,通常稱之為溫度控制器。 將傳感器與比較器組合電路進行集成,使系統進一步簡化。這種集成的溫度控制器經常被稱為溫度開關。這種單片器件組合了傳感器、比較器、電壓基準和必要的電阻等多種器件。當溫度超過預設門限時,輸出電平發生跳變,控制加溫或致冷器件通斷。MAXIM公司的MAX6501/6502是熱溫開關,從廠家45℃到95℃預置了6種溫度門限。MAX6503/6504是冷溫開關,其溫度門限為-15℃和5℃兩種。MAX6501/6503為開漏輸出,低電平有效。MAX6502/6504為推拉輸出,高電平有效。MAX6501的輸出經上拉電阻后可以直接驅動微處理器的中斷或復位,如圖3-3所示。 圖3-3 采用溫度開關的接口電路 MAX6502的輸出經簡單驅動后,可以直接控制風扇工作。通過一些簡單的電路配合,還可以將其應用于溫度窗口報警。分層次控制等。這樣的芯片還有AD公司的AD22105等。 3.2 數字溫度傳感器將模擬溫度傳感器與數字轉換接口電路集成在一起,就成為具有數字輸出能力的數字溫度傳感器。隨著半導體技術的迅猛發展,半導體溫度傳感器與相應的轉換電路、接口電路以及各種其它功能電路逐漸集成在一起,形成了功能強大、精確、價廉的數字溫度傳感器。 1、單線輸出的數字溫度傳感器 單線輸出的特點是接口電路簡單,測出的溫度值精確,所以在一般應用中,這種芯片得到了偏愛。由于只有一根輸出線,測量出的溫度值必須轉換成某種方式進行輸出。常見的輸出方式有時間輸出、頻率輸出及數值輸出等,然后再由微處理器將溫度傳感器輸出的信號轉換成真實溫度值,進行進一步的處理與控制。 2、時間輸出的溫度傳感器 AD公司的TMP03/04是常用的時間輸出的數字溫度傳感器。它們輸出經過調制后的矩形波,應用中只需測得其輸出方波占空比T1/T2中T1和T2的實際時間寬度,即可計算出被測對象的溫度。與微處理器連接時只需將芯片的輸出與微處理器的定時器/計數器相連,就可很容易地測出T1、T2的時間寬度,并計算出相應的溫度值。 MAXIM公司的MAX6578也是一種輸出時間的溫度傳感器。它輸出的方波信號周期正比于絕對溫度。MAXIM公司的MAX6575 L/H芯片是另一種非常方便實用的時間輸出的溫度傳感器。它的特點是在一根I/O線上最多可以同時接8只芯片,同時測8個點位的溫度而不相互干擾。通過對管腳TS0、TS1的不同連接及選擇“L”、“H”不同型號,可以設置芯片的不同延時系數。測量溫度時,微處理器啟動轉換,經正比于絕對溫度值的延時t后,MAX6575拉低I/O線。通過測量這個延時時間t,再利用所設置的該芯片的延時系數,可以計算出該芯片所測的溫度值。由于各芯片延時系數不同,其延時時間并不會相互重疊,使用微處理器的定時器/計數器可以分別測出各個芯片的延時時間,再計算出各個芯片所測出的溫度。 3、頻率輸出的單線溫度傳感器  MAX6577是輸出頻率信號的數字溫度傳感器。它輸出占空比為1/2的方波,其頻率正比于絕對溫度。它的內部結構及使用方式與MAX6578非常相似。通過引腳TS0、TS1選擇適當的頻率/溫度比例常數,再由微處理器的內部計數器測出頻率后,計算出所測溫度。其與微處理器的接口方式如圖3-4所示。圖3-4 時間輸出的溫度傳感器 與微處理器的接口電路 4、數值輸出的單線溫度傳感器 數值輸出的單線溫度傳感器直接以串行方式輸出芯片測出的具體溫度數值,所以其時序非常重要。DALLAS公司的DS1820就是這樣一種獨特的溫度傳感器。它只需一個接口引腳即可通信,可用數據線供電,并具備多點測溫能力。 其讀寫時序主要有復位、讀時間片和寫時間片三種時序操作。芯片本身帶有命令集和存儲器,微處理器通過發出控制命令,對芯片存儲器進行讀寫,完成溫度測量。芯片電源也可由微處理器的一個I/O口提供。微處理器在讀寫DS1820前先使其復位,檢測到其應答信號后,微處理器發ROM操作命令,然后再發控制命令。多點溫度測量時,只需并聯多只DS1820并放在各測溫點上,在使用前對各個芯片進行ROM搜索并將各個芯片的序列號保存起來。以后對每個DS1820尋址時,只要發相應的序列號,然后再對其進行其它操作即可。與DS1820類似的芯片還有DS1822。 5、基于總線協議輸出的數字溫度傳感器 為了提高可靠性,方便使用,人們又設計了許多基于某種總線協議輸出的數字溫度傳感器。這種溫度傳感器一般有多根線輸出。輸出格式和時序嚴格遵守某種協議,適用于各種場合,尤其是遠端測量。常見的協議格式還有SMBus協議。 MAXIM公司的MAX1617~1619系列都是采用SMBus串行接口的遠端溫度傳感器。MAX1619用來監測PC機內CPU的溫度。它通過施加電流并測量正向結壓測量外部PN結(分立晶體管、ASIC或CPU內)的結溫,并通過SMBus二線串行接口將結果(8位精度)傳給微處理器。 4 溫度控制系統的硬件設計 4.1 AT89S51單片機簡介
AT89S51單片機是低功耗的,具有4KB在線可編程FLASH存儲器的單片機。它與通用AT89C51單片機的指令系統和管腳兼容。 AT89S51具有如下特征: - 片內程序存儲器含有4KB的Flash存儲器,允許在線編程,擦寫周期可達1000次;
- 片內數據存儲器含128字節的RAM;
- I/O口具有32根可編程I/O口;
- 具有兩個16位可編程定時器;
- 中斷系統是具有6個中斷源,5個中斷矢量,2級中斷優先級的中斷結夠;
- 串行口是一個全雙工的串行通信口;
- 具有兩個數據指針DPTR0 DPTR1;
- 低功耗節電模式有空閑模式和掉線模式;
- 包含3級程序鎖定位;
- AT89S51的電源電壓為4.0—5.5V,AT89S51的電源電壓為2.7—4.0V;
- 振蕩器頻率0-33MHZ(AT89S51),0-16MHZ(AT89LS51);
- 具有片內看門狗定時器;
- 具有斷電標志;
4.1.1 端口功能簡介P0 口:P0 口是一個 8 位漏極開路的雙向 I/O 口。作為輸出口,每位能驅動 8個 TTL 邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數據存儲器時,P0口也被作為低8位地址/數據復用。在這種模式下,P0 具有內部上拉電阻。在Flash編程時,P0口也用來接收指令字節;在程序校驗時,輸出指令字節。(程序校驗時,需要外部上拉電阻) P1 口:P1 口是一個具有內部上拉電阻的 8 位雙向 I/O 口,P1 輸出緩沖器能驅動 4個TTL 邏輯電平。對 P1 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流。此外,P1.0和P1.2分別作定時器/計數器2的外部計數輸入(P1.0/T2)和時器/計數器2的觸發輸入(P1.1/T2EX)。 P2 口:P2 口是一個具有內部上拉電阻的 8 位雙向 I/O 口,P2 輸出緩沖器能驅動 4個TTL 邏輯電平。對 P2 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數據存儲器(例如執行MOVX@DPTR)時,P2口送出高八位地址。在這種應用中,P2口使用很強的內部上拉電阻發送“1”。在使用8 位地址(如 MOVX @RI)訪問外部數據存儲器時,P2 口輸出 P2 鎖存器的內容。在Flash編程和校驗時,P2口也接收高8位地址字節和一些控制信號。 P3 口:P3 口是一個具有內部上拉電阻的 8 位雙向 I/O 口,P2 輸出緩沖器能驅動 4個TTL 邏輯電平。對 P3 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流。 除了作為I/O使用外(內部有上拉電阻),還有一些特殊功能,由特殊寄存器來設置。 RST: 復位輸入。晶振工作時,RST 腳持續 2個機器周期高電平將使單片機復位。看門狗計時完成后,RST腳輸出96個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認狀態下,復位高電平有效。 ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低 8 位地址的輸出脈沖。在Flash編程時,此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強調,在每次訪問外部數據存儲器時,ALE脈沖將會跳過。如果需要,通過將地址為8EH的SFR的第0位置 “1”,ALE操作將無效。這一位置 “1”,ALE 僅在執行MOVX 或MOVC指令時有效。否則,ALE將被微弱拉高。這個ALE 使能標志位(地址為8EH的SFR的第0位)的設置對微控制器處于外部執行模式下無效。 PSEN:外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。當AT89S52從外部程序存儲器執行外部代碼時,PSEN在每個機器周期被激活兩次,而在訪問外部數據存儲器時,PSEN將不被激活。 EA/VPP:訪問外部程序存儲器控制信號。為了能從 0000H 到 FFFFH 的外部程序存儲器讀取指令,EA必須接GND。為了執行內部程序指令,EA應該接VCC。在Flash編程期間,EA也接收12伏VPP電壓。 XTAL1:振蕩器反相放大器和內部時鐘發生電路的輸入端。 XTAL2:振蕩器反相放大器的輸出端。
元器件的選擇 1,AD590的性能特點與工作原理 AD590管腳封裝圖 AD590的基本電路圖 工作原理 AD590的內部電路如電路圖1.1所示。芯片中的R1 R2是 采用激光修正的校準電阻,它能使298.2K下的輸出電流恰好為298.2uA首先有晶體VT8 VT11產生熱力學溫度成正比的電壓信號。在通過R5 R6把電壓信號轉換成電流信號。保證良好的溫度特性,R5 R6的電阻溫度系數應非常小,這里采用激光修正的SICr薄膜電阻其電阻溫度系數低至(-30~-50)*10—6/℃。VC10的集電極電流能夠跟隨VT9和VT11的集電極電流的變化,使總電流達到額定值。R5和R6也需要在25℃的標準溫度下校準。 AD590等效于一個高阻抗的恒流源,其輸出阻抗>10M歐姆,能大大減少因電源電壓波動而產生的測溫誤差。例如,當電源電壓從5V變化到10V時,所引起的電流最大變化量僅為1uA,等價于1℃的測溫誤差。 AD590的工作電壓為+4~+30V,測溫范圍是測量范圍是-55— +150℃,對應于熱力學溫度T每變化1K,輸出電流就變化1uA。在298.15K(對應于25.15℃)時輸出電流恰好等于298.15uA。這表明,其輸出電流Io(uA)熱力學溫度T(K)嚴格成正比。電流溫度系數K1的表達式為 K1=IoT=(3k/qr)ln8 中的k、q分別為波耳茲曼常數和電子電量,R是內部集成化電阻。式中的ln8表示內部晶體管VT9與VT11的發射結等效面積之比r=S9/S11=8倍,然后再取自然對數值。將k/q=0.0862Mv/K,R=538歐姆代入式中得到 K1=Io/T=1.000uA/K 因此,輸出電流的微安數就代表著被測溫度的熱力學溫度值。AD590的電流-溫度(I-T)特性曲線如圖2-1-3所示。熱力學溫標(K)與攝氏溫標(℃)、華氏溫標(℉)的換算關系如圖2-1-4所示,有關系式 t(℃)=T(K)-273.15 t(℉)=(9/5)*t(℃)+32 。 2 ADC0809芯片 ADC0809采用逐次逼近式A/D轉換原理,可實現8路模擬信號的分時采集,片內有8路模擬選通開關,以及相應的通道地址鎖存與譯碼電路,轉換時間為100us左右。ADC0809內部中多路開關可選通8個模擬通道,允許8路模擬量分時輸入,共用一個A/D轉換芯片進行轉換。地址鎖存與譯碼電路完成對A、B、C 3個地址位進行鎖存與譯碼,其譯碼輸出用于通道選擇。8位A/D轉換器是逐次逼近式,由控制與時序電路、逐次逼近寄存器、樹狀開關以及256歐姆電阻階梯網絡組成。輸出鎖存器用于存放和輸出轉換得到的數字量。ADC0809芯片為28引腳雙列直插式封裝。 ADC0809芯片引腳的功能: IN7-IN0:模擬量輸入通道。ADC0809對輸入模擬量的要求主要有:信號單極性,電壓范圍為0-5V。 A、B、C:地址線,模擬通道的選擇信號。A為地位地址,C為高位地址。 ALE:地址鎖存允許信號。 START:轉換啟動信號。START上跳沿時,所有內部寄存器清0;START下跳沿時,開始進行A/D轉換;在A/D轉換期間,START應保持低電平。 D7-D0:數據輸出線。為三態緩沖輸出形式,可以與單片機直接相連。D0為最低位,D7為最高位。 OE:輸出允許信號。用于控制三態輸出鎖存器向單片機輸出轉換得到的數據。OE=0,輸出數據線呈高電阻;OE=1輸出轉換得到的數據。 CLK:外部時鐘信號引入端。ADC0809的內部沒有時鐘電路,所需時鐘信號由外界提供。 EOC:轉換結束信號。EOC=0,正在進行轉換;EOC=1,轉換結束。使用中該狀態信號即可以作為查詢的狀態標志,又可以作為中斷請求信號使用。 VCC:+5V電源。 VREF:參考電源。其典型值為+5V。 ADC0809與AT89S51接口 A/D轉換器芯片與單片機的接口是數字量輸入接口,其原理與并行I/O輸入接口相同,需要有三態緩沖功能,即A/D轉換器芯片須通過三態門“掛上”數據總線。ADC0809芯片已具有三態輸出功能,因此,ADC0809與AT89S51的接口比較直接。
三,單元電路設計及軟件設計 程序設計內容:ADC0809的CLK子那好由單片機的P3.3管腳提供。由于AD590的溫度變化范圍在-55℃~+150℃之間,經過10K電阻之后采樣到的電壓變化在2.182V~4.232之間,不超過5V電壓所表示的范圍,因此參考電壓取電源電壓VCC,(實測VCC=4.70V)。由此可計算出經過A/D轉換之后的攝氏溫度顯示的數據為: 如果 (D×2350/128)<2732,則顯示的溫度為-(2732-(D×2350/128)) 如果(D×2350/128)≥2732,則顯示的溫度為+((D×2350/128)-2732) - #include <AT89X52.H>
- sbit START = P3^0 ; //地址鎖存、轉換信號
- sbit OE = P3^1 ; //輸出允許信號
- sbit EOC = P3^2; //轉換結束信號
- int code shu[]={0xc0,0xf9,0xa4,0xb0,0x99,
- 0x92,0x82,0xf8,0x80,0x90,0x8e}; //0-9數字碼
- unsigned int i;
- char d;
- /*************顯示程序*************/
- xianshi()
- {
- char k;
- P1=shu[i%10]; //小數
- P2=0x01;
- for(k=0;k<100;k++);
- P1=shu[i/10%10]&0x7f; //個位
- P2=0x02;
- for(k=0;k<100;k++);
- P1=shu[i/100];//十位
- P2=0x04;
- for(k=0;k<100;k++);
- if(d==1) //判斷正負值
- {P1=0xbf;
- P2=0x08;
- for(k=0;k<20;k++);
- }
- P1=0xff;
- }
- main()
- {int j;
- while(1)
- {
- OE=1;//允許輸出
- START=1;//寄存器清零
- for(j=0;j<20;j++);
- START=0; //地址鎖存、開始進行A/D轉換
- while(EOC==0); //判斷轉換是否完成
- {i=P0;
- if((i*184)<27320)
- {d=1;
- i=27320-(i*184);// -(2732-(i*2350/128))
- i/=100;
- }
- else
- {d=0;
- i=(i*184)-27320;// +((i*2350/128)-2732)
- i/=100;}
- }
- for(j=0;j<200;j++)
- xianshi();// 顯示
- }
- }
復制代碼
四,總體電路圖 五,調試過程及測試結果 我們組仔細的檢查了硬件部分,沒有錯誤 。 我們把焊好的硬件部分通過計算機把編好的程序用單片機傳送進去。這樣完成了數字溫度計的制作,然后用一字螺絲刀對滑動變阻器進行調試,在第一次時候我們沒有達到預訂的要求 溫度的變化范圍變化太大,為了達到溫度的變化范圍我們換了小阻值的電阻,由于電流過大把電阻燒了。最后經過幾次的努力達到了技術指標的要求溫度范圍為-23.0— +19.6℃,最終我們完成了數字溫度計的全部制作。 六,主要元器件清單
完整論文下載(word格式 可編輯):
基于單片機的溫度控制系統資料.zip
(221.84 KB, 下載次數: 74)
2017-9-4 13:36 上傳
點擊文件名下載附件
基于單片機的溫度控制系統資料 下載積分: 黑幣 -5
|