第8章串行口及應(yīng)用_第1頁(yè)
第8章串行口及應(yīng)用_第2頁(yè)
第8章串行口及應(yīng)用_第3頁(yè)
第8章串行口及應(yīng)用_第4頁(yè)
第8章串行口及應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩71頁(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)介

1、4:231第第第第第第8 8 8章章章章章章 串行口及應(yīng)用串行口及應(yīng)用串行口及應(yīng)用串行口及應(yīng)用串行口及應(yīng)用串行口及應(yīng)用 4:232內(nèi)容內(nèi)容串行通信基礎(chǔ)知識(shí)串行通信基礎(chǔ)知識(shí)8.180C51單片機(jī)的串行口單片機(jī)的串行口8.2串行口的應(yīng)用串行口的應(yīng)用 8.34:2338.1 串行通信基礎(chǔ)知識(shí)串行通信基礎(chǔ)知識(shí)8.1.1 計(jì)算機(jī)對(duì)外通信方式計(jì)算機(jī)對(duì)外通信方式計(jì)算機(jī)與計(jì)算機(jī)之間、計(jì)算機(jī)與外設(shè)之間的數(shù)據(jù)交換稱為計(jì)算機(jī)與計(jì)算機(jī)之間、計(jì)算機(jī)與外設(shè)之間的數(shù)據(jù)交換稱為通信。通信。計(jì)算機(jī)通信有兩種基本方式:計(jì)算機(jī)通信有兩種基本方式:并行通信和串行通信。并行通信和串行通信。 數(shù)據(jù)的各位被同時(shí)傳送的通信方法稱為數(shù)據(jù)的各位

2、被同時(shí)傳送的通信方法稱為并行通信。并行通信。 圖圖8-1 并行通信收發(fā)設(shè)備連接示意圖并行通信收發(fā)設(shè)備連接示意圖 圖圖8-2 并行通信傳送時(shí)序圖并行通信傳送時(shí)序圖并行通信的特點(diǎn)并行通信的特點(diǎn)是是控制簡(jiǎn)單,傳輸速度快控制簡(jiǎn)單,傳輸速度快。由于傳輸線較多,。由于傳輸線較多,長(zhǎng)距離傳送時(shí)成本高且接收方的各位同時(shí)接收存在困難。長(zhǎng)距離傳送時(shí)成本高且接收方的各位同時(shí)接收存在困難。 。 4:234串行通信串行通信是將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐是將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐個(gè)地傳送。個(gè)地傳送。 串行通信串行通信具有傳輸線少,長(zhǎng)距離傳送時(shí)成本低,抗干擾能力強(qiáng)具有傳輸線少,長(zhǎng)距離傳送

3、時(shí)成本低,抗干擾能力強(qiáng)等優(yōu)點(diǎn),對(duì)于單片機(jī)來(lái)說(shuō),其所占用的引腳資源少。但串行通等優(yōu)點(diǎn),對(duì)于單片機(jī)來(lái)說(shuō),其所占用的引腳資源少。但串行通信數(shù)據(jù)的傳送控制比并行通信復(fù)雜。信數(shù)據(jù)的傳送控制比并行通信復(fù)雜。4:2358.1.2 串行通信的基本概念串行通信的基本概念1. 1. 串行通信的方式串行通信的方式(1) 異步通信異步通信異步通信異步通信是指通信的發(fā)送與接收設(shè)備使用各自的時(shí)鐘控制是指通信的發(fā)送與接收設(shè)備使用各自的時(shí)鐘控制數(shù)據(jù)的發(fā)送和接收過(guò)程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送數(shù)據(jù)的發(fā)送和接收過(guò)程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時(shí)鐘盡可能一致。和接收設(shè)備的時(shí)鐘盡可能一致。 4:236 異步通信是以字

4、符異步通信是以字符(構(gòu)成的幀構(gòu)成的幀)為單位進(jìn)行傳輸,字符與為單位進(jìn)行傳輸,字符與字符之間的間隙字符之間的間隙(時(shí)間間隔時(shí)間間隔)是任意的,但每個(gè)字符中的各位是任意的,但每個(gè)字符中的各位是以固定的時(shí)間傳送的。是以固定的時(shí)間傳送的。 為了實(shí)現(xiàn)異步傳輸字符的同步,采用的辦法是使傳送的為了實(shí)現(xiàn)異步傳輸字符的同步,采用的辦法是使傳送的每一個(gè)字符都以起始位每一個(gè)字符都以起始位“0”開(kāi)始,以停止位開(kāi)始,以停止位“1”結(jié)束。這結(jié)束。這樣,傳送的每一個(gè)字符都用起始位來(lái)進(jìn)行收發(fā)雙方的同步。樣,傳送的每一個(gè)字符都用起始位來(lái)進(jìn)行收發(fā)雙方的同步。停止位和間隙作為時(shí)鐘頻率偏差的緩沖,即使雙方時(shí)鐘頻停止位和間隙作為時(shí)鐘頻

5、率偏差的緩沖,即使雙方時(shí)鐘頻率略有偏差,總的數(shù)據(jù)流也不會(huì)因偏差的積累而導(dǎo)致數(shù)據(jù)率略有偏差,總的數(shù)據(jù)流也不會(huì)因偏差的積累而導(dǎo)致數(shù)據(jù)錯(cuò)位。錯(cuò)位。 4:237 異步通信的每幀數(shù)據(jù)由異步通信的每幀數(shù)據(jù)由4部分組成:起始位部分組成:起始位(占占1位位)、字符代碼數(shù)據(jù)位、字符代碼數(shù)據(jù)位(占占58位位)、奇偶校驗(yàn)位、奇偶校驗(yàn)位(占占1位,也可以沒(méi)有校驗(yàn)位位,也可以沒(méi)有校驗(yàn)位)和停止位和停止位(占占1或或2位位)。 圖圖8-6中給出的是中給出的是7位數(shù)據(jù)位、位數(shù)據(jù)位、1位奇偶校驗(yàn)位和一位停止位,加上固位奇偶校驗(yàn)位和一位停止位,加上固定的定的1位起始位,共位起始位,共10位組成一個(gè)傳輸幀。傳送時(shí)數(shù)據(jù)的低位在前,

6、高位組成一個(gè)傳輸幀。傳送時(shí)數(shù)據(jù)的低位在前,高位在后。字符之間允許有不定長(zhǎng)度的空閑位。起始位位在后。字符之間允許有不定長(zhǎng)度的空閑位。起始位“0”作為聯(lián)絡(luò)信作為聯(lián)絡(luò)信號(hào),它告訴接收方傳送的開(kāi)始,接下來(lái)的是數(shù)據(jù)位和奇偶校驗(yàn)位、停號(hào),它告訴接收方傳送的開(kāi)始,接下來(lái)的是數(shù)據(jù)位和奇偶校驗(yàn)位、停止位、止位、“1”表示一個(gè)字符的結(jié)束。表示一個(gè)字符的結(jié)束。 異步通信的特點(diǎn)異步通信的特點(diǎn)是不要求收發(fā)雙方時(shí)鐘的嚴(yán)格一致,實(shí)現(xiàn)容易,設(shè)備是不要求收發(fā)雙方時(shí)鐘的嚴(yán)格一致,實(shí)現(xiàn)容易,設(shè)備開(kāi)銷較小,但每個(gè)字符要附加起止位、停止位,各幀之間還有間隔,開(kāi)銷較小,但每個(gè)字符要附加起止位、停止位,各幀之間還有間隔,因此傳輸效率不高。

7、因此傳輸效率不高。4:238(2) 同步通信同步通信同步通信同步通信時(shí)要建立發(fā)送方時(shí)鐘對(duì)接收方時(shí)鐘的直接控制,時(shí)要建立發(fā)送方時(shí)鐘對(duì)接收方時(shí)鐘的直接控制,使雙方達(dá)到完全同步。此時(shí),傳輸數(shù)據(jù)的位之間的距離均使雙方達(dá)到完全同步。此時(shí),傳輸數(shù)據(jù)的位之間的距離均為為“位間隔位間隔”的整數(shù)倍,同時(shí)傳送的字符間不留間隙,即的整數(shù)倍,同時(shí)傳送的字符間不留間隙,即保持位同步關(guān)系,也保持字符同步關(guān)系。保持位同步關(guān)系,也保持字符同步關(guān)系。 4:2392. 串行通信的傳輸方向串行通信的傳輸方向串行通信根據(jù)數(shù)據(jù)傳輸?shù)姆较蚣皶r(shí)間關(guān)系可分為單工、半串行通信根據(jù)數(shù)據(jù)傳輸?shù)姆较蚣皶r(shí)間關(guān)系可分為單工、半雙工和全雙工。傳輸方向示意

