[優(yōu)秀畢業(yè)設(shè)計精品] 基于單片機的電熱水壺控制系統(tǒng)的設(shè)計_第1頁
已閱讀1頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  前 言</b></p><p>  Intel公司在MCS-48系列單片微機的基礎(chǔ)上,采用HMOS技術(shù),研制出了8位高檔的MCS-51系列產(chǎn)品微機。</p><p>  該微機型在性能上有了很大的改進和提高:片內(nèi)程序存貯器容量擴大了一倍,外部程序存貯器的尋址空間擴大到64K字節(jié)。片內(nèi)數(shù)據(jù)存貯器擴大了一倍,外部數(shù)據(jù)存貯器的空間達到64K字

2、節(jié)。并行I/O口線增加到32,且可進行位處理。MCS-51設(shè)有兩個16位的定時器/計數(shù)器,且可程序設(shè)定多種工作方式。設(shè)有一個全雙工串行I/O口,可程序設(shè)定4種工作方式,設(shè)有4個8位的通用工作寄存器區(qū),可適應(yīng)多級中斷和子程序嵌套的情況,這樣可避免寄存器內(nèi)容進行棧保護操作,提高了中斷響應(yīng)速度,加速了子程序的調(diào)用,設(shè)有兩個內(nèi)部中斷源和兩個外部中斷源,一個串行口中斷源,可程序設(shè)定中斷優(yōu)先級,堆棧位置可允許設(shè)定,深度可在允許范圍內(nèi)選用。MCS-5

3、1指令系統(tǒng)增強了加,減,乘,除,比較,堆棧操作,因而運算功能大大加強。所設(shè)置的靈活的跳轉(zhuǎn)指令,不僅能充分滿足了實際應(yīng)用的需要,而且可盡量減少程序存貯空間的占用,MCS-51內(nèi)部設(shè)有可直接進行位尋址的存貯器、位處理指令、位處理累加和運算器等,因而為一種功能極強的位處理機。這為控制方面的應(yīng)用和邏輯運算提供了很大方便。</p><p>  從以上可見,MCS-51系列單片微機具有很強的功能,使用范圍廣,既可構(gòu)成功能很強

4、的復雜系統(tǒng),也可組成較簡單的應(yīng)用系統(tǒng)。</p><p>  目前,單片機在家電,工業(yè)生產(chǎn)等領(lǐng)域的應(yīng)用非常廣泛,為了適應(yīng)不同產(chǎn)品對單片機的不同要求,半導體生產(chǎn)廠家生產(chǎn)出了各種規(guī)格的單片機。本文介紹了一種以MCS-51系列單片機為控制芯片,對電熱水壺工作進行控制的方法。</p><p>  溫度檢測電路由熱電偶、運算放大器,溫度傳感器AD590等組成,直接輸出電流(1μA/K)經(jīng)運算放大器LM

5、358進行I/V轉(zhuǎn)化后,可得到電壓輸出,輸出電壓為100mV/℃,經(jīng)A/D轉(zhuǎn)換通道送到微處理器中。</p><p>  A/D轉(zhuǎn)換一般都設(shè)置在前向通道中,它將外界輸入的模擬信號轉(zhuǎn)換成計算機數(shù)據(jù)總線能接受的數(shù)字量。工程上常用的隔離方法有光電隔離器、變壓器、繼電器和集成組件等,而光電隔離器有獨特優(yōu)點得到廣泛應(yīng)用。由于該器件是通過電——光——電這種轉(zhuǎn)換來實現(xiàn)對輸出設(shè)備進行控制的,彼此之間沒有電氣連接,因而起到隔離作用,

6、隔離電壓與光電隔離器的結(jié)構(gòu)有關(guān)。</p><p>  經(jīng)實際運行表明,該方案安全、可靠,完全能夠滿足實際需要。</p><p>  1 熱水壺控制系統(tǒng)總體概述</p><p>  1.1 熱水壺的工作情況</p><p>  對于常規(guī)的電熱水壺,只要接通電源,就開始加熱,直到水沸騰后通過蒸汽來產(chǎn)生聲音報警。這種設(shè)計有下面幾個方面的不足:&

7、lt;/p><p>  如水壺中沒水,電源誤接通時也會一直加熱,容易引起事故。</p><p>  當只需要加熱到沸點以下某一溫度時,不能及時給出聲音報警信號。</p><p>  當水加熱沸騰后不能自動停止工作。</p><p>  針對以上不足,在本設(shè)計方案中,用MC-51單片機作為控制芯片,管理整個電熱水壺的工作情況,構(gòu)成了一個閉環(huán)控制系統(tǒng)

8、,而且增加了三個按鍵和六位數(shù)碼管顯示。它的工作情況和常規(guī)的熱水壺相比,有下面幾個方面的特點:</p><p>  有三個按鍵,可用來設(shè)置希望加熱到的溫度即報警的溫度。上電復位后,設(shè)置溫度初值為20度,每按一下按鍵,溫度設(shè)置值就會增加1度,整個溫度設(shè)置值在20—100度之間循環(huán)。</p><p>  這個按鍵還具有啟動電熱水壺開始工作的作用。當每次電源接通后,只有按鍵按下過之后,電熱水壺才開

9、始加熱,這樣,可以防止電源誤接通時電熱水壺一直加熱,引發(fā)事故。</p><p>  當加熱到設(shè)置溫度時,單片機會控制停止加熱,并通過蜂鳴器給出聲音提示。</p><p>  三位數(shù)碼管在設(shè)置溫度操作時顯示當前設(shè)置的溫度,另三位數(shù)碼管其余時間實時顯示電熱水壺中水的實際溫度。</p><p>  1.2 MCS-51單片機控制的總體介紹</p><

10、p>  硬件設(shè)計的總電路連接框圖如下圖:</p><p>  圖1-1 硬件設(shè)計的總電路連接框圖</p><p>  單片機控制熱水壺的硬件構(gòu)成包括8051芯片、8255芯片、地址鎖存器等組成的單片機控制電路、溫度檢測電路、A/D轉(zhuǎn)換電路、光電隔離電路、鍵盤及顯示電路和溫度加熱電路。整個系統(tǒng)的關(guān)鍵電路是單片機控制電路,是整個控制的核心,完成信號的輸入和輸出的轉(zhuǎn)換,即可將溫度檢測電路采

11、樣的輸入的信號通過A/D轉(zhuǎn)換器ADC0809進行處理加工后輸出到顯示器進行顯示,并可以通過鍵盤對溫度進行控制,如此同時當水加熱超過指定的溫度以后,蜂鳴器工作報警。并對其中部分電路編制子程序,以及相應(yīng)的軟件設(shè)計。</p><p>  2 電熱水壺控制系統(tǒng)的硬件設(shè)計</p><p>  2.1 溫度檢測電路和A/D轉(zhuǎn)換器的電路</p><p>  2.1.1 AD

