第六章微機(jī)接口及其應(yīng)用_第1頁(yè)
第六章微機(jī)接口及其應(yīng)用_第2頁(yè)
第六章微機(jī)接口及其應(yīng)用_第3頁(yè)
第六章微機(jī)接口及其應(yīng)用_第4頁(yè)
第六章微機(jī)接口及其應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩95頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

微機(jī)原理及其應(yīng)用普通高等教育“十一五”國(guó)家級(jí)規(guī)劃教材作者丁新民2007年5月第六章微機(jī)接口及其應(yīng)用學(xué)習(xí)目標(biāo)1、識(shí)記微機(jī)輸入輸出接口概念,以及ISA、EISA、VESA、PCI、USB等總線定義。2、識(shí)記串行通訊基本概念,8251A可編程串行通訊接口芯片的結(jié)構(gòu)和工作原理。3、理解8251A可編程串行通訊接口編程及其應(yīng)用。4、識(shí)記8255A可編程并行外圍接口芯片的結(jié)構(gòu)和工作原理。5、理解8255A可編程并行外圍接口編程及其應(yīng)用。6、識(shí)記8253可編程計(jì)數(shù)器/定時(shí)器的結(jié)構(gòu)和工作原理及其應(yīng)用。第六章微機(jī)接口及其應(yīng)用6.1微機(jī)I/O接口和總線6.2串行通信和可編程接口8251A6.3并行接口芯片8255A及其應(yīng)用6.48253可編程計(jì)數(shù)器/定時(shí)器及其應(yīng)用一、微機(jī)I/O接口和總線1.I/O接口2.微機(jī)I/O口地址與尋址方式3.總線接口介紹第一節(jié)I/O接口1.I/O接口(1)I/O接口概述

I/O接口電路是用于主機(jī)和I/O設(shè)備之間傳送信息的交換部件,因此也可稱為界面,如圖6-1-1所示。從微機(jī)系統(tǒng)角度看到的I/O接口界面,實(shí)際是微機(jī)底板提供的總線插槽。它根據(jù)不同外設(shè)的控制要求,選擇相應(yīng)的I/O控制板(卡)與它連接。1.I/O接口(2)I/O接口的要求

對(duì)I/O接口的功能要求如下:①交換主機(jī)與I/O設(shè)備的狀態(tài)信息②匹配主機(jī)與I/O設(shè)備的傳輸速度差異③實(shí)現(xiàn)主機(jī)與I/O設(shè)備之間的數(shù)據(jù)傳送④實(shí)現(xiàn)數(shù)據(jù)格式的轉(zhuǎn)換第二節(jié)微機(jī)I/O口地址與尋址方式2.微機(jī)I/O口地址與尋址方式微機(jī)對(duì)I/O設(shè)備提供獨(dú)立編址方式,80X86指令系統(tǒng)中有專用的I/O指令。指令用通用寄存器AL、AX或EAX作為傳輸數(shù)據(jù)的寄存器,用DX寄存器作為I/O地址,用兩個(gè)字節(jié)表示的I/O地址,又稱I/O口地址。如圖6-1-2所示為PC系統(tǒng)板I/O口地址以及擴(kuò)展插槽接口卡口的地址分配。2.微機(jī)I/O口地址與尋址方式(1)I/O獨(dú)立編址在80X86微機(jī)中,普遍采取I/O獨(dú)立編址技術(shù)。獨(dú)立編址的I/O設(shè)備地址,就是外部設(shè)備在微機(jī)系統(tǒng)中的端口地址。

(2)存儲(chǔ)器映象I/O

存儲(chǔ)器映像I/O方式是將一個(gè)I/O端口看作為一個(gè)存儲(chǔ)單元,訪問(wèn)存儲(chǔ)器的所有指令均可用來(lái)訪問(wèn)I/O端口。2.微機(jī)I/O口地址與尋址方式(3)CPU與外設(shè)間的數(shù)據(jù)傳輸方式

CPU與外設(shè)之間的數(shù)據(jù)傳輸方式有三種:①程序控制方式②中斷方式③直接存儲(chǔ)器存取(DMA)方式表6-1-1展示了三種數(shù)據(jù)傳送方式的比較情況。表6-1-1三種數(shù)據(jù)傳送方式特點(diǎn)傳送方式系統(tǒng)運(yùn)行效率傳輸速率CPU與外設(shè)的工作接口電路成本程序控制方式低一般串行簡(jiǎn)單低中斷方式高低并行復(fù)雜高DMA方式高高并行復(fù)雜高第三節(jié)總線接口介紹3.總線接口介紹(1)PC/XT總線

PC/XT總線是早期微機(jī)使用的總線之一。該總線有62條引腳信號(hào),在每個(gè)插槽上也相應(yīng)有62個(gè)引腳。總線信號(hào)均與TTL邏輯電平兼容。表6-1-2PC/XT總線引腳IOCHCKIOCHRDYMEMWMEMRIOWIOR引腳信號(hào)名稱引腳信號(hào)名稱引腳信號(hào)名稱引腳信號(hào)名稱B1GNDA1B17DACK1A17A14B2RESETDRVA2D7B18DRQ1A18A13B3+5VA3D6B19DACK0A19A12B4IRQ2A4D5B20CLKA20A11B5-5VA5D4B21IRQ7A21A10B6DRQ2A6D3B22IRQ6A22A9B7-12VA7D2B23IRQ5A23A8B8CardSelectA8D1B24IRQ4A24A7B9+12VA9D0B25IRQ3A25A6B10GNDA10B26DACK2A26A5B11A11AENB27T/CA27A4B12A12A19B28ALEA28A3B13A13A18B29+5VA29A2B14A14A17B30OSCA30A1B15DACK3A15A16B31GNDA31A0B16DRQ3A16A15

