【大學課件】串行數(shù)據(jù)通信_第1頁
【大學課件】串行數(shù)據(jù)通信_第2頁
【大學課件】串行數(shù)據(jù)通信_第3頁
【大學課件】串行數(shù)據(jù)通信_第4頁
【大學課件】串行數(shù)據(jù)通信_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、http:/ 計算機串行通信基礎計算機串行通信基礎 計算機與外界進行信息交換稱為計算機與外界進行信息交換稱為通信通信。 通信的基本方式:通信的基本方式:并行通信并行通信 串行通信(串行通信(單片機中主要采用)單片機中主要采用) 并并 行行 數(shù)數(shù) 據(jù)據(jù) 傳傳 送送串行數(shù)據(jù)傳送:同步和異步串行數(shù)據(jù)傳送:同步和異步原原 理理各數(shù)據(jù)位同時傳送各數(shù)據(jù)位同時傳送數(shù)據(jù)位按位順序進行數(shù)據(jù)位按位順序進行優(yōu)優(yōu) 點點傳送速度快、效率高傳送速度快、效率高速度慢速度慢缺缺 點點數(shù)據(jù)位數(shù)數(shù)據(jù)位數(shù)傳輸線根數(shù):成本高傳輸線根數(shù):成本高最少只需一根傳輸線即可完成:成本低最少只需一根傳輸線即可完成:成本低應應 用用傳送距離傳送距

2、離30米,用于計算機內(nèi)部米,用于計算機內(nèi)部幾米幾千公里,用于計算機與外設之間幾米幾千公里,用于計算機與外設之間一、異步通信與同步通信一、異步通信與同步通信1、異步通信、異步通信 異步通信異步通信是指通信雙方是指通信雙方使用各自的時鐘使用各自的時鐘控制數(shù)據(jù)的發(fā)送控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求收、發(fā)雙方的時鐘盡和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求收、發(fā)雙方的時鐘盡可能一致,可能一致,以起始位、停止位保持通信同步。其數(shù)據(jù)傳送以起始位、停止位保持通信同步。其數(shù)據(jù)傳送以幀以幀為單位傳送為單位傳送。每。每1幀數(shù)據(jù)由幀數(shù)據(jù)由1個字符代碼組成,每個字符代碼組成,每1個字符代碼個字符代碼由起

3、始位、數(shù)據(jù)位、奇偶校驗位和停止位組成。由起始位、數(shù)據(jù)位、奇偶校驗位和停止位組成。2、同步通信、同步通信 以一串字符為一個傳送單位,字符間不加標識位,字符串開以一串字符為一個傳送單位,字符間不加標識位,字符串開始用同步字符標識(一般約定為始用同步字符標識(一般約定為12個字符),以觸發(fā)同步時個字符),以觸發(fā)同步時鐘開始發(fā)送或接收數(shù)據(jù);多字節(jié)數(shù)據(jù)之間不允許有空隙,每位鐘開始發(fā)送或接收數(shù)據(jù);多字節(jié)數(shù)據(jù)之間不允許有空隙,每位占用的時間相等;空閑位需發(fā)送同步字符。占用的時間相等;空閑位需發(fā)送同步字符。 硬件要求高,通訊雙方須嚴格同步,適用于成批數(shù)據(jù)傳送。硬件要求高,通訊雙方須嚴格同步,適用于成批數(shù)據(jù)傳送

4、。 單片機不用該方式。單片機不用該方式。 異步通信對硬件要求較低,實現(xiàn)起來比較簡單、靈活,異步通信對硬件要求較低,實現(xiàn)起來比較簡單、靈活,適用于數(shù)據(jù)的隨機發(fā)送適用于數(shù)據(jù)的隨機發(fā)送/接收,但因每個字節(jié)都要建立一次同接收,但因每個字節(jié)都要建立一次同步,即每個字符都要額外附加兩位,所以工作速度較低,在步,即每個字符都要額外附加兩位,所以工作速度較低,在單片機中主要采用異步通信方式。單片機中主要采用異步通信方式。二、串行通信的制式二、串行通信的制式 串行通信按照數(shù)據(jù)傳送方向可分為三種制式:串行通信按照數(shù)據(jù)傳送方向可分為三種制式:單單 工:工: 數(shù)據(jù)傳輸僅能沿數(shù)據(jù)傳輸僅能沿一個方向一個方向傳輸。傳輸。半

