版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1,第6章 數(shù)字量輸入輸出接口,西安交通大學計算機系桂小林2016年11月6日星期五,微機接口技術,桂小林,2,目錄,6.1 并行接口的概念6.2并行接口控制芯片8255A6.3 數(shù)字量并行接口的應用6.4 數(shù)字量串行接口及芯片8251A6.5 光電隔離輸入輸出接口,微機接口技術,桂小林,3,概述,數(shù)字量輸入輸出接口包括數(shù)字量輸入和數(shù)字量輸出兩大部分。數(shù)字量是計算機能夠直接識別和處理的信號。輸入輸出系統(tǒng)中的主要數(shù)字量包括開
2、關量輸入和輸出。所以數(shù)字量又稱為開關量。本章主要介紹數(shù)字量并行輸入輸出接口、數(shù)字量串行輸入輸出接口以及光電隔離的輸入輸出接口。,微機接口技術,桂小林,4,6.1 并行接口的概念,并行接口通信就是把一個字符的各位同時用幾根線進行傳輸。并行通信用在傳輸速率要求較高,而傳輸距離較短的場合。圖6-1給出了數(shù)據(jù)總線進行并行通行的例子。,微機接口技術,桂小林,5,6.2并行接口控制芯片8255A,8255A是Intel公司生產(chǎn)的可編程并行接口
3、芯片,它有多種工作方式可以進行選擇,并且通常無需外圍電路,使用方便而且廣泛 。6.2.1 8255A的編程結構6.2.2 8255A的引腳功能6.2.3 8255A的控制字6.2.4 8255A的工作方式,微機接口技術,桂小林,6,6.2.1 8255A的編程結構,8255A的邏輯結構如圖6-2所示,主要包括三個并行的輸入/輸出端口A、B和C,A組和B組的控制電路,數(shù)據(jù)緩沖器以及讀寫控制邏輯等部分。為了與A組和B組進行區(qū)分,以
4、下將端口A、B和C稱為PA口、PB口和PC口。,微機接口技術,桂小林,7,,,微機接口技術,桂小林,8,,(1)PA、PB和PC口的作用與功能8255A有三個I/O端口,分別是PA、PB和PC,三個端口都是8位的,并且通過編程可以作為輸入、輸出或輸入/輸出端口使用。PA口是一個獨立的8位I/O口,有數(shù)據(jù)輸入/輸出鎖存功能。PB口也是一個獨立的8位I/O口,有數(shù)據(jù)輸出鎖存功能。PC口可以看作是一個獨立的8位I/O口;也可以看作是兩
5、個獨立的4位I/O口,還可看作獨立的8位I/O口。有數(shù)據(jù)輸出鎖存功能。端口PA和PB通常獨立使用,而端口PC既可以獨立使用,也可以配合端口PA和PB的工作,為它們提供聯(lián)絡信號,包括選通信號和應答信號。端口PC在獨立工作時,既可以8位并行輸入或輸出,也可以按位操作,具有更大的靈活性。,微機接口技術,桂小林,9,,(2)A組和B組的控制電路在配合端口PA和PB工作時,端口PC被分為兩部分,高4位(PC7 ~ PC4)與端口PA一起構成
6、了A組,而低4位(PC3 ~ PC0)與端口PB一起構成了B組。A組和B組的控制電路接收由讀寫控制邏輯獲得的控制字,分別對A組和B組的工作方式進行控制,因此A組和B組可以工作在不同方式下。,微機接口技術,桂小林,10,,(3)數(shù)據(jù)緩沖器雙向、三態(tài)的數(shù)據(jù)緩沖器是8255A與數(shù)據(jù)總線的接口,微處理器可以通過它向三個I/O端口寫入或讀出數(shù)據(jù),或者寫入控制字以選擇8255A的工作方式。(4)讀寫控制邏輯讀寫控制邏輯電路負責管理8255A
7、的數(shù)據(jù)傳輸過程,實現(xiàn)8255A內部和外部的數(shù)據(jù)、控制字的傳送。它根據(jù)地址、控制信號(復位信號、讀寫信號和片選信號等)的組合來決定將微處理器發(fā)送的控制字傳送給A組或B組的控制電路,或者選擇輸入或輸出數(shù)據(jù)到PA、PB和PC口。,微機接口技術,桂小林,11,6.2.2 8255A的引腳功能,1.面向CPU的引腳信號及功能D0-D7:8位,雙向,三態(tài)數(shù)據(jù)線,用來與系統(tǒng)數(shù)據(jù)總線相連;RESET:復位信號,高電平有效,輸入,用來清除8255A的
8、內部寄存器,并置A口,B口,C口均為輸入方式;A1,A0:內部口地址的選擇,輸入。這兩個引腳上的信號組合決定對8255A內部的哪一個口或寄存器進行操作,微機接口技術,桂小林,12,,2.面向外設的引腳信號及功能PA0~PA7:A組數(shù)據(jù)信號,用來連接外設;具有輸入、輸出鎖存功能,可以作為單向或雙向信號線使用。PB0~PB7:B組數(shù)據(jù)信號,用來連接外設;具有輸出鎖存功能,僅可以作為單向信號線使用。PC0~PC7:C組數(shù)據(jù)信號,用來連
9、接外設或者作為控制信號。具有輸出鎖存功能,僅可以作為單向信號線使用。,微機接口技術,桂小林,13,6.2.3 8255A的控制字,1.方式控制字(控制口),微機接口技術,桂小林,14,,2.C口置位/復位控制字(控制口),注意:這里必須使用控制口操作PC口,微機接口技術,桂小林,15,,例如,某系統(tǒng)要求使用8255A的C口的PC5輸出一個由高到低的跳變??梢酝ㄟ^兩種方式設置。如下頁,微機接口技術,桂小林,16,,方法一:采用普通方式設
10、置PC為輸出,然后置位/復位PC5,具體程序段如下:MOVDX,控制口MOVAL,1 00 0 0 X X XB;選擇PC高位輸出,方式0OUTDX,AL;控制字設置MOV DX,PC端口MOVAL,XX 1 XXXXX B;即PC5設置為高電平輸出OUTDX,AL;PC5置0(低電平)MOVAL,XX 0 XXXXX B;即PC5設置為低電平輸出OUTDX,AL;PC5置0(低電平),微機
11、接口技術,桂小林,17,,方法二:采用置位/復位PC口方式,具體程序段如下:MOVDX,控制口MOVAL,0 000 101 1B;即0BH,選擇PC5,置位OUTDX,AL;PC5置1(高電平)MOVAL,0 000 101 0B;即0AH,選擇PC5,復位OUTDX,AL;PC5置0(低電平),微機接口技術,桂小林,18,,3、8255A的狀態(tài)字8255A無狀態(tài)寄存器,在方式1和方式2時,可以用端
12、口C兼作狀態(tài)用。,微機接口技術,桂小林,19,6.2.4 8255A的工作方式,1.方式0方式0稱為基本輸入/輸出方式,適合在同步傳輸(無條件傳輸)和程序查詢方式下工作,CPU通過軟件方式確認外設狀態(tài),與外設交換數(shù)據(jù),因而不適合在實時性要求高的應用環(huán)境。在方式0中,PA、PB和PC相互獨立工作,PC又分為高4位和低4位兩個獨立的部分,通過控制字可以將這四部分任意選擇為輸入或輸出,共有16種組合。,微機接口技術,桂小林,20,初始化實
13、例,例如,某系統(tǒng)要求使用8255A的C口的PC4輸出一個由高到低的跳變。寫出8255A的方式控制字和初始化程序段?!窘狻坑捎诒纠魂P心PA和PB的工作方式,所以不用考慮設置8255A的方式控制字。為了實現(xiàn)PC4輸出一個由高到低的跳變,需要PC4先輸出一個高電平,然后輸出一個低電平。方法一:采用普通方式設置PC為輸出,然后設置PC4(1,0),具體程序段如下:MOVDX,控制口MOVAL,1 00 0 X X XB;選擇
14、PC高位輸出,方式0OUTDX,AL;MOV DX,PC口MOVAL,XXX 1 XXXX B;即PC4設置為高電平輸出OUTDX,AL;PC4置1(高電平)MOVAL,XXX 0 XXXX B;即PC4設置為低電平輸出OUTDX,AL;PC4置0(低電平),微機接口技術,桂小林,21,,為了實現(xiàn)PC4輸出一個由高到低的跳變,需要PC4先輸出一個高電平,然后輸出一個低電平。方法2:采用置位/復
15、位PC口方式,具體程序段如下:MOVDX,控制口MOVAL,0 000 100 1B;即09H,選擇PC4,置位OUTDX,AL;PC4置1(高電平)MOVAL,0 000 100 0B;即08H,選擇PC4,復位OUTDX,AL;PC4置0(低電平)對于PC口可以采用兩種方法之一,方法二簡單。對應PA和PB口,只能采用方法一,不能使用方法二。特別注意:方法二對控制口進行,不是PC端口。,微機接口技
16、術,桂小林,22,,2.方式1方式1是一種選通I/O方式,A口和B口仍作為兩個獨立的8位I/O數(shù)據(jù)通道,可單獨連接外設,通過編程分別設置它們?yōu)檩斎牖蜉敵?,輸入輸出均具有?shù)據(jù)鎖存功能。而C口則要有6位(分成兩個3位)分別作為A口和B口的應答聯(lián)絡線,其余2位仍可工作在方式0,可通過編程設置為輸入或輸出。,微機接口技術,桂小林,23,,(1)方式1的輸入組態(tài)和應答信號的功能圖6-7給出了8255A的A口和B口在方式1的輸入組態(tài)圖。C口的
17、PC3-PC5用作A口的應答聯(lián)絡線,PC0-PC2則作用B口的應答聯(lián)絡線,余下的PC6~PC7還可作為方式0使用。,微機接口技術,桂小林,24,方式1輸入組態(tài)的應答聯(lián)絡線,微機接口技術,桂小林,25,,,微機接口技術,桂小林,26,方式1的輸出組態(tài)和應答信號,,微機接口技術,桂小林,27,,微機接口技術,桂小林,28,,,微機接口技術,桂小林,29,3.方式2,方式2為雙向選通I/O方式,只有A口才有此方式。這時,C口有5根線用作A口
18、的應答聯(lián)絡信號,其余3根線可用作方式0,也可用作B口方式1的應答聯(lián)絡線。方式2就是方式1的輸入與輸出方式的組合,各應答信號的功能也相同。而C口余下的PC0~PC2正好可以充當B口方式1的應答線,若B口不用或工作于方式0,則這三條線也可工作于方式0。,微機接口技術,桂小林,30,方式2為雙向選通I/O方式,中斷請求輸出緩沖器滿輸出應答(外設讀走數(shù)據(jù))輸入選通(外設準備好了數(shù)據(jù))輸入緩沖器滿(8255已經(jīng)收到數(shù)據(jù))作為普通輸
19、入輸出(方式0),31,6.3 并行接口的應用本節(jié)介紹8255A的典型應用,包括8255A與LED的接口、8255A與非編碼鍵盤的接口、8255A與并行打印機的接口。,6.3.1 七段數(shù)碼管接口6.3.2 非編碼鍵盤接口6.3.3并行打印機接口,微機接口技術,桂小林,32,6.3.1 七段數(shù)碼管接口,1、單個LED與8255A的接口2、多個LED與 8255A的接口,微機接口技術,桂小林,33,七段數(shù)碼管,數(shù)碼顯示管(LED)是
20、一種簡單的顯示輸出設備,通常作為儀器、儀表的顯示器,用于顯示數(shù)字或少數(shù)字符。LED種類較多、大小各異,主要有七段數(shù)碼管和16段數(shù)碼管。圖6.13給出了一種七段式數(shù)碼管的內部結構。,微機接口技術,桂小林,34,,顯示不同數(shù)字和字符時,七段數(shù)碼管需要點亮的二極管位置不同。如,顯示數(shù)字“3”,需要點亮a、b、c、d和g四段發(fā)光二極管。表6-2給出了圖6.13所示結構的七段數(shù)碼管實現(xiàn)數(shù)字0~9以及字符A~F時,需要發(fā)光的二極管段。,微機接
21、口技術,桂小林,35,,,微機接口技術,桂小林,36,1、單個七段數(shù)碼管與8255A的接口,8255A與單個數(shù)碼管的接口電路如圖6.14所示。,共陽,微機接口技術,桂小林,37,,該數(shù)碼管由8個發(fā)光二極管構成,對外引腳共9個,分別是a、b、c、d、e、f、g、dp和公共引腳,采用共陽極結構。除Vcc外,每個引腳外接1個460歐姆的電阻,然后連接到8255A的PB口的PB0~PB7上。根據(jù)題意,當在PB0上輸出低電平時,LED的a段二極
22、管發(fā)光,輸出高電平時,LED的a段二極管熄滅。其它各段發(fā)光的方法依次類推。,,微機接口技術,桂小林,38,,首先,分析圖中LED實現(xiàn)不同數(shù)字和字符時發(fā)光的二極管,由此確定PB口輸出什么數(shù)值時控制顯示不同的“數(shù)字”或“字符”。例如,要顯示數(shù)字“2”時,需要點亮a、b、d、e、g共5段發(fā)光二極管,根據(jù)a、b、d、e、g與PB口的連接關系,可以確定PB口的值應該設置為PB0=0(a段),PB1=0(b段),PB2=1(c短),PB3=0(d
23、段),PB4=0(e段),PB5=1(f段),PB6=0(g段),PB7=1(DP段),寫出字節(jié)的形式就是10100100B,即0A4H。這種為確定顯示字符而確定的CPU需要送出的控制數(shù)值,稱為LED段碼或字形碼。表6-3給出了全部16進制數(shù)字字符的LED段碼。,微機接口技術,桂小林,39,,微機接口技術,桂小林,40,,在上例中,采用共陽LED,低有效驅動顯示,如果要求先顯示數(shù)字“3”,然后顯示數(shù)字“6”,寫出程序段?!窘狻肯确?/p>
24、析數(shù)字“3”和數(shù)字“6“顯示時的LED段碼,分別為:0B0H和82H,然后寫出程序段如下:MOV DX, 8255控制口MOV AL, 1 000 0 00 0B;80H,8255A初始化B口方式0,輸出OUT DX,ALMOV DX,8255PB口MOV AL,0B0H;“3”的段碼OUT DX,AL;顯示“3”CALL DELAY20MS;延時MOV AL,82H;“6”的段碼OUT
25、DX,AL;顯示“6”,微機接口技術,桂小林,41,2、8255A與多個LED的接口,圖6-15為8255A驅動8個LED的接口電路。其中的七段數(shù)碼管采用共陰LED,每個LED包含8個引腳,分別是a、b、c、d、e、f、g、dp和公共引腳。除公共引腳外,每個引腳外接1個460歐姆的電阻(圖中未給出),然后連接到8255A的PA口的PA0~PA7上。每個LED的公共引腳經(jīng)過反相器連接到PC口的PC0~PC7。,微機接口技術,桂小林
26、,42,,,,,,,在這種有多個數(shù)碼管的情況下,通常采用動態(tài)掃描的方式來控制數(shù)碼管的顯示,其過程是首先使PC0輸出高電平,而PC1 ~ PC7輸出低電平,選中數(shù)碼管U0,然后由PA口根據(jù)要顯示的第一個數(shù)字輸出8位數(shù)據(jù)(稱為段碼或字形碼),盡管段碼同時到達8個數(shù)碼管的段選線,但只有U0能夠顯示,因此將第一個數(shù)字顯示在U0上。,微機接口技術,桂小林,43,,在這種有多個數(shù)碼管的情況下,通常采用動態(tài)掃描的方式來控制數(shù)碼管的顯示,其過程是首先使
27、PC0輸出高電平,而PC1 ~ PC7輸出低電平,選中數(shù)碼管U0,然后由PA口根據(jù)要顯示的第一個數(shù)字輸出8位數(shù)據(jù)(稱為段碼或字形碼),盡管段碼同時到達8個數(shù)碼管的段選線,但只有U0能夠顯示,因此將第一個數(shù)字顯示在U0上。這種狀態(tài)維持2m后,接下來使PC1輸出高電平,而其它7位輸出低電平,可以在數(shù)碼管U1上顯示第二個數(shù)字。以此類推,周而復始,就可以使8個數(shù)碼管同時顯示8位數(shù)字。上述動態(tài)掃描過程利用了視覺暫留現(xiàn)象。為了能夠獲得較好的顯示
28、效果,每個數(shù)碼管的掃描時間需要選取恰當,時間太長會造成閃爍現(xiàn)象。,微機接口技術,桂小林,44,求解過程-第1階段:設置段碼表,本例由于采用共陰LED,而且LED引腳和PA口的連接順序不同(引腳a、b、c、d、e、f、g、dp分別對應PA口的PA7~0),因而得到的段碼(字形碼)不同。,微機接口技術,桂小林,45,第2階段:設置顯示緩沖區(qū),8個LED要顯示的數(shù)字可以放到顯示緩沖區(qū)DispBuff中。例如,8個LED要顯示“2007050
29、1”,則DispBuff的值可以設置為:2,0,0,7,0,5,0,1。通過修改顯示緩沖區(qū),可以讓8個LED顯示不同的數(shù)字,簡化了軟件設計。DispBuff:02H, 00H, 00H, 07H, 00H, 05H, 00H, 01H;放置要實現(xiàn)的8個數(shù)字,作為查找下表的偏移量使用,微機接口技術,桂小林,46,第3階段:設計8個LED輪流顯示的完整程序,// 初始化8255A MOVAL,10000000B;PA、PC
30、均為方式0, 輸出 MOVDX,PORTCTL;8255A控制口 OUTDX,ALBEGIN:MOVCX,8;循環(huán)8次MOVDI,Offset DisBuffMOVBX,Offset SegCodeTabMOV SI,0 MOVAH,00000001B;PC0設置為1,選中第一個LED,微機接口技術,桂小林,47,,MOVAH,00000001B;PC0設置為1,選中第
31、一個LEDSCAN:MOVAL,AH;使PC口相應位置位MOV DX,PORTC;MOVDX,PORTCTL;C口位控時的指令OUT DX,AL;使PC口相應位置位ADD DI,SI;查找顯示緩沖區(qū)MOV DX, [DI];取出要顯示的數(shù)字符 MOVAL,[BX+ DX];取出顯示字符的段值(字形碼)INCSI;下一個要顯示字符的偏移量MOVDX,PORTA
32、;PA口輸出字形碼OUT DX,AL CALLDELAY2MSSHL AH,1;為顯示下一個數(shù)碼管做準備 ;ADDAH,2;C口位控時,為顯示下一個數(shù)碼管做準備LOOPSCANJMPBEGIN;重復顯示,微機接口技術,桂小林,48,6.3.2 非編碼鍵盤接口,鍵盤根據(jù)實現(xiàn)方法可以分為編碼鍵盤和編碼鍵盤非兩種。編碼鍵盤是指可以直接提供按鍵編碼(如ASCII碼)的鍵盤。為了能夠提供
33、按鍵編碼,編碼鍵盤內部需要有鍵盤掃描電路,這些硬件電路能夠檢測是否有鍵按下,并根據(jù)按下的是哪一個鍵而輸出其編碼。比如經(jīng)常使用的PC機鍵盤,其內部專門設有一個單片機進行鍵盤檢測和處理。非編碼鍵盤只有按鍵而無掃描電路,這些按鍵它由多個開關組合而成。,微機接口技術,桂小林,49,16個鍵的鍵盤,對于大多數(shù)的鍵盤,按鍵被排成行和列的矩陣。下面以機械式開關構成的16個鍵的鍵盤為例(如圖6-16所示),來討論鍵盤接口的工作原理,這種原理對采用其
34、它類型的開關的鍵盤也是適用的。,微機接口技術,桂小林,50,分析,設16個鍵分別為16進制數(shù)字0~9和A~F,鍵盤排列、連線及接口電路如圖6-16所示。16個鍵排成4行×4列的矩陣,通過8255A構成的接口與CPU連接。8255A的端口A作輸出,端口B作輸入。矩陣的4條行線接到輸出端口A的PA3~PA0,用程序能改變這4條行線上的電平。4條列線連到輸人端口B的PB3~PB0,4條行線還同時接到輸人端口B的PB7~PB4上
35、(這不是必須的,可以不接),這樣,用輸入指令讀取B口狀態(tài)時,可同時讀取鍵盤的行列信號。,微機接口技術,桂小林,51,16個按鍵的掃描碼,例如,對于數(shù)字0,它位于3行、3列,壓下“0”鍵時,從B口可讀得D7位和D3位為0,其余位為1,所以數(shù)字0的編碼為01110111B,即77H;對于數(shù)字6,處于2行1列,壓下‘6’鍵時,D6位和D1位0以其余位為1,所以數(shù)字6的編碼為10111101B=BDH。,微機接口技術,桂小林,52,確定程序流程
36、,包括鍵盤檢測、去抖動、鍵值編碼和確定鍵名等。具體流程如下:(1) 檢測是否所有鍵都松開了,若沒有則反復檢測(該步可省去)。當所有鍵都松開了,轉(2);(2) 檢測是否有鍵壓下,若無鍵壓下則反復檢測。(3) 若有鍵壓下,則通過延遲20ms消除鍵抖動,如果該鍵還按下,則繼續(xù)判斷是哪個鍵按下,否則,繼續(xù)檢測。(4) 對壓下的鍵進行編碼,將該鍵的行列信號轉換成16進制碼,由此可確定哪個鍵被壓下了。如出現(xiàn)多鍵重接的情況,只有在其它鍵均
37、釋放后,僅剩一個鍵閉合時,才把此鍵當作本次壓下的鍵。(5) 該鍵釋放后,再回到(2)。,微機接口技術,桂小林,53,給出具體程序,首先給出該8255A的端口地址(這里是假設,實際系統(tǒng)根據(jù)地址譯碼確定),具體為:PORTA EQU 0FF9H;8255 A口地址PORTB EQU 0FFBH;8255 B口地址PORTCTL EQU 0FFFH;8255控制口地址然后確定程序出口,具體參數(shù)為:若返回值AH=0
38、,表示已讀到有效的鍵值,并在AL中存有0~F鍵的16進制代碼;若返回值AH=l,則表示出錯。 最后給出程序段,包括注釋與說明。,微機接口技術,桂小林,54,給出具體程序,,,本段程序可以省略,等待全部按鍵釋放,微機接口技術,桂小林,55,給出具體程序,,本段程序檢查是否有鍵按下?,微機接口技術,桂小林,56,,,本段程序檢查哪一個鍵按?,,本段程序編碼并查表,從按鍵F開始查表,直到按鍵0。如果按鍵較少,則不用查表,根
39、據(jù)編碼轉去直接處理,IN AL,DX CMP AL,77H JZ Key0CMP AL,7BHJZ Key1… …,微機接口技術,桂小林,57,,從上面鍵盤接口例子我們可以看到,為了要及時發(fā)現(xiàn)鍵盤中的按鍵是否按下,CPU必須定時或不斷地利用軟件(即上述掃描程序)對鍵盤進行掃描,這樣CPU的開銷太大,降低了CPU的工作效率。為此有關廠家專門開發(fā)了、用于鍵盤接口的大規(guī)模集成電路芯片,例如Intel 827
40、9、SSK814。,鍵盤實例,微機接口技術,桂小林,58,差分,微機接口技術,桂小林,59,6.3.3并行打印機接口,并行打印機接口(LPT)在不同PC系列機型中,以不同的形式出現(xiàn)。在PC/XT機中是以I/O擴展槽上的IBM并行打印機適配器板出現(xiàn),在AT機中是以插在I/O擴展槽上的 IBM并行口/串行口適配器板出現(xiàn)?,F(xiàn)在的LPT則集成在主板上,隨著計算機的快速發(fā)展,LPT接口的使用頻率在下降,代之而起的是基于USB接口的打印機的廣泛
41、使用。但作為打印機的主要接口之一,本節(jié)有必要進行介紹與講述。,微機接口技術,桂小林,60,Centronics總線標準,在并行打印機中,設置有36引腳的Centronics總線標準插座。打印機與PC通過36芯-25芯電纜連接到PC的25芯D型連接器LPT上。它的25個引腳所代表的信號可分為:數(shù)據(jù)信號、狀態(tài)信號和控制信號三類。表6-6給出了Centronic總線引腳及其功能說明。,微機接口技術,桂小林,61,Centronic總線引
42、腳及功能說明,Centronic總線時序,微機接口技術,桂小林,62,8255控制打印機實例,例如,已知某微型英文打印機的接口信號如下,信號間的時序關系如圖6-17所示。其中:(1) STB#:輸入打印機的選通信號(5ms負脈沖),用來把數(shù)據(jù)打入打印機數(shù)據(jù)緩沖器; (2)INIT# :初始化打印機信號(5ms負脈沖); (3) BUSY:打印機發(fā)出的狀態(tài)信息(“忙”信號),BUSY有效(高電平)時,表示打印機現(xiàn)在不能接收數(shù)據(jù),
43、BUSY無效(低電平)時,表示打印機正處于空閑(準備好)狀態(tài),可以接收數(shù)據(jù)。(4) DATA0~DATA7:送往打印機的打印數(shù)據(jù),在英文字符打印機中,DATA0~DATA7上傳輸?shù)氖且蛴〉淖址腁SCII碼。,微機接口技術,桂小林,63,,現(xiàn)在將英文打印機連接到8255A芯片上,8255A連接到PC/XT總線上,如圖6-18所示。已知有5ms延遲程序Delay5ms可供調用。,微機接口技術,桂小林,64,,解答下列問題: (1)分
44、析圖中的譯碼電路,給出8255A的PA、PB、PC和方式控制字的端口地址(用16進制表示);(2)給出8255A的方式控制字(用16進制表示),寫出初始化8255A的程序段;(3)完成判斷打印機忙的程序段;(4)完成下面的打印一個字符“A”的程序段。,微機接口技術,桂小林,65,【解】,(1)由圖6-18的地址譯碼電路分析可知,8255A的片選信號連接到74LS138芯片的Y2上,即當Y2為低電平時選中8255A芯片。而74L
45、S138的Y2為低電平的條件是:A9A8=11,A7A6=01,A4A3A2=010,A5為任意值。根據(jù)上述分析,8255A的PA口地址為:11 01X0 1000B,即348H或368H。由此可得,8255A的PA、PB、PC和控制口的端口地址分別為:348H或368H,349H或369H,34AH或36AH,34BH或36BH。,微機接口技術,桂小林,66,解:,(2)按照題意,8255A的PA為輸入(或輸出),PB為輸出,
46、PC的低4位為輸出,高4位為輸入。由此可得8255A的方式字的值為98H。下面是初始化8255A的程序段:MOV DX,34BH或36BHMOVAL,98HOUTDX,AL(3)下面是判斷打印機忙的程序段;MOV DX,34AH;或36AH,C口 BUSY:INAL,DXTEST AL,40H; 檢測PC6JNZ BUSY,微機接口技術,桂小林,67,,,微機接口技術,桂小林,68,方式
47、1時打印機連接,上面的例子給出的是8255A工作于方式0的例子。但在實際應用中,打印機與8255A可以方便實現(xiàn)方式1的連接,即由硬件判斷打印機忙狀態(tài),通過中斷方式進行打印數(shù)據(jù)發(fā)送。圖6.19所示,微型打印機的接口由8255A的A組實現(xiàn),采用工作方式1、輸出方式。根據(jù)方式1的時序關系,微處理器將數(shù)據(jù)寫入PA口并由其引腳輸出后,PC7輸出信號,這正好作為數(shù)據(jù)選通信號將數(shù)據(jù)送入打印機,打印機完成接收操作后用信號指示8255A,隨后8255
48、A產(chǎn)生中斷請求信號通知微處理器可以輸出下一個數(shù)據(jù)。,微機接口技術,桂小林,69,,中斷向量填寫[0+?*4][0+?*4+2]中斷服務程序發(fā)送1個ASCII碼到PAMOV DX,PAMOV AL,字符的ASCII碼OUT DX,AL,,,,,,,微機接口技術,桂小林,70,作業(yè),P2921、6、10,微機接口技術,桂小林,71,6.4 串行接口的基本概念,第1節(jié): 串行通信基礎第2節(jié): 可編程串行接口芯片-8251第
49、3節(jié): 8251的串行異步通信的應用第4節(jié): PC系列串行異步通信接口第5節(jié): BIOS串行異步通信口的功能調用2024年3月7日星期四修改,微機接口技術,桂小林,72,第1節(jié):串行通信基礎,1)串行通信的物理連接2)串行通信類型和數(shù)據(jù)位鑒別方式3)串行通信協(xié)議4)串行通信的物理標準,微機接口技術,桂小林,73,1)串行通信物理連接方式,,微機接口技術,桂小林,74,2) 串行通信的類型和數(shù)據(jù)位的檢測方式,串行異步通信格式
50、 一幀字符用起始位和停止位同步,微機接口技術,桂小林,75,2) 串行通信的類型和數(shù)據(jù)位的檢測方式,串行同步通信格式 用同步字符完成同步,微機接口技術,桂小林,76,串行通信數(shù)據(jù)位的檢測時鐘周期 :Tc數(shù)據(jù)位間隔:TdTc = Td / KK:波特率因子(16,32,64),微機接口技術,桂小林,77,3)串行通信協(xié)議,① 異步通信協(xié)議② 同步通信協(xié)議,微機接口技術,桂小林,78,① 異步通信數(shù)據(jù)格式,
51、微機接口技術,桂小林,79,② 串行同步通信協(xié)議,BISYNC(Binary Synchronous Communication):SYN(1或多)、STX(起始控制符)、DATA FIELD(100或更多字節(jié))、ETX(結束控制符)、BCC(塊校驗字符)、PAD(幀結束FFH),微機接口技術,桂小林,80,② 串行同步通信協(xié)議,SDLC(Serial Data Link Control):IBM 用于計算機網(wǎng)絡中S
52、YNC(Flag byte 01111110 )、Address field(8bits)、Control field(8bits)、Data field(k bits)、Frame check(16 bits)、End flag(01111110),微機接口技術,桂小林,81,4)物理標準,通信速率 串行通信接口標準 信號的調制和解調,微機接口技術,桂小林,82,4)物理標準通信速率,波特率:bits / S ,
53、 波特,與距離成反比100,300,600,1200,2400,4800,9600,19200,微機接口技術,桂小林,83,串行通信接口標準:EIA RS-232C控制信號的定義,,微機接口技術,桂小林,84,信號電平標準: 采用負邏輯,TTL與RS-232電平變換,,,,,,,,接口,1489,1488,1489,1488,,,,接口,,,,,,,TTL,TTL,TTL,TTL,RS-232,RS-232,微機接口技術,桂小
54、林,85,,RS-232連接器連接方式,,1)/RTS(Request To Send)——請求發(fā)送引腳(輸出、低電平有效),通過命令指令字可以使該引腳輸出低電平,通知調制解調器當前微處理器已經(jīng)準備好發(fā)送。2)/CTS(Clear To Send)——清除發(fā)送引腳(輸入,低電平有效),當為低電平時,表示調制解調器已經(jīng)允許8251A發(fā)送數(shù)據(jù)。-----------------------------------------------
55、---------------3)/DTR(Data Terminal Ready)——數(shù)據(jù)終端準備就緒引腳(輸出,低電平有效),通過命令指令字可以使該引腳輸出低電平,通知調制解調器當前微處理器已經(jīng)準備就緒。4)/DSR(Data Set Ready)——數(shù)據(jù)設備準備就緒引腳(輸入,低電平有效),當為低電平時,通知微處理器當前調制解調器已經(jīng)準備就緒。由于該信號是輸入給8251A的,微處理器需要讀取8251A的狀態(tài)字來檢測該信號,以
56、了解調制解調器當前的狀態(tài)。,微機接口技術,桂小林,86,微機接口技術,桂小林,87,信號的調制和解調,長距離傳輸時傳輸介質頻帶限制把發(fā)送代碼調制成正弦波調頻 Frequency Modulation1:2100Hz0:1070Hz調相調幅,微機接口技術,桂小林,88,信號的調制和解調,支持長距離傳輸,,微機接口技術,桂小林,89,幾種可編程串行接口芯片,隨著大規(guī)模集成電路技術的發(fā)展,生產(chǎn)微處理器芯片的公司,紛紛推出可編
57、程的支持異步規(guī)程或同步規(guī)程的接口芯片。下表列出幾種串行接口芯片。這些芯片都是可編程的,用芯片構成串行通信接口,只需附加地址譯碼器和數(shù)據(jù)驅動器、波特率發(fā)生器以及電平轉換器等簡單電路。有的芯片,例如INS 8250芯片內還集成了波特率發(fā)生器,用它組成串行接口適配器時、電路結構更簡單。,,微機接口技術,桂小林,90,下表列出幾種串行接口芯片,PC機,,微機接口技術,桂小林,91,第2節(jié):可編程串行通信接口 8251,1) 功能與結構2
58、) 8251的編程3) 8251的應用,微機接口技術,桂小林,92,1)功能與結構-8251的基本性能,可用于同步或異步傳送同步傳送時, 每字符可選5~8 bits; 可內或外同步; 能自動插入同步字符。異步傳送時, 每字符可選5~8 bits; 接收與發(fā)送時鐘為通訊波特率的1、16或64倍。可產(chǎn)生中止字符 (Break Character) 并能自動檢測和處理; 可產(chǎn)生1、1.5或2 bit的停止位; 可檢測出假啟動信號。
59、波特率, 同步時最高64 K波特; 異步時最高19.2 K波特。完全雙工, 雙緩沖的發(fā)送器與接收器檢錯能力, 具有奇偶錯、數(shù)據(jù)丟失錯和幀錯誤的檢測能力。全部入/出信號均為正常TTL電平。,微機接口技術,桂小林,93,1)8251 的功能與結構,,緩沖器又可細劃為狀態(tài)緩沖器, 發(fā)送數(shù)據(jù)/命令緩沖器, 和接收數(shù)據(jù)緩沖器3部分。,微機接口技術,桂小林,94,1)8251 的引腳安排,D7~D0(接外部數(shù)據(jù)總線)TXD——數(shù)據(jù)發(fā)送引腳
60、,在不發(fā)送數(shù)據(jù)時一般為高電平,但是通過發(fā)送終止字符可以使其為低電平。/TxC 控制數(shù)據(jù)發(fā)送速率的時鐘輸入引腳,在發(fā)送數(shù)據(jù)時,TXD 引腳在的每個下降沿移出一位數(shù)據(jù)。在同步方式下,數(shù)據(jù)傳送速率等于的CLK頻率,而在異步方式下,通過方式指令字可以選擇數(shù)據(jù)傳送速率為CLK頻率的1、1/16或1/64。,,微機接口技術,桂小林,95,8251 的引腳安排,TXRDY—發(fā)送器準備就緒引腳,當TXRDY為高電平時指示發(fā)送緩沖器已空,微處理器可
61、以寫入新的數(shù)據(jù),寫信號上升沿引腳變低。引腳由TXEN控制,TXEN=0時TXRDY維持低電平。TXRDY通常作為中斷請求信號,而TXEN可以看成是中斷屏蔽位;8251A的狀態(tài)字中也有一位TXRDY,與TXRDY引腳的區(qū)別是不受和TXEN的控制,在查詢輸入/輸出方式中,微處理器查詢該狀態(tài)位來判斷是否可以傳送數(shù)據(jù)。,微機接口技術,桂小林,96,發(fā)送引腳,TXEMPTY——發(fā)送緩沖器已空引腳,當發(fā)送緩沖器中的數(shù)據(jù)發(fā)送完畢,該引腳為高電平
62、。當微處理器向發(fā)送緩沖器寫入數(shù)據(jù)時,寫信號上升沿使TXEMPTY變低。在同步方式下,若TXEMPTY為高電平,表示當前沒有數(shù)據(jù)可供發(fā)送,則8251A自動發(fā)送同步字符。,微機接口技術,桂小林,97,接收引腳,SYNDET—同步字符檢測引腳。SYNDET 既可以作為輸入引腳也可以作為輸出引腳。8251A復位后,SYNDET為低電平。內同步時,當在RxD線上檢測到同步字符后,SYNDET輸出高電平。外同步時,SYNDET為輸入。當外設
63、完成同步字符檢測后,向此引腳輸入一個正跳變信號,使得8251A在下一個j接收時鐘的下降沿開始裝配字符。,微機接口技術,桂小林,98,接收引腳,① RxD——數(shù)據(jù)接收引腳,8251A在/RxC的每個上升沿采樣RxD引腳。②/RxC——控制數(shù)據(jù)接收速率的時鐘輸入引腳,控制數(shù)據(jù)接收速率的方式與/TxC相同,在實際使用時/RxC與/TxC通常接在一起。③ RxRDY——接收器準備就緒引腳,當RxRDY為高電平時,指示8251A的數(shù)據(jù)緩沖器中
64、已經(jīng)有接收到的數(shù)據(jù),可供微處理器讀出,并且由讀信號的上升沿復位。如果在RxRDY信號有效的情況下微處理器沒有及時取走數(shù)據(jù),新接收的數(shù)據(jù)會覆蓋數(shù)據(jù)緩沖器中原有數(shù)據(jù),造成溢出錯誤,并且使狀態(tài)字中的溢出錯誤標志OE置位。RXRDY可以作為中斷請求信號,也可以作為狀態(tài)信號供微處理器查詢,微機接口技術,桂小林,99,調制解調器控制電路,(1)/DTR(Data Terminal Ready)——數(shù)據(jù)終端準備就緒引腳(輸出,低電平有效),通過命令
65、指令字可以使該引腳輸出低電平,通知調制解調器當前微處理器已經(jīng)準備就緒。(2)/DSR(Data Set Ready)——數(shù)據(jù)設備準備就緒引腳(輸入,低電平有效),當為低電平時,通知微處理器當前調制解調器已經(jīng)準備就緒。由于該信號是輸入給8251A的,微處理器需要讀取8251A的狀態(tài)字來檢測該信號,以了解調制解調器當前的狀態(tài)。(3)/RTS(Request To Send)——請求發(fā)送引腳(輸出、低電平有效),通過命令指令字可以使該引腳
66、輸出低電平,通知調制解調器當前微處理器已經(jīng)準備好發(fā)送。(4)/CTS(Clear To Send)——清除發(fā)送引腳(輸入,低電平有效),當為低電平時,表示調制解調器已經(jīng)允許8251A發(fā)送數(shù)據(jù)。,微機接口技術,桂小林,100,時鐘信號,8251時鐘信號:CLK:時鐘輸入,用來產(chǎn)生8251A器件的內部時序。同步方式下,大于接收數(shù)據(jù)或發(fā)送數(shù)據(jù)的波特率的30倍,異步方式下,則要大于數(shù)據(jù)波特率的4.5倍。TxC:發(fā)送器時鐘輸入,用來控制發(fā)送
67、字符的速度。同步方式下,TxC的頻率等于字符傳輸?shù)牟ㄌ芈?,異步方式下,TxC的頻率可以為字符傳輸波特率的1倍、16倍或者64倍,微機接口技術,桂小林,101,8251A的發(fā)送和接收--- ①異步接收,a.在沒有字符時,RxD線上為高電平b.8251把RxD線上第一次出現(xiàn)的低電平作為起始位。c.當檢測到起始位后,8251啟動一個內部計數(shù)器,以波特率因子為16為例,當計數(shù)器計到半個數(shù)位傳輸時間即8個脈沖時,再檢測RxD線,若RxD為高,
68、則8251認為RxD線上出現(xiàn)了干擾(假起始),重新開始檢測起始位。若RxD仍為低,則8251確認收到一個有效的起始位。d.當8251確認起始位后,進入正常的數(shù)據(jù)采樣,如波特率因子為16,則每隔一個數(shù)位傳輸時間即16個接收時鐘脈沖,采樣一次RxD線,RxD為高,作為“1”,RxD為低,作為“0”;并將采樣的數(shù)據(jù)送入“輸入移位寄存器”。e. 數(shù)據(jù)進入“輸入移位寄存器”被移位,并進行奇偶校驗和去掉停止位, 就變成了并行數(shù)據(jù),再通過內部數(shù)據(jù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第5章數(shù)組-西安交通大學教師個人主頁-首頁
- 多組分反應藥物合成作業(yè) - 西安交通大學教師個人主頁 - 首頁
- 第四章工藝流程圖設計-西安交通大學教師個人主頁
- 第一章-東北大學教師個人主頁
- 哈工大教師個人主頁使用說明
- linux web建立個人主頁
- 第一章緒論-浙江大學個人主頁
- 西安交通大學
- 西安交通大學
- 基于Liferay的教師個人主頁系統(tǒng)設計與開發(fā).pdf
- 數(shù)學建模講座-西安電子科技大學個人主頁系統(tǒng)我
- 個人主頁設計畢業(yè)論文
- 西安交通大學985
- 西安交通大學教師補充審查表
- 84322.高校教師個人主頁系統(tǒng)的設計與實現(xiàn)
- 西安交通大學少
- 西安交通大學創(chuàng)新報告
- 西安交通大學創(chuàng)新報告
- 2014 年西安交通大學年西安交通大學管理學考研試題
- 個人主頁設計與實現(xiàn)畢業(yè)論文
評論
0/150
提交評論