8、圖如圖雙工和全雙工。傳輸方向示意圖如圖8-108-10所示。所示。(1) 單工:?jiǎn)喂ぃ菏侵笖?shù)據(jù)傳輸僅能沿一個(gè)方向,不能實(shí)現(xiàn)反向傳輸。是指數(shù)據(jù)傳輸僅能沿一個(gè)方向,不能實(shí)現(xiàn)反向傳輸。(2) 半雙工:半雙工:是指數(shù)據(jù)傳輸可以沿兩個(gè)方向,但需要分時(shí)進(jìn)行。是指數(shù)據(jù)傳輸可以沿兩個(gè)方向,但需要分時(shí)進(jìn)行。(3) 全雙工:全雙工:是指數(shù)據(jù)可以同時(shí)進(jìn)行雙向傳輸。是指數(shù)據(jù)可以同時(shí)進(jìn)行雙向傳輸。4:23103. 串行通信的錯(cuò)誤校驗(yàn)串行通信的錯(cuò)誤校驗(yàn)在通信過(guò)程中往往要對(duì)數(shù)據(jù)傳送的正確與否進(jìn)行校驗(yàn)。校驗(yàn)是保證準(zhǔn)在通信過(guò)程中往往要對(duì)數(shù)據(jù)傳送的正確與否進(jìn)行校驗(yàn)。校驗(yàn)是保證準(zhǔn)確無(wú)誤傳輸數(shù)據(jù)的關(guān)鍵。常用的校驗(yàn)方法有奇偶校驗(yàn)、代碼

9、和校驗(yàn)及確無(wú)誤傳輸數(shù)據(jù)的關(guān)鍵。常用的校驗(yàn)方法有奇偶校驗(yàn)、代碼和校驗(yàn)及循環(huán)冗余碼校驗(yàn)。循環(huán)冗余碼校驗(yàn)。 (1) 奇偶校驗(yàn)奇偶校驗(yàn)在發(fā)送數(shù)據(jù)時(shí),數(shù)據(jù)位尾隨的在發(fā)送數(shù)據(jù)時(shí),數(shù)據(jù)位尾隨的1位為奇偶校驗(yàn)位位為奇偶校驗(yàn)位(1或或0)。當(dāng)約定為奇校。當(dāng)約定為奇校驗(yàn)時(shí),數(shù)據(jù)位與校驗(yàn)位中驗(yàn)時(shí),數(shù)據(jù)位與校驗(yàn)位中“1”的個(gè)數(shù)之和應(yīng)為奇數(shù);當(dāng)約定為偶校驗(yàn)時(shí),的個(gè)數(shù)之和應(yīng)為奇數(shù);當(dāng)約定為偶校驗(yàn)時(shí),數(shù)據(jù)位與校驗(yàn)位中數(shù)據(jù)位與校驗(yàn)位中“1”的個(gè)數(shù)之和應(yīng)為偶數(shù)。接收方與發(fā)送方的校驗(yàn)方式的個(gè)數(shù)之和應(yīng)為偶數(shù)。接收方與發(fā)送方的校驗(yàn)方式應(yīng)一致。接收字符時(shí),對(duì)應(yīng)一致。接收字符時(shí),對(duì)“1”的個(gè)數(shù)進(jìn)行校驗(yàn),若發(fā)現(xiàn)收、發(fā)雙方不一致,的個(gè)數(shù)進(jìn)行

10、校驗(yàn),若發(fā)現(xiàn)收、發(fā)雙方不一致,則說(shuō)明數(shù)據(jù)傳輸過(guò)程中出現(xiàn)了差錯(cuò)。則說(shuō)明數(shù)據(jù)傳輸過(guò)程中出現(xiàn)了差錯(cuò)。(2) 代碼和校驗(yàn)代碼和校驗(yàn)代碼和校驗(yàn)是發(fā)送方將所發(fā)數(shù)據(jù)塊求和代碼和校驗(yàn)是發(fā)送方將所發(fā)數(shù)據(jù)塊求和(或各字節(jié)異或或各字節(jié)異或),產(chǎn)生一個(gè)字節(jié),產(chǎn)生一個(gè)字節(jié)的校驗(yàn)字符的校驗(yàn)字符(校驗(yàn)和校驗(yàn)和)附加到數(shù)據(jù)塊末尾。接收方接收數(shù)據(jù)同時(shí)對(duì)數(shù)據(jù)塊附加到數(shù)據(jù)塊末尾。接收方接收數(shù)據(jù)同時(shí)對(duì)數(shù)據(jù)塊(除除校驗(yàn)字節(jié)外校驗(yàn)字節(jié)外)求和求和(或各字節(jié)異或或各字節(jié)異或),將所得的結(jié)果與發(fā)送方的,將所得的結(jié)果與發(fā)送方的“校驗(yàn)和校驗(yàn)和”進(jìn)進(jìn)行比較,相符則無(wú)差錯(cuò),否則即認(rèn)為傳送過(guò)程中出現(xiàn)了差錯(cuò)。行比較,相符則無(wú)差錯(cuò),否則即認(rèn)為傳送過(guò)程中出

11、現(xiàn)了差錯(cuò)。(3) 循環(huán)冗余校驗(yàn)循環(huán)冗余校驗(yàn)這種校驗(yàn)是通過(guò)某種數(shù)學(xué)運(yùn)算實(shí)現(xiàn)有效信息與校驗(yàn)位之間的循環(huán)校驗(yàn),這種校驗(yàn)是通過(guò)某種數(shù)學(xué)運(yùn)算實(shí)現(xiàn)有效信息與校驗(yàn)位之間的循環(huán)校驗(yàn),常用于對(duì)磁盤信息的傳輸、存儲(chǔ)區(qū)的完整性校驗(yàn)等。這種校驗(yàn)方法糾錯(cuò)能常用于對(duì)磁盤信息的傳輸、存儲(chǔ)區(qū)的完整性校驗(yàn)等。這種校驗(yàn)方法糾錯(cuò)能力強(qiáng),廣泛應(yīng)用于同步通信中。力強(qiáng),廣泛應(yīng)用于同步通信中。 4:23114. 信號(hào)的調(diào)制與解調(diào)信號(hào)的調(diào)制與解調(diào) 計(jì)算機(jī)的通信要求傳送的是計(jì)算機(jī)的通信要求傳送的是數(shù)字信號(hào)數(shù)字信號(hào)。在遠(yuǎn)程數(shù)據(jù)通信。在遠(yuǎn)程數(shù)據(jù)通信時(shí),通常要借用時(shí),通常要借用公用電話網(wǎng)公用電話網(wǎng)。但是。但是電話網(wǎng)是為電話網(wǎng)是為3003003400

12、Hz3400Hz的音頻模擬信號(hào)設(shè)計(jì)的,的音頻模擬信號(hào)設(shè)計(jì)的,對(duì)二進(jìn)制數(shù)據(jù)的傳輸是不合適的。對(duì)二進(jìn)制數(shù)據(jù)的傳輸是不合適的。 為此,在發(fā)送時(shí)需要對(duì)二進(jìn)制數(shù)據(jù)進(jìn)行調(diào)制,使之適合為此,在發(fā)送時(shí)需要對(duì)二進(jìn)制數(shù)據(jù)進(jìn)行調(diào)制,使之適合在電話網(wǎng)上傳輸。在接收時(shí),需要進(jìn)行解調(diào),以將模擬信在電話網(wǎng)上傳輸。在接收時(shí),需要進(jìn)行解調(diào),以將模擬信號(hào)還原成數(shù)字信號(hào)。號(hào)還原成數(shù)字信號(hào)。 4:2312 利用利用調(diào)制器調(diào)制器(Modulator) 把數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),然后把數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),然后送到通信線路上去,再由送到通信線路上去,再由解調(diào)器解調(diào)器(Demodulator) 把從通信線路把從通信線路上收到的模擬信號(hào)轉(zhuǎn)

13、換成數(shù)字信號(hào)。上收到的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)。 由于通信是雙向的,由于通信是雙向的,調(diào)制器和解調(diào)器調(diào)制器和解調(diào)器合并在一個(gè)裝置中,這合并在一個(gè)裝置中,這就是調(diào)制解調(diào)器就是調(diào)制解調(diào)器MODEM。如圖。如圖8-11所示。所示。 圖中,調(diào)制器和解調(diào)器是進(jìn)行數(shù)據(jù)通信所需的設(shè)備,因此把它叫做圖中,調(diào)制器和解調(diào)器是進(jìn)行數(shù)據(jù)通信所需的設(shè)備,因此把它叫做數(shù)據(jù)通信數(shù)據(jù)通信設(shè)備設(shè)備(Data Communications Equipment ,簡(jiǎn)稱,簡(jiǎn)稱DCE)。計(jì)算機(jī)是。計(jì)算機(jī)是終端設(shè)備終端設(shè)備(Data Terminal Equipment ,簡(jiǎn)稱,簡(jiǎn)稱DTE ),通信線路是電話線,也可以是專用通信線路是電話

