微機原理與接口課程設計溫度控制系統(tǒng)_第1頁
微機原理與接口課程設計溫度控制系統(tǒng)_第2頁
微機原理與接口課程設計溫度控制系統(tǒng)_第3頁
微機原理與接口課程設計溫度控制系統(tǒng)_第4頁
微機原理與接口課程設計溫度控制系統(tǒng)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、信息科學與技術學院微機原理與接口課程設計課 程 題 目:溫度控制系統(tǒng) 學 生 姓 名: 唐維 學 號: 2009082208 專業(yè)、年級 : 計科 09 級1 班 指 導 教 師: 周濤 時 間: 2012年1月12日 目錄 1題目及要求31.1 題目:設計一個溫度控制系統(tǒng)31.2 要求:32. 功能設計32.1 功能模塊32. 2 adc0809與8255的連接52.3系統(tǒng)流程圖72.3.2 bcd碼轉換子程序92.3.3.顯示子程序92.3.4.溫度值設置子程序93.詳細設計113.1 系統(tǒng)工作原理113.2 系統(tǒng)硬件選擇和設計113.3 adc0809123.4 8279鍵盤、顯示接口電

2、路143.4.3 led顯示器工作原理173.5系統(tǒng)軟件設計184.總結195.參考文獻196.附:源程序191題目及要求 1.1 題目:設計一個溫度控制系統(tǒng) 1.2 要求: 1)、檢測 2)、數(shù)碼管顯示 3)、報警2. 功能設計2.1 功能模塊 2.1.1 溫度測量和控制部分 1)溫度測量部分 ad590是ad公司生產的一種精度和線度較好的雙端集成傳感器,其輸出電流與絕對溫度有關,對于電源電壓從5-10v變化只引起1ua最大電流的變化或1攝氏度等效誤差。圖4-1給出了用于獲得正比于絕對溫度的輸出電流的基本溫度敏感電路。ad590輸出的電流i=(273+t)ua(t為攝氏溫度)。因此測量的電壓

3、v為(273+t)ua×10k=(2.73+t/100)v,為了將電壓測量出來,又務必使電流i不分流出來。使用電壓跟隨器使其輸出電壓v2等于v 。由于一般電源供應多器件之后,電源是帶雜波的,因此使用穩(wěn)壓二極管作為穩(wěn)壓元件,再利用可變電阻分壓,其輸出電壓v1需調至2.73v。差動放大器其輸出v0 為(100k/10k)×(v2-v1)=t/10,如果現(xiàn)在為攝氏28,輸出電壓為2.8v。 輸出電壓接ad轉換器,那么ad轉換輸出的數(shù)字量就和攝氏溫度成線性比例的關系。 圖2-1溫度測量部分2)溫度控制部分 當pc6為高電平時,三極管導通,繼電器吸合,向加熱系統(tǒng)輸出12v電壓加熱;反

4、之,輸入低電平,三極管截止,繼電器斷開,停止加熱。在圖4-中,二極管的作用是吸收繼電器端開時產生的浪涌電壓。 圖2-2溫度控制部分2.1.2 adc0809與8255的連接模擬輸入通道地址a,b,c直接接地,因此adc0809只對通道in0輸入的電壓進行模數(shù)轉換。為了減少輸入噪聲其他通道直接接地。adc0809的數(shù)據(jù)線d0-d7與8255的pb0-pb7相連接。其片選cs與8086的地址/數(shù)據(jù)總線ad14相連接。 圖2-3 adc0809與8255的連接2.1.3 8086的可編程外設接口電路8255的數(shù)據(jù)口d0-d7與cpu的6根控制線相連接,控制8255a內部的各種操作??刂凭€reset用

5、來使8255a復位。cs和地址線a1及a0用于芯片選擇和通道尋址。分別與8086的高位地址線a19,a1,a0相連接。圖 2-4 8086的可編程外設接口電路2.4 數(shù)據(jù)顯示部分 圖2-5 數(shù)據(jù)顯示部分 圖2-6 系統(tǒng)硬件原理圖2.3系統(tǒng)流程圖 2.3.1 主程序 通過開始界面,顯示提示信息,調用溫度子程序,設置溫度。通過模數(shù)轉換器采集ad值并求其平均值。調用bcd碼轉換子程序將其轉換為十進制溫度值;調用顯示子程序,如果溫度高于實際溫度,就加熱,反之撥動開關關閉,停止加熱。在此過程中,還可以重復設置溫度值。其流程圖如圖2-7所示。n開始系統(tǒng)初始化顯示提示信息調用溫度值設置子程序實際溫度低于給定

