第9章+串行通信和可編程接口芯片8251A.ppt_第1頁
第9章+串行通信和可編程接口芯片8251A.ppt_第2頁
第9章+串行通信和可編程接口芯片8251A.ppt_第3頁
第9章+串行通信和可編程接口芯片8251A.ppt_第4頁
第9章+串行通信和可編程接口芯片8251A.ppt_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微型計算機原理與接口技術(shù),第十章串行通信和可編程接口芯片8251A,10-1串行通信的基本概念 10-2可編程串行通信接口芯片8251A 10-3EIA RS-232C串行口和8251A應(yīng)用舉例 10-4串行同步數(shù)據(jù)通信協(xié)議,10-1串行通信的基本概念,并行通信 數(shù)據(jù)各位同時傳送; 優(yōu)點:速度快; 缺點:使用通信線多; 適用場合:適用于近距離傳送數(shù)據(jù)的場合。 串行通信 要傳送的數(shù)據(jù)或信息必須按照一定的格式編碼,然后再單根線上,按一位接一位的先后順序進行傳送。發(fā)送完一個字符后,再發(fā)送第二個。接收數(shù)據(jù)時,每次從單根線上一位接一位地接收信息,再把它們拼成一個字符,送給CPU作進一步處理。 適用場合:

2、適用于遠程終端或遠距離地中央處理機交換數(shù)據(jù);有些外設(shè)本身需要串行方式通信。,一、數(shù)據(jù)傳送方向,單工,半雙工,全雙工,單工數(shù)據(jù)線僅僅能在一個方向上傳輸數(shù)據(jù),兩個站之間進行 通信時,一邊只能發(fā)送數(shù)據(jù),另一邊只能接收數(shù)據(jù)。,半雙工方式下,數(shù)據(jù)可在兩個設(shè)備之間向任一個方向傳輸,但 兩個設(shè)備之間只有一根傳輸線,故同一時間內(nèi)只能在一個方向 上傳輸數(shù)據(jù),不能同時收發(fā)。,全雙工方式下,對數(shù)據(jù)的兩個傳輸方向采用不同的通路。,一、數(shù)據(jù)傳送方向,單工,半雙工,全雙工,T,R,T,T,R,R,T,T,R,R,二、串行傳送的兩種基本工作方式,異步方式,同步方式,空閑位,起始位,數(shù)據(jù)位(58位),校驗位,停止位,空閑位,

3、起始位,第n+1個字符,一幀 第n個字符,三、串行傳送速率,波特率 波特率:每秒鐘內(nèi)所傳送數(shù)據(jù)的位數(shù)稱為波特率,單位為波特(Bd)。它是傳送每一位信息所用時間的倒數(shù)。 常用波特率(Baud Rate)來表示數(shù)據(jù)傳送的速率。,例如:如果一個串行字符由1個起始位,7個數(shù)據(jù)位,1個奇偶校驗位和1個停止位等10個數(shù)位構(gòu)成,每秒鐘傳送120個字符,則數(shù)據(jù)傳送的波特率為:,10位/字符120字符/秒1200位/秒1200波特,傳送每位信息所占用的時間為:1秒/12000.833毫秒,四、串行接口芯片UART和USART,常用的通用串行接口芯片有兩類 (1)僅用于異步通信的接口芯片,通用異步收發(fā)器UART

4、(2)既可以工作于異步方式,又可以工作于同步方式,通用同步異步收發(fā)器USART,五、調(diào)制解調(diào)器,調(diào)制解調(diào)器:能將數(shù)字信號轉(zhuǎn)換成音頻信號及將音頻信號恢復(fù)成數(shù)字信號的器件。 調(diào)制的主要形式有幅度調(diào)制、頻率鍵移FSK、相位鍵移PSK和多路載波等幾種。,五、調(diào)制解調(diào)器,幅度調(diào)制 用調(diào)幅正弦波表示 數(shù)字1和數(shù)字0,頻率鍵移調(diào)制 用兩種不同頻率(FSK) 表示數(shù)字1和數(shù)字0,第十章串行通信和可編程接口芯片8251A,10-1串行通信的基本概念 10-2可編程串行通信接口芯片8251A 10-3EIA RS-232C串行口和8251A應(yīng)用舉例 10-4串行同步數(shù)據(jù)通信協(xié)議,10-2可編程串行通信接口芯片82