12、590溫度傳感器的概念</p><p>  AD590是一種二端式的集成溫度傳感器。</p><p>  圖2-1-1 AD590引腳圖</p><p><b>  其主要技術(shù)參數(shù)有:</b></p><p>  測溫范圍為-55~+150℃。</p><p>  工作電壓為+4~+30V,由于

13、AD590是一種恒流源形式的溫度傳感器,只需在其二端加上一定工作電壓則其輸出電流隨溫度變化而變化,其線性電流輸出為1μA/。K,即溫度每變化1℃,其輸出電流變化1μA;它以熱力學溫標零點作為零輸出點,因此在25℃時,其輸出電流為298.2μA。</p><p>  精度:經(jīng)過激光平衡調(diào)整,AD590的校準精度可達+和-0.5℃,全溫區(qū)范圍線性度可達+和-0.3℃(AD590M)當其在10℃溫區(qū)范圍內(nèi)校正后測量,精

14、度可達+和-0.1℃,在全溫區(qū)范圍內(nèi)(-55~+145℃)使用,精度也可高達+、-1℃。</p><p>  由于AD590是一種電流型的溫度傳感器,因此具有較強的抗干擾能力,適用于計算機進行遠距離溫度測量和控制,遠距離信號傳遞時,可采用一般的雙絞線來完成,其電阻比較大,因此不需要精密電源對其供電,長導線上的壓降一般不影響測量精度;不需要溫度補償和專門的線性電路。</p><p>  2.

15、1.2 溫度檢測電路</p><p>  圖2-1-2 電源轉(zhuǎn)換電路</p><p>  在介紹溫度檢測電路之前,首先要說明一下電源轉(zhuǎn)換電路。電壓經(jīng)過四個二極管兩兩導通整流濾波后,再經(jīng)過電壓轉(zhuǎn)換芯片7805就可以將原來交流220V的電壓轉(zhuǎn)換成直流電壓為+5V,即可以得到報警電路和溫度檢測電路所需要的電壓值。</p><p>  溫度檢測電路由溫度傳感器AD590等

16、組成,直接輸出電流1μA/K,輸出電壓為100mV/℃,經(jīng)運算放大器LM358進行I/V轉(zhuǎn)化后,再經(jīng)A/D轉(zhuǎn)換通道送到微處理器中,R6、R5、R2用于相互配合調(diào)節(jié)溫度測量的滿刻度值。</p><p>  圖2-1-3溫度檢測電路</p><p>  當傳感器AD590所處溫區(qū)發(fā)生1℃的溫度變化時,流過其所在回路的電流即產(chǎn)生1μA的變化,則其輸出電壓的變化為: ΔV0=1μA/℃*

17、100KΩ=100mV/℃</p><p>  AD590的輸出電流值說明如下:</p><p>  其輸出電流是以絕對溫度零度(-273℃)為基準,每增加1℃,它會增加1μA輸出電流,因此在室溫25℃時,其輸出電流Io=(273+25)=298μA。Vo的值為Io乘上10K,以室溫25℃而言,輸出值為2.98V(10K×298μA)。 量測Vo時,不可分出任何電流,否

18、則量測值會不準。 AD590的輸出電流I=(273+T)μA(T為攝氏溫度),因此量測的電壓V為(273+T)μA ×10K= (2.73+T/100)V。[8]</p><p>  在本論文中通過溫度集成器AD590對外部-55~+150℃范圍內(nèi)的溫度進行采樣,在AD590的兩端分別接地和接電源,得到一定的壓差,因此會得到相應(yīng)的工作電壓,其輸出電流會隨溫度變化而變化。電流1μA/K其輸出電壓

19、為100mV/℃,經(jīng)運算放大器LM358進行I/V轉(zhuǎn)化后,再送入A/D轉(zhuǎn)換電路中進行模數(shù)轉(zhuǎn)換,經(jīng)過微處理器處理即可送到LED顯示器顯示溫度。</p><p>  2.1.3 A/D轉(zhuǎn)換器電路原理和電路接口圖</p><p>  A/D轉(zhuǎn)換一般都設(shè)置在前向通道中,它將外界輸入的模擬信號轉(zhuǎn)換成計算機數(shù)據(jù)總線能接受的數(shù)字量。在前向通道必須配置A/D轉(zhuǎn)換電路時,首先考慮的是能否選用帶有A/D的

20、單片機,本論文中無法選擇單片機片內(nèi)有A/D部件,則必須在前向通道中配置A/D接口。要選擇好的A/D轉(zhuǎn)換器芯片,選擇A/D轉(zhuǎn)換芯片的原則從轉(zhuǎn)換精度、轉(zhuǎn)換速度、模擬信號輸入通道數(shù)以及成本、供貨來源等全面考慮。選擇不同的A/D轉(zhuǎn)換芯片,與單片機的接口電路要求不同,必須依芯片對控制電路的要求設(shè)置,接口電路必須滿足這些要求。一般來說,A/D轉(zhuǎn)換芯片輸入的模擬電壓都有規(guī)定的要求,如0~+5V,0~+10V,0~+2V等,因此要考慮到傳感器輸出信號與

21、之匹配。</p><p>  本論文中采用逐次逼近法A/D轉(zhuǎn)換器電路原理。其主要原理為:將一待轉(zhuǎn)換的模擬輸入信號U1n與一個推測信號Ur相比較,根據(jù)推測信號大于還是小于輸入信號來決定增大還是減少該推測信號相等時,向D/A轉(zhuǎn)換器輸入的數(shù)字就是對應(yīng)模擬輸入量的數(shù)字量。</p><p>  其“推測”值的算法如下:使二位進制計數(shù)器中(輸出鎖存器)的每一位從最高位起依次置1,每接一位時,都要進行測

22、試。若模擬輸入信號U1n小于推測信號U1,則比較器輸出為零,并使該位清零;若模擬輸入信號U1n大于推測信號U1,比較器輸出為1,并使該位保持位1。無論哪種情況,均應(yīng)繼續(xù)比較下一位,直到最末位為止。此時,D/A轉(zhuǎn)換器的數(shù)字輸入即為對應(yīng)模擬輸入信號的數(shù)字量,將此數(shù)字輸入就完成了A/D轉(zhuǎn)換過程。</p><p>  1.A/D轉(zhuǎn)換器的引腳說明:</p><p>  ADC0809是CMOS集成電

23、路8位單片A/D轉(zhuǎn)換器。</p><p>  雙列直插28引腳封裝。片內(nèi)有8路模擬開關(guān)、模擬開關(guān)的地址鎖存與譯碼電路、比較器 、256R電阻T型網(wǎng)絡(luò)、樹狀電子開關(guān)、逐次逼近寄存器SAR、三態(tài)輸出鎖存,緩沖器、控制與時序電路等。</p><p>  ADC0809引腳功能說明如下:</p><p>  IN0——IN7:8路輸入通道的模擬量輸入端。</p>