6、值pa0=1加熱8255 pc6口=1停止加熱8255 pc6口=0顯示提示信息調用溫度值設置子程序重新設置溫度并將pa0撥到0 以進行重新調節(jié)有鍵按下返回采集ad值并求其平均值調用bcd碼轉換子程序將其轉換為十進制溫度值調用顯示子程序yynnn 圖2-7主程序 2.3.2 bcd碼轉換子程序 設定溫度為0攝氏度時變換放大電路送出的模擬量為0.0v,此時a/d輸出的數(shù)字量為00h;溫度為76.5時變換器送出對應電壓4.98v,此時a/d輸出的數(shù)字量為ffh,即每0.3對應1lsb的變化量,對應電壓值為19.5mv。 報警溫度設定為76.8,此時,輸出電壓約為5.0v左右。 其流程圖如圖2-8所

7、示。通過移位得到組合bcd碼bcd碼轉換子程序將采集得到的平均值乘以0.3 轉換為溫度值返回對其進行非壓縮bcd碼乘法調整 圖2-8 bcd碼轉換子程序2.3.3.顯示子程序采用動態(tài)顯示方式,其流程圖如圖2-9所示。2.3.4.溫度值設置子程序 問了避免加熱溫度過高,在程序設計中加了一條,即設定值不能大于76.8否則就認為有錯系統(tǒng)報警。其流程圖如圖2-10所示。溫度設置子程序顯示子程序 鍵入溫度值十位上的數(shù)值將它存于di返回聲音報警并顯示錯誤信息返回將溫度值存于di+1設置溫度大于76將十位上的數(shù)值左移四位并與個位上的數(shù)值既得溫度值鍵入溫度值個位上的數(shù)值將它存于di+1返回延時顯示溫度值十位上

8、的數(shù)值通過查表指令得到對應的數(shù)碼管的斷碼得到溫度值十位上的數(shù)值取出(bl)中的溫度值延時顯示溫度值個位上的數(shù)值通過查表指令得到對應的數(shù)碼管的斷碼得到溫度值各位上的數(shù)先將十進制溫度值(al)送到(bl) 圖2-10溫度設置子程序圖2-9顯示子程序3.詳細設計 3.1 系統(tǒng)工作原理 1)溫度測量顯示部分溫度通過ad590溫度傳感集成芯片,將溫度變化量轉換成電壓值變化量,經過op07一級跟隨后輸入到電壓放大電路,放大后的信號輸入到a/d轉換器將模擬信號轉換成數(shù)字信號,然后將該數(shù)字信號通過然間編程轉化為十進制bcd碼,并送到8279進行溫度值的顯示。2) 溫度控制部分溫度的上升或下降,通過給加熱系統(tǒng)通

9、斷電來實現(xiàn)。當需要加熱時,8255的pc6輸出低電平,啟動加熱系統(tǒng)。當需要降溫時,8255的pc6輸出高電平,關閉加熱系統(tǒng)。加熱或降溫的控制信號通過8255的pa0讀取撥動開關的狀態(tài)來實現(xiàn)。 3.2 系統(tǒng)硬件選擇和設計 1)系統(tǒng)擴展接口的選擇 本次設計采用的是8086微處理器,選擇8255a可編程并行接口作為系統(tǒng)的擴展接口,8255a的通用性強,適應靈活,通過它cpu可直接與外設相連接。 2)溫度傳感器與ad轉換器的選擇本系統(tǒng)選用溫度傳感器ad590構成測溫系統(tǒng)。ad590是一種電壓輸入、電流輸出型集成溫度傳感器,測溫范圍為-55150,非線性誤差在±0。30,其輸出電流與溫度成正比

10、,溫度沒升高1k(k為開爾文溫度),輸出電流就增加1ua。其輸出電流i=(273+t)ua。本設計中串聯(lián)電阻的阻值選用2k,所以輸出電壓v+=(2730 + 10t)mv.另外,為滿足系統(tǒng)輸入模擬量進行處理的功能,對其再擴展一片adc0809,以進行模擬數(shù)字量轉化。 3)顯示接口芯片為滿足本次設計溫度顯示的需要,我們選擇了8279芯片,intel8279芯片是一種通用的可編程的鍵盤、顯示接口器件,單個芯片就能完成鍵盤鍵入和led顯示控制兩種功能。備注:系統(tǒng)硬件接線應盡量以插接形式連接,這樣便于多用途使用和故障的檢查和排除。3.3 adc08091)adc0809概述adc0809是采樣分辨率為