5、雙工:數(shù)據(jù)傳輸可以沿半雙工:數(shù)據(jù)傳輸可以沿兩個方向兩個方向,但分時進行。,但分時進行。全雙工:全雙工:數(shù)據(jù)可以數(shù)據(jù)可以同時進行雙向同時進行雙向傳輸。傳輸。三、串行通信波特率三、串行通信波特率 波特率波特率bps(bit per second)定義定義: 每秒傳輸數(shù)據(jù)的位數(shù)。每秒傳輸數(shù)據(jù)的位數(shù)。 波特率的倒數(shù)即為每位傳輸所需的時間。波特率的倒數(shù)即為每位傳輸所需的時間。 相互通信的甲乙雙方必須具有相同的波特率,否則無法相互通信的甲乙雙方必須具有相同的波特率,否則無法成功地完成串行數(shù)據(jù)通信。成功地完成串行數(shù)據(jù)通信。 如每秒鐘傳送如每秒鐘傳送240個字符,而每個字符格式包含個字符,而每個字符格式包含1

6、0位位(1個個起始位、起始位、1個停止位、個停止位、8個數(shù)據(jù)位個數(shù)據(jù)位),這時的波特率為:,這時的波特率為: 10位位240個個/秒秒 = 2400 bps7.2 80c51的串行口的串行口 兩個物理上獨立的接收、發(fā)送數(shù)據(jù)緩沖器兩個物理上獨立的接收、發(fā)送數(shù)據(jù)緩沖器sbuf,占用同,占用同一地址一地址99h ;接收器是雙緩沖結(jié)構(gòu);接收器是雙緩沖結(jié)構(gòu),即在接收一個數(shù)據(jù)字節(jié)后,即在接收一個數(shù)據(jù)字節(jié)后,能接收第二個數(shù)據(jù)字節(jié),但它完成接收第二個數(shù)據(jù)字節(jié)之后,能接收第二個數(shù)據(jù)字節(jié),但它完成接收第二個數(shù)據(jù)字節(jié)之后,第一個字節(jié)仍未取走,則該字節(jié)數(shù)據(jù)丟失;發(fā)送緩沖器,因為第一個字節(jié)仍未取走,則該字節(jié)數(shù)據(jù)丟失;發(fā)

7、送緩沖器,因為發(fā)送時發(fā)送時cpu是主動的,不會產(chǎn)生重疊錯誤。是主動的,不會產(chǎn)生重疊錯誤。 7.2.1 7.2.1 80c51串行口的結(jié)構(gòu)串行口的結(jié)構(gòu) 8051系列單片機有一個全雙工的串行口,可以實現(xiàn)異步串系列單片機有一個全雙工的串行口,可以實現(xiàn)異步串行通信。也可用做同步移位寄存器。行通信。也可用做同步移位寄存器。 scon 是一個特殊功能寄存器,用以設定串行口的工是一個特殊功能寄存器,用以設定串行口的工作方式、接收作方式、接收/發(fā)送控制以及設置狀態(tài)標志:發(fā)送控制以及設置狀態(tài)標志: 7.2.2 7.2.2 80c51串行口的控制寄存器串行口的控制寄存器 sm0和和sm1為工作方式選擇位,可選擇四

8、種工作方式:為工作方式選擇位,可選擇四種工作方式: tb8,在方式,在方式2或方式或方式3中,是發(fā)送數(shù)據(jù)的第九位中,是發(fā)送數(shù)據(jù)的第九位,可以用軟件規(guī)定其作用??梢杂米鲾?shù)據(jù)的奇偶校驗可以用軟件規(guī)定其作用??梢杂米鲾?shù)據(jù)的奇偶校驗位,或在多機通信中,作為地址幀位,或在多機通信中,作為地址幀/數(shù)據(jù)幀的標志位。數(shù)據(jù)幀的標志位。在方式在方式0和方式和方式1中,該位未用。中,該位未用。rb8,在方式,在方式2或方式或方式3中,是接收到數(shù)據(jù)的第中,是接收到數(shù)據(jù)的第9位位,可作為奇偶校驗位或地址幀可作為奇偶校驗位或地址幀/數(shù)據(jù)幀的標志位。數(shù)據(jù)幀的標志位。在方在方式式1時,接收到的是停止位時,接收到的是停止位。l