5、51A,Intel 8251A是一種通用的同步異步接收發(fā)送器(USART)芯片。它作為一種外圍器件,可通過編程選用某一種串行通信技術(shù)。8251A具有獨立的發(fā)送器和接收器因此,它能夠以單工、半雙工或全雙工方式進行通信,并且提供一些基本的控制信號,可以方便地與MODEM連接。 1.8251A的編程結(jié)構(gòu) 2.8251A的功能結(jié)構(gòu) 3.8251A的發(fā)送和接收 4.8251A對外信號,8251A的編程結(jié)構(gòu)和外部連接,一、8251A的內(nèi)部結(jié)構(gòu)和外部引腳,數(shù)據(jù)輸入緩沖寄存器和數(shù)據(jù)輸出緩沖寄存器使用同一個端口地址,但實際上作為兩個端口,一個為輸入端口,一個為輸出端口。 接收移位寄存器將到達 端口的串行數(shù)據(jù)接收

6、以后進行移位,變成8位并行數(shù)據(jù),傳送到數(shù)據(jù)輸入緩沖寄存器,然后通過數(shù)據(jù)總線傳送到CPU,這就是數(shù)據(jù)通過8251A輸入到計算機的過程。 在計算機通過8251A輸出數(shù)據(jù)的過程中,CPU通過數(shù)據(jù)總線將數(shù)據(jù)送到8251A的數(shù)據(jù)輸出緩沖寄存器,再傳輸?shù)桨l(fā)送移位寄存器。移位寄存器用移位的辦法并行數(shù)據(jù)變成串行數(shù)據(jù),然后,從 端送往外部設(shè)備。,一、8251A的內(nèi)部結(jié)構(gòu)和外部引腳,命令字寄存器用來控制8251A的工作,它的內(nèi)容是由程序設(shè)置的。 狀態(tài)寄存器則在8251A的工作過程中為執(zhí)行程序提供一定的狀態(tài)信息。 方式字寄存器的內(nèi)容決定了8251A到底工作在同步模式還是工作在異步模式,還決定了所接收和發(fā)送的字符的格

7、式,模式寄存器的內(nèi)容也是由執(zhí)行程序設(shè)置的。 8251A的2個同步字符寄存器用來容納同步方式中所用的同步字符。,返回,8251A的內(nèi)部工作原理,一、8251A的內(nèi)部結(jié)構(gòu)和外部引腳,接收緩沖器: 對外引腳為 。 功能從 引腳上接收串行數(shù)據(jù),并按照相應(yīng)的格式將串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù)。 接收控制電路: (1)在異步方式下,芯片復(fù)位后,先檢測輸入信號中的有效“1”,一旦檢測到,就接著尋找有效的低電平來確定啟動位; (2)消除假啟動干擾; (3)對接收到的信息進行奇偶校驗,并根據(jù)校驗結(jié)果建立相應(yīng)的狀態(tài)位; (4)檢測停止位,并按照檢測結(jié)果,建立狀態(tài)位。,一、8251A的內(nèi)部結(jié)構(gòu)和外部引腳,發(fā)送緩沖器: 把

8、來自CPU的并行數(shù)據(jù)加上相應(yīng)的控制信息,然后轉(zhuǎn)換成串行數(shù)據(jù)從 引腳發(fā)出去。 功能上看,對應(yīng)于編程結(jié)構(gòu)圖中的發(fā)送移位寄存器。 發(fā)送控制電路: (1)在異步方式下,為數(shù)據(jù)加上起始位、校驗位和停止位; (2)在同步方式下,插入同步字符,在數(shù)據(jù)中插入校驗位。,一、8251A的內(nèi)部結(jié)構(gòu)和外部引腳,數(shù)據(jù)總線緩沖器: 用來把8251A和系統(tǒng)數(shù)據(jù)總線相連,在CPU執(zhí)行輸入/輸出指令期間,由數(shù)據(jù)總線緩沖器發(fā)送和接收數(shù)據(jù)。 控制字、命令字和狀態(tài)信息也通過數(shù)據(jù)總線緩沖器傳輸。 從功能上看,數(shù)據(jù)總線緩沖器是編程結(jié)構(gòu)中數(shù)據(jù)輸入緩沖器、數(shù)據(jù)輸出緩沖器、控制寄存器和命令寄存器的綜合。,一、8251A的內(nèi)部結(jié)構(gòu)和外部引腳,讀