11、8位的、以逐次逼近原理進行模數(shù)轉換的器件。其內部有一個8通道多路開關,它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進行a/d轉換。2) adc0809的主要特性1)8路輸入通道,8位ad轉換器,即分辨率為8位。 2)具有轉換起??刂贫?。 3)轉換時間為100s4)單個5v電源供電 5)模擬輸入電壓范圍05v,不需零點和滿刻度校準。 6)工作溫度范圍為-4085攝氏度 7)低功耗,約15mw。3) 內部結構 3.1)adc0809的內部邏輯結構由下圖可知,adc0809由一個8路模擬開關、一個地址鎖存與譯碼器、一個a/d轉換器和一個三態(tài)輸出鎖存器組成。多路開關可選通8個模擬通

12、道,允許8路模擬量分時輸入,共用a/d轉換器進行轉換。三態(tài)輸出鎖器用于鎖存a/d轉換完的數(shù)字量,當oe端為高電平時,才可以從三態(tài)輸出鎖存器取走轉換完的數(shù)據(jù)。 圖2-11 adc0809的內部邏輯結構 3.2)外部特性(引腳功能)adc0809芯片有28條引腳,采用雙列直插式封裝,如圖1323所示。下面說明各引腳功能。 in0in7:8路模擬量輸入端。 2-12-8: 8位數(shù)字量輸出端。adda、addb、addc:3位地址輸入線,用于選通8路模擬輸入中的一路ale:地址鎖存允許信號,輸入,高電平有效。 start: ad轉換啟動脈沖輸入端,輸入一個正脈沖(至少100ns寬)使其啟動(脈沖上升沿

13、使0809復位,下降沿啟動a/d轉換)。 eoc: ad轉換結束信號,輸出,當ad轉換結束時,此端輸出一個高電平(轉換期間一直為低電平)。 oe:數(shù)據(jù)輸出允許信號,輸入,高電平有效。當ad轉換結束時,此端輸入一個高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。clk:時鐘脈沖輸入端。要求時鐘頻率不高于640khz。 ref(+)、ref(-):基準電壓。 vcc:電源,單一5v。 gnd:地。 3.3)adc0809的工作過程首先輸入3位地址,并使ale=1,將地址存入地址鎖存器中。此地址經譯碼選通8路模擬輸入之一到比較器。start上升沿將逐次逼近寄存器復位。下降沿啟動 ad轉換,之后eoc輸出信號

14、變低,指示轉換正在進行。直到ad轉換完成,eoc變?yōu)楦唠娖?,指示ad轉換結束,結果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當oe輸入高電平 時,輸出三態(tài)門打開,轉換結果的數(shù)字量輸出到數(shù)據(jù)總線上。3.4 8279鍵盤、顯示接口電路intel8279是一種通用的可編程序的鍵盤、顯示接口器件,單片器件就能夠完成鍵盤輸入和顯示控制兩種功能。鍵盤部分提供一種掃描的工作方式,可以和具有64個按鍵的矩陣鍵盤相連接,能對鍵盤不斷掃描,自動消抖,自動識別按下的鍵并給出編碼,能對雙鍵或n鍵同時按下實行保護。顯示部分為發(fā)光二極管、熒光管及其它顯示器提供了按掃描方式工作的顯示接口,它為顯示器提供多路復用信號,可以顯

15、示多達16位的字符或數(shù)字。intel 8279的邏輯符號如圖7-28所示。它用于8085、mcs-51系統(tǒng)。它最多可外接8x8的鍵盤及16x8的七段數(shù)碼顯示器。 圖3-4 8279的邏輯符號 3.4.1 8279管腳、引線及功能說明8279為40列引腳封裝,詳細說明如下: d0d7(數(shù)據(jù)總線):雙向、三態(tài)總線。用于和系統(tǒng)數(shù)據(jù)總線相連,在cpu 和8279之間傳遞命令或數(shù)據(jù)。clk(系統(tǒng)時鐘):輸入線。用于8279內部定時,以產生其工作所需時序。reset(復位):輸入線,高電平有效。當復位信號reset=1時,8279被復位。 (片選):輸入線,低電平有效。當 =0時,8279被選中,允許cp

16、u對其進行讀、寫操作,否則被禁止。a0(緩沖器地址):輸入線。當a0=1時,若cpu進行寫操作,則寫入字節(jié)是命令字。若進行讀操作,則從8279讀出的字節(jié)是狀態(tài)字。當a0=0時,寫入字節(jié)或讀出字節(jié)均為數(shù)據(jù)。、(讀、寫信號):輸入線,低電平有效。這兩個來自cpu的控制信號,控制8279的讀寫操作。irq(中斷請求):輸出線,高電平有效。在鍵盤工作方式中,當fifo/傳感器ram中存有數(shù)據(jù)時,irq為高電平,向cpu提出中斷申請。cpu每次從ram中讀出一個字節(jié)數(shù)據(jù)時,irq就變成低電平。如果ram中還有未讀完的數(shù)據(jù),irq將再次變?yōu)楦唠娖?,再次提出中斷申請求。在傳感器工作方式中,每當檢測到傳感器狀