24、<p>  A、B、C口:8路模擬開關(guān)的三位地址輸入端,用來選擇8路模擬輸入的一路進行A/D轉(zhuǎn)換。 </p><p>  ALE: 地址鎖存允許。ALE有效將三位地址A、B、C鎖存到地址鎖存器中。</p><p>  START:為啟動控制輸入端。它與ALE可以接在一起,當通過程序加上一個正脈沖便立即開始A/D轉(zhuǎn)換。</p><p>  EOC: 轉(zhuǎn)

25、換結(jié)束信號輸出端,高電平有效。在此輸出端供給一個有效信號則打開三態(tài)輸出鎖存緩沖器,把轉(zhuǎn)換后的結(jié)果送至外部數(shù)據(jù)線。</p><p>  COLCK:時鐘輸入端。CLOCK為600kHZ時,轉(zhuǎn)換時間位100us。</p><p>  D0——D7:8位數(shù)字輸出段。</p><p>  Vcc: 電源輸入端。</p><p><b> 

26、 GND:接地端。</b></p><p>  2.A/D轉(zhuǎn)換的連接電路及應(yīng)用</p><p>  圖2-1-4 A/D轉(zhuǎn)換的連接電路</p><p>  由圖2-1-4可以看出ADC0809時鐘CLK由8051ALE信號提供,ALE信號頻率為f/6。用地址線低8位A0、A1、A2(P0.0~P0.2)接0809的A、B、C三端用來對8路模擬通道進行選擇

27、。EOC經(jīng)非門與8051 相接,0809與8051采用中斷方式聯(lián)絡(luò),外部中斷1服務(wù)子程序讀A/D轉(zhuǎn)換結(jié)果,并啟動下一次轉(zhuǎn)換。0809啟動條件為START= ,因此啟動時,應(yīng)用寫指令(使WR=1),并且要保證地址線P2.6=0,其端口地址為DFFFH。ADC0809轉(zhuǎn)換器將信號進行模數(shù)轉(zhuǎn)換,再將數(shù)字信號傳入8051進行微處理,通過LED顯示溫度。在由于A/D0809具有鎖存的TTL三態(tài)輸出,它的八條數(shù)據(jù)線和8051的八條數(shù)據(jù)線相連,采用線

28、性選址法,其口地址為DFFFH。通道地址A,B,C由數(shù)據(jù)總線DB0,DB2,DB2提供。A,B,C地址線上的信息由ALE上升沿打入地址鎖存器74LS373。</p><p>  2.2 單片機8051芯片介紹和主要電路</p><p>  2.2.1 MCS-51單片微機8051內(nèi)部部件和接口電路</p><p>  MCS-5單片微機8051內(nèi)部包含如下部件:

29、</p><p><b>  8位CPU</b></p><p><b>  振蕩器和時鐘電路</b></p><p>  4K/8K 字節(jié)的程序存貯器。</p><p>  128/256字節(jié)的數(shù)據(jù)存貯器。</p><p>  可尋址外部程序存貯器和數(shù)據(jù)存貯器,各64K字節(jié)

30、。</p><p>  二十多個特殊功能寄存器。</p><p>  32線并行I/O口。</p><p>  1個全雙工串行I/O口。</p><p>  2/3個16位定時器/計數(shù)器。</p><p>  5/6個中斷源,2個優(yōu)先級。</p><p>  具有位尋址功能,有較強的布爾處理能力

31、。</p><p>  圖2-2-1 8051的引腳圖</p><p>  圖2-2-2 單片機的片外總線結(jié)構(gòu)圖</p><p>  由圖2-2-2可以看到,單片機的引腳除了電源、復位、時鐘接入、用戶I/O口外,其余管腳都是為了實現(xiàn)系統(tǒng)擴展而設(shè)置的。這些引腳構(gòu)成了MCS-51單片機片外三總線結(jié)構(gòu):</p><p>  1.地址總線(AB):地

32、址總線寬度為16位,因此,其外部存儲器直接尋址為64K字節(jié),16位地址總線由P0口經(jīng)地址鎖存器提供低8位地址(A0~A7);P0口直接提供高8位地址(A8~A15)。</p><p>  2.數(shù)據(jù)總線(DB):數(shù)據(jù)總線寬度為8位,由P0口提供。控制總線(CB):由四根獨立控制線RESET、EA、ALE、組成。</p><p>  2.2.2 振蕩電路和時鐘電路</p>&l

33、t;p>  振蕩電路和單片機內(nèi)部的時鐘電路一起構(gòu)成了單片機的時鐘方式,根據(jù)硬件不同,連接方式分為內(nèi)部時鐘方式和外部時鐘方式。</p><p>  MCS-51單片機芯片內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外晶體或陶瓷諧振器一起構(gòu)成一個自激振蕩器。這是MCS-51單片機的內(nèi)部時鐘方式。本論文中重點講到的是外部時鐘方式

34、。</p><p>  圖2-2-3外部時鐘方式電路圖</p><p>  由上面的圖我們可以看到引腳XTAL2就是內(nèi)部時鐘發(fā)生器的輸入端。因此,只需將外部振蕩器的信號接至引腳XTAL2,而把內(nèi)部反相放大器的輸入端XTAL1引腳接地。通常接的外部信號一般為頻率低于12MHZ的方波信號。另外,由于XTAL2端的邏輯電平不是TTL的,故還需要接一個上拉電阻。</p><p&

35、gt;  2.2.3 單片機的復位電路</p><p>  1.復位電路的復位類型</p><p>  通常單片機復位操作有上電復位、信號復位、運行監(jiān)視復位。在本論文里主要用到的是上電復位和開關(guān)復位的組合。</p><p><b>  2.主要復位電路</b></p><p> ?。?)上電復位和開關(guān)復位組合電路:在單

36、片機系統(tǒng)設(shè)計過程中,經(jīng)常會使用上電復位和手動復位,最常用的上電復位和開關(guān)復位組合電路為:</p><p>  圖2-2-4上電復位和開關(guān)復位組合電路</p><p>  在這兩種簡單復位電路中,干擾容易串人復位端,在大多數(shù)情況下,不會造成單片機錯誤復位,但會引起內(nèi)部某些寄存器錯誤復位。這時可在復位引腳上接一個去耦電容。如果應(yīng)用現(xiàn)場干擾嚴重,或整個系統(tǒng)干擾嚴重,引起單片機復位,可采用屏蔽的辦

37、法解決,如加屏蔽網(wǎng)或移動位置等。</p><p>  (2)在實際應(yīng)用系統(tǒng)中,為了保證復位電路可靠地工作,常將RC電路接施密特電路后再接入單片機復位端,特別適合于應(yīng)用系統(tǒng)現(xiàn)場干擾大,電壓波動大的工作環(huán)境。[10]</p><p>  圖2-2-5抗干擾上電復位</p><p>  2.2.4 中斷優(yōu)先級</p><p>  8051單片機提