表6-1-2PC/XT總線引腳IOCHCKIOCHRDYMEMWMEMRIOWIOR引腳信號(hào)名稱引腳信號(hào)名稱引腳信號(hào)名稱引腳信號(hào)名稱B1GNDA1B17DACK1A17A14B2RESETDRVA2D7B18DRQ1A18A13B3+5VA3D6B19DACK0A19A12B4IRQ2A4D5B20CLKA20A11B5-5VA5D4B21IRQ7A21A10B6DRQ2A6D3B22IRQ6A22A9B7-12VA7D2B23IRQ5A23A8B8CardSelectA8D1B24IRQ4A24A7B9+12VA9D0B25IRQ3A25A6B10GNDA10B26DACK2A26A5B11A11AENB27T/CA27A4B12A12A19B28ALEA28A3B13A13A18B29+5VA29A2B14A14A17B30OSCA30A1B15DACK3A15A16B31GNDA31A0B16DRQ3A16A15

表6-1-2PC/XT總線引腳IOCHCKIOCHRDYMEMWMEMRIOWIOR引腳信號(hào)名稱引腳信號(hào)名稱引腳信號(hào)名稱引腳信號(hào)名稱B1GNDA1B17DACK1A17A14B2RESETDRVA2D7B18DRQ1A18A13B3+5VA3D6B19DACK0A19A12B4IRQ2A4D5B20CLKA20A11B5-5VA5D4B21IRQ7A21A10B6DRQ2A6D3B22IRQ6A22A9B7-12VA7D2B23IRQ5A23A8B8CardSelectA8D1B24IRQ4A24A7B9+12VA9D0B25IRQ3A25A6B10GNDA10B26DACK2A26A5B11A11AENB27T/CA27A4B12A12A19B28ALEA28A3B13A13A18B29+5VA29A2B14A14A17B30OSCA30A1B15DACK3A15A16B31GNDA31A0B16DRQ3A16A15

3.總線接口介紹(2)ISA總線

ISA總線或者稱工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)總線,是一個(gè)16位的標(biāo)準(zhǔn)總線。它與PC/XT總線完全兼容,區(qū)別是在PC/XT總線的基礎(chǔ)上,再擴(kuò)展36根信號(hào)線,如表6-1-3所示。3.總線接口介紹(3)EISA總線

EISA總線是一個(gè)擴(kuò)展的ISA總線的32位標(biāo)準(zhǔn)。但是最大速度仍然是8.33MHz。在32位微機(jī)系統(tǒng),在80486系統(tǒng)就顯得慢了。(4)VESA局部總線針對(duì)EISA總線的特點(diǎn),視頻電子標(biāo)準(zhǔn)協(xié)會(huì)推出的一個(gè)全開(kāi)放通用的局部總線標(biāo)準(zhǔn)VL-BUS。最大數(shù)據(jù)傳輸率為132MB/s。

總線插槽比其他總線的插槽長(zhǎng),前半部分是IBMMCA插槽標(biāo)準(zhǔn),可用于8位、16位和32位接口板;后半部分為ISA插槽標(biāo)準(zhǔn)。3.總線接口介紹(4)VESA局部總線

VL總線引腳定義如表6-1-4所示。3.總線接口介紹(5)PCI局部總線

PCI局部總線被稱為外部設(shè)備連接總線,是目前微機(jī)系統(tǒng)常用的總線,它有32位和64位兩個(gè)標(biāo)準(zhǔn)。64位的數(shù)據(jù)傳輸率達(dá)到276MB/s。

結(jié)構(gòu)上僅保留MCA總線設(shè)計(jì)方式,而取消ISA總線插槽。PCI總線以其64位處理能力和設(shè)備即插即用的特性,取得了在最新微機(jī)系統(tǒng)中的應(yīng)用地位。PCI接口包含一個(gè)256字節(jié)的配置存儲(chǔ)器,允許CPU訪問(wèn)PCI接口,這是專為系統(tǒng)能自動(dòng)識(shí)別PCI插板配置的。3.總線接口介紹(5)PCI局部總線3.總線接口介紹(6)通用串行總線USB

通用串行總線USB是一種用于將適用USB的外圍設(shè)備連接到主機(jī)的外部總線結(jié)構(gòu),主要用在中速和低速的外圍設(shè)備。同時(shí),它又是一種通信協(xié)議,支持主機(jī)和USB外圍設(shè)備之間的數(shù)據(jù)傳輸。