14、線,也可以是專用線。線。4:23135. 波特率(波特率(Baud Rade) 在異步通信中,發(fā)送方和接收方必須保持相同的波特率才在異步通信中,發(fā)送方和接收方必須保持相同的波特率才能實(shí)現(xiàn)正確的數(shù)據(jù)傳送。能實(shí)現(xiàn)正確的數(shù)據(jù)傳送。 波特率是指單位時(shí)間內(nèi)傳送的信息量,即每秒鐘傳送的二波特率是指單位時(shí)間內(nèi)傳送的信息量,即每秒鐘傳送的二進(jìn)制位數(shù)(也稱為比特率),單位是進(jìn)制位數(shù)(也稱為比特率),單位是bps,即位,即位/秒。秒。 波特率越高,數(shù)據(jù)傳輸速度越快,但和字符的實(shí)際傳輸速波特率越高,數(shù)據(jù)傳輸速度越快,但和字符的實(shí)際傳輸速率不同。字符的傳輸速率是指每秒鐘內(nèi)所傳輸字符幀數(shù),和率不同。字符的傳輸速率是指每

15、秒鐘內(nèi)所傳輸字符幀數(shù),和字符格式有關(guān)。字符格式有關(guān)。 常用的標(biāo)準(zhǔn)波特率是:常用的標(biāo)準(zhǔn)波特率是:110波特、波特、300波特、波特、600波特、波特、1200波特、波特、2400波特、波特、4800波特、波特、9600波特和波特和19200波特等。波特等。 例如,在異步通信中使用例如,在異步通信中使用1位起始位,位起始位,8位數(shù)據(jù)位,無(wú)奇偶位數(shù)據(jù)位,無(wú)奇偶校驗(yàn)位,校驗(yàn)位,1位停止位,即一幀數(shù)據(jù)長(zhǎng)度位位停止位,即一幀數(shù)據(jù)長(zhǎng)度位10bit,如果要求數(shù)據(jù),如果要求數(shù)據(jù)傳送的速率是傳送的速率是1秒送秒送120幀字符,則傳送波特率為幀字符,則傳送波特率為1200波特。波特。 4:23146.6.串行通信的

16、協(xié)議串行通信的協(xié)議 通信協(xié)議是指單片機(jī)之間進(jìn)行信息傳輸時(shí)的一些約定,約通信協(xié)議是指單片機(jī)之間進(jìn)行信息傳輸時(shí)的一些約定,約定的內(nèi)容包括定的內(nèi)容包括數(shù)據(jù)格式數(shù)據(jù)格式、同步方式、波特率、校驗(yàn)方式同步方式、波特率、校驗(yàn)方式等。等。為了保證計(jì)算機(jī)之間能夠準(zhǔn)確、可靠地通信,相互之間必須為了保證計(jì)算機(jī)之間能夠準(zhǔn)確、可靠地通信,相互之間必須遵循統(tǒng)一的協(xié)議,在通信之前一定要設(shè)置好。遵循統(tǒng)一的協(xié)議,在通信之前一定要設(shè)置好。 4:23158.1.3串行通信接口標(biāo)準(zhǔn)串行通信接口標(biāo)準(zhǔn) 從本質(zhì)說(shuō),從本質(zhì)說(shuō),通信通信是是CPU與外部設(shè)備間交換信息的一種方式。與外部設(shè)備間交換信息的一種方式。 所有的所有的串行通信接口串行通信

17、接口電路都是以并行數(shù)據(jù)形式與電路都是以并行數(shù)據(jù)形式與CPU連接、連接、而以串行數(shù)據(jù)形式與外部設(shè)備進(jìn)行數(shù)據(jù)傳送。而以串行數(shù)據(jù)形式與外部設(shè)備進(jìn)行數(shù)據(jù)傳送。 它們的基本功能都是從外部設(shè)備接收串行數(shù)據(jù),轉(zhuǎn)換為并它們的基本功能都是從外部設(shè)備接收串行數(shù)據(jù),轉(zhuǎn)換為并行數(shù)據(jù)后傳送給行數(shù)據(jù)后傳送給CPU;或從;或從CPU接收并行數(shù)據(jù),轉(zhuǎn)換成串行接收并行數(shù)據(jù),轉(zhuǎn)換成串行數(shù)據(jù)后輸出給外部設(shè)備。數(shù)據(jù)后輸出給外部設(shè)備。 能夠?qū)崿F(xiàn)異步通信的硬件電路稱為能夠?qū)崿F(xiàn)異步通信的硬件電路稱為通用異步接收器通用異步接收器/發(fā)送器發(fā)送器 (Universal Asynchronous Receive/Transmitter,簡(jiǎn)稱,簡(jiǎn)稱

18、UART)。 能夠?qū)崿F(xiàn)同步通信的硬件電路稱為能夠?qū)崿F(xiàn)同步通信的硬件電路稱為通用同步接收器通用同步接收器/發(fā)送器發(fā)送器 (Universal Synchronous Receive/Transmitter,簡(jiǎn)稱,簡(jiǎn)稱USRT)。4:2316所謂所謂接口標(biāo)準(zhǔn)接口標(biāo)準(zhǔn),就是,就是明確的定義若干條信號(hào)線,明確的定義若干條信號(hào)線,使接口電路使接口電路標(biāo)準(zhǔn)化、通用化。標(biāo)準(zhǔn)化、通用化。 采用標(biāo)準(zhǔn)接口,可以方便地把計(jì)算機(jī)、外部設(shè)備和測(cè)量?jī)x器采用標(biāo)準(zhǔn)接口,可以方便地把計(jì)算機(jī)、外部設(shè)備和測(cè)量?jī)x器等有機(jī)的聯(lián)系起來(lái),并實(shí)現(xiàn)其間的通信。等有機(jī)的聯(lián)系起來(lái),并實(shí)現(xiàn)其間的通信。在單片機(jī)控制系統(tǒng)中,常用的串行通信接口標(biāo)準(zhǔn)有:在

19、單片機(jī)控制系統(tǒng)中,常用的串行通信接口標(biāo)準(zhǔn)有:RS-232C、RS-422A、RS-485等總線接口標(biāo)準(zhǔn)。等總線接口標(biāo)準(zhǔn)。4:23171RS-232C總線總線 RS-232C標(biāo)準(zhǔn)(協(xié)議)的全稱是標(biāo)準(zhǔn)(協(xié)議)的全稱是EIA-RS-232C標(biāo)準(zhǔn),其中標(biāo)準(zhǔn),其中EIA(Electronic Industry Association)代表美國(guó)電子工業(yè)協(xié)會(huì),代表美國(guó)電子工業(yè)協(xié)會(huì),RS(Recommended Standard)代表推薦標(biāo)準(zhǔn),代表推薦標(biāo)準(zhǔn),232是標(biāo)識(shí)號(hào)是標(biāo)識(shí)號(hào),C代表代表RS232的最早一次修改(的最早一次修改(1969)。)。 1969年修訂為年修訂為RS-232C,1987年修訂為年修

20、訂為EIA-232D, 1991年修年修訂為訂為EIA-232E, 1997年又修訂為年又修訂為EIA-232E。由于修改的不多,。由于修改的不多,所以人們習(xí)慣于早期的名字所以人們習(xí)慣于早期的名字“RS-232C”。 RS-232C定義了定義了數(shù)據(jù)終端設(shè)備數(shù)據(jù)終端設(shè)備(DTE)與與數(shù)據(jù)通信設(shè)備數(shù)據(jù)通信設(shè)備(DCE)之間的物理接口標(biāo)準(zhǔn)。接口標(biāo)準(zhǔn)包括之間的物理接口標(biāo)準(zhǔn)。接口標(biāo)準(zhǔn)包括機(jī)械特性機(jī)械特性、功能特性功能特性和和電氣特性電氣特性幾方面內(nèi)容。幾方面內(nèi)容。4:2318(1) 機(jī)械特性機(jī)械特性 RS-232C接口規(guī)定使用接口規(guī)定使用25針連接器,連接器的尺寸及每個(gè)針連接器,連接器的尺寸及每個(gè)插針的

21、排列位置都有明確的定義。插針的排列位置都有明確的定義。 一般的應(yīng)用中并不一定用到一般的應(yīng)用中并不一定用到RS-232C標(biāo)準(zhǔn)的全部信號(hào)線,所標(biāo)準(zhǔn)的全部信號(hào)線,所以在實(shí)際應(yīng)用中常常使用以在實(shí)際應(yīng)用中常常使用9針連接器替代針連接器替代25針連接器。針連接器。 計(jì)算機(jī)的計(jì)算機(jī)的COM1和和COM2使用的是使用的是9針連接器針連接器。 連接器引腳定義如圖連接器引腳定義如圖8-12所示。圖中所示為陽(yáng)頭定義,通所示。圖中所示為陽(yáng)頭定義,通常用于計(jì)算機(jī)側(cè),對(duì)應(yīng)的陰頭用于連接線側(cè)。常用于計(jì)算機(jī)側(cè),對(duì)應(yīng)的陰頭用于連接線側(cè)。圖圖8-12 DB-25(陽(yáng)頭陽(yáng)頭)和和DB-9(陽(yáng)頭陽(yáng)頭)連接器定義連接器定義4:2319