17、態(tài)變化時,irq就出現(xiàn)高電平。sl0sl3(掃描線):輸出線。這四條輸出線用來掃描鍵盤和顯示器。它們可以編程設定為編碼輸出(16中取1)或譯碼輸出(4中取1)。rl0rl7(回復線):輸入線。它們是鍵盤矩陣或傳感器矩陣的列信號輸入線。shift(移位信號):輸入線,高電平有效。該輸入信號是8279鍵盤數(shù)據(jù)的次高位d6,通常用來補充鍵盤開關的功能,可以用作鍵盤上下?lián)豕δ苕I。在傳感器方式和選通方式中,shift無效。cntl/stb(控制/選通):輸入線,高電平有效。  在鍵盤方式時,該輸入信號是鍵盤數(shù)據(jù)的最高位d7,通常用來擴充鍵開關的控制功能,作為控制功能鍵用。在傳感器方式

18、下,cntl信號無效。在選通輸入方式下,該信號的上升沿可將來自rl0rl7的數(shù)據(jù)存放入fifo ram中。outa0outa3 (a組顯示信號):輸出線。outb0outb3 (b組顯示信號):輸出線。這兩組引線均是顯示信息輸出線,它們與多路數(shù)字顯示的掃描線sl0sl3同步。兩組可以獨立使用,也可以合并使用。(消隱顯示):輸出線,低電平有效。該輸出信號在數(shù)字切換顯示或使用顯示消隱命令時,將顯示消隱。 3.4.2 命令格式與命令字8279的操作方式是通過cpu對8279送入命令時來實現(xiàn)編程的。當數(shù)據(jù)選擇端a0置1時,cpu對8279寫入數(shù)據(jù)為命令字,讀出的數(shù)據(jù)為狀態(tài)字。8279共有八條命令。其功

19、能及命令字定義分述如下。1、鍵盤/顯示方式設置命令字命令格式:d7 d6 d5 d4 d3 d2 d1 d0000ddkkk其中:d7、d6、d5=000方式設置命令特征位。d d(d4、d3):來設定顯示方式,其定義如下:00:8個字符顯示,左入口00:16個字符顯示,左入口00:8個字符顯示,右入口00:16個字符顯示,右入口 所謂左入口,即顯示位置從最左一位(最高位)開始,以后逐次輸入的顯示字符逐個向右順序排列; 所謂右入口,即顯示位置從最右一位(最低位)開始,以后逐次輸入的顯示字符時,已有的顯示字符逐個向左順序移動。 kkk(d2、 d1、 d0):用來設定七種鍵盤、顯示工作方式2、讀

20、顯示ram命令命令格式:d7 d6 d5 d4 d3 d2 d1 d0011aiaaaa其中:d7d6d5 =011為讀顯示ram命令字的特征位。該命令用來設定將要讀出的顯示ram地址。aaaa(d3、d2、d1、d0)用來尋址顯示ram命令字的特征位。由位顯示ram中有16個字節(jié)單元故需要4位尋址。ai(d4)為自動增量特征位。當ai=1時,每次讀出后地址自動加1指向下一地址。5寫顯示ram命令命令格式:d7 d6 d5 d4 d3 d2 d1 d0100aiaaaa其中:d7d6d5 =100為寫顯示ram命令字的特征位。在寫顯示器ram之前用該命令用來設定將要寫入的顯示ram地址。 aa

21、aa(d3、d2、d1、d0)為將要寫入的存儲單元地址。ai(d4)為自動增量特征位。當ai=1時,每次寫入后地址自動加1指向下一次寫入地址。3.4.3 led顯示器工作原理發(fā)光二極管組成的顯示器事單片機應用產品中最常用的廉價輸出設備。它由若干個發(fā)光二極管按一定的規(guī)律排列而成。當某一個發(fā)光二極管導通時,相應的一個點或一個比劃被點亮,控制不同組合的二極管導通,就能顯示出多種字符。常見led數(shù)碼管的外形及內部結構如圖3-4-3-1 所示。 圖3-4-3-2屬于共陽極結構,圖3-4-3-3采用共陰極結構。圖3-4-3-1 圖3-4-3-2 圖3-4-3-3圖 3-4-3 led顯示器工作原理通過控制