USB系統(tǒng)是一個(gè)星形拓?fù)浣Y(jié)構(gòu),如圖6-1-4所示由主機(jī),集線器和USB設(shè)備三個(gè)基本部分組成。二、串行通信和可編程接口8251A1.串行通信的基本概念2.可編程串行接口8251A第一節(jié)串行通信的基本概念1.串行通信的基本概念(1)串行數(shù)據(jù)傳送方式串行數(shù)據(jù)傳送時(shí),數(shù)據(jù)在兩個(gè)設(shè)備之間傳送,按傳送方向可分成單工、半雙工和全雙工三種形式,如圖6-2-1所示。1.串行通信的基本概念(1)串行數(shù)據(jù)傳送方式①單工數(shù)據(jù)只能按一個(gè)固定的方向傳送,且是非交互式的,如圖6-2-1(a)所示。②半雙工數(shù)據(jù)可以在兩個(gè)設(shè)備之間作單向傳輸,不能同時(shí)收發(fā),如圖6-2-1(b)所示。③全雙工允許通信雙方同時(shí)進(jìn)行發(fā)送和接收,如圖6-2-1(c)所示。1.串行通信的基本概念(2)串行傳送的兩種基本工作方式①異步串行通信通信的雙方進(jìn)行異步串行通信必須遵守異步通信控制規(guī)程。該規(guī)程也稱異步通信協(xié)議,其特點(diǎn)是通信雙方以一個(gè)字符作為數(shù)據(jù)傳輸單位,且發(fā)送方傳送字符的間隔是可變的、隨機(jī)的。異步傳輸格式,如圖6-2-2所示。1.串行通信的基本概念(2)串行傳送的兩種基本工作方式①異步串行通信一個(gè)字符單位除表示字符信息的數(shù)據(jù)位(5~8位可選)外,還有幾個(gè)附加位:起始位(1位,恒為“0”),校驗(yàn)位(1位,可選),停止位(1、1.5或2位,可選,恒為“1”)。傳送一個(gè)字符,必須以起始位開(kāi)始,以停止位結(jié)束。這個(gè)過(guò)程稱為一幀數(shù)據(jù),兩個(gè)幀數(shù)據(jù)之間可有空閑位。1.串行通信的基本概念(2)串行傳送的兩種基本工作方式②同步串行通信同步串行通信有別于異步串行通信的一個(gè)特點(diǎn)是,允許連續(xù)發(fā)送一個(gè)序列字符,而每個(gè)字符的數(shù)據(jù)位數(shù)都相同,且不需要起始位和停止位。同步傳輸格式,如圖6-2-3所示。1.串行通信的基本概念(3)串行傳輸速率在串行通信中,常用波特率來(lái)表示數(shù)據(jù)傳輸?shù)乃俾?。所謂波特率是指單位時(shí)間內(nèi)傳送二進(jìn)制數(shù)據(jù)的位數(shù),以b/s為單位,所以有時(shí)也叫數(shù)據(jù)位率。例如一個(gè)串行字符由1個(gè)起始位、7個(gè)數(shù)據(jù)位、1個(gè)奇偶校驗(yàn)位和1個(gè)停止位10個(gè)數(shù)位構(gòu)成。若每秒鐘傳送120個(gè)字符,則數(shù)據(jù)傳送的波特率為:(10b/字符)×(120字符/s)=1200b/s。傳送每位信息所占用的時(shí)間為:1b/1200b/s=0.833ms。1.串行通信的基本概念(4)發(fā)送時(shí)鐘和接收時(shí)鐘串行通信中,數(shù)據(jù)以二進(jìn)制形式傳送。為了使發(fā)送和接收的數(shù)據(jù)保持一致,要求每一位數(shù)的持續(xù)時(shí)間必須是固定的,因此在發(fā)送端和接收端都必須用一個(gè)時(shí)鐘來(lái)定時(shí),它們被稱為發(fā)送時(shí)鐘和接收時(shí)鐘。異步和同步通信對(duì)時(shí)鐘的要求不一樣。異步通信的信息長(zhǎng)度只有10~11位,接收時(shí)僅要求起始位保持同步。同步通信的信息長(zhǎng)度較長(zhǎng),要求精確同步。1.串行通信的基本概念(5)信號(hào)的調(diào)制與解調(diào)計(jì)算機(jī)網(wǎng)絡(luò)、遠(yuǎn)程交換等場(chǎng)合,一般都通過(guò)電話線來(lái)進(jìn)行信息傳輸。由于電話線頻帶較窄,用于數(shù)字傳輸會(huì)影響數(shù)字的正確性。為此,在發(fā)送數(shù)據(jù)時(shí),先把數(shù)字信號(hào)轉(zhuǎn)換成音頻信號(hào)后,再利用電話線進(jìn)行傳輸,接收數(shù)據(jù)時(shí)再將音頻信號(hào)恢復(fù)成數(shù)字信號(hào)。前一種轉(zhuǎn)換稱為調(diào)制,后一種轉(zhuǎn)換稱為解調(diào)。完成調(diào)制和解調(diào)功能的設(shè)備稱為MODEM。1.串行通信的基本概念(6)串行通信接口RS-232C標(biāo)準(zhǔn)

RS-232C標(biāo)準(zhǔn)是美國(guó)電子工業(yè)協(xié)會(huì)EIA在1969年制定的,現(xiàn)已發(fā)展成國(guó)際通用的串行通信接口標(biāo)準(zhǔn)。微機(jī)系統(tǒng)中的串行接口,也用此來(lái)作為連接外部設(shè)備、調(diào)制解調(diào)器、計(jì)算機(jī)終端或另一臺(tái)計(jì)算機(jī)等的標(biāo)準(zhǔn)。EIA-RS232C標(biāo)準(zhǔn)具體規(guī)定如下:①信號(hào)電平

EIA規(guī)定的傳輸電氣規(guī)格,如表6-2-1所示。表6-2-1EIA規(guī)定的傳輸電氣特性狀態(tài)邏輯高電平邏輯低電平電壓范圍3~25V-3~-25V邏輯表示011.串行通信的基本概念(6)串行通信接口RS-232C標(biāo)準(zhǔn)

②接插件規(guī)格

RS-232C串行接口規(guī)定使用25芯的D型插頭、插座進(jìn)行連接。

③微機(jī)中常用信號(hào)如表6-2-2。圖6-2-5零調(diào)制解調(diào)器連接方式示意

計(jì)算機(jī)A計(jì)算機(jī)B符號(hào)表示引腳號(hào)引腳號(hào)符號(hào)表示TxD22TxDRxD33RxDRTS44RTSCTS55CTSDSR66DSRGND77GNDDCD88DCDDTR2020DTRRI2222RITxD22TxDRxD33RxDGND77GND圖6-2-4最簡(jiǎn)單連接方式示意

計(jì)算機(jī)A計(jì)算機(jī)B符號(hào)表示引腳號(hào)引腳號(hào)符號(hào)表示1.串行通信的基本概念(6)串行通信接口RS-232C標(biāo)準(zhǔn)

④常見(jiàn)的連接方式●最簡(jiǎn)單連接

●零調(diào)制解調(diào)器連接●用MODEM的控制和狀態(tài)信號(hào)作為微機(jī)之間的握手信號(hào)圖6-2-6用MODEM的控制和狀態(tài)信號(hào)作為握手信號(hào)