22、(2) 功能特性功能特性 RS-232C接口的主要信號(hào)線的功能定義如表接口的主要信號(hào)線的功能定義如表8-1所示。所示。表表8-1 RS-232C接口的主要信號(hào)線的功能定義接口的主要信號(hào)線的功能定義4:2320(3) 電氣特性電氣特性 RS-232C采用采用負(fù)邏輯電平負(fù)邏輯電平,規(guī)定,規(guī)定邏輯邏輯1為為DC-3V-15V,邏輯邏輯0為為DC+3V+15V。-3 V+3V為過(guò)渡區(qū),不作定義。為過(guò)渡區(qū),不作定義。注意:注意:RS-232C的邏輯電平與通常的的邏輯電平與通常的TTL和和MOS電平不兼容。電平不兼容。為了實(shí)現(xiàn)與為了實(shí)現(xiàn)與TTL或或MOS電路的連接,要外加電平轉(zhuǎn)換電路。電路的連接,要外加電

23、平轉(zhuǎn)換電路。 RS-232C發(fā)送方和接收方之間的信號(hào)線采用多芯信號(hào)線,要發(fā)送方和接收方之間的信號(hào)線采用多芯信號(hào)線,要求多芯信號(hào)線的求多芯信號(hào)線的總負(fù)載電容不能超過(guò)總負(fù)載電容不能超過(guò)2 500pF。 通常,通常,RS-232C的傳輸距離為幾十米,的傳輸距離為幾十米,傳輸速率小于傳輸速率小于20Kbps。4:2321(4) 過(guò)程特性過(guò)程特性 過(guò)程特性過(guò)程特性規(guī)定了信號(hào)之間的時(shí)序關(guān)系,以便正確地接收和發(fā)送規(guī)定了信號(hào)之間的時(shí)序關(guān)系,以便正確地接收和發(fā)送數(shù)據(jù)。數(shù)據(jù)。 如果通信雙方均具備如果通信雙方均具備RS-232C接口,則二者可以直接連接,不接口,則二者可以直接連接,不必考慮電平轉(zhuǎn)換問(wèn)題。必考慮電平轉(zhuǎn)

24、換問(wèn)題。但是對(duì)于單片機(jī)與計(jì)算機(jī)通過(guò)但是對(duì)于單片機(jī)與計(jì)算機(jī)通過(guò)RS-232C的連接,必須考慮電平轉(zhuǎn)的連接,必須考慮電平轉(zhuǎn)換問(wèn)題,因?yàn)閾Q問(wèn)題,因?yàn)?0C51系列單片機(jī)串行口不是標(biāo)準(zhǔn)系列單片機(jī)串行口不是標(biāo)準(zhǔn)RS-232C接口。接口。4:23224:2323(5) RS-232C電平與電平與TTL電平轉(zhuǎn)換驅(qū)動(dòng)電路電平轉(zhuǎn)換驅(qū)動(dòng)電路 80C51單片機(jī)串行口與單片機(jī)串行口與PC機(jī)的機(jī)的RS-232C接口不能直接對(duì)接,必須進(jìn)行電平轉(zhuǎn)接口不能直接對(duì)接,必須進(jìn)行電平轉(zhuǎn)換,常見(jiàn)的換,常見(jiàn)的TTL到到RS-232C的電平轉(zhuǎn)換器有的電平轉(zhuǎn)換器有MC1488、MC1489和和MAX232等等芯片。芯片。MC1488輸入為

25、輸入為TTL電平,輸出為電平,輸出為RS232電平;電平;MC1489輸入為輸入為RS-232電平,輸出為電平,輸出為TTL電平。電平。MC1488的供電電壓為的供電電壓為12V,MC 1489的供電電壓為的供電電壓為+5V。MC1488和和MC 1489的邏輯功能如圖的邏輯功能如圖8-15所示。所示。 4:2324MC 1488和和MC 1489與與RS-232電平轉(zhuǎn)換如圖電平轉(zhuǎn)換如圖8-16所示。所示。4:2325 近來(lái)一些系統(tǒng)中,愈來(lái)愈多地采用了近來(lái)一些系統(tǒng)中,愈來(lái)愈多地采用了自升壓電平轉(zhuǎn)換電路。自升壓電平轉(zhuǎn)換電路。各廠商生產(chǎn)的此類各廠商生產(chǎn)的此類芯片雖然不同,但原理類似,并可代換。其主

26、要功能是在單芯片雖然不同,但原理類似,并可代換。其主要功能是在單+5V電源下,有電源下,有TTL信信號(hào)輸入到號(hào)輸入到RS-232C輸出的功能,也有輸出的功能,也有RS-232C輸入到輸入到TTL輸出的功能。輸出的功能。 如如RS-232C雙工發(fā)送器雙工發(fā)送器/接收器接口電路接收器接口電路MAX232,它能滿足,它能滿足RS-232C的電氣規(guī)的電氣規(guī)范,且僅需要范,且僅需要+5V電源,內(nèi)置電子泵電壓轉(zhuǎn)換器將電源,內(nèi)置電子泵電壓轉(zhuǎn)換器將+5V轉(zhuǎn)換成轉(zhuǎn)換成-10V+10V。該芯片。該芯片與與TTL/CMOS電平兼容,片內(nèi)有電平兼容,片內(nèi)有2個(gè)發(fā)送器,個(gè)發(fā)送器,2個(gè)接收器,使用比較方便。個(gè)接收器,使用

27、比較方便。MAX232芯片封裝如圖芯片封裝如圖8-17所示,采用所示,采用MAX232芯片實(shí)現(xiàn)芯片實(shí)現(xiàn)TTL電平和電平和RS232電平轉(zhuǎn)換的電路電平轉(zhuǎn)換的電路如圖如圖8-18所示。所示。 4:2326(6) 采用采用RS-232C接口存在的問(wèn)題接口存在的問(wèn)題 1) 接口的信號(hào)電平值較高,接口的信號(hào)電平值較高,易損壞接口電路的芯片,易損壞接口電路的芯片,又因?yàn)橛忠驗(yàn)榕c與TTL電平不兼容,故電平不兼容,故需使用電平轉(zhuǎn)換電路方能與需使用電平轉(zhuǎn)換電路方能與TTL電路連接;電路連接; 2) 傳輸速率較低,傳輸速率較低,在異步傳輸時(shí),波特率為在異步傳輸時(shí),波特率為20kbps; 3) 接口使用一根信號(hào)線和

28、一根信號(hào)返回線而構(gòu)成共地的傳輸接口使用一根信號(hào)線和一根信號(hào)返回線而構(gòu)成共地的傳輸形式,形式,這種共地傳輸容易產(chǎn)生共模干擾,這種共地傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱,所以抗噪聲干擾性弱,為了提高信噪比,為了提高信噪比,RS-232C總線標(biāo)準(zhǔn)不得不采用比較大的電壓擺總線標(biāo)準(zhǔn)不得不采用比較大的電壓擺幅。幅。 4) 傳輸距離有限,傳輸距離有限,最大傳輸距離標(biāo)準(zhǔn)值為最大傳輸距離標(biāo)準(zhǔn)值為15m,實(shí)際上也只,實(shí)際上也只能在能在50m左右。左右。4:23272. RS-422A接口接口串行通信標(biāo)準(zhǔn)串行通信標(biāo)準(zhǔn)RS-422A是是平衡型電壓數(shù)字接口電路的電氣標(biāo)準(zhǔn)平衡型電壓數(shù)字接口電路的電氣標(biāo)準(zhǔn)。 圖圖8-

29、19 RS-422A平衡驅(qū)動(dòng)差分接收電路平衡驅(qū)動(dòng)差分接收電路 RS-422A電路由電路由發(fā)送器、平衡連接電纜、電纜終端負(fù)載、接收器發(fā)送器、平衡連接電纜、電纜終端負(fù)載、接收器等部分組成。電等部分組成。電路中規(guī)定只許有一個(gè)發(fā)送器,可有多個(gè)接收器。路中規(guī)定只許有一個(gè)發(fā)送器,可有多個(gè)接收器。 RS-422A與與RS-232C的主要區(qū)別是,的主要區(qū)別是,收發(fā)雙方的信號(hào)地不再共用。收發(fā)雙方的信號(hào)地不再共用。另外,每個(gè)方另外,每個(gè)方向用于傳輸數(shù)據(jù)的是兩條平衡導(dǎo)線。向用于傳輸數(shù)據(jù)的是兩條平衡導(dǎo)線。 所謂所謂“平衡平衡”,是指輸出驅(qū)動(dòng)器為雙端平衡驅(qū)動(dòng)器。如果其中一條線為邏輯,是指輸出驅(qū)動(dòng)器為雙端平衡驅(qū)動(dòng)器。如果