9、寫控制邏輯電路: 用來配合數(shù)據(jù)總線緩沖器工作。 (1)接收寫信號 ,并將來自數(shù)據(jù)總線的數(shù)據(jù)和控制字寫入8251A (2)接收讀信號 ,并將數(shù)據(jù)或狀態(tài)字從8251A送往數(shù)據(jù)總線 (3)接收控制/數(shù)據(jù)信號 ,將此信號和讀/寫信號合起來通知8251A,當前讀/寫的是數(shù)據(jù)還是控制字、狀態(tài)字; (4)接收時鐘信號CLK,完成8251A的內(nèi)部定時 (5)接收復(fù)位信號RESET,使8251A處于空閑狀態(tài),一、8251A的內(nèi)部結(jié)構(gòu)和外部引腳,調(diào)制解調(diào)控制電路 在進行遠程通信的時,要用調(diào)制解調(diào)器將串行接口送出的數(shù)字信號變?yōu)槟M信號,再發(fā)送出去,接收端則要用解調(diào)器將模擬信號變?yōu)閿?shù)字信號,再由串行接口送往計算機主機

10、。 在全雙工通信情況下,每個收發(fā)站都要連接調(diào)制解調(diào)器。 有了調(diào)制解調(diào)控制電路,就提供了一組通用的控制信號,使得8251A可以直接和調(diào)制解調(diào)器連接。,返回,8251A的發(fā)送和接收,(1)異步接收方式 A.當8251A工作在異步方式并準備接收一個字符時,就在 線上檢測低電平。 B.若無字符信息, 上為高電平。 C.8251A將 線上檢測到的低電平作為起始位,并且啟動接收控制電路中的一個內(nèi)部計數(shù)器進行計數(shù),計數(shù)脈沖為8251A的接收器的時鐘脈沖。 D.當計數(shù)進行到相應(yīng)于半個數(shù)位傳輸時間時,又對 線進行檢測,如果此時仍為低電平,則確認收到一個有效的起始位;若再次測得 為高電平,8251A會將剛才檢測的

11、信號看成是干擾脈沖。,(2)異步發(fā)送方式 A.當程序置 和 為有效后,便開始發(fā)送過程。 B.在發(fā)送時,發(fā)送器為每個字符加上1個起始位,并且按照編程要求加上奇/偶校驗位以及1個、1.5個或2個停止位。 C.數(shù)據(jù)及起始位、校驗位、停止位總是在發(fā)送時鐘 的下降沿時從8251A發(fā)出。 D.數(shù)據(jù)傳輸?shù)牟ㄌ芈蕿榘l(fā)送時鐘頻率的1、1/16、1/64,具體決定于編程時給出的波特率系數(shù)。,8251A的發(fā)送和接收,(3)同步接收方式 A.在同步接收方式下,8251A首先搜索同步字符。即檢測 線,每當 線上出現(xiàn)一個數(shù)據(jù)位時,就把它接收下來并把它送入移位寄存器移位。 B.對移位寄存器中的內(nèi)容與同步字符寄存器的內(nèi)容進行

12、比較,若兩者不相等,則接收下一位數(shù)據(jù),并且重復(fù)上述比較過程。當兩個寄存器的內(nèi)容相等,8251A的 引腳升為高電平,以告示同步字符已經(jīng)找到,同步已經(jīng)實現(xiàn)。 C.雙同步字符方式,就要在測得輸入移位寄存器的內(nèi)容與第一個同步寄存器的內(nèi)容相同后,再繼續(xù)檢測此后的輸入移位寄存器的內(nèi)容是否與第二個同步字符寄存器的內(nèi)容相同。,8251A的發(fā)送和接收,D.外同步情況下, 端一出現(xiàn)高電平,8251A就會立即脫離對同步字符的搜索過程,只要高電平能維持一個接收時鐘周期,8251A就認為已經(jīng)完成同步。 E.實現(xiàn)同步后,接收器和發(fā)送器之間開始進行數(shù)據(jù)的同步傳輸。接收器利用時鐘信號對 線進行采樣,并把收到的數(shù)據(jù)位送到移位寄