計(jì)算機(jī)A計(jì)算機(jī)B符號(hào)表示引腳號(hào)引腳號(hào)符號(hào)表示TxD22TxDRxD33RxDRTS44RTSCTS55CTSDSR66DSRGND77GNDDCD88DCDDTR2020DTRRI2222RI

計(jì)算機(jī)A計(jì)算機(jī)B符號(hào)表示引腳號(hào)引腳號(hào)符號(hào)表示TxD22TxDRxD33RxDRTS44RTSCTS55CTSDSR66DSRGND77GNDDCD88DCDDTR2020DTRRI

2222RI第二節(jié)可編程串行接口8251A2.可編程串行接口8251A(1)8251A的結(jié)構(gòu)8251A的結(jié)構(gòu)如圖6-2-7所示,可分成五個(gè)主要部分:數(shù)據(jù)總線緩沖器、接收器、發(fā)送器、調(diào)制解調(diào)控制電路及讀/寫(xiě)控制邏輯電路。圖6-2-78251A的結(jié)構(gòu)圖內(nèi)部數(shù)據(jù)總線接收控制電路RxRDYRxCSYNDET發(fā)送緩沖器TxD發(fā)送控制電路TxRDYTxETxC接收緩沖器RxD數(shù)據(jù)總線緩沖器D7-D0RESETCLKC/DRDWR讀/寫(xiě)控制電路CS調(diào)制解調(diào)控制電路DSRDTRCTSRTS2.可編程串行接口8251A(1)8251A的結(jié)構(gòu)①數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器是8251A與系統(tǒng)總線之間的接口,內(nèi)部包含三個(gè)具有三態(tài)、雙向功能的8位緩沖器,即狀態(tài)緩沖器、接收數(shù)據(jù)緩沖器和發(fā)送數(shù)據(jù)/命令緩沖器。②接收器接收器有關(guān)的信號(hào)有:接收數(shù)據(jù)RxD,接收數(shù)據(jù)準(zhǔn)備好RxRDY,同步檢測(cè)/斷點(diǎn)檢測(cè)SYNDET/BRKDET,接收時(shí)鐘RxC。2.可編程串行接口8251A(1)8251A的結(jié)構(gòu)③發(fā)送器發(fā)送器有關(guān)的信號(hào)有:發(fā)送數(shù)據(jù)TxD,發(fā)送器準(zhǔn)備好TxRDY,發(fā)送器空TxE,發(fā)送器時(shí)鐘TxC。

④調(diào)制解調(diào)控制電路調(diào)制解調(diào)控制有關(guān)的信號(hào)有:數(shù)據(jù)終端準(zhǔn)備就緒DTR,數(shù)據(jù)裝置準(zhǔn)備好DSR,請(qǐng)求發(fā)送信號(hào)RTS,清除發(fā)送信號(hào)CTS。2.可編程串行接口8251A(1)8251A的結(jié)構(gòu)⑤讀/寫(xiě)控制電路讀/寫(xiě)控制有關(guān)的信號(hào)有:復(fù)位信號(hào)RESET,時(shí)鐘CLK,寫(xiě)WR,讀RD,片選CS,控制/數(shù)據(jù)C/D。C/D表6-2-38251A讀、寫(xiě)操作表RDWRCS操作0010CPU從8251A讀數(shù)據(jù)0100CPU向8251A寫(xiě)數(shù)據(jù)1010CPU讀取8251A的狀態(tài)字1100CPU向8251寫(xiě)入控制字*110數(shù)據(jù)總線浮空***1數(shù)據(jù)總線浮空2.可編程串行接口8251A(2)工作原理①接收器工作原理

異步方式:CPU發(fā)出允許接收數(shù)據(jù)的命令時(shí),接收器就一直監(jiān)視著RxD端的信號(hào)電平,一旦檢測(cè)到低電平,即作為起始位,并且啟動(dòng)接收器內(nèi)的計(jì)數(shù)器時(shí)鐘脈沖進(jìn)行計(jì)數(shù)。若接收的時(shí)鐘頻率為波特率的16倍,則計(jì)數(shù)器計(jì)到半個(gè)數(shù)位傳輸時(shí)間,也就是計(jì)到8時(shí),如檢測(cè)RxD端仍是低電平,就確認(rèn)收到了一個(gè)有效的起始位。2.可編程串行接口8251A(2)工作原理①接收器工作原理

同步方式:8251A監(jiān)視著RxD端,把接收到的每一位數(shù)據(jù)送入移位寄存器,并與同步字符寄存器的內(nèi)容進(jìn)行比較。如果兩者不等,則繼續(xù)接收數(shù)據(jù)和進(jìn)行移位比較等操作;若兩者相同,則8251A將SYNDET端置為高電平,表示已實(shí)現(xiàn)同步過(guò)程。2.可編程串行接口8251A(2)工作原理②發(fā)送器工作原理

異步方式:當(dāng)程序置TxEN=1和CTS=0時(shí),才開(kāi)始發(fā)送過(guò)程。發(fā)送時(shí),發(fā)送器為每個(gè)字符加上一個(gè)起始位,并且按編程要求加上奇/偶校驗(yàn)以及停止位。起始位、數(shù)據(jù)位、校驗(yàn)位和停止位總是在發(fā)送時(shí)鐘TxC的下降沿時(shí)從8251A發(fā)出,數(shù)據(jù)傳輸?shù)牟ㄌ芈适前l(fā)送時(shí)鐘頻率的1、1/16或1/64。2.可編程串行接口8251A(2)工作原理②發(fā)送器工作原理

