并行通信和并行接口课件1_第1页
并行通信和并行接口课件1_第2页
并行通信和并行接口课件1_第3页
并行通信和并行接口课件1_第4页
并行通信和并行接口课件1_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

並行通信和並行介面8255A8.1.1並行通信

所謂通信就是電腦與外部設備或者電腦之間的資訊交換、數據傳輸,在電腦中,通信是通過輸入輸出(I/O)介面電路來實現的與外部設備或者其他的電腦數據傳輸及資訊交換的。電腦的兩種基本通信方式是並行通信和串行通信。 並行通信是指將構成一組數據的各位同時進行傳送的一種通信方式,並行通信強調的是被傳送的各位同時輸入或輸出,例如一組8位數據或16位數據的同時傳入或傳出。 並行通信的優點是傳輸速度快,資訊率高,缺點是電纜耗損高。由於同時傳送所需的每一位二進位位都需要一根通信電纜,在進行長距離傳輸時,電纜的損耗會成為突出的問題,而且傳輸的可靠性隨著距離的增加而下降,因此並行通信適用於數據傳輸率較高、傳輸距離較短的場合。8.1並行通信與並行介面8255A

8.1.2並行I/O介面

實現並行通信的介面稱為並行介面。一個並行介面可以設計成負責輸入資訊的輸入介面,也可以設計成負責輸出資訊的輸出介面,如果設計成同時具有輸入/輸出功能的介面就是所謂的雙向通信介面。在電腦系統中連接印表機的介面、顯示器介面就是輸出介面;連接磁片驅動器的介面是雙向介面。 並行介面可以分為不可編程的硬體介面和可編程介面。不可編程的硬體介面是介面的工作方式及功能是由硬體連接來設定,不能用軟體編程的方法加以改變的,採用這種方式完成的硬體電路的連接設計,介面的工作方式就被固定下來,例如8位雙向三態緩衝驅動器74LS245、8位三態數據鎖存器74LS373等。所以多用於組成功能比較簡單的介面電路,如前面所講述開關量信號的讀取、LED發光管的控制等。可編程介面電路一般由可編程通用介面晶片組成,如有Zilog公司的Z80PIO,Intel的8255A等。這些晶片除了具有硬體連接介面的性能外,最主要的就是具有可選擇性。如選擇端口的哪一位或哪幾位作為輸入,哪一位或哪幾位作為輸出;選擇端口與CPU之間採用哪種方式傳送數據等,都可由編程人員通過編程來進行設定。因而可編程介面具有廣泛的適應性和很高的靈活性,在微機系統中得到廣泛的應用。

8.2並行I/O介面晶片8255A8.2.18255A的外部引腳及內部結構1.8255A的外部引腳

8255A的外部引腳佈局如圖8-1所示。它有40根引腳,可分為與系統匯流排(如8086)連接的引腳和與外部設備連接的引腳。

圖8-18255A的外部引腳 D7~D0為雙向數據信號線,用於8255A與系統數據線相連,傳送CPU與8255A之間的數據、控制資訊、狀態資訊。 (輸入):8255A讀信號,低電平有效。當有效時,CPU從8255A的指定端口讀取數據或狀態資訊。通常接系統匯流排的信號。 (輸入):8255A寫信號,低電平有效。當有效時,CPU向8255A指定端口寫入控制字或數據。通常接系統匯流排的信號。 (輸入):片選信號,當它為低電平(有效)時,才能選中該8255A晶片,使8255A正常工作。

A1、A0(輸入)為片內地址選擇信號。當有效選中8255A時,由A1A0的編碼來決定是選中A口、B口、C口,還是選中控制字寄存器,如表8-1所示A1A0選中對象000A端口010B端口100C端口110控制字寄存器╳╳1未選中

通常A1、A0分別接系統的A1、A0,它們與一起來決定8255的介面地址。

RESET(輸入):複位信號,高電平有效。當RESET信號到來時,8255A所有內部寄存器均被清零。複位後,8255的A口、B口、C口均被定義為輸入狀態。

PA7~PA0(雙向):8255AA口的輸入輸出信號線,用於8255A與外設進行數據傳送。這8條引線是輸入、輸出還是雙向(輸入、輸出)方式由軟體編程決定。

PB7~PB0(雙向):8255AB口的輸入輸出信號線,用於8255A與外設進行數據傳送。這8條引線是輸入還是輸出方式可由軟體編程決定。