30、其中一條線為邏輯“1”狀態(tài),另一條線就為邏輯狀態(tài),另一條線就為邏輯“0”,比采用單端不平衡驅(qū)動(dòng)對(duì)電壓的放大倍數(shù)大一倍。,比采用單端不平衡驅(qū)動(dòng)對(duì)電壓的放大倍數(shù)大一倍。 驅(qū)動(dòng)器輸出允許范圍是驅(qū)動(dòng)器輸出允許范圍是26V。4:2328 差分電路差分電路能從地線干擾中拾取有效信號(hào),差分接收器可以分辨能從地線干擾中拾取有效信號(hào),差分接收器可以分辨200mV以上的電位差。若傳輸過(guò)程中混入了干擾和噪聲,由于差以上的電位差。若傳輸過(guò)程中混入了干擾和噪聲,由于差分放大器的作用,可使干擾和噪聲相互抵消。因此可以避免或大分放大器的作用,可使干擾和噪聲相互抵消。因此可以避免或大大減弱地線干擾和電磁干擾的影響。大減弱地線

31、干擾和電磁干擾的影響。 RS-422A與與RS-232C相比,信號(hào)傳輸距離遠(yuǎn),速度快。傳輸距相比,信號(hào)傳輸距離遠(yuǎn),速度快。傳輸距離為離為120m時(shí),傳輸速率可達(dá)時(shí),傳輸速率可達(dá)l 0Mbps。降低傳輸速率。降低傳輸速率(90Kbps)時(shí),時(shí),傳輸距離可達(dá)傳輸距離可達(dá)1200m。 RS-422A與與TTL電平轉(zhuǎn)換常用的芯片為傳輸線驅(qū)動(dòng)器電平轉(zhuǎn)換常用的芯片為傳輸線驅(qū)動(dòng)器SN75174或或MC3487和傳輸線接收器和傳輸線接收器SN75175或或MC3486。4:23293. RS-485接口接口RS-485是是RS-422A的變型:的變型:RS-422A用于全雙工,而用于全雙工,而RS-485用用

32、于半雙工。于半雙工。RS-485接口示意圖如圖接口示意圖如圖8-20所示。所示。 RS-485是一種多發(fā)送器標(biāo)準(zhǔn),在通信線路上最多可以使用是一種多發(fā)送器標(biāo)準(zhǔn),在通信線路上最多可以使用32對(duì)差分驅(qū)動(dòng)器接收器。對(duì)差分驅(qū)動(dòng)器接收器。如果在一個(gè)網(wǎng)絡(luò)中連接的設(shè)備超過(guò)如果在一個(gè)網(wǎng)絡(luò)中連接的設(shè)備超過(guò)32個(gè),還可以使用中間繼電器。個(gè),還可以使用中間繼電器。 RS-485的信號(hào)傳輸采用兩線間的電壓來(lái)表示邏輯的信號(hào)傳輸采用兩線間的電壓來(lái)表示邏輯1和邏輯和邏輯0。由于發(fā)送方需要兩。由于發(fā)送方需要兩根傳輸線,接收方也需要兩根傳輸線。傳輸線采用差動(dòng)信道,所以它的干擾抑制性根傳輸線,接收方也需要兩根傳輸線。傳輸線采用差動(dòng)

33、信道,所以它的干擾抑制性極好。又因?yàn)樗淖杩沟?,無(wú)接地問(wèn)題,所以傳輸距離可達(dá)極好。又因?yàn)樗淖杩沟?,無(wú)接地問(wèn)題,所以傳輸距離可達(dá)1 200m,傳輸速率可達(dá),傳輸速率可達(dá)1Mbps。圖圖8-20 RS-485接口示意圖接口示意圖4:2330 RS-485是一點(diǎn)對(duì)多點(diǎn)的通信接口,是一點(diǎn)對(duì)多點(diǎn)的通信接口,一般采用雙絞線的結(jié)構(gòu)。一般采用雙絞線的結(jié)構(gòu)。普通的普通的PC機(jī)一般不帶機(jī)一般不帶RS485接口,因此要使用接口,因此要使用RS-232C/RS-485轉(zhuǎn)換器。轉(zhuǎn)換器。 對(duì)于單片機(jī)可以通過(guò)芯片對(duì)于單片機(jī)可以通過(guò)芯片 MAX485來(lái)完成來(lái)完成TTL/RS-485的電平的電平轉(zhuǎn)換。轉(zhuǎn)換。 在計(jì)算機(jī)和單片機(jī)

34、組成的在計(jì)算機(jī)和單片機(jī)組成的RS-485通信系統(tǒng)中,下位機(jī)由單片通信系統(tǒng)中,下位機(jī)由單片機(jī)系統(tǒng)組成,主要完成工業(yè)現(xiàn)場(chǎng)信號(hào)的采集和控制。機(jī)系統(tǒng)組成,主要完成工業(yè)現(xiàn)場(chǎng)信號(hào)的采集和控制。 上位機(jī)為普通的上位機(jī)為普通的PC機(jī),負(fù)責(zé)監(jiān)視下位機(jī)的運(yùn)行狀態(tài),并對(duì)其機(jī),負(fù)責(zé)監(jiān)視下位機(jī)的運(yùn)行狀態(tài),并對(duì)其狀態(tài)信息進(jìn)行集中處理,以圖文方式顯示下位機(jī)的工作狀態(tài)以及狀態(tài)信息進(jìn)行集中處理,以圖文方式顯示下位機(jī)的工作狀態(tài)以及工業(yè)現(xiàn)場(chǎng)被控設(shè)備的工作狀況。系統(tǒng)中各節(jié)點(diǎn)工業(yè)現(xiàn)場(chǎng)被控設(shè)備的工作狀況。系統(tǒng)中各節(jié)點(diǎn)(包括上位機(jī)包括上位機(jī))的識(shí)的識(shí)別是通過(guò)設(shè)置不同的站地址來(lái)實(shí)現(xiàn)的,廣泛使用于集散控制系統(tǒng)別是通過(guò)設(shè)置不同的站地址來(lái)實(shí)現(xiàn)的,

35、廣泛使用于集散控制系統(tǒng)中。中。4:2331 RS-485采用一對(duì)雙絞線,輸入采用一對(duì)雙絞線,輸入/輸出信號(hào)不能同時(shí)進(jìn)行輸出信號(hào)不能同時(shí)進(jìn)行(半雙工半雙工),MAX485芯片的發(fā)送和接收功能轉(zhuǎn)換是由芯片的和芯片的發(fā)送和接收功能轉(zhuǎn)換是由芯片的和DE端控制的。端控制的。 RE=0時(shí),允許接收;時(shí),允許接收;RE =1時(shí),接收端時(shí),接收端R高阻。高阻。 DE=1時(shí),允許發(fā)送;時(shí),允許發(fā)送;DE=0時(shí),發(fā)送端時(shí),發(fā)送端A和和B高阻。高阻。 在單片機(jī)系統(tǒng)中常把和在單片機(jī)系統(tǒng)中常把和DE接在一起用單片機(jī)的一個(gè)接在一起用單片機(jī)的一個(gè)I/O線控制收發(fā)。線控制收發(fā)。 圖圖8-22中當(dāng)中當(dāng)P1.0 = 1時(shí)經(jīng)反相器

36、為時(shí)經(jīng)反相器為0,MAX485處于接收狀態(tài),當(dāng)處于接收狀態(tài),當(dāng)P1.0=0時(shí)經(jīng)反時(shí)經(jīng)反相器為相器為1, MAX485處于發(fā)送狀態(tài)。由于單片機(jī)各端口復(fù)位后處于高電平狀態(tài),處于發(fā)送狀態(tài)。由于單片機(jī)各端口復(fù)位后處于高電平狀態(tài),圖圖8-22中中P1.0=1經(jīng)反相器保證了上電時(shí)經(jīng)反相器保證了上電時(shí)MAX485處于接收狀態(tài)。處于接收狀態(tài)。RS-232C串口對(duì)單片機(jī)串口接收和發(fā)送是透明的,無(wú)須控制。串口對(duì)單片機(jī)串口接收和發(fā)送是透明的,無(wú)須控制。RS-485串口需由串口需由單片機(jī)控制收發(fā)。圖單片機(jī)控制收發(fā)。圖8-22中發(fā)送數(shù)據(jù)時(shí)中發(fā)送數(shù)據(jù)時(shí)P1.0=0,接收數(shù)據(jù)時(shí),接收數(shù)據(jù)時(shí)P1.0=1。4:2332 MCS