9、 ren,允許串行接收位。由軟件置,允許串行接收位。由軟件置ren=1,則啟,則啟動串行口接收數(shù)據(jù);若軟件置動串行口接收數(shù)據(jù);若軟件置ren=0,則禁止接收。,則禁止接收。sm2,方式方式2和方式和方式3中中多機通信允許控制位多機通信允許控制位 方式方式0時,時,sm2=0; 方式方式1時,時,sm2=1,只有接收到有效停止位時,只有接收到有效停止位時,ri才置才置1, sm2=0,停止位為,停止位為0或或1, ri都置都置1; 方式方式2和方式和方式3時,當時,當sm2=1,如果接收到的第如果接收到的第9位位數(shù)據(jù)數(shù)據(jù)rb80,則,則ri清清0,如果接收到的第,如果接收到的第9位數(shù)據(jù)位數(shù)據(jù)rb

10、81,則,則ri置置1,即由,即由rb8控制是否激活控制是否激活ri。當。當sm2=0時,不論收到的時,不論收到的rb8為為0和和1,均可以使收到的數(shù)據(jù)進入,均可以使收到的數(shù)據(jù)進入sbuf,并激活,并激活ri(即此時(即此時rb8不具有控制不具有控制ri激活的功激活的功能)。通過控制能)。通過控制sm2,可以實現(xiàn)多機通信。,可以實現(xiàn)多機通信。ti,發(fā)送中斷標志位,發(fā)送中斷標志位。在方式。在方式0時,當串行時,當串行發(fā)送第發(fā)送第8位數(shù)據(jù)結(jié)束時,或在其它方式,串位數(shù)據(jù)結(jié)束時,或在其它方式,串行發(fā)送停止位的開始時,由內(nèi)部硬件使行發(fā)送停止位的開始時,由內(nèi)部硬件使ti置置1,向向cpu發(fā)中斷申請。在中斷

11、服務程序中,必發(fā)中斷申請。在中斷服務程序中,必須用軟件將其清須用軟件將其清0,取消此中斷申請。,取消此中斷申請。ri,接收中斷標志位,接收中斷標志位。在方式。在方式0時,當串時,當串行接收第行接收第8位數(shù)據(jù)結(jié)束時,或在其它方式,位數(shù)據(jù)結(jié)束時,或在其它方式,串行接收停止位的中間時,由內(nèi)部硬件使串行接收停止位的中間時,由內(nèi)部硬件使ri置置1,向,向cpu發(fā)中斷申請。也必須在中斷服發(fā)中斷申請。也必須在中斷服務程序中,用軟件將其清務程序中,用軟件將其清0,取消此中斷申,取消此中斷申請。請。pcon中只有一位中只有一位smod與串行口工作有關與串行口工作有關 : smod(pcon.7) 波特率倍增位。

12、在串行口波特率倍增位。在串行口方式方式1、方式、方式2、方式、方式3時,波特率與時,波特率與smod有關,有關,當當smod=1時,波特率提高一倍。復位時,時,波特率提高一倍。復位時,smod=0。 7.2.3 7.2.3 80c51串行口的工作方式串行口的工作方式 一、一、方式方式0 方式方式0時,串行口為同步移位寄存器的輸入輸時,串行口為同步移位寄存器的輸入輸出方式。主要用于擴展出方式。主要用于擴展i/o口。串行數(shù)據(jù)由口。串行數(shù)據(jù)由rxd(p3.0)引腳輸入或輸出,同步移位脈沖由)引腳輸入或輸出,同步移位脈沖由txd(p3.1)引腳輸出,作為外接部件的同步信號。)引腳輸出,作為外接部件的同

13、步信號。發(fā)送和接收均為發(fā)送和接收均為8位數(shù)據(jù),低位在先,高位在后。位數(shù)據(jù),低位在先,高位在后。波特率固定為波特率固定為fosc/12。 用的少。用的少。 二、方式二、方式1 方式方式1是是10位通用異步串行接口。位通用異步串行接口。txd為數(shù)據(jù)發(fā)為數(shù)據(jù)發(fā)送引腳,送引腳,rxd為數(shù)據(jù)接收引腳,傳送一幀數(shù)據(jù)的格為數(shù)據(jù)接收引腳,傳送一幀數(shù)據(jù)的格式如圖所示。其中式如圖所示。其中1位起始位,位起始位,8位數(shù)據(jù)位,位數(shù)據(jù)位,1位停止位停止位。位。 此方式的傳送波特率可調(diào)。此方式的傳送波特率可調(diào)。1、方式、方式1發(fā)送發(fā)送 當執(zhí)行數(shù)據(jù)寫入發(fā)送緩沖器當執(zhí)行數(shù)據(jù)寫入發(fā)送緩沖器sbuf的命令時,將的命令時,將1寫入