同步方式:程序置TxEN=1和CTS=0時(shí),才開(kāi)始發(fā)送過(guò)程。發(fā)送器先按編程要求發(fā)送一個(gè)或兩個(gè)同步字符,然后發(fā)送數(shù)據(jù)塊。1.8255A的結(jié)構(gòu)和功能(3)8251A與CPU及外設(shè)的連接圖6-2-8是8251A與CPU及某個(gè)串行接口的外設(shè)的連線示意圖。1.8255A的結(jié)構(gòu)和功能(4)8251A的編程圖6-2-9所示,8251A初始化流程。系統(tǒng)復(fù)位后,首先應(yīng)將方式字寫(xiě)入控制口,確定8251A的工作方式。同步工作方式,寫(xiě)入方式字后,接著寫(xiě)入同步字符,最后寫(xiě)入命令字。異步工作方式,只要寫(xiě)入命令字。1.8255A的結(jié)構(gòu)和功能(4)8251A的編程①方式字圖6-2-10,同步和異步方式字格式。

1.8255A的結(jié)構(gòu)和功能(4)8251A的編程②命令字圖6-2-11,命令字格式。③狀態(tài)字圖6-2-12,狀態(tài)字格式。

D7

D6

D5D4

D3

D2D1D0EHIRRTSERSBRKRxEDTRTxEN

圖6-2-11命令字格式D7D6

D5D4

D3D2D1D0DSRSYNDETFEOEPETxERxRDYTxRD

圖6-2-12狀態(tài)字格式1.8255A的結(jié)構(gòu)和功能(5)8251A的編程①異步方式初始化程序接通電源時(shí),8251A能通過(guò)硬件電路自動(dòng)進(jìn)入復(fù)位狀態(tài)。為了保證8251A正確復(fù)位,首先應(yīng)向8251A的控制口連續(xù)寫(xiě)入三個(gè)全“0”,然后再向該端口送入一個(gè)復(fù)位字(40H)。其次才寫(xiě)入方式字和命令字。下面給出程序段。

REVTIMEMACRO MOVCX,02;需要4個(gè)時(shí)鐘周期

D0:LOOPD0;延時(shí)16個(gè)時(shí)鐘周期

ENDM1.8255A的結(jié)構(gòu)和功能(5)8251A的編程①異步方式初始化程序例如:異步方式,波特率系數(shù)為16,7個(gè)數(shù)據(jù)位,一個(gè)停止位,采用偶校驗(yàn),控制口地址為3F2H,初始化程序?yàn)椋?/p>

MOVDX,3F2H;控制口

MOVAL,00HOUTDX,AL;向控制口寫(xiě)入第一個(gè)“0”

REVTIME

;調(diào)用延時(shí)子程序

OUTDX,AL

;向控制口寫(xiě)入第二個(gè)“0”

REVTIIMEOUTDX,AL

;向控制口寫(xiě)入第三個(gè)“0”1.8255A的結(jié)構(gòu)和功能(5)8251A的編程①異步方式初始化程序(續(xù))

REVTIME;調(diào)用延時(shí)子程序

MOVAL,40H

;恢復(fù)字

OUTDX,ALREVTIME;調(diào)用延時(shí)子程序

MOVAL,7AH;波特率16、數(shù)據(jù)7位、一個(gè)停止位、偶校驗(yàn)

OUTDX,AL;寫(xiě)入方式字

REVTIME;調(diào)用延時(shí)子程序

MOVAL,15H;允許接收、發(fā)送數(shù)據(jù),清錯(cuò)誤標(biāo)志

OUTDX,AL;寫(xiě)入命令字

1.8255A的結(jié)構(gòu)和功能(5)8251A的編程②同步方式初始化程序同步方式時(shí)的初始化程序與異步方式相似,先寫(xiě)入三個(gè)全“0”和軟件復(fù)位命令字(40H),再寫(xiě)入方式字,然后再送同步字符(常用16H作為同步字符),最后寫(xiě)入命令字。例如:8251A口地址3F2H,內(nèi)同步方式,采用雙同步字符(同步字符為16H)、奇校驗(yàn)、7位數(shù)據(jù)位。初始化程序?yàn)椋?.8255A的結(jié)構(gòu)和功能(5)8251A的編程②同步方式初始化程序(續(xù))

MOVDX,3F2H;控制口 ┇;復(fù)位操作,同上

MOVAL,18H;雙同步、內(nèi)同步、奇校驗(yàn)、7位數(shù)據(jù)位

OUTDX,AL

;送方式字

REVTIME ;調(diào)用延時(shí)子程序

MOVAL,16HOUTDX,AL

;送第一個(gè)同步字符

REVTIME;調(diào)用延時(shí)子程序

OUTDX,AL

;送第二個(gè)同步字符1.8255A的結(jié)構(gòu)和功能(5)8251A的編程②同步方式初始化程序(續(xù))

REVTIMEMOVAL,95H;啟動(dòng)搜索同步字符、標(biāo)志復(fù)位、允許收、發(fā)

OUTDX,AL

┇1.8255A的結(jié)構(gòu)和功能(6)8251A應(yīng)用舉例假如兩臺(tái)8086微機(jī)之間進(jìn)行通信,用8251A作接口芯片,并通過(guò)RS-232C串行接口實(shí)現(xiàn)通信,硬件電路如圖6-2-13所示。1.8255A的結(jié)構(gòu)和功能(6)8251A應(yīng)用舉例設(shè)8251A的數(shù)據(jù)口和控制口地址為1F0H、1F2H,兩機(jī)之間采用查詢方式、異步傳送、半雙工通信。則發(fā)送和接收程序如下: ┇;先寫(xiě)三個(gè)全“0”,再寫(xiě)40H,使系統(tǒng)復(fù)位

START-T:MOVDX,1F2H;控制口

MOVAL,7AH;異步方式,7個(gè)數(shù)據(jù)位,1個(gè)停止位,偶校驗(yàn)、波特率因子16

OUTDX,AL

;寫(xiě)方式字