37、-51單片機(jī)內(nèi)部有單片機(jī)內(nèi)部有1個(gè)個(gè)功能很強(qiáng)的功能很強(qiáng)的全雙工串行口全雙工串行口,可同時(shí)發(fā)送和接收數(shù)據(jù)。它有可同時(shí)發(fā)送和接收數(shù)據(jù)。它有4種工作方式種工作方式,可供不同場(chǎng),可供不同場(chǎng)合使用。合使用。波特率由軟件設(shè)置波特率由軟件設(shè)置,通過(guò)片內(nèi)的定時(shí),通過(guò)片內(nèi)的定時(shí)/計(jì)數(shù)器產(chǎn)生。計(jì)數(shù)器產(chǎn)生。接收、發(fā)送均可工作在查詢方式或中斷方式,使用十分靈接收、發(fā)送均可工作在查詢方式或中斷方式,使用十分靈活?;睢?8.2 80C51單片機(jī)的串行口單片機(jī)的串行口 4:23338.2.1串行口的結(jié)構(gòu)串行口的結(jié)構(gòu) 串行口內(nèi)部結(jié)構(gòu)如上圖,串行口內(nèi)部結(jié)構(gòu)如上圖,兩個(gè)物理上獨(dú)立的接收和發(fā)送緩沖兩個(gè)物理上獨(dú)立的接收和發(fā)送緩沖器,

38、器,可同時(shí)收、發(fā)數(shù)據(jù)??赏瑫r(shí)收、發(fā)數(shù)據(jù)。 兩個(gè)緩沖器共用一個(gè)特殊功能寄存器字節(jié)地址:兩個(gè)緩沖器共用一個(gè)特殊功能寄存器字節(jié)地址:SBUF(99H)。)。 控制寄存器共兩個(gè):控制寄存器共兩個(gè):特殊功能寄存器特殊功能寄存器SCON和和PCON。4:2334 SBUF是兩個(gè)在物理上獨(dú)立的接收、發(fā)送緩沖器,可同是兩個(gè)在物理上獨(dú)立的接收、發(fā)送緩沖器,可同時(shí)發(fā)送、接收數(shù)據(jù)。時(shí)發(fā)送、接收數(shù)據(jù)。 兩個(gè)緩沖器只用一個(gè)字節(jié)地址兩個(gè)緩沖器只用一個(gè)字節(jié)地址99H,可通過(guò)指令對(duì),可通過(guò)指令對(duì)SBUF的讀寫來(lái)區(qū)別是對(duì)接收緩沖器的操作還是對(duì)發(fā)送緩的讀寫來(lái)區(qū)別是對(duì)接收緩沖器的操作還是對(duì)發(fā)送緩沖器的操作。沖器的操作。CPU寫寫S

39、BUF,就是修改發(fā)送緩沖器;,就是修改發(fā)送緩沖器;讀讀SBUF,就是讀接收緩沖器。,就是讀接收緩沖器。串行口對(duì)外也有兩條獨(dú)立的串行口對(duì)外也有兩條獨(dú)立的收發(fā)信號(hào)線收發(fā)信號(hào)線RXD(P3.0)和和TXD(P3.1),因此可以同時(shí)發(fā)送、,因此可以同時(shí)發(fā)送、接收數(shù)據(jù),實(shí)現(xiàn)全雙工傳送。接收數(shù)據(jù),實(shí)現(xiàn)全雙工傳送。串行口數(shù)據(jù)緩沖器串行口數(shù)據(jù)緩沖器SBUF4:2335串行口控制寄存器串行口控制寄存器SCONSCON寄存器用寄存器用來(lái)控制串行口的工作方式與狀態(tài),它可以來(lái)控制串行口的工作方式與狀態(tài),它可以位尋址。在復(fù)位時(shí)所有位被清位尋址。在復(fù)位時(shí)所有位被清0,字節(jié)地址為,字節(jié)地址為98H。SCON的格式為的格式為

40、 :4:2336SM0、SM1串行口串行口4種工作方式的選擇位種工作方式的選擇位 SM0 SM1 方式方式 功功 能能 說(shuō)說(shuō) 明明 0 0 0 移位寄存器方式(用于擴(kuò)展并行移位寄存器方式(用于擴(kuò)展并行I/O口)口) 0 1 1 8位異步收發(fā),波特率可變(由定時(shí)器控制)位異步收發(fā),波特率可變(由定時(shí)器控制) 1 0 2 9位異步收發(fā),波特率為位異步收發(fā),波特率為fosc/64或或fosc/32 1 1 3 9位異步收發(fā),波特率可變(由定時(shí)器控制)位異步收發(fā),波特率可變(由定時(shí)器控制)4:2337SM2 多機(jī)通信控制位多機(jī)通信控制位 用于方式用于方式2或方式或方式3中。中。 當(dāng)串行口以當(dāng)串行口以方

41、式方式2或方式或方式3接收接收時(shí),時(shí), 如果如果SM2=1,只有當(dāng)接收到的第只有當(dāng)接收到的第9位數(shù)據(jù)(位數(shù)據(jù)(RB8)為)為“1”時(shí),才將接收到的前時(shí),才將接收到的前8位數(shù)據(jù)送入位數(shù)據(jù)送入SBUF,并置并置“1” RI,產(chǎn)生,產(chǎn)生中斷請(qǐng)求;當(dāng)接收到的第中斷請(qǐng)求;當(dāng)接收到的第9位數(shù)據(jù)(位數(shù)據(jù)(RB8)為)為“0”時(shí),則將接時(shí),則將接收到的前收到的前8位數(shù)據(jù)丟棄。位數(shù)據(jù)丟棄。 如果如果SM2=0,則不論第,則不論第9位數(shù)據(jù)是位數(shù)據(jù)是“1”還是還是“0”,都將前,都將前8位數(shù)據(jù)送入位數(shù)據(jù)送入SBUF中,并置中,并置“1” RI,產(chǎn)生中斷請(qǐng)求。,產(chǎn)生中斷請(qǐng)求。 在在方式方式1時(shí),如果時(shí),如果SM2=1

42、,則只有收到停止位時(shí)才會(huì)激活,則只有收到停止位時(shí)才會(huì)激活RI。 在在方式方式0時(shí),時(shí),SM2必須為必須為0。4:2338 REN允許串行接收位允許串行接收位 由軟件置由軟件置“1”或清或清“0”。 REN=1 允許串行口接收數(shù)據(jù)。允許串行口接收數(shù)據(jù)。 REN=0 禁止串行口接收數(shù)據(jù)。禁止串行口接收數(shù)據(jù)。 TB8發(fā)送的第發(fā)送的第9位數(shù)據(jù)位數(shù)據(jù) 方式方式2和和3時(shí),時(shí),TB8是要發(fā)送的第是要發(fā)送的第9位數(shù)據(jù),可作為位數(shù)據(jù),可作為奇偶校驗(yàn)位奇偶校驗(yàn)位使用,使用,也可作為也可作為地址幀地址幀或或數(shù)據(jù)幀數(shù)據(jù)幀的標(biāo)志。的標(biāo)志。 =1為地址幀,為地址幀, =0為數(shù)據(jù)幀為數(shù)據(jù)幀 RB8接收到的第接收到的第9位

43、數(shù)據(jù)位數(shù)據(jù) 方式方式2和和3時(shí),時(shí),RB8存放接收到的第存放接收到的第9位數(shù)據(jù)。在方式位數(shù)據(jù)。在方式1,如果,如果SM2=0, RB8是接收到的停止位。在方式是接收到的停止位。在方式0,不使用,不使用RB8。4:2339 TI發(fā)送中斷標(biāo)志位發(fā)送中斷標(biāo)志位 串行完一幀信息,由硬件置串行完一幀信息,由硬件置“1”, TI必須由軟件清必須由軟件清“0”。 RI接收中斷標(biāo)志位接收中斷標(biāo)志位 方式方式0時(shí)時(shí),接收完第,接收完第8位數(shù)據(jù)時(shí),位數(shù)據(jù)時(shí),RI由硬件置由硬件置1。 其它工作方式其它工作方式,串行接收到停止位時(shí),該位置,串行接收到停止位時(shí),該位置“1”。RI=1,表示一幀數(shù),表示一幀數(shù)據(jù)接收完畢,

44、并申請(qǐng)中斷,據(jù)接收完畢,并申請(qǐng)中斷, CPU從接收從接收SBUF取走數(shù)據(jù)。該位狀態(tài)也可取走數(shù)據(jù)。該位狀態(tài)也可軟件查詢。軟件查詢。RI必須由軟件清必須由軟件清“0”。4:2340PCON單元地址為單元地址為97H,不能位尋址。其內(nèi)容如下:,不能位尋址。其內(nèi)容如下: SMODGF1GF0PDIDL D7 D6 D5 D4 D3 D2 D1 D0 PCON 87H 最高位最高位SMOD為串行口波特率選擇位,為串行口波特率選擇位,當(dāng)當(dāng)SMOD=1時(shí),時(shí),方式方式1、2、3的波特率加倍。的波特率加倍。電源控制寄存器電源控制寄存器PCON4:23418.2.2 串行口的工作方式串行口的工作方式 80C51