38、供了5個中斷源,其中兩個為中斷源,由INT0、INT1輸入;I/O設(shè)置中斷請求信號,或掉電故障等異常事件中斷請求信號都可作為外部中斷源連INT0、INT1。兩個為片內(nèi)的定時器/計數(shù)器溢出時產(chǎn)生的中斷請求(用TF0、TF1做標志);另外一個為片內(nèi)串行口產(chǎn)生的中斷請求(TI或RI)。這些中斷請求源分別由MCS-51的特殊功能寄存器TCON和SCON的相應(yīng)位鎖存。</p><p>  MCS-51的中斷具有兩級優(yōu)先級,

39、每一個中斷源都可以通過對中斷優(yōu)先級寄存器IP中的相應(yīng)位置或清0,編程為兩級中斷中的任一級——高優(yōu)先級和低優(yōu)先級,置1為高優(yōu)先級,清0為低優(yōu)先級。低優(yōu)先級可以被高優(yōu)先級所中斷,但不能被另一個低優(yōu)先級中斷所中斷。高優(yōu)先級中斷不能被任何中斷所中斷。為了實現(xiàn)這些規(guī)定,中斷系統(tǒng)中設(shè)有兩個不可尋址的優(yōu)先級狀態(tài)觸發(fā)器,其中一個用來指出正在服務(wù)于高優(yōu)先級中斷,并阻止其他所有中斷的響應(yīng)。另一個則指出正在服務(wù)于 低優(yōu)先級中斷,并阻止除高優(yōu)先級中斷以外的其他

40、中斷的響應(yīng)。</p><p>  當同時接受到幾個優(yōu)先級相同的中斷請求時,則由內(nèi)部查詢次序來確定響應(yīng)哪一個中斷請求。因此,在每一個中斷級中又有第二類查詢次序的中斷優(yōu)先級結(jié)構(gòu)。處理器響應(yīng)中斷時,先置相應(yīng)的優(yōu)先級狀態(tài)觸發(fā)器(該觸發(fā)器指出CPU開始處理的中斷優(yōu)先級別)然后執(zhí)行一個硬件子程序的調(diào)用使控制轉(zhuǎn)移查詢次序如下:</p><p>  1.IE0 (外中斷INT0)

41、 最高優(yōu)先級 0003H</p><p>  2.TF0 (定時器0溢出中斷) 000BH</p><p>  3.IE 1 (外中斷INT1) 0013H</p><p>  4.TF1 (定時器1溢出中

42、斷) 001BH</p><p>  5.RI+TI (串行口中斷) 0023H</p><p>  6.TF2+EXF2 (定時器2溢出中斷) 最低優(yōu)先級 002BH</p><p>  這種“同級內(nèi)的優(yōu)先級”,僅用來解決相同優(yōu)先級中斷源同時請

43、求中斷的情況,而不能中斷正在執(zhí)行的同優(yōu)先級的中斷。</p><p>  2.2.5 74LS373地址鎖存器芯片介紹</p><p>  由于MCS-51單片機的P0口是分時復用的地址/數(shù)據(jù)總線,因此在進行程序存儲器擴展時,必須利用地址鎖存器將地址信號從地址/數(shù)據(jù)總線中分離開來。</p><p>  通常,地址鎖存器可使用帶三態(tài)緩沖輸出的八D鎖存器74LS373或

44、8282,也可以使用帶清除端的八D鎖存器74LS273,地址鎖存信號為ALE。但用的最多的是74LS373。</p><p>  圖2-2-6 74LS373的結(jié)構(gòu)圖</p><p>  當三態(tài)門的使能信號線OE為低電平時,三態(tài)門處于導通狀態(tài),允許1Q~8Q輸出到OUT1~OUT8,當OE端為高電平時,輸出三態(tài)門斷開,輸出線OUT1~OUT8處于浮空狀態(tài).G稱為數(shù)據(jù)打入線,當74LS373

45、用作地址鎖存器時,首先應(yīng)使三態(tài)門的使能信號OE為低電平,這時,當G輸入端為高電平時,鎖存器輸出(1Q~8Q)狀態(tài)和輸入端(1D~8D)狀態(tài)相同,當G端從高電平返回到低電平(下降沿)時,輸入端(1D~8D)的數(shù)據(jù)鎖入1Q~8Q的8位鎖存器中。</p><p>  當用74LS373作為地址鎖存器時,它們的鎖存控制端G和STB可直接與單片機的鎖存控制信號端ALE相連,在ALE下降沿進行地址鎖存。</p>

46、<p>  2.3 8255輸出口擴展</p><p>  2.3.1 8255的引腳介紹</p><p>  8255是可編程RAM/IO擴展器,片內(nèi)有256*8位靜態(tài)RAM,2個8位和1個6位可編程并行I/O接口,以及1個14位可編程定時器/計數(shù)器。還有地址鎖存器和多路轉(zhuǎn)換的地址/數(shù)據(jù)總線,可直接與MCS-51單片微機相連接。因此還是MCS-51應(yīng)用系統(tǒng)最適用的擴展器件

47、。</p><p>  圖2-3-1 8255的引腳圖</p><p>  AD0—AD7:三態(tài)地址/數(shù)據(jù)總線。連接CPU的底8位地址/數(shù)據(jù)總線。</p><p>  IO/M:RAM/IO口選擇信號輸入端。</p><p>  CS:片選信號輸入端,8255為CS,低電平有效。</p><p>  RD:讀選通信號輸

48、入端。低電平有效。</p><p>  WR:寫選通信號輸入段。低電平有效。</p><p>  RESET:復位信號輸入段。高電平有效,并初始化3個I/O口為輸入方式。</p><p>  PA0—PA7:A口的I/O線、I/O方向由命令字編程設(shè)定。</p><p>  PB0—PB7:B口的I/O線、I/O方向由命令字編程設(shè)定。</

49、p><p>  PC0—PC7:C口的I/O線,或A口和B口的狀態(tài)控制信號線。由命令字編程設(shè)定。</p><p>  Vcc:+5V電源線。</p><p>  Vss: 接地線。</p><p>  8255片內(nèi)256*8位靜態(tài)RAM,在速度上與MCS-51完全匹配。當IO/M=0時,CPU對8255的RAM進行讀寫,尋址范圍為00H—0FF

50、H。</p><p>  2.3.2 8255與8051的外部接口電路</p><p>  圖2-3-2 8255與8051的外部接口電路</p><p>  由上圖可以看出8051通過地址鎖存器與8255相連, 8255的片選信號CS及口地址選擇線A0、A1分別由8051的P0.7、P0.0、P0.1經(jīng)地址鎖存器74LS373后提供。故8255的A、B、C口及控

