




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第8章輸入輸出接口第8章并行接口與串行接口
概述
可編程并行接口8255A主要內容教學重點
本章介紹兩種通信方式與兩種接口芯片,以此構建并行與串行通信系統。重點:通信的基本概念;
8255A的功能、結構與編程;難點:8255A與設備、系統的連接;
第8章教學要求1.掌握并行通信和串行通信的基本概念,2.掌握并行接口芯片8255A的基本結構和特點3.熟悉8255A的三種工作方式及其應用4.掌握8255A的控制字的含義一、CPU與外設通信特點需要有接口作為CPU與外設通訊的橋梁;需要有數據信息傳送之前的“聯絡”;要傳遞的信息有三方面內容:狀態、數據及控制信息。概述CPUI/O接口外設地址數據控制控制數據狀態概述
接口電路通常包含一組能夠與處理器交換信息的寄存器或緩沖器,稱為I/O端口
數據端口——存放數據信息
狀態端口——存放狀態信息,即反映外設當前工作狀態的信息
控制端口——存放控制信息概述
1.數據信息
(1)數字量:數字量是使用二進制形式表示的數據、圖形、文字等信息。
(2)模擬量:連續變化的物理量,如溫度、壓力等。由傳感器先將其變為電壓或電流信號,通過模/數轉換器變成數字量,送入計算機處理。
(3)開關量:用開關量可表示兩種狀態,如開關的閉與合、電機的轉與停、三極管的通與斷等,這樣的量用一位二進制數表示即可。概述
2.狀態信息
狀態信息反映了外部設備當前所處的工作狀態,是外部設備發送給CPU的,用來協調CPU和外部設備間的操作。對于輸入設備通常用準備好(READY)信號表示輸入數據是否準備好;對于輸出設備常用忙(BUSY)信號表示輸出設備是否處于空閑狀態。若有空閑,則可接收CPU送來的信息,否則CPU將等待。概述
3.控制信息
控制信息是CPU發送給外部設備的,以控制外部設備的工作。如對外部設備的初始化、外部設備的啟動和停止等控制信息。概述二、接口的功能1.對輸入/輸出數據進行緩沖與暫存2.實現信號形式和數據類型的轉換3.緩解外部設備與CPU工作速度的差異概述三、I/O端口的尋址
微機系統中會有許多外部設備,一個外部設備的接口電路中又可能占用多個I/O端口(PORT),每個端口用來保存和交換不同的信息。每個端口必須有各自的端口地址供CPU訪問。所以接口電路中包含有地址譯碼電路使CPU能夠尋址到每個端口。概述
1.通用接口芯片
支持通用的數據輸入輸出和控制的接口芯片;如單向三態緩沖器74LS244,基本輸出接口芯片,如鎖存器74LS273和74LS373等。
2.專用接口芯片
針對某種外設設計、與該種外設接口;如并行接口8255、串行接口8250等。概述
3.面向微機系統的專用接口芯片
與CPU和系統配套使用,以增強其總體功能;如中斷控制接口8259、DMA接口等。有的接口電路具有可編程性,有的接口電路具有多種功能和工作方式,可以通過編程的方法選定其中一種接口。
接口軟件有兩類:一是初始化程序段,用于設定芯片工作方式等;二是數據交換程序段,用于管理、控制、驅動外部設備。概述CPU與外部設備的數據交換,是通過I/O接口進行的。為了區分每一個接口,我們采用對每一個I/O接口進行編號,即稱其為I/O接口的地址。利用I/O接口的地址可以很方便的確定外部設備使用的I/O接口,這就是對I/O接口的尋址。對I/O接口的編號,也稱為編址,可以有兩種方式。概述1.I/O接口的統一編址概述I/O端口存儲單元I/O地址空間存儲器地址空間整個地址空間
如圖所示,在這種方式中,把外部設備接口與內存統一進行編址,故每一個外部設備端口占有存儲器的一個地址。
這種編址方式的優點:可以用訪向存儲器的指令來訪問I/O端口,而訪問存儲器的指令功能比較強,不僅有一般的傳送指令,還有算術、邏輯運算指令,以及各種移位、比較指令等,并且可以實現直接對I/O端口內的數據進行處理。缺點是:由于I/O端口占用了一部分存儲器地址空間,因而使用戶的存儲地址空間相對減小。另外不利于程序閱讀。
在80X86系列微機系統中采用這種工作方式,外設地址空間和內存地址空間相互獨立。CPU有專門的I/O指令和相應的控制電路、控制信號,用地址來區分不同的外設。2.I/O端口獨立編址概述存儲單元存儲地址空間I/O端口I/O地址空間概述這種編址方式的優點:可以用訪向存儲器的指令來訪問I/O端口,而訪問存儲器的指令功能比較強,不僅有一般的傳送指令,還有算術、邏輯運算指令,以及各種移位、比較指令等,并且可以實現直接對I/O端口內的數據進行處理。缺點是:由于I/O端口占用了一部分存儲器地址空間,因而使用戶的存儲地址空間相對減小。另外不利于程序閱讀。
四、輸入/輸出方式1、同步傳送方式2、異步查詢方式程序控制傳送方式3、中斷方式4、直接存儲器存取方式
概述一、程序控制傳送方式(一)、同步傳送方式(無條件方式)
CPU直接與外設傳送數據并不需要了解外設狀態,認為外設已經準備就緒,直接與外設傳送數據
概述CPU譯碼數據線M/IOWR或門地址線
接口外設輸出概述CPU譯碼數據線M/IORD或門地址線
接口外設輸入概述(二)、異步查詢方式
在執行輸入輸出前,要先查詢接口中狀態寄存器的狀態。
概述
輸入時,狀態寄存器的狀態指示要輸入的數據是否已經準備就緒;
準備好?讀取狀態信息輸入數據是否概述常用的狀態線有IBF,READY功能:1、輸入設備準備好數據,狀態線有效;2、CPU讀數據端口,取走數據后,狀態 線轉換為無效概述輸出時,狀態寄存器的狀態指示輸出設備是否空閑。忙?讀取狀態信息輸出數據否是概述常用的狀態線有empty,busy功能:1、輸出設備空閑,BUSY無效;2、CPU寫數據端口,輸出設備輸出數據, 狀態線轉換為有效概述(三)、中斷方式
當外設作好傳送準備后,主動向CPU請求中斷,CPU響應中斷后在中斷處理程序中與外設交換數據。在中斷未發生時,CPU可以執行其他程序,這樣可以提高CPU的利用率。概述主程序中斷服務子程序中斷信號概述與程序查詢方式相比,中斷控制方式的數據交換具有如下特點:(1)提高了CPU的工作效率;(2)CPU具有控制外圍設備服務的主動權;(3)CPU可以和外設并行工作;(4)可適合實時系統對I/O處理的要求。概述二、直接存儲器存取方式(DMA)(DirectMemoryAccess)。
在高速的外設或成塊交換數據的情況,采用程序控制方式進行數據的傳輸,是無法滿足要求的。在這種情況下,采用DMA方式。概述
DMA方式是在外設與內存間建立起直接的通道,CPU不再直接參加外設和內存間的數據傳輸。當系統需要進行DMA傳輸時,將CPU對地址和數據及控制線的管理權交由DMA控制器進行控制,當完成了一次DMA數據傳輸后,再將這個控制權還給CPU,這些工作都是由硬件自動實現的,并不需要程序進行控制。概述CPU外設存儲器總線:執行程序指令的數據傳送路徑;:DMA方式的數據傳送路徑概述內存外設DMAC輸出輸入外設外設DMAC內存內存DMACDMA傳送的幾種形式概述五、8086CPU的輸入/輸出1、I/O尋址64K2、8086CPU的I/O指令(1)直接尋址輸入/輸出指令(八位端口地址) INAL,n(字節輸入) INAX,n(字輸入) OUTn,AL(字節輸出) OUTn,AX(字輸出)概述
(2)DX寄存器間接尋址輸入(十六位端口地址)
INAL,DX(字節輸入) INAX,DX(字輸入) OUTDX,AL(字節輸出) OUTDX,AX(字輸出)概述六、有關端口地址問題
a、8086CPU與外設交換數據可以字或字節進行,
b、當以字節進行時,偶地址端口的字節數據由低8位數據線D7~D0位傳送,奇地址端口的字節數據由高8位數據線D15~D8傳送,
c、當用戶在安排外設的端口地址時,如果外設是以8位的方式與CPU連接,就只能將其數據線或者與CPU的低八位或者與高八位連接,這樣同一臺外設的所有寄存器端口地址都只能是偶地址或是奇地址,這時設備的端口地址就會是不連續的。概述一、并行接口的特點并行接口是在多根數據線上,以字節/字為單位與I/O設備交換數據8.1.1并行通信二、可編程并行通信接口芯片82558255芯片引腳定義與功能Intel系列的8位并行接口芯片通用性強,使用靈活可用程序設置和改變芯片的工作方式是一種典型的可編程并行接口芯片40個引腳,雙列直插式8255APA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC3PC2PC1PC0PB0PB1PB2PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VccPB7PB6PB5PB4PB3二、可編程并行通信接口芯片8255resetD7~D0A9~A2A1A0IORIOW片選譯碼數據緩沖器讀寫控制片內譯碼CSRESETA1A0RDWRPC7~PC0PB7~PB0PA7~PA0控制口D端口A端口C端口B+5VGNDD7~D0外設8255A總線二、可編程并行通信接口芯片82558255芯片引腳定義與功能1.數據端口A、B、C每個端口8位,通過編程設定其為輸入口或輸出口可用來和外設傳送信息
端口A有3種工作方式(方式0、方式1、方式2)對外8根引腳PA7~PA0
二、可編程并行通信接口芯片82558255芯片引腳定義與功能1.數據端口A、B、C端口B
有2種工作方式:方式0、方式1對外8根引腳PB7~PB0端口C對外引腳PC0~PC7二、可編程并行通信接口芯片82558255芯片引腳定義與功能1.數據端口A、B、C
★當端口A在方式1或方式2、端口B在方式1時,端口C的某些位用于傳送聯絡信號,以適應CPU與外設間的各種數據傳送方式的要求,如查詢傳送的應答信號、中斷傳送的中斷申請信號等;★C口未被用作聯絡信號的其它位可工作在方式0下。二、可編程并行通信接口芯片82558255芯片引腳定義與功能2.控制端口D(A組和B組控制電路)
8位端口,無對外引腳可用來和外設傳送信息控制端口的內容決定A口、B口、C口的工作狀態(輸入或輸出)
和工作方式(方式0、1、2),起控制作用。二、可編程并行通信接口芯片82558255芯片引腳定義與功能3.數據總線緩沖器(引腳D0~D7)由1個8位雙向三態緩沖器構成8255A內各端口通過數據緩沖器與系統總線相連。
CPU與端口A、B、C間傳送的數據,以及CPU寫入控制端口D中的控制字均通過數據緩沖器傳送。二、可編程并行通信接口芯片82558255芯片引腳定義與功能4.讀寫控制電路(引腳CS、RD、WR)控制數據總線緩沖器的狀態。數據總線緩沖器有3種狀態:輸入、輸出、高阻態二、可編程并行通信接口芯片82558255芯片引腳定義與功能5.片內譯碼電路(引腳A1、A0)選擇被操作的端口二、可編程并行通信接口芯片82558255芯片引腳定義與功能由CS、A1、A0、RD、WR引腳的不同組合,實現各種不同的功能。
在8255A內部硬件結構中:
A口和B口之間沒有硬件關系,即可分別作為獨立的輸入或輸出端口;
C口和A口,C口和B口之間有硬件聯系,通過向控制口設置控制字可以改變這種聯系。三、三種工作方式三、三種工作方式根據A口和C口、B口和C口之間硬件關系的不同,可以有三種不同的工作方式,
分別稱為方式0、方式1、方式2。A口或B口工作在方式0:與C口之間沒有硬件聯系。
A口或B口工作在方式1:C口的某3根引腳作為端口與外設的聯絡信號。A口工作在方式2:C口的某5根引腳作為端口與外設的聯絡信號。
三、三種工作方式1.方式0(基本輸入輸出方式)
A口工作在方式0
時,A口和C口之間沒有硬件聯系
B口工作在方式0
時,B口和C口之間沒有硬件聯系三、三種工作方式1.方式0(基本輸入輸出方式)
工作在方式0的端口,為單向傳送端口,輸入或輸出
作為輸入口相當于普通的三態門作為輸出口相當于普通的鎖存器
CPU可利用工作在方式0的端口,直接對端口進行讀寫操作,實現CPU與外設間的數據傳送。三、三種工作方式
2.方式1(選通輸入輸出方式)
A口工作在方式1時,C口的某3根引腳作為A口的聯絡信號。
B口工作在方式1時,C口的某3根引腳作為B口的聯絡信號。工作在方式1的端口,為單向傳送端口。在方式1下,C口作為A口、B口聯絡信號的引腳,其動作關系在芯片設計和制造時已固定,
不由用戶自己安排,也不能編程改變。三、三種工作方式3.方式2(雙向傳送方式)端口工作在方式2時,C口的某5根引腳作為端口的聯絡信號
8255A只有A口可以工作在方式2下。與方式0和方式1不同的是:工作在方式2的端口,為雙向傳送端口,既可輸入又可輸出。方式選擇控制字四、8255A的控制字10001/0011/0D7D6D5D4D3D2D1D0特征位A口方式0A口輸出PC7~PC4I/OB口方式0B口輸入PC3~PC0I/O所以,方式控制字為1000
0010B,即82H由于對
C口無要求,控制C口的相應位D4,D0可為任意值,假設取0例假設8255A控制端口的地址為203h,編程設置控制字,使A口方式0輸出;B口方式0輸入設置控制字的程序段如下:
MOVDX,203h;置DX為控制口地址
MOVAL,82h;置控制字于AL中
OUTDX,AL;將控制字寫入控制口例假設8255A控制端口的地址為203h,編程設置控制字,使A口方式0輸出;B口方式0輸入端口C置位/復位控制字注意:C口控制字雖然是對端口C操作,但應寫入到控制口地址,而不是寫入到C數據口例
假設8255A的控制口地址為203h,通過控制口置PC2為0,置PC4為1
MOVDX,203H
;置DX為控制口地址MOVAL,00000100B;置PC2為0OUTDX,ALMOVAL,00001001B;置PC4為1OUTDX,AL
例:設A、B、C數據口地址分別位60H、61H、62H、控制口端口地址63H1:A口方式0,輸出、B口方式0,輸入,C口高4位輸出,C口低4位入MOVAL,10000011BOUT63H,AL2:PC7置1,PC3置0MOVDX,63HMOVAL,0000,1111B;PC7置1OUTDX,ALMOVAL,0000,0110B;PC3置0OUTDX,AL8255的工作方式08255作為打印機接口,工作于方式01.方式0(基本輸入輸出方式,單向傳送端口,輸入或輸出)程序設計:設PA、PB、PC口地址分別為0D0H、0D2H、0D4H控制口地址:0D6HMOVAL,81H;OUT0D6H,ALMOVAL,0DH;①PC6置1,0DH=0000,1101OUT0D6H,ALLPST:INAL,0D4H;讀PC口ANDAL,04D;②打印機忙否(PC2=BUSY=?)JNZLPST;PC2=1,打印機忙,等待MOVAL,CLOUT0D0H,AL;③CL中的字符送PA口MOVAL,0CHOUT0D6H,AL;④置PC6=0,即=0;00001100=0CHINCALOUT0D6H,AL;置PC6=1,即=1,00001101=0DH┆8255的工作方式1——選通輸入輸出方式A口工作在方式1時,C口的某3根引腳作為A口的聯絡信號
B口工作在方式1時,C口的某3根引腳作為B口的聯絡信號。工作在方式1的端口,為單向傳送端口。由方式控制字決定是輸入還是輸出。
C口作為聯絡信號的引腳,不受方式控制字的控制。該出則出,該入則入,不受C口按位置位/復位控制字控制。8255的工作方式1——選通輸入輸出方式
利用方式1下的聯絡信號,可方便地實現查詢或中斷方式的硬件設計,使CPU能夠有效、可靠地與外設進行數據傳送。
A口、B口在輸入或輸出不同的工作狀態時,C口聯絡信號的引腳和意義也不同。8255的工作方式1——選通輸入輸出方式8255的工作方式1——選通輸入輸出方式對方式1輸入的端口,C口提供與外部聯絡的信號有:①
STB選通信號(低電平有效)由外設發出,送給8255A,作用是將外設送來的數據鎖存到8255A的輸入端口。②
IBF輸入緩沖器滿信號(高電平有效)
8255A發出,表示外設送來的數據已進入輸入端口。當外設送來的數據送入輸入端口后,8255A自動發出。③
INTR中斷申請信號(高電平或上升沿有效)8255A發出,用來向CPU發出中斷申請。STB、IBF、INTE均為1時,8255A自動發出INTR。8255的工作方式1——選通輸入輸出方式對方式1輸入的端口,8255A內部的控制信號有:
INTE中斷允許控制信號,作用是控制是否允許8255A的中斷申請信號INTR發出。
此信號無引出,通過控制口對C口相應位的置位/復位設置允許或不允許。
A口,對PC4置位,使INTEA=1,允許中斷
對PC4復位,使INTEA=0,不允許中斷
B口,對PC2置位,使INTEB=1,允許中斷
對PC2復位,使INTEB=0,不允許中斷8255的工作方式1——選通輸入輸出方式方式1的輸入時序:從工作在方式1下的輸入端口輸入數據時,有關信號的變化關系。外設送來數據PB7~PB0PA7~PA0STBIBFINTRRD②③當INTE=1時
①8255的工作方式1——選通輸入輸出方式①當外設準備好數據,將數據送至端口線PA7~PA0或PB7~PB0②
外設發出選通信號STB:(1)將數據鎖存在輸入端口內。(2)使IBF變高,表示輸入端口滿,可用于阻止外設輸入新數據。(3)如果INTE=1,STB的上升沿使INTR變高,發出中斷請求。③轉中斷處理程序,執行IN指令,CPU讀取數據,發出RD信號:(1)RD的下降沿清除INTR(2)RD的上升沿清除IBF(3)端口內的數據進入CPU8255的工作方式1——選通輸入輸出方式8255的工作方式1——選通輸入輸出方式對方式1輸出的端口,C口提供與外部聯絡的信號有:①
OBF輸出緩沖器滿信號(低電平有效)當數據送至8255A輸出緩沖器后,8255A自動發出。表示CPU送來的數據已進入8255A輸出端口,可用來通知外設把數據取走。②
ACK外設響應信號(低電平有效)由外設發出,送給8255A。作用是通知8255A輸出端口的數據已被外設取走,可以傳送下一個數據。8255的工作方式1——選通輸入輸出方式③
INTR中斷申請信號(高電平或上升沿有效)
8255A發出,用來向CPU發出中斷申請。當OBF、ACK、INTE均為1時,8255A自動發出INTR。8255的工作方式1——選通輸入輸出方式對方式1輸出的端口,8255A內部的控制信號有:
INTE中斷允許控制信號,作用是控制是否允許中斷申請信號INTR發出。
此信號無引出,通過控制口對C口相應位的置位/復位設置允許或不允許。
A口,對PC6置位,使INTEA=1,允許中斷
對PC6復位,使INTEA=0,不允許中斷
B口,對PC2置位,使INTEB=1,允許中斷
對PC2復位,使INTEB=0,不允許中斷8255的工作方式1——選通輸入輸出方式方式1的輸出時序:向工作在方式1下的輸出端口輸出數據時,有關信號的變化關系。8255的工作方式1——選通輸入輸出方式①CPU執行OUT指令,輸出數據②CPU發出WR(1)數據寫到8255A的端口(2)使OBF有效(OBF=0),表示輸出端口滿,可作為外設的選通信號,通知外設取數據。(3)
清除中斷請求信號INTR③
外設接受到數據后,發出ACK信號
(1)ACK的下降沿使OBF變高,
(2)當INTE=1,ACK的上降沿使INTR變高,發出中斷請求,請求CPU輸出新的數據。8255的工作方式1——選通輸入輸出方式主程序:MAIN:MOVAL,0A0H;方式選擇控制字OUT0C6H,ALMOVAL,01H;OUT0C6H,ALCLI;替換中斷向量前關中斷MOVAH,25H;替換中斷向量的典型方式MOVAL,0BH;IR3的類型碼為0BHMOVDX,OFFSETROUTINTRPUSHDSMOVAX,SEGROUTINTRMOVDS,AXINT21HPOPDSMOVAL,0DH;PA方式1輸出,“置PC6=1的操作”OUT0C6H,AL;使8255允許中斷(INTEA=1)STI;CPU開中斷┆假 設:A口地址0C0HB口地址0C2HC口地址0C4H控制口0C6H中斷處理程序ROUTINTR:MOVAL,[DI];DI為打印字符緩沖區地址OUT0C0H,ALMOVAL,00H;置PC0=0OUT0C6H,ALINCAL;置PC0=1┆IRET8255的工作方式2——選通雙向傳輸方式
端口工作在方式2時,C口的某5根引腳作為端口的聯絡信號
8255A只有A口可以工作在方式2下。與方式0、方式1的單向傳送不同,工作在方式2下的端口,具有雙向傳送功能。
A口工作在方式2下,C口未做聯絡信號的3條引腳可作為B口在方式1下的聯絡線,也可和B口一樣工作在方式0下。由方式控制字決定其輸入/輸出。8255的工作方式2——選通雙向傳輸方式工作在方式2時,C口有5根引腳作為A口的聯絡信號,是方式1下A口輸入、輸出聯絡信號的組合。8255A在IBMPC/XT主板上的應用鍵盤接口鍵盤鍵盤中斷申請8259AIR1INTAINT8088INTRINTA60H端口61H端口8255A應答信號掃描碼輔助電路IR018.2Hz方波揚聲器8255A與系統的連接8255A在IBMPC/XT主板上的應用各端口的地址分別為:
A口:60HB口:61HC口:62H控制口:63H正常工作時,A、B、C三個端口均工作在方式0,A口輸入、B口輸出、C口輸入,方式控制字為:1001
1001B(99H)(8255A的控制字在系統初始化中已設置)
8255A在IBMPC/XT主板上的應用
8255A在IBMPC/XT主板上的應用發聲程序中通過61H端口控制發聲鍵盤中斷子程中通過60H端口讀入鍵盤掃描碼執行:OUT61H,AL執行:OUT61H,AL8255A在IBMPC/XT主板上的應用87例8.1某系統要求使用8255的A口工作于方式1作輸入,B口工作于方式0作輸出,C口上半部輸入,下半部輸出。8255端口地址為60H-63H。控制字為:10111000B=0B8H初始化程序為:
MOV AL,0B8HOUT 63H,AL882.C口按位置/復位控制字(寫,A1A0=11)C口按位置/復位控制字例8.2 如上例,若A口工作于方式1作輸入,要使用中斷傳送方式,則應當寫PC4的按位置位字:
MOV AL,00001001BOUT 63H,AL89
方式1下8255狀態字中INTE位的置位和復位⊙若禁止PA口輸入中斷請求MOVDX,303H;8255命令口MOVAL,00001000B;置PC4=0,禁止中斷請求OUTDX,AL⊙若允許PA口輸入中斷請求MOVDX,303H;8255命令口MOVAL,00001001B;置PC4=1,允許中斷請求OUTDX,AL⊙若允許PA口輸出中斷請求MOVDX,303H;8255命令口MOVAL,00001101B;置PC6=1,允許中斷請求OUTDX,AL90⊙若允許PB口輸入中斷請求MOVDX,303H;8255命令口MOVAL,00000101B;置PC2=1,允許中斷請求OUTDX,AL⊙若禁止PB口輸入中斷請求MOVDX,303H;8255命令口MOVAL,00000100B;置PC2=0,禁止中斷請求OUTDX,AL⊙若允許PB口輸出中斷請求MOVDX,303H ;8255命令口MOVAL,00000101B;置PC2=1,允許中斷請求OUTDX,AL例8.3:CPU通過8255A控制8個開關和發光二極管,要求發光二極管的亮滅和開關狀態一致,設計電路并編寫程序。解析:可以認為,處于方式0輸出工作狀態的PA、PB、PC端口實際上等同一個鎖存器,而處于方式0輸入工作狀態的PA、PB、PC端口實際上等同一個緩沖器。電路如圖所示。圖18255控制開關、發光二極管電路
首先根據電路確定8255A4個端口的地址。確定端口地址用下述方法進行,為了能夠訪問8255A,必須使8255A的片選信號CS=0,A9~A4的信號必須如下:A9A8A7A6A5A4A3A2
10011000PA端口
01PB端口
10PC端口
11控制端口
而A3、A2
的組合和各個端口地址的關系也如上所示,由于A1、A0沒有參與譯碼,其值對訪問端口沒有影響。綜合以上討論可以得出,PA、PB、PC和控制端口的地址分別是260H、264H、268H和26CH。在確定工作方式控制字時必須知道,PA端口為方式0輸出,PB端口為方式0輸入,而PC端口沒有參與電路工作,其輸入輸出方式隨意,由此可確定控制字為82H。
10000010
控制電路工作并使其保證開關狀態和發光二極管亮滅一致的程序如下:
MOVDX,26CHMOVAL,82HOUTDX,ALMOVDX,264HINAL,DXNOTALMOVDX,260HOUTDX,AL例8.4:
用一片8255A連接8個7段數碼顯示管,規定8255A的端口地址范圍為340H~34FH,用74LS138譯碼器實現8255A的片選電路,并根據電路編寫在8個7段數碼管上顯示數字0~7的程序。解:在設計電路前,首先要了解7段數碼管,掌握數碼管顯示數字的原理。圖2-1給出了共陰極7段數碼管邏輯結構圖。
bcadfegabcdefgcomabcdefgcom(a)7段發光二極管標號(b)對應電路圖(c)引腳分布圖2-1共陰極7段數碼管邏輯結構
從圖2-1可以看出。當com端接低電平,a~g端接高電平,對應的發光二極管就發亮。如果想在7段數碼管上顯示數字0,需要在com端接低電平,a、b、c、d、e、f端接高電平,g端接低電平。七段數碼管的字形代碼表如下:顯示字形g f edc b a段碼
0 0 1 1 11 1 13fh1 0 1 1 00 0 0 30h2 1 0 1 10 1 1 5bh3 1 0 0 11 1 1 4fh4 1 1 0 01 1 0 66h5 1 1 0 11 0 1 6dh61 1 1 11 0 1 7dh7 0 0 0 01 1 1 07h
一片8255A只需4個端口地址,而題中給出的地址范圍由16個地址,這意味著低4位地址中有些地址可以不參加地址譯碼。設計電路的第一部還需要設計出片選電路。必須用指定地址范圍內狀態不變的地址信號作為片選電路的輸入信號。
A9A8A7A6A5A4
A3A2A1A0110100
0000
340H110100
1111
34FH
從上述分析中可以看出,指定地址范圍內狀態不變的地址信號是A9A8A7A6A5A4
它們的狀態分別是110100,這意味著A9~A4上出現的信號狀態為110100,8255A的CS必須為低電平。下面討論如何用74LS138譯碼器實現這一功能。設計片選電路的基本原則是:用A9~A4作為74LS138的輸入,用74LS138其中一個輸出Yi去連接8255的CS,當且僅當A9~A4=110100時,Yi才能變為低電平。圖2-2中,用A6、A5、A4
分別連接74LS138的
G、G2A、G2B,只有當A6A5A4=100時74LS138才能進行譯碼操作,用A9
、A8、A7分別連接74LS138的C、B、A,而用Y6輸出連接8255的CS,這樣,只有當A9A8A7=110時,Y6輸出為低電平。圖2-2用74LS138譯碼器實現8255的片選電路
用一片8255A連接8個7段數碼管。且使8個7段數碼管顯示8個不同的數字。開始,似乎感到有點困難。實際上,任何時刻只顯示一個7段數碼管,其余7個7段數碼管都沒有顯示狀態,CPU通過8255A逐個顯示7段數碼管,并在不同的7段數碼管上顯示不同的數字。在逐個顯示完8個數碼管后,又開始新一輪的逐個顯示過程,當這個循環周期間隔足夠短時,由于人的眼睛有滯后效應,使得人們發現每一個數碼管都出于顯示狀態,且顯示不同的數字。
從電路中可以得出,8255A4個端口的地址分別是:
340H(PA端口)、344H(PB端口)348H(PC端口)、34CH(控制口)程序的設計思路是先通過PB端口選中某個數碼管(使其公共端為低電平),然后再從PA端口輸出選中的數碼管所對應的顯示碼,在完成當前數碼管顯示后,顯示下一個數碼管,在完成一輪顯示后,開始下一輪的顯示。datasegmentorg100hbuff1db3fh,30h,5bh,4fh,66h,6dh,7dh,07h;定義0~7的顯示碼
buff2db0feh,0fdh,0fbh,0f7h,0efh,0dfh,0bfh,7fh;定義位碼dataendscodesegmentassumecs:code,ds:datastart:movdx,34Ch;設置8255控制端口地址
moval,80h;使8255的A口、B口、C口為方式0輸出
outdx,alyyy1:movsi,offsetbuff1;設置顯示碼指針
movdi,offsetbuff2;設置控制碼指針
movcx,8;每一輪循環中顯示的數碼管的數目
yyy2:
movdx,340h
;先使所有數碼管變黑
moval,0
outdx,al
movdx,344h
;選中一個數碼管
moval,[di]
outdx,al
movdx,340h
;輸出該數碼管對應的顯示碼
moval,[si]
outdx,al
incsi
;選擇下一個數碼管所對應的顯示碼
incdi
;選擇下一個數碼管
loopyyy2;顯示下一個數碼管
jmpyyy1;開始新的一輪的顯示
movah,4chint21hcodeends
endstart
8255A作為開關K0~K3及七段LED顯示器接口。要求開關設置的二進制信息,由PC0~PC3輸入,經程序轉換為對應的七段LED顯示器的字形代碼后,由A口輸出顯示。8255APA7PA0~驅動器+5V+5VK0K1K2K3PC3PC2PC1PC0D7~D0RDWRA1A2ABCG2AG2BG1Y0Y1Y2OOOD7~D0RDWRA0A1CSA0A3A4A78086系統總線LS138接口電路M/IO&A5A6各端口地址為:E8H~EEH8255A各端口地址確定:由圖可知: A7A6A5A4A3A2A1A011101
08255A方式選擇控制字:LED顯示器的字形代碼表存放在TABLE單元開始的內存中.TABLEDB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB80H,98H,88H,83H,0C6H,0A1H,86H,8EHCSABCG2AG2BG1Y0Y1Y2A0A3A4A7LS138M/IO&A5A6按題意設置端口A方式0輸出,下C口輸入.10000××181H實現操作的具體程序如下:MOV DX,0E8H ;指向端口A OUT DX,AL ;輸出字形碼顯示 HLTMOV DX,0EEH;設置8255A工作方式 MOV AL,81H OUT DX,ALMOV DX,0ECH;指向端口C,讀開關狀態 IN AL,DX AND AL,0FH LEA BX,TABLE;顯示代碼表首地址送BX XLAT ;查表,取出相應的字形碼送ALLED顯示器的結構abdcefgdpLED顯示器的外形abcdefgdp共陽極LED顯示器的結構abcdefgdp共陰極LED顯示器的結構LED顯示器的工作原理軟件譯碼法PA0PA1PA2PA3PA4PA5PA6PA78255DB7--DB0abcdefgdp方案1共陽極LED顯示器與同相驅動器接口abdcefgdpabdcefgdpD7D6D5D4D3D2D1D0dpgfedcba0(C0H)11000000abdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdpabdcefgdp9(90H)100100001(F9H)111110012(A4H)101001003(B0H)101100004(99H)100110015(92H)100100106(82H)1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 成功案例西醫臨床考試試題及答案
- 一年級道德與法治下冊第四單元快樂的小問號第10課你留心了嗎教案4教科版
- 藥物借貸與分發的管理對策試題及答案
- 理解專利保護與競爭策略的結合方式試題及答案
- 九年級語文下冊第二單元7溜索預習學案無答案新人教版
- 鄉村執業助理醫師考試模擬試題
- 西醫臨床倫理問題與解決方案試題及答案
- 激光技術獲取與利用試題及答案
- 理解專利代理中多方協調的重要性試題及答案
- 建造師力學試題及答案
- 國開電大《中國法律史》形考任務1-3
- 層流手術室的管理
- 機電安裝安全措施方案
- 文化產業股東權益合作協議書
- 中華人民共和國學前教育法-知識培訓
- 康復科自查報告及整改措施
- 2024年四川省宜賓市中考英語試題含解析
- 多式聯運智慧物流平臺構建方案
- 擔保公司專項檢查方案
- 景區旅游安全風險評估報告
- 二級建造師《礦業工程管理與實務》試題(100題)
評論
0/150
提交評論