45、單片機(jī)的串行口有單片機(jī)的串行口有4種工作方式,分別是方式種工作方式,分別是方式0、方式、方式1、方式方式2和方式和方式3。這些工作方式由。這些工作方式由SCON中的中的SM0、SMl兩位編兩位編碼決定。碼決定。4:2342 1.方式方式0 同步移位寄存器輸入同步移位寄存器輸入/輸出方式輸出方式,常用于外接移位寄存器,常用于外接移位寄存器,以擴(kuò)展并行以擴(kuò)展并行I/O口???。 8位數(shù)據(jù)為一幀,不設(shè)起始位和停止位,先發(fā)送或接收最低位數(shù)據(jù)為一幀,不設(shè)起始位和停止位,先發(fā)送或接收最低位。位。波特率固定為波特率固定為fosc/12。幀格式如下:。幀格式如下:圖圖8-24 方式方式0幀格式幀格式4:2343

46、1方式方式0發(fā)送發(fā)送 當(dāng)當(dāng)CPU執(zhí)行一條將數(shù)據(jù)寫入發(fā)送緩沖器執(zhí)行一條將數(shù)據(jù)寫入發(fā)送緩沖器SBUF的指令時(shí),產(chǎn)的指令時(shí),產(chǎn)生一個(gè)正脈沖,串行口即把生一個(gè)正脈沖,串行口即把SBUF中的中的8位數(shù)據(jù)以位數(shù)據(jù)以fosc/12的固的固定波特率從定波特率從RXD引腳串行輸出引腳串行輸出,低位在先,低位在先,TXD引腳輸出同引腳輸出同步移位脈沖步移位脈沖,發(fā)送完,發(fā)送完8位數(shù)據(jù)置位數(shù)據(jù)置“1”中斷標(biāo)志位中斷標(biāo)志位TI。時(shí)序如圖。時(shí)序如圖8-25所示。所示。圖圖 8-25 方式方式0發(fā)送時(shí)序發(fā)送時(shí)序4:2344串行口擴(kuò)展并行輸出口時(shí),要有串行口擴(kuò)展并行輸出口時(shí),要有“串入并出串入并出”的移位寄存器配合的移位寄

47、存器配合(如如74HC164或或CD4094)。74HC164芯片引腳如圖芯片引腳如圖8-26(a)所示。所示。 74HC164芯片各引腳功能如下:芯片各引腳功能如下: Q0Q7為并行輸出引腳;為并行輸出引腳; DSA、DSB為串行輸入引腳;為串行輸入引腳; CR為清為清0引腳,低電平時(shí),使引腳,低電平時(shí),使74HC 164輸出清輸出清0; CP為時(shí)鐘脈沖輸入引腳,在為時(shí)鐘脈沖輸入引腳,在CP脈沖的上升沿作用下實(shí)現(xiàn)移位。在脈沖的上升沿作用下實(shí)現(xiàn)移位。在CP=0,CR=1時(shí)時(shí)74HC164保持原來(lái)數(shù)據(jù)狀態(tài)不變。保持原來(lái)數(shù)據(jù)狀態(tài)不變。 (a) 8位串入位串入/并出移位寄存器并出移位寄存器74HC1

48、64 (b) 串行口與串行口與74HC164配合配合圖圖8-26 74HC164及其與單片機(jī)串行口的配合及其與單片機(jī)串行口的配合4:2345例例8-1 單片機(jī)與單片機(jī)與74HC164的電路連接如圖的電路連接如圖8-27所示,在所示,在74HC164的的并行輸出引腳接了并行輸出引腳接了8只發(fā)光二極管,要求利用只發(fā)光二極管,要求利用74HC164的串入的串入并出功能,將發(fā)光二極管依次輪流點(diǎn)亮,并不斷循環(huán)。試編程。并出功能,將發(fā)光二極管依次輪流點(diǎn)亮,并不斷循環(huán)。試編程。圖圖8-27 例例8-1電路連接圖電路連接圖 4:2346解:解: 分析:將串行口設(shè)置為方式分析:將串行口設(shè)置為方式0(SCON=0

49、 x00),利用移位寄存,利用移位寄存器實(shí)現(xiàn)串口數(shù)據(jù)發(fā)送,數(shù)據(jù)發(fā)送通過(guò)寫器實(shí)現(xiàn)串口數(shù)據(jù)發(fā)送,數(shù)據(jù)發(fā)送通過(guò)寫SBUF寄存器完成,寄存器完成,寫入寫入SBUF的的8位數(shù)據(jù)通過(guò)位數(shù)據(jù)通過(guò)RXD逐位發(fā)送,移位脈沖通過(guò)逐位發(fā)送,移位脈沖通過(guò)TXD發(fā)送,這些工作全部由硬件完成,而且發(fā)送完畢后,硬件會(huì)發(fā)送,這些工作全部由硬件完成,而且發(fā)送完畢后,硬件會(huì)自動(dòng)將自動(dòng)將TI置位,因此,在設(shè)置好工作模式后,將待發(fā)送的字置位,因此,在設(shè)置好工作模式后,將待發(fā)送的字節(jié)寫入節(jié)寫入SBUF,然后等待,然后等待TI置位即可。在發(fā)送下一字節(jié)前,置位即可。在發(fā)送下一字節(jié)前,TI要用軟件清零。要用軟件清零。 設(shè)待發(fā)送的字節(jié)變量初值

50、為設(shè)待發(fā)送的字節(jié)變量初值為0 x80,將其通過(guò),將其通過(guò)_crol_函數(shù)函數(shù)循環(huán)移位并發(fā)送時(shí),寫入循環(huán)移位并發(fā)送時(shí),寫入SBUF的字節(jié)將會(huì)是的字節(jié)將會(huì)是00000001、00000010、00000100、00001000、00010000、00100000、01000000、10000000,LED將會(huì)實(shí)現(xiàn)向上滾動(dòng)的顯示效果。將會(huì)實(shí)現(xiàn)向上滾動(dòng)的顯示效果。4:2347程序設(shè)計(jì)如下:程序設(shè)計(jì)如下:#include #include #define uint unsigned int#define uchar unsigned charvoid Delay(uint x) /延時(shí)子程序延時(shí)子程序

51、uchar i;while(x-)for(i=0;i110;i+);void main() /主程序主程序 uchar c = 0 x80;SCON = 0 x00;/串口為方式串口為方式0,即移位寄存器輸入即移位寄存器輸入/輸出方式輸出方式while(1)c = _crol_(c,1);/循環(huán)左移一循環(huán)左移一位位SBUF = c;/串行輸出串行輸出while(TI=0);/等待發(fā)送結(jié)束等待發(fā)送結(jié)束TI = 0;/TI清零清零Delay(400);/延時(shí),實(shí)現(xiàn)狀態(tài)延時(shí),實(shí)現(xiàn)狀態(tài)維持維持4:23482方式方式0接收接收 REN=1,接收數(shù)據(jù),接收數(shù)據(jù),REN=0,禁止接收,禁止接收。 REN=1

52、,允許接收,允許接收。向串口的。向串口的SCON寫入控制字(置為方式寫入控制字(置為方式0,并置,并置“1”REN位,同時(shí)位,同時(shí)RI=0)時(shí),產(chǎn)生一個(gè)正脈沖,串行口即開(kāi)始接收數(shù)據(jù)。)時(shí),產(chǎn)生一個(gè)正脈沖,串行口即開(kāi)始接收數(shù)據(jù)。RXD為數(shù)據(jù)輸入端,為數(shù)據(jù)輸入端,TXD為移位脈沖信號(hào)輸出端,為移位脈沖信號(hào)輸出端,接收器也以接收器也以fosc/12的固的固定波特率定波特率采樣采樣RXD引腳的數(shù)據(jù)信息,當(dāng)收到引腳的數(shù)據(jù)信息,當(dāng)收到8位數(shù)據(jù)時(shí)置位數(shù)據(jù)時(shí)置“1” RI,一幀數(shù)據(jù),一幀數(shù)據(jù)接收完,可進(jìn)行下一幀數(shù)據(jù)的接受,時(shí)序如圖接收完,可進(jìn)行下一幀數(shù)據(jù)的接受,時(shí)序如圖8-28所示。所示。圖圖8-28 方式方