51、制口地址分別為FF7CH、FF7DH、FF7EH、FF7FH。8255的復位端與8051的復位端相連,都接到8051的復位電路上。必須根據(jù)外圍設(shè)備的類型選擇8255的操作方式,并在初始化程序中把相應(yīng)控制字寫入操作口。8255的編程如下:</p><p>  各端口地址是:A口地址:FF7CH B口地址:FF7DH </p><p>  C口地址:FF7EH

52、 控制口地址:FF7FH</p><p>  8255的工作方式可由CPU寫入一個控制字到8255控制字寄存器來選擇。方式控制字共有八位,D7位為置方式標志,有效為1,假設(shè)要求8255工作方式0,且A口作為輸出,B口作為輸出,C口作為輸入,則可得控制字為81H。</p><p>  2.4 單片機的抗干擾電路</p><p>  2.4.

53、1 光電隔離抗干擾的簡介</p><p>  單片機測控系統(tǒng)的開關(guān)信號,往往是通過芯片給出的低壓電流如TTL電平信號,這種電平信號一般不能直接驅(qū)動外設(shè),而需經(jīng)接口轉(zhuǎn)換等手段處理后才能用于驅(qū)動設(shè)備開啟或關(guān)閉,如不加隔離可能會串到測控系統(tǒng)中造成系統(tǒng)誤動作或損壞:因此在接口處理中亦應(yīng)包括隔離技術(shù)。</p><p>  在開關(guān)量輸出通道中,為防止現(xiàn)場強電磁干擾或工頻電壓會通過輸出通道反串到測控系

54、統(tǒng),一般需采取通道隔離技術(shù)。最常見的隔離器件是光電隔離器。因為光信號的傳送不受電場、磁場的干擾,可以有效地隔離電信號。工程上常用的隔離方法有光電隔離器、變壓器、繼電器和集成組件等,而光電隔離器有獨特優(yōu)點得到廣泛應(yīng)用。</p><p>  光電隔離器的種類繁多,常用的有發(fā)光二極管/光敏三極管、發(fā)光二極管/光敏復合晶體管、發(fā)光二極管/光敏電阻,發(fā)光二極管/光觸發(fā)可控硅等,但從其隔離方法這一角度來看,都是一樣的,即都通

55、過電——光——電這種轉(zhuǎn)換,利用“光”這一環(huán)節(jié)完成隔離功能。</p><p>  2.4.2 光電隔離器的原理電路</p><p>  GaAs紅外發(fā)光二極管 光敏三極管</p><p>  圖2-4-1光電隔離器的原理電路</p><p>  在圖示的電路中,它是GaAs紅外發(fā)光二極管和光敏三極管組成。當發(fā)光二極管有正向電流通過時,即產(chǎn)

56、生人眼看不見的紅外光,其光譜范圍為700—1000nm。光敏三極管接收光以后便導通。而當該電流撤去時,發(fā)光二極管熄滅,三極管截止。利用這種特性即可達到開關(guān)控制的目的。由于該器件是通過電——光——電這種轉(zhuǎn)換來實現(xiàn)對輸出設(shè)備進行控制的,彼此之間沒有電氣連接,因而起到隔離作用,隔離電壓與光電隔離器的結(jié)構(gòu)有關(guān)。</p><p>  2.4.3 光電隔離的電路</p><p>  在一般微機控制系

57、統(tǒng)中,由于大都采用TTL電平,不能直接驅(qū)動發(fā)光二極管,所以通常加一個驅(qū)動區(qū),如7406和7407等。</p><p>  圖2-4-2光電隔離的電路</p><p>  當輸出TTL電平為低電平時,7406輸出為高電平,發(fā)光二極管截止,光電隔離器處于截止狀態(tài),VO端輸出高電平;而當輸出控制電平為高電平時,7406輸出為低電平,發(fā)光二極管導通,光電隔離器處于導通狀態(tài),VO端輸出低電平。<

58、;/p><p>  需要注意的是光電隔離器的輸入輸出端兩個電源必須單獨供電,即用于驅(qū)動發(fā)光管的電源與驅(qū)動光敏管的電源不應(yīng)是共地的電源,對于隔離后的輸出通道必須單獨供電,如上圖所示;否則,如果使用同一電源(或共地的兩個電源)外部干擾信號可能通過電源串到系統(tǒng)中來,當然,這里講的單獨供電,可以是單獨使用不同的電源,也可用DC-DC變換的方法往輸出端提供一個與光電輸入端隔離的電源。</p><p> 

59、 如果從通斷功能來看,光電隔離器其實是一隔離開關(guān)。利用光電隔離器也可完成電平轉(zhuǎn)換,其轉(zhuǎn)換后的輸出電平與其供電電壓值有關(guān),而與光隔輸入端無關(guān)。</p><p>  圖2-4-3總電路框圖</p><p>  2.5 鍵盤及顯示電路</p><p>  2.5.1 鍵盤輸入特點</p><p>  按鍵所用開關(guān)為機械彈性開關(guān),均利用了機械觸點

60、的合、斷。一個電壓信號通過機械的斷開、閉合過程。</p><p>  圖2-5-1 鍵盤抖動波形圖</p><p>  由于機械觸點的彈性作用,一個按鍵開關(guān)在閉合時不會馬上穩(wěn)定地接通,在斷開時也不會一下斷開。因而,在閉合和斷開的瞬間均伴隨著一連串的抖動,抖動時間的長短由按鍵的機械特性決定,一般為5~10ms,這是一個很重要的時間參數(shù),在很多場合都要用到。</p><p&

61、gt;  按鍵的穩(wěn)定閉合時間由操作人員的按鍵動作持續(xù)時間決定,一般為十分之幾秒到幾秒時間。</p><p>  按鍵的閉合與否,反應(yīng)在電壓的上就是呈現(xiàn)出高電平或低電平,所以通過電平的高低狀態(tài)的檢測,便可確認按鍵按下沒有。為了確保按鍵的狀態(tài),必須消除按鍵抖動的影響,這也是按鍵抗干擾的主要的一個方面。</p><p>  2.5.2 按鍵接口電路的消抖措施</p><p&

62、gt;  消除按鍵抖動影響通常有硬件、軟件兩種方法。本論文采用雙穩(wěn)態(tài)消抖的硬件消抖方法。</p><p><b>  雙穩(wěn)態(tài)消抖的原理:</b></p><p>  圖2-5-2雙穩(wěn)態(tài)消抖電路原理圖</p><p>  圖2-5-2中用兩個與非門構(gòu)成一個RS觸發(fā)器,當按鍵為按下時,輸出為1,當按鍵按下時,輸出為0。此時即使由于按鍵的機械性能使按