13、存器中。每當收到的數(shù)據(jù)位達到規(guī)定的一個字符的數(shù)位時,就將移位寄存器的內(nèi)容送到輸入緩沖寄存器,并在 引腳上發(fā)出一個信號,表示收到一個字符。,8251A的發(fā)送和接收,8251A的發(fā)送和接收,(4)同步發(fā)送方式 A.在同步發(fā)送方式下,也要在程序置 和 為有效后,才能開始發(fā)送過程。 B.發(fā)送過程開始后,發(fā)送器先根據(jù)編程要求發(fā)送一個或者兩個同步字符,然后發(fā)送數(shù)據(jù)塊。 C.在發(fā)送數(shù)據(jù)塊時,發(fā)送器會根據(jù)編程要求對數(shù)據(jù)塊中的每個數(shù)據(jù)加上奇/偶校驗位。若沒有該校驗位,則不添加。 D.在同步發(fā)送時,會遇到這樣的情況,即8251A正在發(fā)送數(shù)據(jù),而CPU卻來不及提供新的數(shù)據(jù)給8251A,這時,8251A的發(fā)送器會自動

14、插入同步字符。從而滿足在同步發(fā)送時不允許數(shù)據(jù)之間存在空隙的要求。,返回,一、8251A的內(nèi)部結(jié)構(gòu)和外部引腳,8251A的對外信號分為兩組,一組是8251A和CPU之間的信號;一組是8251A和外部設(shè)備(或調(diào)制解調(diào)器)之間的信號。,8251A和CPU之間的連接信號,同步方式下為SYNDET,8251A和CPU之間的連接信號,(1)片選信號 為低電平時,8251A被選中。反之, 為高電平時,8251A未被選中,8251A的數(shù)據(jù)線處于高阻狀態(tài)。 (2)數(shù)據(jù)信號 :8251A有8根數(shù)據(jù)線,通過它們,8251A與系統(tǒng)的數(shù)據(jù)總線相連。實際上,數(shù)據(jù)線上不只傳輸一般的數(shù)據(jù),而且也傳輸CPU對8251A的編程命

15、令和8251A送往CPU的狀態(tài)信息。 (3)讀/寫控制信號 :讀信號。 為低電平時,用來通知8251A,CPU當前正在從8251A讀取數(shù)據(jù)或者狀態(tài)信息。 :寫信號 。 為低電平時,用來通知8251A,CPU當前正在往8251A寫入數(shù)據(jù)或者控制信息。,8251A和CPU之間的連接信號,:控制/數(shù)據(jù)信號。 也是CPU送往8251A的信號,用來區(qū)分當前讀/寫的是數(shù)據(jù)還是控制信息或狀態(tài)信息。,的編碼和對應(yīng)的操作,8251A和CPU之間的連接信號,注意: (a)8251A只有兩個連續(xù)的端口。 數(shù)據(jù)輸入端口和數(shù)據(jù)輸出端口合用同一個偶地址; 狀態(tài)端口和控制端口合用同一個奇地址。 (b)在8086系統(tǒng)中,利用

16、地址線 來區(qū)分奇地址端口和偶地址端口。 為低電平時,選中偶地址端口; 為高電平時,選中奇地址端口。 8086/8088系統(tǒng)中,將地址線 和8251A的 端相連。,8251A和CPU之間的連接信號,(4)收發(fā)聯(lián)絡(luò)信號 :發(fā)送器準備好信號。輸出。用來告訴CPU,8251A已經(jīng)準備好發(fā)送一個字符。 具體地說,當 為低電平而 為高電平,并且發(fā)送緩沖器為空時, 為高電平。于是,CPU便得知,當前8251A已作好發(fā)送準備,因而CPU可以往8251A傳輸一個數(shù)據(jù)。 :發(fā)送器空信號。輸出。 當發(fā)送器空信號有效時,表示8251A發(fā)送器中并行到串行轉(zhuǎn)換器空。實際上指示一個發(fā)送動作地完成。當8251A從CPU得到一

17、個字符時, 便成為低電平。 在同步方式時,不允許字符之間有空隙,但是CPU有時候來不及往8251A中輸出字符,此時 變?yōu)楦唠娖?,發(fā)送器在輸出線上插入同步字符,從而填補了傳輸間隙。,8251A和CPU之間的連接信號,:接收器準備好信號。 表明當前8251A已經(jīng)從外部設(shè)備或調(diào)制解調(diào)器接收到一個字符,正等待CPU取走。 :同步檢測信號,只用于同步方式。 該引腳即可工作在輸入狀態(tài),又可以工作在輸出狀態(tài),這決定于8251A工作在內(nèi)同步情況還是工作在外同步情況,而這兩種情況又決定于8251A地初始化編程。 當8251A工作在內(nèi)同步時, 作為輸出端,如果8251A檢測到了所要求地同步字符,則 便變?yōu)楦唠娖剑?/p>