53、式0接收時(shí)序接收時(shí)序4:2349方式方式0下,下,SCON中的中的TB8、RB8位沒(méi)有用到位沒(méi)有用到,發(fā)送或接收完,發(fā)送或接收完8位位數(shù)據(jù)由硬件置數(shù)據(jù)由硬件置“1”TI或或RI,CPU響應(yīng)中斷。響應(yīng)中斷。TI或或RI須由用戶軟須由用戶軟件清件清“0”,可用如下指令:,可用如下指令:CLR TI;TI位清位清“0”CLR RI ;RI位清位清“0”方式方式0時(shí),時(shí),SM2位必須為位必須為0。4:2350(a) 8位并入位并入/串出移位寄存器串出移位寄存器74HC165 (b) 串行口與串行口與74HC165配合配合圖圖8-29 74HC165及其與單片機(jī)串行口的配合及其與單片機(jī)串行口的配合如果把

54、能實(shí)現(xiàn)并入串出功能的移位寄存器如果把能實(shí)現(xiàn)并入串出功能的移位寄存器(如如74HC165或或CD4014)與串行口配合使用,就可以把串行口變?yōu)椴⑿休斎肟谑褂谩Ec串行口配合使用,就可以把串行口變?yōu)椴⑿休斎肟谑褂谩?:2351例例8-2電路連接如圖電路連接如圖8-30所示,在所示,在AT89C51單片機(jī)串行口外接了單片機(jī)串行口外接了一片一片8位并入位并入/串出移位寄存器串出移位寄存器74HC165,P2口外接了口外接了8只發(fā)光只發(fā)光二極管,二極管,74HC165并行輸入端連接并行輸入端連接8位撥碼開(kāi)關(guān),要求編寫程位撥碼開(kāi)關(guān),要求編寫程序?qū)艽a開(kāi)關(guān)的動(dòng)作用發(fā)光二極管表示出來(lái),開(kāi)關(guān)打在序?qū)艽a開(kāi)關(guān)的動(dòng)作

55、用發(fā)光二極管表示出來(lái),開(kāi)關(guān)打在ON位位置時(shí)二極管亮,打在置時(shí)二極管亮,打在OFF位置時(shí)二極管不亮。位置時(shí)二極管不亮。圖圖8-30 例例8-2電路連接圖電路連接圖4:2352程序設(shè)計(jì)如下:程序設(shè)計(jì)如下:#include sbit clk=P10;void delay(int N) /延時(shí)子程序延時(shí)子程序 int i,j; for(i=0;iN;i+) for(j=0;ji;j+);void main() int xx; while(1) clk=0; clk=1; /發(fā)送移位脈沖發(fā)送移位脈沖SCON=0 x10; /允許串行口接允許串行口接收數(shù)據(jù)收數(shù)據(jù)while(RI=0) /等待發(fā)送等待發(fā)送

56、;xx=SBUF; /讀取數(shù)據(jù)讀取數(shù)據(jù)RI=0;/清除接收中斷清除接收中斷標(biāo)志標(biāo)志P2=xx;delay(200);4:2353SM0、SM1=01方式方式1一幀數(shù)據(jù)一幀數(shù)據(jù)為為10位,位,1個(gè)起始位(個(gè)起始位(0),),8個(gè)數(shù)據(jù)位,個(gè)數(shù)據(jù)位,1個(gè)個(gè)停止位(停止位(1),先發(fā)送或接收最低位。幀格式如下:),先發(fā)送或接收最低位。幀格式如下:2 方式方式1 方式方式1幀格式幀格式4:2354方式方式1波特率波特率=(2SMOD/32)定時(shí)器定時(shí)器T1的溢出率的溢出率 SMOD為為PCON寄存器的最高位的值(寄存器的最高位的值(0或或1)。)。 式中,式中,SMOD為為PCON寄存器最高位寄存器最高

57、位(0或或1)。 定時(shí)器定時(shí)器T1的溢出率就是溢出周期的倒數(shù),和所采用的定的溢出率就是溢出周期的倒數(shù),和所采用的定時(shí)器工作方式有關(guān)。時(shí)器工作方式有關(guān)。 當(dāng)定時(shí)器當(dāng)定時(shí)器T1作為波特率發(fā)生器使用時(shí),作為波特率發(fā)生器使用時(shí),通常選用工作方通常選用工作方式式2,這是由于方式,這是由于方式2可以自動(dòng)裝入定時(shí)時(shí)間常數(shù)可以自動(dòng)裝入定時(shí)時(shí)間常數(shù)(也即計(jì)數(shù)也即計(jì)數(shù)初值初值),可避免通過(guò)程序反復(fù)裝入初值所引起的定時(shí)誤差,可避免通過(guò)程序反復(fù)裝入初值所引起的定時(shí)誤差,使波特率更加穩(wěn)定,因此,這是一種最常用的方法。使波特率更加穩(wěn)定,因此,這是一種最常用的方法。 4:2355 設(shè)計(jì)數(shù)的預(yù)置值設(shè)計(jì)數(shù)的預(yù)置值(初始值初始值

58、)為為x,那么每過(guò),那么每過(guò)256-x個(gè)機(jī)器周期,個(gè)機(jī)器周期,定時(shí)器溢出一次。為了避免因溢出而產(chǎn)生不必要的中斷,此定時(shí)器溢出一次。為了避免因溢出而產(chǎn)生不必要的中斷,此時(shí)應(yīng)禁止時(shí)應(yīng)禁止T1中斷。溢出周期為:中斷。溢出周期為: 12(256)oscxf溢出率為溢出周期的倒數(shù),所以溢出率為溢出周期的倒數(shù),所以2=32 12(256x)SMODoscf波波特特率率4:2356在實(shí)際使用時(shí),總是先確定波特率,再計(jì)算定時(shí)器在實(shí)際使用時(shí),總是先確定波特率,再計(jì)算定時(shí)器T1T1的計(jì)數(shù)的計(jì)數(shù)初值初值( (常在這種場(chǎng)合稱其為時(shí)間常數(shù)常在這種場(chǎng)合稱其為時(shí)間常數(shù)) ),然后進(jìn)行定時(shí)器的初,然后進(jìn)行定時(shí)器的初始化。始化

59、。 表表8-3 定時(shí)器定時(shí)器T1工作于方式工作于方式2時(shí)常用的波特率及計(jì)數(shù)初值時(shí)常用的波特率及計(jì)數(shù)初值 4:2357( 1) 方式方式1發(fā)送發(fā)送 數(shù)據(jù)由數(shù)據(jù)由TXD輸出。輸出。 一幀信息為一幀信息為10位位,1位起始位位起始位0,8位數(shù)據(jù)位(先低位)和位數(shù)據(jù)位(先低位)和1位位停止位停止位1。 當(dāng)執(zhí)行一條數(shù)據(jù)寫發(fā)送緩沖器當(dāng)執(zhí)行一條數(shù)據(jù)寫發(fā)送緩沖器SBUF的指令,就啟動(dòng)發(fā)送。的指令,就啟動(dòng)發(fā)送。圖中圖中TX時(shí)鐘時(shí)鐘的頻率就是發(fā)送的波特率。的頻率就是發(fā)送的波特率。 發(fā)送開(kāi)始時(shí),內(nèi)部發(fā)送控制信號(hào)變?yōu)橛行?。將起始位向發(fā)送開(kāi)始時(shí),內(nèi)部發(fā)送控制信號(hào)變?yōu)橛行?。將起始位向TXD輸出,此后,每經(jīng)過(guò)一個(gè)輸出,此后

60、,每經(jīng)過(guò)一個(gè)TX時(shí)鐘周期,便產(chǎn)生一個(gè)移位脈時(shí)鐘周期,便產(chǎn)生一個(gè)移位脈沖,并由沖,并由TXD輸出一個(gè)數(shù)據(jù)位。輸出一個(gè)數(shù)據(jù)位。8位數(shù)據(jù)位全部發(fā)送完畢后,位數(shù)據(jù)位全部發(fā)送完畢后,置置“1”TI。方式。方式1發(fā)送數(shù)據(jù)的時(shí)序,如下圖所示。發(fā)送數(shù)據(jù)的時(shí)序,如下圖所示。方式方式1發(fā)送數(shù)據(jù)時(shí)的時(shí)序發(fā)送數(shù)據(jù)時(shí)的時(shí)序4:2358 (2) 方式方式1接收接收 數(shù)據(jù)從數(shù)據(jù)從RXD(P3.0)腳輸入。當(dāng)檢測(cè)到起始位的負(fù)跳變時(shí),)腳輸入。當(dāng)檢測(cè)到起始位的負(fù)跳變時(shí),開(kāi)始接收數(shù)據(jù)。開(kāi)始接收數(shù)據(jù)。 定時(shí)控制信號(hào)有兩種定時(shí)控制信號(hào)有兩種:接收移位時(shí)鐘接收移位時(shí)鐘(RX時(shí)鐘,頻率和波時(shí)鐘,頻率和波特率相同)和特率相同)和位檢測(cè)器采

溫馨提示

  • 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)論