63、鍵因彈性抖動而產(chǎn)生瞬間不閉合,只要按鍵不返回原始狀態(tài),雙穩(wěn)態(tài)電路的狀態(tài)不會發(fā)生改變,輸出保持為0,不會產(chǎn)生抖動的波形。這一點很容易通過分析RS觸發(fā)器的工作過程得到驗證。</p><p>  設(shè)按鍵首先處于a位置,此時RS觸發(fā)器的與非門輸出端OUT1為高電平1,與非門2的輸出端OUT2為0,此輸出引入到與非門1的一個輸入端,會把與非門1鎖住,使其固定輸出為1。如果此時按下按鍵,即使按鍵在a位置因彈性而產(chǎn)生瞬間抖動,

64、形成一連串的抖動波形,即與非門1輸入端出現(xiàn)了一連串的高和低電平,由于與非門2的輸入端在按鍵沒有到達b位置時始終是0,所以無論與非門1輸入端的信號電平怎么變化,與非門1輸出端OUT1的輸出恒為1。當按鍵到達b時,一旦與非門2的輸出端呈現(xiàn)低電平時,RS觸發(fā)器將出現(xiàn)狀態(tài)的翻轉(zhuǎn),此時,OUT2端輸出為1,OUT1端輸出為0,OUT1又引回與非門2的一個輸入端,鎖住與非門2,保證其輸出恒為1,這樣即使按鍵出現(xiàn)抖動,也不會影響OUT2的輸出,因此O

65、UT1的輸出也恒為0。同樣,在松開按鍵的過程中,只要一接通a,輸出為1,在接通a的過程中,即使產(chǎn)生了彈性抖動,只要按鍵不與按鍵b發(fā)生接觸,RS觸發(fā)器的輸出將保持不變。通過以上分析,可知,如果在按鍵信號輸入端加上一個RS觸發(fā)器就可以剔除按鍵抖動產(chǎn)生的干擾。</p><p>  2.5.3 矩陣鍵盤的概述</p><p>  1.矩陣鍵盤的工作原理:按鍵設(shè)置在行、列線交點上,行、列線分別連接

66、到按鍵開關(guān)的兩端。行線通過上拉電阻接到+5V上。平時無按鍵動作時,行線處于高電平狀態(tài),而當有按鍵按下時,行線電平狀態(tài)將由與此行線相連的列線電平?jīng)Q定。列線電平如果為低,則行線電平為低,列線電平如果為高,則行線電平亦為高。這一點是識別矩陣鍵盤按鍵是否被按下的關(guān)鍵所在.由于矩陣鍵盤中行、列線為多用鍵共用,各按鍵均影響該鍵所在行和列的電平。因此個按鍵彼此將相互發(fā)生影響,所以必須將、列線信號配合起來并作適當?shù)奶幚?,才能確定閉合鍵的位置。</

67、p><p><b>  2.按鍵的識別方法</b></p><p>  矩陣鍵盤按鍵的識別方法分兩步進行:第一步,識別鍵盤有無鍵被按下;第二步,如果有鍵被按下,識別出具體的按鍵。識別鍵盤有無鍵按下的方法是讓所有列線均置為0電平,檢查各行線電平是否有變化,如果有變化,則說明有鍵被按下,如果沒有變化,則說明無鍵被按下(實際編程時應(yīng)考慮按鍵抖動的影響,通??偸遣捎密浖訒r的方法

68、進行消抖處理)。</p><p>  識別具體按鍵的方法是(亦稱為掃描法):逐行置零電平,其余各列置為高電平,檢查各行線電平的變化,如果某行電平由高電平變?yōu)榱汶娖?,則可確定此行此列交叉點處的按鍵被按下。</p><p><b>  3.鍵盤的工作方式</b></p><p>  單片機應(yīng)用系統(tǒng)中,鍵盤掃描只是CPU的工作內(nèi)容之一。CPU在忙于各

69、項工作任務(wù)時,如何兼顧鍵盤的輸入,取決于鍵盤的工作方式。鍵盤的工作方式的選取應(yīng)根據(jù)實際應(yīng)用系統(tǒng)中CPU工作的忙,閑情況而定.其原則是既要保證能及時響應(yīng)按鍵操作,又要不過多占用CPU的工作時間。通常,鍵盤工作方式有三種,即:編程掃描、定時掃描和中斷掃描。</p><p>  CPU對鍵盤的掃描采用程序控制方式,一旦進入鍵掃描狀態(tài),則反復地掃描鍵盤,等待用戶從鍵盤上輸入命令或數(shù)據(jù)。而在執(zhí)行鍵入命令或處理輸入數(shù)據(jù)過程中

70、,CPU將不再響應(yīng)鍵入要求,直到CPU返回重新掃描鍵盤為止。</p><p>  由圖2-5-4可見鍵盤采用編程掃描方式工作,PB口輸出逐行掃描信號,PA口輸入8位列信號,均為低電平有效。8255A的A0、A1上,CS與P2.7相接,WR、RD分別與8051的WR、RD相連。</p><p>  2.5.4 LED顯示原理及顯示方式</p><p>  1.LED

71、顯示器結(jié)構(gòu)</p><p>  LED顯示塊是由發(fā)光二極管顯示字段的顯示器件。在單片機應(yīng)用系統(tǒng)中通常使用的是7段LED。這種顯示塊有共陰極和共陽極兩種。</p><p>  圖2-5-3 LED顯示器引腳圖</p><p>  共陰極LED顯示塊的發(fā)光二極管陰極共地。當某個發(fā)光二極管的陽極為高電平時,發(fā)光二極管點亮;共陽極LED顯示塊的發(fā)光二極管陽極并接。<

72、/p><p>  通常的7段LED顯示塊中有8個發(fā)光二極管,故也有人叫做8段顯示器。其中7個發(fā)光二極管構(gòu)成7筆字型“8”。</p><p>  7段顯示塊與單片機接口非常容易。只要將一個8位并行輸出口語顯示塊的發(fā)光二極管因交相聯(lián)即可。8位并行輸出口輸出不同的字節(jié)數(shù)據(jù)即可獲得不同的數(shù)字或字符,通常將控制發(fā)光二極管的8位字節(jié)數(shù)據(jù)成為段選碼。共陽極于共陰極的段選碼互為補數(shù)。</p>&

73、lt;p>  2.LED顯示器的顯示方式</p><p>  在單片機應(yīng)用系統(tǒng)中使用LED顯示塊構(gòu)成N位LED顯示器。N根LED顯示器由N根位選線和8*N根段選線。根據(jù)顯示方式不同,為選線與段選線的連接方法不同。段選線控制字符選擇,為選線控制顯示位的亮、暗。</p><p>  LED顯示器由靜態(tài)現(xiàn)實與動態(tài)顯示兩種方式。</p><p>  3.LED動態(tài)顯示

