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