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