74、方式的原理</p><p>  在多位LED顯示時,為了簡化電路,降低成本,將所有位的段選線并聯(lián)在疫區(qū),由一個8位I/O口控制,形成段選線的多路復用,而共陰極點火供養(yǎng)幾點分別由相應(yīng)的I/O口線控制,實現(xiàn)各位的分時選通。</p><p>  8位LED動態(tài)顯示電路只需要兩個8位I/O口。其中一個控制段選碼,另一個控制位選。由于所有位的段選碼皆由一個I/O控制,因此,在每個瞬間,8位LED只可

75、能顯示相同的字幅。要向每位顯示不同的字符,必須采用掃描顯示方法。即在每一瞬間只使某一位顯示相應(yīng)字符。在此瞬間,段選控制輸出相應(yīng)字符段選碼,位選控制I/O口在該顯示位送入選通電平(共陰極送低電平、共陽極送高電平)以保證該位顯示相應(yīng)字符。如此輪流,使每位顯示該位應(yīng)顯示字符,并保持延時一段時間,以保存視覺暫留效果。</p><p>  動態(tài)顯示方式需要較大的驅(qū)動電流,所以一般都是通過驅(qū)動器來驅(qū)動LED的?,F(xiàn)實的亮度同驅(qū)

76、動電流大小、電亮時間和關(guān)斷時間有關(guān),調(diào)整電流大小和時間參數(shù)(掃描頻率),可以控制LED顯示亮度并穩(wěn)定顯示。 </p><p>  當LED選定后,要實測它工作點的正向壓降,以便正確的選用限流電阻;同時,電流密度影響LED的壽命,電流密度越大,發(fā)光亮度越高,對壽命的影響就越大,因此,LED的驅(qū)動電流要有所限值,最大值不能超過最大正向電流。在實際運用中,如果直接驅(qū)動LED或者LED驅(qū)動器的輸出沒有加限流電阻,

77、一般應(yīng)該串聯(lián)一個100的限流電阻。</p><p>  2.5.5 系統(tǒng)應(yīng)用</p><p>  對于顯示部分,從8255輸出的顯示信息經(jīng)74LS373鎖存緩沖,用來對LED的各段進行段選,各位LED顯示器采用共陰極接法,通過控制陰極的電位來實現(xiàn)各位的選通。通過8255的掃描輸出經(jīng)2003來實現(xiàn)位選,用來顯示設(shè)定的溫度值和當前的溫度值,以便進行調(diào)節(jié)。鍵盤部分采用1×3鍵盤矩陣,

78、列回復信號送至8255的PC0口,連接后仍作為列選擇線;行選擇線則是與顯示部分的位選線共用。初始時,將列選擇線置為高電平,當有按鍵按下時,列選擇線的電位取決于列選擇線,通過相應(yīng)行的電平狀態(tài)判斷有無按鍵按下,可以通過鍵盤的配合來調(diào)節(jié)溫度的設(shè)定值。</p><p>  圖2-5-4鍵盤和顯示器接口電路的接線圖</p><p>  2.6 加熱電路和報警裝置</p><p&

79、gt;  2.6.1 加熱電路</p><p>  圖2-6-1 加熱電路圖</p><p>  電熱器件由雙向可控硅KS控制,KS由光電耦合器 4N25和晶體管9013觸發(fā)。</p><p>  單片機8051的P2.0端輸出的觸發(fā)信號,經(jīng)7407后,送到光電耦合器4N25。P2.0端輸出高電平時,4N25沒有電流輸入,晶體管T截止,雙向晶閘管KS關(guān)斷,電熱器不

80、加熱。當P2.0端輸出低電平時,7407輸出低電平,4N25的輸入電流約為18mА,輸出端的電流大3.6mА,經(jīng)晶體管9013放大后,雙向可控硅門極的電流可達200 mА,雙向可控硅導通,電熱器加熱。電阻R3的作用是限制觸發(fā)電流,當雙向可控硅KS的功率較小時,R3的值可由30Ω改為100Ω。</p><p>  過零檢測電路由變壓器B的其中一個繞組L3和電容器C2組成。L3產(chǎn)生2.5V的交流電壓,通過C2交連到I

81、NT0和INT1端。INT0是過零檢測端,它可對過零的上升信號檢測而產(chǎn)生中斷;INT1也是過零檢測端,它可對過零的下降信號檢測而產(chǎn)生中斷。把INTO和INT1產(chǎn)生的中斷綜合處理,即可得到電源電壓過零的時刻。</p><p>  選用不同的電熱器件,啟動的過程也不一樣。對于電阻率不隨溫度變化的電熱器件,可以直接啟動,即在電壓過零時觸發(fā)雙向可控硅KS。對于電阻率隨溫度變化的電熱器件,通常使用降壓啟動方式,即開始通電時

82、,電壓逐漸上升,使電熱器的工作電流在KS允許的范圍以內(nèi)。過一定的時間后,電熱器件的工作電壓才達到額定電壓。</p><p>  2.6.2 報警裝置</p><p>  首先通過按鍵對要達到的溫度進行設(shè)定,通過加熱裝置對水進行加熱,當加熱溫度達到或超過設(shè)定值時,將加熱信號送到8051中,通過微處理器處理后,輸出到P1口報警,并通過三極管驅(qū)動揚聲器或蜂鳴器報警。</p>&l

83、t;p>  圖2-6-2 報警裝置的硬件電路圖</p><p>  3 單片機的軟件設(shè)計</p><p>  3.1 總的程序設(shè)計框圖</p><p>  本系統(tǒng)的軟件實現(xiàn)沒有高難度的技巧和算法,但作為一個實用系統(tǒng),對其可靠性有較高的要求。單片機的I/O口方向是可編程的,在程序中應(yīng)正確設(shè)置其方向,保證單片機的正常工作。關(guān)于詳細程序清單在此省略,圖3-1給出

84、了主程序流程圖,顯示部分控制是通過定時器中斷來實現(xiàn)的。</p><p>  圖3-1主程序流程圖</p><p>  3.2 8255的程序設(shè)計</p><p>  3.2.1 8255的程序的初始化</p><p>  8255的編程如下:由第四章可得8255各端口地址是:</p><p>  A口地址:FF7C

85、H B口地址:FF7DH </p><p>  C口地址:FF7EH 控制口地址:FF7FH</p><p>  假設(shè)要求8255工作方式0,且A口作為輸出,B口作為輸出,C口作為輸入,則工作程序如下:</p><p>  MOV A,#81 H ;方式0,A口、B口輸出,C口輸入</p>

86、<p>  MOV DPTR,#0FF7FH ;控制寄存器地址→DPTR</p><p>  MOVX @DPTR,A ;方式控制字→控制寄存器</p><p>  MOV DPTR,#0FF7CH ;A口地址→DPTR</p><p>  MOVX A