PC7~PC0(雙向):8255AC口的輸入輸出信號,可用於8255A與外設進行數據的輸入或輸出線,也可用作控制信號的輸出或狀態信號的輸入線。

2.8255A的內部結構

8255A的內部結構框圖如圖8-2所示,它由四個部分組成: (1)輸入輸出介面 從圖8-2中可以看到,左邊的信號與系統匯流排連接,而右邊是與外設相連接的3個口,即PA、PB、PC,3個口均為8位,將這三個口分為兩組:A組(A口的8位和C口的高4位)、B組(B口的8位和C口的低4位),每個端口都可由程式設定為各種不同的工作方式。 端口A(PA口)有一個8位數據輸入鎖存器和一個8位數據輸出鎖存/緩衝器,所以,用端口A作為輸入或輸出時,數據均受到鎖存; 端口B(PB口)有一個8位數據輸入緩衝器和一個8位數據輸出鎖存/緩衝器; 端口C(PC口)有一個8位數據輸入緩衝器和一個8位數據輸出鎖存/緩衝器。 (2)數據匯流排緩衝器 數據匯流排緩衝器是8位雙向三態緩衝器,8255A與系統匯流排之間的命令、數據、控制字等資訊都是通過它來完成的,它是系統匯流排與8255A之間交換資訊的必經之路。 (3)讀/寫控制邏輯 用來管理數據資訊、控制字和狀態字的傳送,地址線A1、A0,片選信號()和讀、寫控制信號(、),完成內部端口的選擇和讀寫操作。 (4)A組和B組控制電路 這兩組控制電路根據CPU發出的方式控制字來控制8255A的工作方式,每個控制組都接受來自讀/寫控制邏輯的命令,接受來自內部數據線的控制字,然後向各有關端口發出相應的控制命令。

圖8-28255A的內部結構

8.2.28255A的工作方式

8255A有三種基本的工作方式,這些工作方式可用軟體編程來指定。 方式0---基本輸入/輸出方式 方式1---選通輸入/輸出方式 方式2---雙向輸入/輸出方式1.方式0:基本輸入/輸出工作方式 在方式0下,8255A與外設相連的三個端口均被定義為輸入/輸出傳送方式,包括A口的8條線、C口的高4位對應的4條線、B口的8條線、C口的8條線。因為上述4部分的輸入或輸出是可以獨立定義的,故它們輸入輸出有16種不同的組合。

8255A在方式0工作時,CPU可以採用無條件傳輸方式與8255A交換數據,如果把C口的兩個部分用作控制和狀態口,與外設的控制和狀態端相連,CPU也可以通過對C口的讀寫實現A口與B口的查詢工作方式。方式0僅有輸出數據鎖存功能,輸入數據是不鎖存的。且在方式0下,C口還有按位置位和複位的功能。

概括地說,方式0的基本特點如下: (1)任何一個端口可以作為輸入口,也可以作為輸出口,各端口之間沒有規定必然的關係。 (2)各端口的輸入或輸出,可以有16種不同的組合,所以可以使用在多種不同的場合。 方式0的使用的場合: 方式0的使用場合有兩種,一種是同步傳送,另一種視察尋訪時傳送。

2.方式1:選通的輸入/輸出方式

在方式1下,A口和B口仍作為數據的輸入和輸出口而同時要利用C口的某些位作為控制和狀態信號。

A組將A口作為數據口,可設定為輸入或輸出,並指定C口某些位為控制和狀態信號。B組將B口作為數據口,也設定為輸入或輸出,並以C口某些位作為控制和狀態信號。工作在方式1時,數據的輸入/輸出均有鎖存功能,這種方式常用於中斷和程式查詢傳送。

①方式1的輸入操作 當A口和B口設定為輸入時,各指定了C口的3根線作為8255A與外設及CPU之間的控制信號,如圖8-3所示。

圖8-3方式1輸入時引腳定義和端口結構

(一)各控制信號的定義如下:

·(Strobe):輸入選通信號,低電平有效。它有效時,表示外設的數據已準備好,同時將外設送來的數據鎖存到8255A端口的輸入數據緩衝器中,等待CPU通過INTR信號輸入。

·IBF(InputBufferFull):輸入緩衝器滿信號,高電平有效。當它有效時,說明輸入緩衝器中鎖存有資訊,且尚未被CPU取走,通知外設不能再傳送新數據;只有當它為低電平時,即表示CPU已讀取了數據,輸入緩衝器變空,此時才允許外設傳送新的數據。

·INTR:中斷請求信號,高電平有效。它有效時,請求CPU從8255A讀取外設已送入的數據。