MOVCX,02H;延時(shí)

DELAY1:LOOPDELAY1 MOVAL,11H

;命令字:清錯(cuò)誤標(biāo)志,允許發(fā)送

OUTDX,AL MOVCX,02H

;延時(shí)1.8255A的結(jié)構(gòu)和功能(6)8251A應(yīng)用舉例

DELAY2:LOOPDELAY2

MOVDI,BUFF-T

;發(fā)送緩沖區(qū)起始地址

MOVCX,COUNT-T;發(fā)送數(shù)據(jù)個(gè)數(shù)

NEXT-T:INAL,DX

;讀入狀態(tài)

TESTAL,01H

;TxRDY有效嗎?

JZNEXT-T

;否,則等待

MOVDX,1F0H MOVAL,[DI];從緩沖區(qū)取一個(gè)數(shù)據(jù)

OUTDX,AL;向8251A輸出一個(gè)數(shù)據(jù)

INCDI

;修改緩沖區(qū)指針

LOOPNEXT-T;發(fā)送數(shù)據(jù)未結(jié)束,則繼續(xù) ┇

START-R:MOVDX,1F2H MOVAL,7AH1.8255A的結(jié)構(gòu)和功能(6)8251A應(yīng)用舉例

OUTDX,AL;送方式字,與發(fā)送部分相同

MOVCX,02H;延時(shí)

DELAY3:LOOPDELAY3 MOVAL,14H OUTDX,AL;輸出命令字:清錯(cuò)誤標(biāo)志,允許接收

MOVCX,02H;延時(shí)

DELAY4:LOOPDELAY4 MOVDI,BUFF-R;接收緩沖區(qū)起始地址

MOVCX,COUNT-R;接收數(shù)據(jù)個(gè)數(shù)

NEXT-R:INAL,DX;讀入狀態(tài)字

TESTAL,02H;RxRDY有效嗎?

JZNEXT-R

;否,循環(huán)等待

TESTAL,38H;是,查是否有錯(cuò)1.8255A的結(jié)構(gòu)和功能(6)8251A應(yīng)用舉例

JNZERROR

;有錯(cuò),則轉(zhuǎn)出錯(cuò)處理程序

MOVDX,1F0H;無(wú)錯(cuò)

INAL,DX

;讀入一個(gè)數(shù)據(jù)

MOV[DI],AL;輸入數(shù)據(jù)送緩沖區(qū)

INCDI

;修改緩沖區(qū)指針

LOOPNEXT-R;接收數(shù)據(jù)未結(jié)束,則繼續(xù) ┇