18、用來表明8251A當前已經(jīng)達到同步。當8251A工作在外同步情況時, 作為輸入端,從這個輸入端進入的一個正跳變,會使8251A在 的下一個下降沿時開始裝配字符。這種情況下, 的高電平狀態(tài)最少要維持一個 周期,以便遇上 的下一個下降沿。,8251A與外部設(shè)備之間的連接信號,8251A與外部設(shè)備之間的連接信號,(1)收發(fā)聯(lián)絡(luò)信號 :數(shù)據(jù)終端準備好信號 由8251A送往外設(shè)的,CPU通過命令可以使 變?yōu)榈碗娖郊从行щ娖?,從而通知外部設(shè)備,CPU當前已經(jīng)準備就緒。 一般與調(diào)制解調(diào)器相連,置為低電平后,從而通知調(diào)制解調(diào)器,CPU已經(jīng)準備就緒。,:數(shù)據(jù)終端準備好信號 有效時,表示MODEN已經(jīng)準備好數(shù)據(jù),

19、實際上它是對 的回答信號。,8251A與外部設(shè)備之間的連接信號,:請求發(fā)送信號 是8251A送往外設(shè)的信號。低電平有效,CPU可以通過編程命令使 變?yōu)橛行щ娖?,以表示CPU已經(jīng)準備好發(fā)送。 該信號向MODEM發(fā)出請求發(fā)送信號。,:清除請求發(fā)送信號 是對 的響應(yīng)信號,它是由外設(shè)送往8251A的,當 為低電平時,8251A才能執(zhí)行發(fā)送操作。,8251A與外部設(shè)備之間的連接信號,(2)數(shù)據(jù)信息 :發(fā)送器數(shù)據(jù)信號端 用來輸出數(shù)據(jù)。CPU送往8251A的并行數(shù)據(jù)被轉(zhuǎn)變?yōu)榇袛?shù)據(jù)后,通過 送往外設(shè)。 :接收器數(shù)據(jù)信息端 用來接收外設(shè)送來的串行數(shù)據(jù),數(shù)據(jù)進入8251A后被轉(zhuǎn)變?yōu)椴⑿蟹绞健?除此之外,8251

20、A還有電源端、接地端和3個時鐘端。,二、8251A的編程,1.關(guān)于8位接口芯片和16位數(shù)據(jù)總線的連接問題 采取的措施是將 連接到8251A的接口芯片上。 這樣一來,從CPU這邊來說,端口地址都是偶地址,所以傳輸信息時,信息總是出現(xiàn)在低8位數(shù)據(jù)線上;而從端口這邊來說,端口地址中既有奇地址,也有偶地址,而且是連續(xù)的,也滿足了許多8位接口芯片對端口地址的要求。,二、8251A的編程,2.8251A的初始化 對使用8251A初始化的約定主要有3個: (1)芯片復(fù)位以后,第一次用奇地址端口寫入的值作為方式字進入方式字寄存器。 (2)如果方式字中規(guī)定了8251A工作在同步模式,那么,CPU接著往奇地址端口

21、輸出的1個或2個字節(jié)就是同步字節(jié),同步字節(jié)被寫入同步字符寄存器。如果有兩個同步字符,則會按先后分別寫入第一同步字符寄存器和第二同步字符寄存器。 (3)這之后,只要不是復(fù)位命令,不管是同步模式還是異步模式,由CPU用奇地址端口寫入的值將作為控制字送到控制寄存器,而用偶地址端口寫入的值將作為數(shù)據(jù)送到數(shù)據(jù)輸出緩沖寄存器。,復(fù)位操作,輸出方式字,同步方式,輸出第一個同步字符,輸出第二個同步字符,雙同步,輸出命令字,復(fù)位,傳送數(shù)據(jù),輸入狀態(tài)字,有錯,傳送完,出錯 處理,Y,N,Y,N,N,Y,Y,Y,N,N,二、8251A的編程,3.方式字,01 異步方式1 10 異步方式16 11 異步方式64,00