·INTE:中斷允許信號,它既不是輸入也不是輸出信號,而是一個內部控制位。通過對PC4(端口A)或者PC2(端口B)置位/複位來開放/禁止端口輸入中斷請求。

·PC7、PC6:通用輸入輸出信號。圖8-4方式1輸出時引腳定義和端口結構圖.

(二)方式1的輸入工作過程 當外設準備好數據,在送出數據的同時,送一個選通信號,使8255A的IBF為高電平,告訴外設當前輸入緩衝器已滿,暫時不要送入數據。再由後沿將INTE置“1”,它使輸出的INTR有效,向CPU發出中斷請求信號,待CPU回應這一中斷請求時,可以在中斷服務程式中安排IN指令讀取數據,然後將IBF置“0”,外設才可以繼續輸入後面的數據。

②方式1的輸出 當A口與B口設定為方式1輸出時,也各指定了C口的3根線為信號線,其引腳定義和端口結構如圖8-4所示。

(一)各控制信號的定義如下:

·(OutputBufferFull):輸出緩衝器滿信號,低電平有效。它有效時,表示CPU已將數據寫到8255A的輸出端口,通知外設來取數。

·:外設送來的回應信號,低電平有效。當它為低電平時,表示外設已經接收到了CPU送來的數據。它是對的回答信號。

·INTR:中斷請求信號輸出,高電平有效。當它有效時,請求CPU向8255A端口寫入數據。

·INTE:中斷允許控制位,它既不是輸入也不是輸出信號,而是一個內部控制位。通過對PC6(端口A)或者PC2(端口B)置位/複位來開放/禁止端口輸入中斷請求。

·PC5、PC4:通用輸入輸出信號。(二)方式1的輸出工作過程當外設接受了由CPU送給8255A的數據後,對8255A發送一個回應信號“”,同時被複位為高電平,並將相應端口的INTE置成高電平,於是INTR信號向CPU發出中斷請求,請求CPU再輸出後面的數據。可以在中斷服務程式中安排OUT指令繼續輸出後續位元組。3.方式2:雙向選通輸入/輸出方式

在方式2下,即能發送數據,又能接收數據,通過8位數據線與外設進行雙向通信,只限於端口A使用,它用A口的8位數據線,C口的5根線(PC3—PC7)進行資訊傳送。這種方式提供了一組與外設通信時既能發送又能接收的8位雙向輸入/輸出數據端口。此時A口就像一個數據傳送站,CPU和外設可同時向A口發送或讀取數據。當A口工作在方式2時,B口仍可以工作在方式0或方式1。 在A口方式2的情況下,各控制信號定義如下:· INTR:中斷請求信號,高電平有效。它有效時,輸入輸出都用這個信號向CPU申請中斷。· :輸入選通信號,低電平有效。它有效時,外設送來的數據鎖存到8255A端口的輸入數據緩衝器中。

·:輸出緩衝器滿信號,低電平有效。它有效時,表示CPU已將數據寫到8255A的輸出端口,通知外設來取數。

·:外設送來的回應信號,低電平有效。它有效時,啟動口A的三態輸出緩衝器送出數據,否則,輸出緩衝器處於高阻態。

·INTE1:與有關的中斷允許信號,由PC6置/複位。

·IBF:輸入緩衝器滿信號,高電平有效。當它有效時,說明輸入緩衝器中鎖存有資訊。

·INTE2:與IBF有關的中斷允許信號,由PC4置/複位。

在方式2下,C口實際上就是A口在方式1輸入和輸出時兩組信號線的組合。因此,各個引腳的定義也與方式1的相同,只不過中斷請求信號INTR既可在輸入時向CPU請求中斷,也可在輸出時向CPU請求中斷。其引腳定義和端口結構如圖8-5所示。

圖8-5方式2的引腳定義和端口結構

A口方式2的工作過程簡要敘述如下。工作在方式2的A口,可以認為是前面方式1的輸入和輸出相結合而分時工作的。其工作過程和方式1的輸入輸出過程一樣。值得注意的是,在這種工作方式下,8255A與外設之間是通過A口的8條線PA7~PA0交換數據的。在PA7~PA0上,可能出現8255A口輸出數據到外設,也可能出現外設通過PA7~PA0的數據送給8255A。這就要防止PA7~PA0上的數據線競爭問題。概括地說,方式2的基本特點如下:(1)方式2只適用於端口A。(2)端口A工作與方式2時端口C用5個數位自動配合端口A提供控制信號和狀態信號。方式2的使用場合:方式2是一種雙向工作方式,如果一個並行外部設備既可以作為輸入設備,又可以作為輸出設備,並且輸入輸出動作不會同時進行,那麼,將這個外設和8255A的端口A相連,並使它工作於方式2,就會非常合適。比如,磁片驅動器就是這樣一個外設,主機即可以往磁片輸出數據,也可以從磁片輸入數據,但數據輸出過程和數據輸入過程總是不重合的,所以,可以將磁片驅動器的數據線與8255A的PA7~PA0相連,再使PC7~PC3和磁片驅動器的控制線和狀態線相連即可。