ERROR:…;出錯(cuò)處理三、并行接口芯片8255A及其應(yīng)用1.8255A的結(jié)構(gòu)和功能2.8255A控制字和工作方式3.8255A應(yīng)用舉例第一節(jié)8255A的結(jié)構(gòu)和功能1.8255A的結(jié)構(gòu)和功能8255A內(nèi)部結(jié)構(gòu)如圖6-3-1所示。1.8255A的結(jié)構(gòu)和功能(1)數(shù)據(jù)端口PA、PB和PC8255A內(nèi)部包含三個(gè)8位的輸入/輸出端口PA、PB和PC,通過(guò)外部的24根輸入/輸出線與外設(shè)交換數(shù)據(jù)或進(jìn)行通信聯(lián)絡(luò)。PA口和PB口都可以作為8位的輸入/輸出數(shù)據(jù)口,PC口既可以作為一個(gè)`8位的輸入/輸出口用,又可作為兩個(gè)4位的輸入輸出口使用,還可用來(lái)配合PA口和PB口產(chǎn)生控制信號(hào)和輸入PA口和PB口的狀態(tài)信號(hào)。1.8255A的結(jié)構(gòu)和功能(2)A組和B組控制電路這兩組根據(jù)CPU編程命令控制8255A工作的電路。有控制寄存器,用來(lái)接收來(lái)自CPU的命令字,分別決定A組和B組的工作方式,或?qū)C口的每一位執(zhí)行置位/復(fù)位等操作。

PA口和PC口的上半部分(PC7~PC4),由A組控制邏輯管理。PB口和PC口的下半部分(PC3~PC0)由B組控制邏輯管理。1.8255A的結(jié)構(gòu)和功能(3)數(shù)據(jù)總線緩沖器是一個(gè)雙向三態(tài)的8位緩沖器是數(shù)據(jù)總線的接口。(4)讀/寫(xiě)控制邏輯用來(lái)管理內(nèi)部或外部信息、控制字或狀態(tài)字的傳送過(guò)程。第二節(jié)8255A控制字和工作方式2.8255A控制字和工作方式(1)8255A控制字

①方式選擇控制字2.8255A控制字和工作方式(1)8255A控制字

②置位/復(fù)位控制字2.8255A控制字和工作方式(2)8255A的工作方式①方式0

例如:8255A端口地址80H,PA口和PB口工作于方式0,PA口、PB口和PC口上半部分作輸入,PC口的下半部分為輸出,表示為:

MOVAL,10011010BOUT80H,AL2.8255A控制字和工作方式(2)8255A的工作方式②方式1●方式1輸入

●方式1輸出

2.8255A控制字和工作方式(2)8255A的工作方式③方式2第三節(jié)8255A應(yīng)用舉例3.8255A應(yīng)用舉例(1)基本輸入/輸出應(yīng)用舉例例如某系統(tǒng)有八個(gè)開(kāi)關(guān)S7~S0,要求檢測(cè)它們的狀態(tài),通過(guò)發(fā)光二極管LED7~LED0顯示。開(kāi)關(guān)斷開(kāi),相對(duì)應(yīng)的LED點(diǎn)亮;反之,熄滅。選用8086,8255A和74LS138譯碼器等芯片,構(gòu)成應(yīng)用電路。如圖6-3-8所示,8255A的PA口作輸入口,8個(gè)開(kāi)關(guān)S7~S0分別接PA7~PA0。PB口為輸出口。3.8255A應(yīng)用舉例(1)基本輸入/輸出應(yīng)用舉例

PA口為方式0輸入,PB口為方式0輸出,PC口未用,其中的各位置“0”,寫(xiě)入控制口F6H的控制字為90H。完成初始化后,將PA口的開(kāi)關(guān)狀態(tài)讀入寄存器AL。3.8255A應(yīng)用舉例(1)基本輸入/輸出應(yīng)用舉例其程序段如下:

MOVDX,0F6H;控制字寄存器

MOVAL,90H

;控制字

OUTDX,AL

;寫(xiě)入控制字

TEST:MOVDX,0F0H;指向PA口

INAL,DX;從PA口讀入開(kāi)關(guān)狀態(tài)

MOVDX,0F2H

;指向PB口

OUTDX,AL;寫(xiě)PB口控制LED,指示開(kāi)關(guān)狀態(tài)

JMPTEST

;循環(huán)檢測(cè)

3.8255A應(yīng)用舉例(2)鍵盤(pán)接口圖6-3-9以機(jī)械式開(kāi)關(guān)構(gòu)成4行×4列鍵盤(pán),接到由兩片8255A構(gòu)成的端口,其中PA口作輸出,PB口作輸入。4條行線接到PA口的PA3~PA0和PB的PB7~PB4,4條列線接到PB口的PB3~PB0。3.8255A應(yīng)用舉例(2)鍵盤(pán)接口在無(wú)鍵壓下時(shí),由于接到+5V上的上拉電阻的作用,列線被置成高電平。壓下某一鍵后,該鍵所在的行線和列線接通。當(dāng)從PB口讀取列線信號(hào)時(shí),便能根據(jù)讀入的行和列狀態(tài)中低電平的位置,便能確定哪個(gè)鍵被壓下了。確認(rèn)有鍵壓下后,再確定被壓下鍵所在的行、列號(hào)。以圖6-3-9為例,行號(hào)和列號(hào)構(gòu)成16個(gè)鍵的矩陣,當(dāng)按下0鍵時(shí),在PB口上可讀得PB7、PB3位皆為“0”,其余位為“1”,那么數(shù)字0的編碼為01110111B,即77H。若按下6鍵,3.8255A應(yīng)用舉例(2)鍵盤(pán)接口

PB口的PB6、PB1位皆為“0”,其余位為“1”,得到數(shù)字6的編碼為10111101B,即BDH。類似地,將各鍵的編碼值列成表,放在數(shù)據(jù)段中,用查表程序來(lái)查對(duì),便能確定按下的鍵值。程序段如下:

PORT_AEQU0FF9H

;8255APA口地址

PORT_BEQU0FFBH

;8255APB口地址

PORT_CTLEQU0FFFH;8255A控制口地址

DATASEGMENT3.8255A應(yīng)用舉例(2)鍵盤(pán)接口

TABLEDB77H,7BH,7DH,7EH,0B7,0BBH,0BDH,0BEH;數(shù)據(jù)段,鍵盤(pán)掃描碼表

DB0D7H,0DBH,0DDH,0DEH,0E7H,0EBH,0EDH,0EEHDATAENDSSTACKSEGMENTSTACK

DW50DUP(0)

TOP_STACLABELWORDSTACKENDSCODESEGMENT

ASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,STACK

MOVSS,AX3.8255A應(yīng)用舉例(2)鍵盤(pán)接口

LEASP,TOP_STACK

MOVAX,DATA MOVDS,AX;初試化8255A,方式0,PA口作輸出,PB口和PC口為輸入

MOVDX,PORT_CTL;指向控制口

MOVAL,8BH

;控制字

OUTDX,AL MOVDX,PORT_A MOVAL,00H OUTDX,AL

;向PA口各位輸出0;讀列,查看是否所有鍵均松開(kāi)

MOVDX,PORT_B3.8255A應(yīng)用舉例(2)鍵盤(pán)接口

WAIT-O:INAL,DX;鍵盤(pán)狀態(tài)讀入PB口

ANDAL,0FH

;只查低4位(列值)

CMPAL,0FH

;是否都為“1”(各鍵均松開(kāi))?

JNEWAIT

;否,繼續(xù)查;各鍵均已松開(kāi),再查列是否有0,即是否有鍵壓下

WAIT-P:INAL,DX;讀PB口

ANDAL,0FH

;只查低4位

CMPAL,0FH

;是否有鍵壓下

JEWAIT-P

;無(wú),等待;有鍵壓下,延時(shí)20ms,消抖動(dòng)

MOVCX,16EA3.8255A應(yīng)用舉例(2)鍵盤(pán)接口

DELAY:LOOPDELAY;延時(shí)20ms;再查列,看鍵是否仍被壓著

INAL,DX ANDAL,0FH CMPAL,0FH JEWAIT-P

;已松開(kāi),轉(zhuǎn)出等待壓鍵;鍵仍被壓著,確定哪一個(gè)鍵被壓下

MOVAL,0FEH;先使D0=0 MOVCL,AL

;CL=11111110B NEXT-R:MOVDX,PORT-A OUTDX,AL

;向一行輸出低電平3.8255A應(yīng)用舉例(2)鍵盤(pán)接口

MOVDX,PORT-B INAL,DX

;讀入PB口狀態(tài)

ANDAL,0FH

;只截取列值

CMPAL,0FH

;是否均為“1”?

JNEENCODE

;否,表示有鍵壓下,轉(zhuǎn)去編碼

ROLCL,01

;均為“1”,使下行輸出“0”

MOVAL,CL JMPNEXT-R

;查看下行;已找到有一行為低電平,對(duì)壓鍵的行列值編碼

ENCODE:MOVBX,000FH;地址指針指向F鍵對(duì)應(yīng)的地址

INAL,DX

;從PB口讀入行列號(hào)3.8255A應(yīng)用舉例(2)鍵盤(pán)接口

NEXT-TRY:CMPAL,TABLE[BX];讀入行列值與表中查得的相等嗎?

JEDONE

;相等,轉(zhuǎn)出

DECBX

;不等,指向下一個(gè)地址

JNSNEXT-TRY;若地址未減為負(fù)值,繼續(xù)查

MOVAX,01;若減為“0”,置出錯(cuò)碼01→AX中

JMPEXIT

;退出

DONE:MOVAL,BL;BX中存有鍵的16進(jìn)制代碼

MOVAH,00;AX=0,讀到有效鍵值

EXIT:HLTCODEENDS END四、8253可編程計(jì)數(shù)器/定時(shí)器及其應(yīng)用1.8253內(nèi)部結(jié)構(gòu)2.編程命令和工作方式3.8253應(yīng)用舉例第一節(jié)8253內(nèi)部結(jié)構(gòu)1.8253內(nèi)部結(jié)構(gòu)如圖6-4-1所示,8253內(nèi)部結(jié)構(gòu)由數(shù)據(jù)總線緩沖器、讀寫(xiě)控制邏輯電路、控制寄存器和三個(gè)計(jì)數(shù)通道四部分組成。①數(shù)據(jù)總線緩沖器這是8253和CPU之間的數(shù)據(jù)接口,采用8位雙向三態(tài)緩沖器。1.8253內(nèi)部結(jié)構(gòu)②讀寫(xiě)控制邏輯電路讀寫(xiě)控制邏輯電路是8253內(nèi)部的控制部分。

③控制寄存器初始化編程時(shí),控制寄存器用來(lái)存放CPU寫(xiě)入的控制字,確定計(jì)數(shù)通道的工作方式。

④計(jì)數(shù)通道0、1和2三個(gè)計(jì)數(shù)通道功能是完全相同的,每個(gè)計(jì)數(shù)通道都包括一個(gè)16位計(jì)數(shù)器。每個(gè)計(jì)數(shù)通道有六種工作方式。1.8253內(nèi)部結(jié)構(gòu)④計(jì)數(shù)通道0、1和2每個(gè)計(jì)數(shù)通道有三條引腳線,如下:●通道輸入時(shí)鐘CLK2~CLK0?!裢ǖ赖拈T控信號(hào)CATE2~CATE0?!裢ǖ垒敵鯫UT2~OUT0。表6-4-2門控制信號(hào)GATE的功能工作方式GATE為低電平或下降沿GATE為上升沿GATE為高電平方式0禁止計(jì)數(shù)無(wú)意義允許計(jì)數(shù)方式1無(wú)意義從初值開(kāi)始計(jì)數(shù)無(wú)意義方式2禁止計(jì)數(shù),使輸出變高從初值開(kāi)始計(jì)數(shù)允許計(jì)數(shù)方式3禁止計(jì)數(shù),使輸出變高從初值開(kāi)始計(jì)數(shù)允許計(jì)數(shù)方式4禁止計(jì)數(shù)無(wú)意義允許計(jì)數(shù)方式5無(wú)意義從初值開(kāi)始計(jì)數(shù)無(wú)意義第二節(jié)編程命令和工作方式2.編程命令和工作方式(1)編程結(jié)構(gòu)控制寄存器的格式如圖6-4-2所示。2.編程命令和工作方式(3)8253的讀、寫(xiě)操作和編程

8253沒(méi)有RESET復(fù)位引腳,因此,在使用前必須首先進(jìn)行初始化。初始化就是對(duì)控制寄存器和計(jì)數(shù)寄存器的寫(xiě)入,寫(xiě)入要注意:●先寫(xiě)控制寄存器,后寫(xiě)計(jì)數(shù)寄存器?!駥?xiě)入計(jì)數(shù)寄存器初始值時(shí),要按控制字格式寫(xiě)入。例如,8253控制寄存器地址為36H,三個(gè)計(jì)數(shù)通道地址為30H、32H和34H。2.編程命令和工作方式(3)8253的讀、寫(xiě)操作和編程要求對(duì)通道1作初始化,采用方式3、二進(jìn)制計(jì)數(shù)、計(jì)數(shù)初值為1234H。初始化如下:

MOVAL,76H;通道1、方式3、二進(jìn)制計(jì)數(shù),先讀、寫(xiě)低8位,后高8位

OUT36H,AL

;寫(xiě)控制寄存器

MOVAL,34H

;低字節(jié)34H送ALOUT32H,AL

;寫(xiě)計(jì)數(shù)通道1的低8位

MOVAL,12H

;高字節(jié)12H送ALOUT32H,AL

;寫(xiě)計(jì)數(shù)通道1的高8位2.編程命令和工作方式(3)8253的讀、寫(xiě)操作和編程●8253讀操作只能讀計(jì)數(shù)寄存器,不能讀控制寄存器。接上例,采用計(jì)數(shù)鎖存命令,讀取計(jì)數(shù)寄存器的當(dāng)前值。其程序片段如下:

MOVAL,46H;通道1、方式3、計(jì)數(shù)器鎖存

OUT36H,AL;寫(xiě)控制寄存器

INAL,32H

;讀通道1低8位計(jì)數(shù)值送ALMOVAH,AL

;低8位暫存AHINAL,32H

;讀通道1高8位計(jì)數(shù)值送ALXCHGAH,AL;計(jì)數(shù)值保存在AX第三節(jié)8253應(yīng)用舉例3.8253應(yīng)用舉例圖6-4-3所示,8253的數(shù)據(jù)總線D7~D0與CPU的低8位相連,端口地址線A0、A1與CPU的地址線A2、A1相連,8253的片

溫馨提示

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

評(píng)論

0/150

提交評(píng)論