22、 字符長度為5位 01 字符長度為6位 10 字符長度為7位 11 字符長度為8位,x0 無奇偶校驗位 01 奇校驗 11 偶校驗,00 無效 01 1個停止位 10 1.5個停止位 11 2個停止位,異步方式方式字格式,二、8251A的編程,與異步方式相同,1 SYNDET為輸入(外同步) 0 SYNDET為輸出(內(nèi)同步),1 單字符同步 0 雙字符同步,同步方式方式字格式,二、8251A的編程,在同步模式中,接收和發(fā)送的波特率分別和 引腳, 引腳上的輸入時鐘的頻率相等。 在異步模式中,要用方式字寄存器中的兩個最低位來確定波特率因子,此時 和 的頻率、波特率因子和波特率之間有如下關(guān)系:,時鐘

23、頻率波特率因子波特率,二、8251A的編程,4.命令字格式,1 允許發(fā)送 0 禁止發(fā)送,1 使 引腳輸出低 電平,1 允許接收 0 禁止接收,1 使 線變低,發(fā)送空白字符 0 正常工作,1 使錯誤標志PE,OE,FE均復(fù)位,1 使 引腳輸出低電平,1 內(nèi)部復(fù)位,使8251A回到方式選擇格式,1 啟動搜索同步字符,二、8251A的編程,5.狀態(tài)字格式,發(fā)送器準備好,同引腳含義,奇偶校驗,溢出錯誤,幀錯誤(只用于異步方式),數(shù)據(jù)裝置準備好,三、8251A初始化編程舉例,1.異步方式初始化程序 在實際使用中,為了確保送方式字和命令字之前8251A已正確復(fù)位 (1)應(yīng)先向8251A的控制口連續(xù)寫入3個

24、全0 (2)再向該端口送入一個使 位等于1的復(fù)位控制字(40H) 從而使得8251A可以可靠復(fù)位。,三、8251A初始化編程舉例,對8251A的控制口進行一次寫入操作后,需要有寫恢復(fù)時間。 常用的方法有 (1)宏指令 (2)調(diào)用子程序 KKK: OUTDX,AL PUSHCX MOVCX,0002 ABC: LOOPABC POPCX RET,REVTIMEMACRO MOVCX,02 D0:LOOPD0 ENDM,三、8251A初始化編程舉例,例題1:8251A工作于異步方式,波特率系數(shù)為16,具有7個數(shù)據(jù)位,1個停止位,有偶校驗,控制口地址為3F2H,寫恢復(fù)時間程序為REVTIME,則對8

25、251A進行初始化的程序為:,三、8251A初始化編程舉例,MOV DX,3F2H;控制口 MOV AL,00H OUT DX,AL;向控制口寫入“0” REVTIME;延時,等待寫操作 OUT DX,AL;向控制口寫入第二個“0” REVTIME;延時 OUT DX,AL;向控制口寫入第三個“0” REVTIME;延時 MOV AL,40H;對命令字中的復(fù)位位置1 OUT DX,AL;寫入復(fù)位字 REVTIME;延時 MOV AL,01111010B;方式字 OUT DX,AL;寫入方式字 REVTIME;延時 MOV AL,00010101B;命令字:允許接收發(fā)送數(shù)據(jù),清除錯;誤標志 OU

26、T DX,AL;寫入命令字,三、8251A初始化編程舉例,例題2: 8251A工作于異步方式,波特率系數(shù)為16,具有8個數(shù)據(jù)位,1個停止位,有偶校驗,控制口地址為DAH,則對8251A進行初始化的程序為:,三、8251A初始化編程舉例,INIT XOR AX,AX;AX清零 MOV CX,0003 MOV DX,00DAH OUT1:CALL KKK LOOP OUT1 MOV AL,40H CALL KKK MOV AL,4EH CALL KKK MOV AL,27H CALL KKK KKK:OUT DX,AL PUSH CX MOV CX,0002 ABC:LOOP ABC POP CX

27、 RET,往8251A的控制端口DAH送3個00,往8251A的控制端口DAH送1個 40H,使得它復(fù)位,往8251A的控制端口DAH設(shè)置 方式字,使得它為異步模式,波特 率系數(shù)為16,8位數(shù)據(jù),1位停止,往8251A的控制端口DAH設(shè)置命令字 使發(fā)送器和接收器啟動。,下面是輸出子程序,將AL中的數(shù)據(jù)輸出到 DX指出的端口,等待輸出動作完成,恢復(fù)CX的內(nèi)容,并返回,三、8251A初始化編程舉例,1.同步方式初始化程序 (1)同步字符常用ASCII字符集中的16H作為收發(fā)雙方同意的一個同步字符。 (2)寫入同步字符后,再對8251A的控制口寫入一個命令字,選通發(fā)送器和接收器,允許芯片對從 引腳上