8.2.38255A的控制字8255A是可編程的並行介面,通過前面的敘述可知,8255A有很強的功能,可以工作在不同的工作方式下。可以利用軟體編程來指定8255A的工作方式。只要將不同的控制字裝入晶片中的控制寄存器,即可確定8255A的工作方式。8255A共有兩個控制字:方式選擇控制字和C口按位置位/複位控制字。這兩個控制字共用一個端口地址,用特徵位D7來區分。若控制字的D7=1,則為方式選擇控制字;若控制字D7=0,則是C口按位置位/複位控制字。控制字必須寫入控制寄存器。1.控制字(1)方式選擇控制字(D7=1)方式選擇控制字的格式如圖8-6所示。圖8-68255A的方式選擇控制字(2)C口按位置位/複位控制字(D7=0) C口按位置位/複位控制字的格式如圖8-7所示。圖8-78255AC口按位置位/複位控制字【例8-1】編寫8255A工作在方式0、方式1、方式2等不同形式的初始化程式。 假設8255A端口地址為0500H~0503H,試編寫8255A工作在以下方式: (1)將A組和B組置成方式0,端口A和C作為輸入口,端口B作為輸出口; (2)將A組置成方式2,B組置成方式1,端口B作為輸出口; (3)將A組置成方式1,且端口A作為輸入口,PC6和PC7作為輸出,B組置成方式1,且端口B作為輸入口。 以下為8255A工作在上述三種情況下的方式控制字及程式。 (1)方式控制字為:10011001B即99H; 程式為:MOVDX,0503HMOVAL,99HOUTDX,AL(2)方式控制字為:11XXX10XB,其中X為0或1任意,將X設為0則方式控制字為11000100B,即C4H;程式為:(3)方式控制字為:1011011XB或10110110B即B6H。因為B口設定為方式1輸入,所以PC2~PC0已自動確定了輸入/輸出;端口A被設定為方式1輸入,所以PC3自動作為中斷請求線,因此PC3~PC0不受D0位的控制。程式為:

MOVDX,0503HMOVAL,0C4HOUTDX,ALMOVDX,0503HMOVAL,0B6HOUTDX,AL【例8-2】用程式將PC口的第7位置“1”,第3位置“0”,設控制字的地址為0EBH。

第7位的編碼為D3D2D1=111,使之置1的控制字編碼為00001111B=0FH

第3位的編碼為D3D2D1=011,使之置0的控制字編碼為00000110B=06H

初始化程式如下:MOVAL,0FH;設置PC7為“1”的控制字送ALOUT0EBH,AL;將控制字送8255A控制寄存器MOVAL,06H;設置PC3為“0”的控制字送ALOUT0EBH,AL;將控制字送8255A控制寄存器8.38255A與CPU的連接使用

8255A占外設的4個地址,即A口、B口、C口和控制寄存器各占一個外設介面地址。對同一個地址分別進行讀寫工作。例如:讀A口可將A口的數據讀出;寫A口可將CPU的數據寫入A口並輸出。利用8255A的片選信號、A0、A1,以及讀寫信號,既可方便的對8255A進行尋址。這些信號的功能如下表所示。

A1A0

操作00001讀A口00101讀B口01001讀C口00010寫A口00110寫B口01010寫C口01110寫控制寄存器1××11D0~D7三態

圖8-8為8255A與8086匯流排連接,8255A右邊的信號線與系統匯流排連接,左邊的3個口分別與外設的數據輸入輸出線、狀態資訊連接。

圖8-88255A與8086系統連接圖8.48255A初始化和應用實例

8.4.18255A初始化