87、,@DPTR ;從A口讀數(shù)據(jù)</p><p>  MOV DPTR,#0FF7DH ;B口地址→DPTR</p><p>  MOV A,DATA1 ;要輸出的數(shù)據(jù)DATA1→A</p><p>  MOVX @DPTR,A

88、;將DATA1送B口輸出</p><p>  MOV DPTR,#0FF7EH ;C口地址→DPTR</p><p>  MOV A,DATA2 ;DATA2→A</p><p>  MOVX @DPTR,A ;將DATA2送C口輸出</p>

89、<p>  3.2.2 對端口C的置位/復位</p><p>  8255的C口8位中的任一位,均可用指令來置位或復位。例如,如果想把C口的第6位PC5置1,相應(yīng)的控制字為:00001011B=0BH,程序如下:</p><p>  MOV DPTR,#0FF7FH :控制口地址→DPTR</p><p>  MOV

90、 A,#0BH ;控制字→A</p><p>  MOVX @DPTR,A ;控制字→控制口</p><p><b>  ;PC5=1</b></p><p>  如果想把C口的第6位PC5復位,相應(yīng)的控制字為:00001010B=0AH。程序如下:</p>&l

91、t;p>  MOV DPTR,#0FF7FH ;控制口地址→DPTR</p><p>  MOV A,#0AH ;控制字→A</p><p>  MOVX @DPTR,A ;控制字送到控制口</p><p><b>  ;PC5=0</b&g

92、t;</p><p>  3.3 鍵盤和顯示接口電路程序設(shè)計</p><p>  3.3.1 鍵盤和顯示器的程序設(shè)計</p><p>  8255在MCS-51單片機應(yīng)用系統(tǒng)中廣泛用于連接外部設(shè)備,如打印機、鍵盤、顯示器以及作為控制信息的輸入、輸出口。</p><p><b>  N</b></p>&

93、lt;p><b>  圖3-2 程序框圖</b></p><p><b>  程序如下:</b></p><p>  DIS: MOV A,#00000011B ;8255PA、PA、PB口為輸出,PC口為輸入</p><p>  MOV DPTR,#FF7CH ;8255命令口地

94、址送DPTR</p><p>  MOVX @DPTR,A ;寫命令</p><p>  MOV R0,#50H ;50~55H單元存6個顯示數(shù)據(jù)</p><p>  MOV R3,#7FH ;第1位LED的位選碼7FH</p><p>  MOV A,R3&

95、lt;/p><p>  AGAIN:MOV DPTR,#7F01H ;指向PA口</p><p>  MOVX @DPTR,A ;位選碼送PA口</p><p>  MOV A,@R0 ;取顯示數(shù)據(jù)</p><p>  MOV DPTR,#DSEG ;取

96、段選碼表首址</p><p>  MOVC A,@A+DPTR ;取段選碼</p><p>  MOV DPTR,#7F02H ;指向PB口</p><p>  MOVX @DPTR,A ;段選碼送PB口</p><p>  ACALL DL1ms

97、;延時1ms</p><p>  INC R0 ;指向下一顯示數(shù)據(jù)單元</p><p>  MOV A,R3 </p><p>  JNB ACC.0,OUT ;6位顯示完,轉(zhuǎn)OUT</p><p>  RR A

98、 ;未完,調(diào)整為下一位選碼</p><p>  MOV R3,A </p><p>  AJMP AGAIN ;繼續(xù)顯示下一位</p><p>  OUT: RET ;子程序返回</p>

99、<p>  DSEG: DB 3FH,06H,5BH ;顯示0,1,2</p><p>  DB 4FH,66H,6DH ;顯示3,4,5</p><p>  DB 77H,7CH,39H ;顯示A,B,C</p><p>  DB 5EH,79H,71H ;

100、顯示D,E,F(xiàn)</p><p>  DL1ms: MOV R7,#01H ;延時1ms子程序</p><p>  DL0: MOV R6,#0FFH</p><p>  DL1: DJNZ R6,DL1</p><p>  DLNZ R7,DL0 </p><p>&l

101、t;b>  RET </b></p><p>  3.3.2 鍵盤掃描子程序</p><p>  本方案中用延時10ms子程序進行軟件消抖;通過設(shè)置處理標志來區(qū)分閉合鍵是否已處理過。</p><p><b>  N</b></p><p><b>  Y</b></p>

102、;<p><b>  N</b></p><p><b>  Y</b></p><p><b>  N Y</b></p><p><b>  N</b></p><p><b>  Y</b></p&

103、gt;<p><b>  N</b></p><p>  圖3-3 程序流程圖</p><p>  在掃描鍵盤的過程中應(yīng)兼顧顯示器的顯示。</p><p><b>  程序如下:</b></p><p>  KEYSUB: MOV A,#00000011B

104、;8255PA、PB口輸出,PC口輸入</p><p>  MOV DPTR,#FF7FH ;控制字地址送DPTR</p><p>  MOVX @DPTR,A ;向8255輸出控制字</p><p>  BEGIN: ACALL DIS ;調(diào)顯示子程序</p>

105、<p>  ACALL CLEAR ;清零顯示器,即熄滅</p><p>  ACALL CCSCAN ;全列置零掃描,判有無按鍵按下</p><p>  JNZ INK1 ;有鍵按下,轉(zhuǎn)INK1</p><p>  AJMP BEGIN

106、 </p><p>  INK1: ACALL DIS ;調(diào)顯示子程序,延時8~9ms</p><p>  ACALL DL1ms </p><p>  ACALL DL1ms ;共延時約10ms去抖</p>

107、;<p>  ACALL CLEAR ;熄滅顯示器</p><p>  ACALL CCSCAN ;全列置零掃描,判是否確有按鍵按下</p><p>  JNZ INK2 ;確有鍵按下,轉(zhuǎn)INK2</p><p>  AJMP BEGIN

108、 ;抖動引起,轉(zhuǎn)回BEGIN </p><p>  INK2: MOV R2,#0FEH ;掃描第1列,置第1列為0</p><p>  MOV R4,#00H ;列號送R4</p><p>  COLUM: MOV DPTR,#FF7DH ;指向P

109、B口</p><p>  MOV A,R2 ;掃描碼送A</p><p>  MOVX @DPTR,A ;輸出掃描碼</p><p>  INC DPTR</p><p>  INC DPTR ;指向PC口</p

110、><p>  MOVX A,@DPTR ;讀出PC口</p><p>  POP A</p><p>  KON: ACALL DIS ;調(diào)顯示,等待按鍵釋放</p><p>  ACALL CLEAR ;熄滅顯示<

111、/p><p>  ACALL CCSCAN ;判按鍵是否仍按下</p><p>  JNZ KON ;鍵未釋放,繼續(xù)等待</p><p>  POP A ;恢復鍵號到A中</p><p>  RET

溫馨提示

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

評論

0/150

提交評論