14、發(fā)寫入發(fā)送移位寄存器的第送移位寄存器的第9位,并通知發(fā)送控制器有發(fā)送請求,就啟位,并通知發(fā)送控制器有發(fā)送請求,就啟動發(fā)送器開始發(fā)送。發(fā)送移位時鐘由定時器動發(fā)送器開始發(fā)送。發(fā)送移位時鐘由定時器t1送來的溢出信送來的溢出信號經(jīng)號經(jīng)16分頻或分頻或32分頻而取得。該移位時鐘就是發(fā)送波特率。分頻而取得。該移位時鐘就是發(fā)送波特率。t1的溢出率可設置,所以波特率是可變的。發(fā)送開始時將起的溢出率可設置,所以波特率是可變的。發(fā)送開始時將起始位向始位向txd輸出,此后每過一個移位時鐘周期送出一位數(shù)據(jù)輸出,此后每過一個移位時鐘周期送出一位數(shù)據(jù)位,位,8位數(shù)據(jù)全部發(fā)送完后,置位數(shù)據(jù)全部發(fā)送完后,置ti位,申請中斷,

15、并置位,申請中斷,并置txd為為1作為停止位。作為停止位。 2、方式、方式1接收接收 用軟件置用軟件置scon寄存器的寄存器的ren為為1的前提下,接收端在每個采的前提下,接收端在每個采樣周期對樣周期對rxd引腳采樣,若引腳為高電平,即發(fā)送端未發(fā)送數(shù)據(jù),引腳采樣,若引腳為高電平,即發(fā)送端未發(fā)送數(shù)據(jù),接收端什么也不干。若采樣到接收端什么也不干。若采樣到rxd引腳輸入電平發(fā)生負跳變時,引腳輸入電平發(fā)生負跳變時,立即啟動一次接收,同時復位立即啟動一次接收,同時復位16分頻計數(shù)器,使輸入位的邊沿與分頻計數(shù)器,使輸入位的邊沿與時鐘對齊,并將時鐘對齊,并將1ff寫入接收移位寄存器,使波特率發(fā)生器從當寫入接

16、收移位寄存器,使波特率發(fā)生器從當前采樣脈沖開始每隔前采樣脈沖開始每隔16個采樣脈沖產(chǎn)生一個移位脈沖,每個移位個采樣脈沖產(chǎn)生一個移位脈沖,每個移位脈沖到來,接收端將接收移位寄存器左移一位,原來寫入的脈沖到來,接收端將接收移位寄存器左移一位,原來寫入的1從從左邊移出,且將引腳左邊移出,且將引腳rxd上的狀態(tài)移入移位寄存器。當起始位移上的狀態(tài)移入移位寄存器。當起始位移到最左邊時,接收控制器將控制進行最后一次移位,若該位為到最左邊時,接收控制器將控制進行最后一次移位,若該位為1,把接收到第把接收到第9位數(shù)據(jù)送到接收位數(shù)據(jù)送到接收sbuf和和rb8,且置位,且置位ri,若為,若為0,則則s m2=0時,

17、把接收到第時,把接收到第9位數(shù)據(jù)送到接收位數(shù)據(jù)送到接收sbuf和和rb8,且置,且置位位ri,若,若sm2=1,接收到的第,接收到的第9位為位為0,不申請中斷(,不申請中斷(ri=0),表),表明傳送產(chǎn)生誤差,可采取糾錯方法進行重發(fā),第明傳送產(chǎn)生誤差,可采取糾錯方法進行重發(fā),第9位為位為1,則表明,則表明一個數(shù)據(jù)的接收過程結(jié)束,接收端為接收下一個數(shù)據(jù)做準備。這一個數(shù)據(jù)的接收過程結(jié)束,接收端為接收下一個數(shù)據(jù)做準備。這個過程包括:將移位寄存器中的數(shù)據(jù)送入輸入緩沖器,向個過程包括:將移位寄存器中的數(shù)據(jù)送入輸入緩沖器,向cpu申申請中斷,輸入端又在采樣脈沖的控制下不斷采樣引腳請中斷,輸入端又在采樣脈沖