22、管腳a、b、c、d、e、f、g、dp的電平即可獲得所需的符號顯示。顯示器的工作方式有兩種,一種是靜態(tài)顯示:當顯示器顯示某一個字符時,相應的發(fā)光二極管恒定地導通或截止。另一種事本次設計中采用的動態(tài)顯示方式:所謂動態(tài)顯示即一位一位輪流的點亮各位顯示器,對于每一位顯示器來說,每隔一段時間點亮一次。但由于時間間隔很小,我們就可以看到完整的顯示了。3.5系統(tǒng)軟件設計本設計的目的是以8086微處理器為控制器,將溫度傳感器輸出的小信號經過放大和低通濾波后,送至a/d轉換器;微控制器實時采集、顯示溫度值(要求以攝氏度顯示),同時系統(tǒng)還應可設定、控制溫度值,使系統(tǒng)工作在設定溫度。4.總結 通過本次課程設計,學到

23、了很多東西,也突然發(fā)現(xiàn)以前學到的東西太少了,沒有積累足夠的知識來讓自己強大。所以,剛開始時,很迷茫,不知如何下手。之后,在在網上查了下資料,大部分都是單片機實現(xiàn)的。單片機是我們還沒學的知識。所以,第一次拿著單片機的程序給老師檢查的時候,老師給了我些很寶貴的建議,讓我們用學過的仿真軟件來實現(xiàn)。于是,我們重新開始查資料,做了這次的課程設計。收獲很多。以后,一定會更努力學習的。加油加油。5.參考文獻1 戴梅蕚 微型計算機技術及應用2007 清華大學出版社 2 朱善君 匯編語言程序設計 1998.3 清華大學出版社6.附:源程序csad equ 209hz8279 equ 212hd8279 equ

24、210hledmod equ 00h;; 左邊輸入,八位顯示外部譯碼八位顯示ledfeq equ 38h; 掃描頻率ledcls equ 0c1h; 清除顯示ramz8255 equ 21bhz8255a equ 218hz8255c equ 21ahcount equ 8data segmentdata1 db 4 dup(?)mess1 db "enter any key to begin!" ,0dh,0ah,"$"mess2 db 10, 13,"enter any key can exit to dos!" ,0dh,0ah

25、,"$"mess3 db 10, 13,"input the temperature value:","$"mess4 db 10, 13,"input value error!",0dh,0ah,"$" mess5 db 10, 13,"input a new temperature value:","$"mess6 db 10, 13,"* let pa0=0 to adjust the temperature value!*",0

26、dh,0ah,"$" mess7 db 10, 13,"* let pa0=1 to input a new temperature value!*", 0dh,0ah,"$"led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39hdata endsstack segment 'srack'sta dw 50 dup(?)top equ length stastack endscode segmentassume cs: code,ds: data,es: d

27、ata,ss: stackstart: mov ax, data mov ds, ax mov es, ax mov ah,09h ; 顯示提示信息一 mov dx,offset mess1 int 21h mov ah,09h ; 顯示提示信息六 mov dx, offset mess6 int 21h mov ah,09h ; 顯示提示信息七 mov dx, offset mess7 int 21h mov ah,08h int 21h mov ah,09h ; 顯示提示信息三 mov dx, offset mess3 int 21h call input ; 輸入設置的溫度值存data1

28、 ok: mov dx,z8255 ; 設置a口為輸入,c口為輸出 mov al,92h out dx,al mov dx,z8255c mov al,00h out dx,al call delay call delay mov dx,z8279 ; 初始化8279 mov al,ledmod out dx,al mov ah,09h ; 顯示提示信息二 mov dx,offset mess2 int 21hbegin: mov bx,0 mov cl,count mov ch,0bb: mov dx,csad ; 啟動a/d mov ax,0 out dx, al call delay i

29、n al,dx ; 采樣a/d值 adc bx,ax ; 求平均值 loop bb mov ax,bx rcr ax,1 rcr ax,1 rcr ax, 1 call changetobcd ; 轉化為十進制的溫度值 mov di, offset data1 mov di+3 , al call dis mov di, offset data1 mov bl,di+2 ; 取輸入值 mov al,di+3 ; 取實際值 cmp al,bl ; 實際值與輸入值比較 jb up ; 小于則加熱 mov dx,z8255a ; 否則讀開關量 in al,dx and al,01h jz down ; pa0=0 則停止加熱 mov ah, 09h; pa0=1 則設置新的溫度值,并將pa0切換到0進行新的控制調節(jié) mov dx,offset mess5 int 21h call input jmp beginup: mov al,40h jmp aadown: mov al,00haa: mo

溫馨提示

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

評論

0/150

提交評論