8255A初始化編程可以分兩步進行:首先把方式選擇控制字寫入控制口,確定所用端口的工作方式,如果端口選擇為工作方式1或方式2,還要確定CPU和8255A之間是用查詢方式還是用中斷方式交換資訊,並以此來組織C口置位/複位控制字,寫入8255A控制口,使相應的中斷允許標誌(INTE)置0或置1,從而達到禁止或開放中斷的目的。完成了初始化編程之後,CPU就可以用IN和OUT指令通過8255A與外設交換數據了。【例8-3】:8255A的控制器寄存器地址為0120H,工作狀態為A口方式0輸入,B口方式1輸出,C口低半位元組輸入,C口高半位元組輸出,寫出它的初始化程式段;如果要把C口的PC4置位,寫出它的初始化程式段。 方式選擇控制字:10010101B=95H C口置位/複位控制字:00001001=09H

初始化程式段:

MOVDX,0120H ;8255A控制字寄存器口地址MOVAL,95H;設置方式選擇控制字OUTDX,AL;送入控制字寄存器中MOVDX,0120H

MOVAL,09H;使PC4=1的控制字OUTDX,AL

8.4.28255A應用舉例1.簡單開關介面電路【例8-4】:在工業控制領域,經常需要檢測某些開關量的狀態。在某一系統中,有8個開關K7~K0,要求不斷檢測它們的通斷狀態,並通過發光二極體LED7~LED0顯示出來。開關斷開,相應的LED點亮;開關合上,LED熄滅。選用8086CPU,8255A和解碼器等晶片,構成應用電路。如圖8-9所示,8255A的PA口做輸出口,8個開關K7~K0分別接PB7~PB0,PB口為輸入口。8255A端口地址為0120H~0123H,編寫一個完整的程式完成此功能。PA7~PA0分別接顯示器LED7~LED0。8255A的、和RESET引腳分別與CPU的相應位置輸出相連。8255A的數據線D7~D0與8086的低8位數據匯流排D7~D0相連。編程時先要確定方式控制字。因為PB口工作於方式0輸入,PA口為方式0輸出,PC口未用,其中的各位可以被置0,這樣,寫入控制口0123H的控制字為82H。完成初始化後,即可將PA口的開關狀態讀入寄存器AL。若開關合上,AL中的相應位為0,斷開則為1。當把AL中的內容從PB口輸出時,相應於0的位上的LED熄滅,表示對應的開關是合上的;否則LED點亮,指示開關斷開。

STACKSEGMENTSTACK

DW256DUP(?)

STACKENDS

CODESEGMENT

ASSUMECS:CODE

START:MOVDX,0123H;控制字寄存器初始化

MOVAL,10000010B

OUTDX,AL

TESTA:MOVDX,0122H;讀PB口的狀態

INAL,DX

MOVDX,0121H;PA口控制LED,指示開關狀態

OUTDX,AL

JMPTESTA;迴圈檢測CODEENDS

ENDSTART

圖8-98086CPU、8255A和開關的介面電路2.D/A、A/D與介面電路可編程並行介面晶片8255A與數模轉換器DAC連接,可以控制輸出模擬量的大小,這個模擬量可以是電壓的高低,電流的大小,速度的快慢,聲音的強弱等等,而模數轉換器ADC可將它們變換為數字量,通過8255A送回到微機系統中,這種閉環式的調節系統在實踐中應用非常廣泛。【例8-5】:利用8255A,數模轉換器DAC,模數轉換器ADC及8086CPU進行檢測電壓是否超標,電路如圖8-10所示:此系統的功能是檢測電壓信號是否符合標準,如果符合則停止檢測;否則將預先設置好的標準數字量通過數模轉換器DAC傳送給控制現場。當然,實踐中用到的閉環式的調節系統比這個要複雜得多,有些需要配合中斷系統,定時系統等等來完成。ADC的變換的工作過程是由8255A的START輸入一個正脈衝啟動ADC轉換器,開始將感測器送來的電壓信號的模擬量變換為數字量,ADC變換一次結束的同時BUSY變為低電平,從ADC變換器的D7~D0端輸出穩定的數字量。

圖8-10閉環式電壓的調節系統原理圖DAC變換器是由負脈衝降加在D7~D0上的數字量,鎖存在DAC轉換器中,再把它變成模擬信號輸出給感測器,送給控制電壓現場。它的整個工作過程都是用查詢的方式完成的,設8255A的A口、B口均工作在方式0下,A口為輸出,B口初始化為輸入,C口的高4位為輸入,C口的低4位為輸出。為了啟動ADC和DAC要從C口的PC1和PC0分別送一個正脈衝和一個負脈衝,利用C口的按位置位/複位控制字來完成。8255A的端口地址為:0FFFCH~0FFFFH,設電壓標準數字量為78H,它的初始化編程及控制編程如下:STACKSEGMENTSTACK