18、的控制下不斷采樣引腳rxd。為接收準確無誤,在正式接收數(shù)據(jù)之前,還必須判斷起始位是否由干擾引起為接收準確無誤,在正式接收數(shù)據(jù)之前,還必須判斷起始位是否由干擾引起的。在這位中間,即移位數(shù)據(jù)采樣的。在這位中間,即移位數(shù)據(jù)采樣16次,對第次,對第7、8及及9次連續(xù)值中,取其中次連續(xù)值中,取其中兩次相等的值作為該位值。這樣能較好的消除干擾的影響,當確認是真正的兩次相等的值作為該位值。這樣能較好的消除干擾的影響,當確認是真正的起始位后,就開始接收一幀數(shù)據(jù)。當一幀數(shù)據(jù)接收完畢后,必須滿足兩個條起始位后,就開始接收一幀數(shù)據(jù)。當一幀數(shù)據(jù)接收完畢后,必須滿足兩個條件,這次接收才真正有效。即:件,這次接收才真正有

19、效。即:ri=0(即上一幀數(shù)據(jù)接收完成時,即上一幀數(shù)據(jù)接收完成時,ri發(fā)出的中發(fā)出的中斷請求已被響應,斷請求已被響應,sbuf中的數(shù)據(jù)已被取走。由軟件使中的數(shù)據(jù)已被取走。由軟件使ri=0,以便提供,以便提供“接接收收sbuf已空的信息已空的信息);sm2=0(或接收到的停止位為(或接收到的停止位為1)時,將接收到的前)時,將接收到的前8位數(shù)據(jù)裝入接收位數(shù)據(jù)裝入接收sbuf,第,第9位(停止位)進入位(停止位)進入rb8,并置,并置ri=1,向,向cpu請求請求中斷。如果上述條件不滿足,則該幀丟失。中斷。如果上述條件不滿足,則該幀丟失。 三、方式三、方式2和方式和方式3 方式方式2或方式或方式3

20、時為時為11位數(shù)據(jù)的異步通信口。位數(shù)據(jù)的異步通信口。txd為數(shù)據(jù)發(fā)為數(shù)據(jù)發(fā)送引腳,送引腳,rxd為數(shù)據(jù)接收引腳為數(shù)據(jù)接收引腳 。 方式方式2和方式和方式3每幀均為每幀均為11位,位, 1位起始位,位起始位, 8位數(shù)據(jù)位,位數(shù)據(jù)位,一位可編程的第一位可編程的第9位(發(fā)送時軟件設置為位(發(fā)送時軟件設置為scon中的中的tb8位,位,接收時進入接收時進入scon中的中的rb8位),位), 1位停止位。位停止位。方式方式2的波特的波特率固定為晶振頻率的率固定為晶振頻率的1/64或或1/32,方式,方式3的波特率由定時器的波特率由定時器t1的溢出率決定。的溢出率決定。 1、方式、方式2和方式和方式3發(fā)送

21、發(fā)送發(fā)送前,先根據(jù)用戶約定的通信協(xié)議由軟件設置發(fā)送前,先根據(jù)用戶約定的通信協(xié)議由軟件設置tb8的值,的值,然后把要發(fā)送的數(shù)據(jù)寫入然后把要發(fā)送的數(shù)據(jù)寫入sbuf啟動發(fā)送過程,先把起始位啟動發(fā)送過程,先把起始位0輸出到輸出到txd引腳,然后發(fā)送移位寄存器的輸出位(引腳,然后發(fā)送移位寄存器的輸出位(d0)到)到txd引腳。每一個移位脈沖都使輸出移位寄存器的各位右移引腳。每一個移位脈沖都使輸出移位寄存器的各位右移一位,并由一位,并由txd引腳輸出。引腳輸出。 第一次移位時,停止位第一次移位時,停止位“1”移入輸出移位寄存器的第移入輸出移位寄存器的第9位位上上 ,以后每次移位,左邊都移入,以后每次移位,

