
本章内容丰富,主要包括三部分.pdf
30页?????? 本章內容豐富,主要包括三部分: 硬體部分: 介紹 8051 串列埠、串列資料轉並列資料 IC、並列資料轉串列資料 IC,以及 MAX232 等 程式與實作部分: Mode 0 串列埠的接收與傳送、其它工作模式的應用、兩台 8051 小系統的互傳應用等 ?? 8051 7-2 7-1?????? 在微電腦與數位系統裡,資料傳輸可分為並列式傳輸與串列式傳輸,並列式傳輸一次傳輸多個位元(通常是 8 位元)因此,連接兩個系統之間的傳輸線,就必須很多條當然,一次傳輸多個位元,傳輸的速度就比較快;但其傳輸線數比較多,線路費用相對提高,線路阻抗匹配、雜訊等問題也較多,所以不適合長距離的通訊串列式傳輸每次傳輸一個位元,資料傳輸的速度似乎不怎麼快,但連兩個系統之間,只要兩條傳輸線即可,適合於長距離的通訊 到底要使用並列式傳輸還是串列式傳輸,全視資料量與環境而定在前面的單元裡,不管使用哪個 PORT,大都是一次輸出入 8 個位元,屬於近距離的並列式資料傳輸若要將 8051 系統的資料傳至另一 8051 系統,則可使用串列式資料傳輸最典型的串列式資料傳輸,算是 RS232C,例如個人電腦裡的 com1、com2 就屬 RS232C。
雖然個人電腦裡的輸出入介面,逐漸被新一代的 USB、網卡所取代,但 USB、網卡也屬於串列式資料傳輸串列式資料傳輸的媒介,除銅導線外,還可透過光纖,以及電波(無線傳輸),可說是多采多姿,而其速度更逐日飆高反觀並列式資料傳輸的速度與傳輸距離,一直遲滯不前,導致並列式資料傳輸日漸式微 在串列式資料傳輸裡,有單工及雙工之分,單工就是一條線只能有一種用途,例如輸出線就只能將資料傳出、輸入線就只能將資料傳入而雙工就是在同一條線上,可傳入資料,也可傳出資料若在系統上,只有一條傳輸線,而在該傳輸線同一個時間裡,不是進行傳入資料,就是傳出資料,稱之為「???」若在系統上有兩條傳輸線,而這兩條傳輸線上,可同時進行資料傳入與傳出,稱之為「???」 通常以每秒傳輸多少位元(bit per sector,簡稱 bps)表示串列式資料傳輸的速率,又稱為??(baud)8051 提供一個全雙工的萬用非同步串列埠(Universal Asynchronous Receiver Transmitter,簡稱 UART),這個串列埠有四種工作模式(mode),使用不同工作模式,其鮑率各有不同,如下說明: ? mode 0:由 8051 主導,其鮑率為 8051 系統時鐘脈波的 12 分之 1,即 OSC/12,以 12MHz 的系統為例,則其鮑率為 1M bps。
??? ?????? 7-3 ? mode 1 或 mode 3:此模式為可變鮑率的串列埠,主要是為了配合所連接系統的時序,以達到不同系統的資料傳輸 ? mode 2:此模式提供兩種不同鮑率的選擇,即 OSC/32 或 OSC/64,其中的 OSC 為 8051 系統時鐘脈波 通常,微處理機裡的資料處理,屬於並列式處理,以 8051 而言,一次處理一個位元組,也就是 8 個位元不管怎樣,串列式資料與並列式資料之間的轉換是無法避免的在 8051 裡,若要把 8 位元的並列資料傳出去,只要把資料放入串列緩衝器(SBUF)即可,8051 就會幫我們把這筆資料,一個位元一個位元丟出去接收串列資料也是一樣,8051 會把外面傳入的資料,一個位元一個位元塞進 SBUF,當 SBUF 塞滿後,即為並列資料 7-2?? ??????????? 若從 8051 的串列埠,將資料傳出後,則可以透過串列轉並列的 IC(如74164),將串列資料轉換成並列資料;若要把並列資料,經由 8051 的串列埠傳入 8051,則需經並列轉串列的 IC(如 74165),將並列資料轉換成串列資料,即可傳入 8051以下將介紹 74164 及 74165: 74164 ???? ????? ????如上圖所示,74164 是一顆串列轉並列的 IC,其中各接腳如下說明: ? clear:本接腳為清除接腳,當此接腳為低態時,則並列輸出接腳?? 8051 7-4 將全部變為低態。
? A、B:串列資料輸入接腳,這兩隻接腳完全一樣,我們可將這兩隻接腳連接在一起,再接到串列資料來源也可將其中一腳連接到 VCC,另一隻接腳連接串列資料來源 ? clock:本接腳為時鐘脈波接腳,而此 IC 為正緣觸發型,也就是輸出接腳的狀態變化是發生在時鐘脈波由低態變為高態的時候 ???? ????? ????? QA~~QH:資料輸出接腳,這八隻接腳為b0到b7的 8 位元並列資料輸出接腳 74165 如下圖所示,74165 是一顆並列轉串列的 IC,其中各接腳如下說明: ??? ?????? 7-5 ???? ????? ????? shift/load:本接腳為資料載入與移位控制接腳,當此接腳為低態時,則並列輸入接腳的狀態將全部被載入當此接腳為高態時,即可隨時鐘脈波進行移位式串列輸出 ? clock inhibit:本接腳為時鐘脈波禁致接腳,當本接腳為高態時,輸出接腳將不隨時鐘脈波而變化當本接腳為低態時,輸出接腳將隨時鐘脈波,而進行變化移位式串列輸出 ? clock:本接腳為時鐘脈波接腳,而此 IC 為正緣觸發型,也就是輸出接腳的狀態變化是發生在時鐘脈波由低態變為高態的時候。
? serial input:本接腳為串列輸入接腳,若要進行並列資料輸入串列資料輸出的轉換,則此接腳保持為低態即可若要進串並列資料輸入串列資料輸出的轉換,則此接腳連接串列資料來源 ? A~H:並列資料輸入接腳,這八隻接腳為b0到b7的 8 位元並列資料輸入接腳,接到並列資料來源 ? out:本接腳為串列資料輸出接腳 ? out:本接腳為串列資料反相輸出接腳 74165 的動作如下真值表所示: ?? 8051 7-6 輸輸 入入 並列輸入輸輸 出出 shift /load clock inhibit clockserial inputA~H out out 0 × × × a~h h h 1 0 0 × × QhohoQ 1 0 ↑ 1 × QnnQ 1 0 ↑ 0 × QnnQ 1 1 ↑ × × QhohoQ 7-3?? ?????? ???? MCS-51 的串列埠為全雙工的串列埠,可接收及傳送串列資料,不管是接收或傳送,都使用串列緩衝器(SBUF),接收串列資料時,所輸入的串列資料將塞進 SBUF,塞滿後提出中斷,再將 SBUF 裡的 8 位元資料移做他用傳送資料時,先將所要送出的資料放入 SBUF,即可一個位元一個位元地傳到目的地。
很明顯的,SBUF 扮演關鍵性的角色,在8051 內容,雖然都叫做 SBUF,但接收用的 SBUF 與傳送用的 SBUF,分別是兩個不同位址的 8 位元暫存器不過,誰理它?反正對於使用者沒有影響就好了 MCS-51 的串列埠有四種工作模式,如下說明: mode 0 ???? ?????mode 0 工 作 模 式 是 以 固 定 鮑 率 之 移 位 式 資 料 傳 輸 , 其 鮑 率 為??? ?????? 7-7 OSC/12,若在 12MHz 下,則其鮑率為 1Mbps在此模式下,不管是接收資料還是資料傳出,CPU 的 RxD 接腳(P3.0)連接串列資料線,TxD 接腳(P3.1)連接移位脈波線執行資料接收時,由 TxD 接腳送出移位脈波,而由 RxD 接腳收下串列資料,如圖 4 所示;執行資料傳送時,也是依據 TxD 接腳所送出的移位脈波,而由 RxD 接腳送出資料串列資料,如圖 5 所示 ???? ?????如圖 6 所示為 8051 內部串列埠的架構,只要將所要送出得資料放入SBUF,例如「MOV SBUF, A」,則寫入 SBUF 的動作會在 S6 的 2週期,將「1」放入 SBUF 左邊的正反器(視為第 9 位元),以做為結束傳送的識別位元,同時啟動 TX 控制器的開始信號,而 TX 控制器的送出信號輸出 1,則 TxD 接腳即可輸出移位脈波,開始傳出資料。
緊接著,SBUF 內的資料,依序移位經 RxD 接腳輸出,同時在 SBUF左邊補入 0當送出八個位元時,SBUF 裡除最右邊為 1 外,其餘皆為 0,零偵測電路(只偵測 SBUF 左邊七個位元)將偵測出 0 的信號,以驅動 TX 控制器,TX 控制器隨即提出一個 TI 中斷信號,並將送出信號輸出為 0,停止傳送 若要進行接收資料,則須先將 SCON 暫存器的 REN 位元設定為 1、RI 位元設定為 0,方能啟動 RX 控制器的開始信號,RX 控制器將「11111110」載入輸入移位暫存器緊接著,RX 控制器的接收信號輸出 1,則 TxD 接腳即可輸出移位脈波,開始接收資料每當一個位元串列資料經 RxD 接腳輸入到輸入移位暫存器時,RX 控制器將送出一個移位信號,讓輸入移位暫存器左移一位當輸入移位暫存?? 8051 7-8 器最左位元為 0 時,RX 控制器將再進行一個位元的輸入,然後提出一個 RI 中斷信號,並將接收信號輸出為 0,停止接收 ???? ??????mode 1 mode 1 工作模式是以可變的鮑率進行串列資料的傳輸,其鮑率可由Timer 1 來控制(若是 8052 則還可使用 Timer 2 控制鮑率)。
在此模式下,8051 的 RxD 接腳連接來源的 TxD 接腳、8051 的 TxD 接腳連接目的地的 RxD 接腳 ??? ?????? 7-9 ???? ?????? ???????在 mode 1 下,每筆資料是由 10 位元所組成,包括起始位元(start bit)、8 個位元的資料,以及停止位元(stop bit),其中第一個位元就是低態的起始位元,緊接著是 8 位元資料的 bit 0(即 LSB),接續於bit 7(MSB)之後的是高態的停止位元,如圖下所示: ???? ?????? ???????mode 2 mode 2 工作模式是以 OSC/32 或 OSC/64 的鮑率進行串列資料的傳輸,而其線路的連接,也是 8051 的 RxD 接腳連接來源的 TxD 接腳、8051 的 TxD 接腳連接目的地的 RxD 接腳而在 mode 2 下,每筆資料是由 11 位元所組成,包括起始位元(start bit)、8 個位元的資料、同位位元(parity bit),以及停止位元(stop bit),其中第一個位元就是低態的起始位元,緊接著是 8 位元資料的 bit 0(即 LSB),接續於 bit 7之後的是同位位元,最後則是高態的停止位元,如圖下所示: ???? ?????? ???????當進行資料傳出時,第 9 個位元 TB8(即 SCON 暫存器中的 TB8)為同?? 8051 7-10 位位元,可取自程式狀態字組暫存器 PSW 中的 P 位元,以達到同位檢查的目的。
當接收資料時,第 9 個位元將直接移入 SCON 暫存器中的 RB8,而不必管停止位元 mode 3 mode 3 工作模式是以可變的鮑率進行串列資料的傳輸,其鮑率可由Timer 1 來控制(若是 8052 則還可使用 Timer 2 控制鮑率) 除此之外,mode 3 與 mode 2 幾乎完全一樣 7-4?? ???? ???????? ????? ???? ????串列埠控制暫存器(serial port control register,簡稱 SCON)是一個 8位元、可位元定址的暫存器,其功能是設定與控制串列埠,其中個位元如下說明: SM0 ? SM1 這兩個位元的功能是設定串列埠的模式,如下表所示: SM1 SM0 mode 功功 能能 簡簡 介介 鮑鮑 率率 0 0 0 移位暫存器 OSC/12 0 1 1 8 位元 UART 可 變 1 0 2 9 位元 UART OSC/32 或 OSC/64 1。