28、送來的數(shù)據(jù)位搜索同步字符。,三、8251A初始化編程舉例,例題1:8251A的控制口地址為3F2H,寫恢復(fù)延時程序為REVTIME,如要求8251A工作于同步方式,采用雙同步字符、奇校驗、數(shù)據(jù)位為7位,則對8251A寫入復(fù)位字以后的初始化程序為,三、8251A初始化編程舉例,;先向控制口寫入3個0,再送復(fù)位字40H MOVDX,3F2H;控制口 MOVAL,00011000B;方式字;雙同步,內(nèi)同;步,奇校驗,7個數(shù)據(jù)位 OUTDX,AL;送方式字 REVTIME;延時 MOVAL,16H OUTDX,AL;送入第一個同步字符 REVTIME;延時 OUTDX,AL;送入第二個同步字符 REV

29、TIME MOVAL,10010101B;命令字:啟動搜索同步;字符,錯誤標志復(fù)位,;允許收發(fā) OUTDX,AL,三、8251A初始化編程舉例,利用狀態(tài)字進行編程 下面程序段先對8251A進行初始化,然后對狀態(tài)字進行測試,以便輸入字符。本程序段可用來輸入80個字符。 規(guī)定控制口和狀態(tài)口為52H,數(shù)據(jù)輸出和輸入口為50H。字符輸入后,放在BUFFER標號所指的內(nèi)存緩沖區(qū)中。 程序的內(nèi)循環(huán)中,對狀態(tài)寄存器的狀態(tài)位 不斷測試,看8251A是否已經(jīng)從外設(shè)接收到一個字符。若已經(jīng)接收到,則將它讀入并送到內(nèi)存緩沖區(qū)。,三、8251A初始化編程舉例,程序?qū)顟B(tài)寄存器的出錯指示位進行檢測,如果發(fā)現(xiàn)傳輸過程中有奇

30、/偶校驗錯誤、超越錯誤和幀格式錯誤,則停止輸入,并調(diào)用出錯處理子程序。 出錯處理子程序只要有兩方面: (1)打印出錯信息 (2)清除狀態(tài)寄存器中的出錯指示位,出錯指示位的清除可以通過設(shè)置控制字來實現(xiàn)。,三、8251A初始化編程舉例,兩點簡要說明: (1)字符接收過程本身會自動使 置1。 (2)當輸入的字符少于8位時,那么數(shù)據(jù)位從右邊對齊,8251A會在余下的高位上自動填0。,三、8251A初始化編程舉例,MOVAL,0FAH OUT52H,AL MOVAL,35H OUT52H,AL MOVDI,0 MOVCX,80 BEGIN:INAL,52H TESTAL,02H JZBEGIN INAL

31、,50H MOVDX,OFFSET BUFFER MOVDX+DI,AL INCDI INAL,52H TESTAL,38H JNZERROR LOOPBEGIN JMPEXIT ERROR:CALLERR_OUT EXIT:,設(shè)置方式字,異步模式,波特率系數(shù)為16,用7個數(shù)據(jù)位,2個停止位,偶校驗,設(shè)置控制字,使發(fā)送器和接收器啟動,并清除出錯指示位,變址寄存器初始化,共收取80個字符,讀取狀態(tài)字,測試 是否為1,如為0,表示未 收到字符,故繼續(xù)讀取狀態(tài)字并測試,讀取字符,將字符送入緩沖區(qū),修改緩沖區(qū)指針,讀取狀態(tài)字,測試有無幀格式錯誤,奇/偶校驗錯誤和超越錯誤,若有,則轉(zhuǎn)向出錯處理程序,如沒有錯誤,則再接收下一字符,如輸入滿80個字符,則結(jié)束,調(diào)用出錯處理程序,第十章串行通信和可編程接口芯片8251A,10-1串行通信的基本概念 10-2可編程串行通信接口芯片8251A 10-3EIA RS-232C串行口和8251A應(yīng)用舉例 10-4串行同步數(shù)據(jù)通信協(xié)議,10-3EIA RS-232C串行口和8251A應(yīng)用舉例,RS-232C標準具體規(guī)定: (1)信號電平 通常使用12和12作為RS-232C電平。 需要專門的電路來進行電平轉(zhuǎn)換 (2)接插件規(guī)格 25芯D型

溫馨提示

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

評論

0/150

提交評論