22、左邊都移入0。當停止位移至輸出位時,。當停止位移至輸出位時,左邊其余位全為左邊其余位全為0,檢測電路檢測到這一條件時,使控制電,檢測電路檢測到這一條件時,使控制電路進行最后一次移位,并置路進行最后一次移位,并置ti=1,向,向cpu請求中斷。請求中斷。 2、方式、方式2和方式和方式3接收接收 接收時,先置位接收時,先置位scon的的ren位,允許串口接收。位,允許串口接收。當檢測到當檢測到rxd端有負跳變時,使數(shù)據(jù)從右邊移入移位端有負跳變時,使數(shù)據(jù)從右邊移入移位寄存器,在起始位寄存器,在起始位0移到最左邊時,控制電路進行最移到最左邊時,控制電路進行最后一次移位。當后一次移位。當ri=0,且,且

23、sm2=0(或接收到的第(或接收到的第9位位數(shù)據(jù)為數(shù)據(jù)為1)時,接收到的數(shù)據(jù)裝入接收緩沖器)時,接收到的數(shù)據(jù)裝入接收緩沖器sbuf和和rb8(接收數(shù)據(jù)的第(接收數(shù)據(jù)的第9位),置位),置ri=1,向,向cpu請求中請求中斷。如果條件不滿足,則數(shù)據(jù)丟失,且不置位斷。如果條件不滿足,則數(shù)據(jù)丟失,且不置位ri,繼,繼續(xù)搜索續(xù)搜索rxd引腳的負跳變。引腳的負跳變。四、波特率的計算四、波特率的計算 在串行通信中,收發(fā)雙方對發(fā)送或接收數(shù)在串行通信中,收發(fā)雙方對發(fā)送或接收數(shù)據(jù)的速率要有約定。其中方式據(jù)的速率要有約定。其中方式0和方式和方式2的波的波特率是固定的,方式特率是固定的,方式1和方式和方式3的波特率