DW256DUP(?)

STACKENDS

DATASEGMENT

ADCDBDUP(?)

DACDB78H;定義電壓標準數字量DATAENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA,SS:STACK

START:MOVAX,STACK;段寄存器的裝入

MOVSS,AX

MOVAX,DATA

MOVDS,AX

MOVDX,0FFFFH;初始化8255A

MOVAL,10001010B

OUTDX,AL

MOVAL,00000010B;C口初始化(PC1=0)

OUTDX,AL

MOVAL,00000001B;C口初始化(PC0=1)

OUTDX,AL

ATEST:MOVAL,00000001H;使START有效(PC0=1)

OUTDX,AL

MOVAL,00000010H;使PC0=0

OUTDX,AL;輸出正脈衝TESTX:INAL,DX;讀PC口狀態

TESTAL,40H;檢測BUSY(PC6)狀態

JNZTESTX;PC6=1,迴圈查詢

MOVDX,0FFFDH;PC6=0,進行A/D轉換

INAL,DX;讀PB口狀態

MOVADC,AL;將數據寫入ADC單元

CMPAL,DAC;比較ADC是否等於標準電壓值

JNZDTEST;不等於,進行D/A轉換

JMPOK;等於,轉去執行OKDTEST:MOVAL,DAC;輸入標準值,進行D/A轉換

MOVDX,0FFFCH

OUTDX,AL

MOVAL,00H;使PC0=0

MOVDX,0FFFFH

OUTDX,AL

MOVAL,01H;使PC0=1

OUTDX,AL;輸出負脈衝OK:MOVAL,4CH;返回DOS

INT21H

CODEENDS

ENDSTART

3.紅綠燈控制電路【例8-6】編制程式,通過8255A控制發光二極體,以模擬交通路燈的管理。其中L1~L4為黃燈,L5~L8為紅燈,L9~L12為綠燈。

(1)圖8-11為連接硬體線路: (2)編程提示 首先我們應該瞭解交通燈的熄滅規律。設有一個十字路口1,3為南、北方向,2,4位東、西方向,初始狀態為4個路口的紅燈全亮。之後,1,3路口的綠燈亮,2,4路口的紅燈亮,1,3路口方向通車。延遲一段時間後,1,3路口的綠燈熄滅,而1,3路口的黃燈開始閃爍。閃爍若干次後,1,3路口的紅燈亮,而同時2,4路口的綠燈亮,2,4路口方向開始通車,延遲一段時間後,2,4路口的綠燈熄滅,而黃燈開始閃爍,閃爍若干次後,再切換到1,3路口方向。之後,重複上述過程。(注:L1~L4分別為黃燈的1、2、3、4;L5~L8分別為紅燈的1、2、3、4;L9~L12分別為綠燈的1、2、3、4) 程式中應設定好8255A的工作模式,使3個端口均工作於方式0,並處於輸出狀態。各LED發光二極體共陽極,使其點亮應使8255A相應端口的相應位清0。圖8-11紅綠燈模擬顯示圖DATASEGMENT

PBDB?

MESSDB‘ENTERANYKEYCANEXITTO

DOS!’,0DH,0AH,’$’DATAENDS

STACKSEGMENTSTACK

DW50DUP(?)

STACKENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATAES:DATA,SS:

STACKSTART:MOVAX,DATA

MOVDS,AX;段寄存器初始化

MOVES,AX

MOVAH,09H

MOVDX,OFFSETMESS;顯示提示資訊

INT21H

MOVDX,21BH

MOVAL,82H;寫控制字,均工作於方式0,B口為輸入,A口、C口為輸出

OUTDX,AL

MOVDX,219H

INAL,DX;讀取PB數據,保存在PB單元中

MOVPB,AL

MOVDX,21BH

MOVAL,80H;寫控制字,均工作於方式0,均為輸出口

OUTDX,AL

MOVDX,219H

MOVAL,PB;置位PB口的高4位,熄滅黃燈

ORAL,0F0H

OUTDX,AL

MOVDX,21AH

MOVAL,0F0H;使PC0~PC3為0,PC4~PC7為1,

OUTDX,AL即點亮紅燈,熄滅綠燈

CALLDELAY10;延遲LLL:MOVAL,10100101B

MOVDX,21AH;使1、3路口綠燈亮,同時2,4路口

OUTDX,AL紅燈亮

CALLDELAY10

CALLDEL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论