24、是可的波特率是可變的,由定時器變的,由定時器t1的溢出率來決定。的溢出率來決定。 方式方式0中移位脈沖由中移位脈沖由cpu時鐘(機器周期)時鐘(機器周期)給出,每個機器周期產(chǎn)生一個移位脈沖,發(fā)給出,每個機器周期產(chǎn)生一個移位脈沖,發(fā)送或接收一位數(shù)據(jù)。送或接收一位數(shù)據(jù)。 波特率波特率 = fosc/12 方式方式2的波特率的波特率 =(2smod/64) fosc 方式方式1和方式和方式3的波特率由定時器的波特率由定時器t1的溢出率與的溢出率與smod值確定。值確定。 v方式方式1的波特率的波特率 =(2smod/32)(t1溢出率)溢出率)v方式方式3的波特率的波特率 =(2smod/32)(t

25、1溢出率)溢出率) t1溢出率取決于溢出率取決于t1的工作方式、時鐘頻率和的工作方式、時鐘頻率和ti預預置值,定時器置值,定時器t1作波特率發(fā)生器使用時,通常選用定作波特率發(fā)生器使用時,通常選用定時器(對內(nèi)部機器周期計數(shù))模式時器(對內(nèi)部機器周期計數(shù))模式2,即自動重裝在,即自動重裝在方式,另外要禁止方式,另外要禁止ti中斷,以免中斷,以免t1溢出時產(chǎn)生不必要溢出時產(chǎn)生不必要的中斷。的中斷。v方式方式1和方式和方式3的波特率的波特率 =(2smod fosc /32 12 (2n-初值初值)在單片機的應用中,常用的晶振頻率為:在單片機的應用中,常用的晶振頻率為:12mhz和和11.0592mh

26、z。所以,選用的波特率也相對固定。所以,選用的波特率也相對固定。常用的串行口波特率以及各參數(shù)的關系如表所示。常用的串行口波特率以及各參數(shù)的關系如表所示。 串行口工作之前,應對其進行初始化,主串行口工作之前,應對其進行初始化,主要是設置產(chǎn)生波特率的定時器要是設置產(chǎn)生波特率的定時器1、串行口控、串行口控制和中斷控制。具體步驟如下:制和中斷控制。具體步驟如下:v確定確定t1的工作方式的工作方式(編程(編程tmod寄存器);寄存器);v計算計算t1的初值的初值,裝載,裝載th1、tl1;v啟動啟動t1(編程(編程tcon中的中的tr1位);位);v確定確定串行口控制串行口控制(編程(編程scon寄存器

27、);寄存器);串行口在中斷方式工作時,要進行中斷設置串行口在中斷方式工作時,要進行中斷設置(編程(編程ie、ip寄存器)。寄存器)。7.3 單片機串行口應用舉例單片機串行口應用舉例 在計算機分布式測控系統(tǒng)中,經(jīng)常要利用在計算機分布式測控系統(tǒng)中,經(jīng)常要利用串行通信方式進行數(shù)據(jù)傳輸。串行通信方式進行數(shù)據(jù)傳輸。80c51單片機的單片機的串行口為計算機間的通信提供了極為便利的條串行口為計算機間的通信提供了極為便利的條件。件。例:單片機例:單片機1內(nèi)部內(nèi)部ram20h-23h中有中有4個數(shù)據(jù)個數(shù)據(jù)要發(fā)給單片機要發(fā)給單片機2,單片機單片機2接收到后存入其內(nèi)部接收到后存入其內(nèi)部ram的的33h-36h中。晶

28、振都為中。晶振都為6m,要求用要求用4800bps通信,收發(fā)雙方都采用串口方式通信,收發(fā)雙方都采用串口方式1.單片機間的通信單片機間的通信 1、硬件連接、硬件連接 txd8051rxdtxd8051rxdvccvccvssvss 兩個單片機的接收端都接兩個單片機的接收端都接一個上拉電阻,以保證單片機一個上拉電阻,以保證單片機上電后串口檢測機構(gòu)在該接收上電后串口檢測機構(gòu)在該接收端上檢測到的信號為空閑狀態(tài)。端上檢測到的信號為空閑狀態(tài)。 由于兩個系統(tǒng)上電后各自由于兩個系統(tǒng)上電后各自都需要初始化,事先無法預料都需要初始化,事先無法預料哪個系統(tǒng)先初始化好,所以發(fā)哪個系統(tǒng)先初始化好,所以發(fā)送端在發(fā)送數(shù)據(jù)之

29、前應先發(fā)送送端在發(fā)送數(shù)據(jù)之前應先發(fā)送一個聯(lián)絡信號詢問接收端是否一個聯(lián)絡信號詢問接收端是否準備好。假如發(fā)送準備好。假如發(fā)送01010101為為詢問信號。接收端在接收到這詢問信號。接收端在接收到這個信號后也回應一個個信號后也回應一個01010101表示接收端準備好,然后發(fā)送表示接收端準備好,然后發(fā)送端開始發(fā)送數(shù)據(jù),接收端開始端開始發(fā)送數(shù)據(jù),接收端開始接收數(shù)據(jù)。單片機接收數(shù)據(jù)。單片機1中用程序狀中用程序狀態(tài)字態(tài)字psw中的用戶標志位中的用戶標志位f0指指示單片機示單片機2是否處于準備好狀態(tài),是否處于準備好狀態(tài),單片機單片機2中用中用f0指示單片機指示單片機1送送來的數(shù)據(jù)是查詢信息還是有效來的數(shù)據(jù)是查

30、詢信息還是有效數(shù)據(jù)。數(shù)據(jù)。系統(tǒng)1系統(tǒng)22、程序、程序org 0000hljmp mainorg 0023h ljmp sub1main: mov scon, #50h; 設置串口工作方式設置串口工作方式1,不允許多機通信,允許接收,不允許多機通信,允許接收,tb,rb方式方式1 ;中未用;串口發(fā)送無中斷,接收無請求中未用;串口發(fā)送無中斷,接收無請求 mov tmod, #20h;定時器;定時器1工作在方式工作在方式2; mov tl1, #0fdh mov th1, #0fdh mov ie, #90h;打開全局和串口中斷;打開全局和串口中斷 setb tr1; 啟動定時器啟動定時器1,使波特率發(fā)生器產(chǎn)生移位和采樣脈沖,使波特率發(fā)生器產(chǎn)生移位和采樣脈沖ini: mov sbuf, #55h;發(fā)送到緩沖器;發(fā)送到緩沖器 mov r1, #0ffh:為下面循環(huán)設置循環(huán)次數(shù):為下面循環(huán)設置循環(huán)次數(shù);延時應大于單片機延時應大于單片機1,2串串口口loop:nop ;中斷服務程序處理時間之和;中斷服務程序處理時間之和 djnz r1, loop jnb f0, ini ;為;為0接收端為準備好,否則再發(fā)送詢問信號接收端為準備好,否則再發(fā)送詢問信號 mov r0,#21h; 設下次發(fā)送的地址指針設下次發(fā)送的地址

溫馨提示

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

評論

0/150

提交評論