單片機(jī)原理及應(yīng)用(C語言版)第7章MCS-51單片機(jī)串行口_第1頁
單片機(jī)原理及應(yīng)用(C語言版)第7章MCS-51單片機(jī)串行口_第2頁
單片機(jī)原理及應(yīng)用(C語言版)第7章MCS-51單片機(jī)串行口_第3頁
單片機(jī)原理及應(yīng)用(C語言版)第7章MCS-51單片機(jī)串行口_第4頁
單片機(jī)原理及應(yīng)用(C語言版)第7章MCS-51單片機(jī)串行口_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言語言版)第版)第7章章MCS-51單片機(jī)串單片機(jī)串行口行口單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口第第7章章 MCS-51單片機(jī)串行口單片機(jī)串行口 目目 錄錄7.1 串行通信基本知識串行通信基本知識7.2 串行口結(jié)構(gòu)及控制串行口結(jié)構(gòu)及控制7.3 串行口工作方式串行口工作方式7.4 串行口應(yīng)用舉例串行口應(yīng)用舉例7.5 單片機(jī)與單片機(jī)與PC機(jī)通信的接口電路機(jī)通信的接口電路單片機(jī)原理及應(yīng)用(單片機(jī)原理

2、及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口本章要點(diǎn)本章要點(diǎn) 本章主要講述本章主要講述MCS-51單片機(jī)串行口的單片機(jī)串行口的結(jié)構(gòu)、工作原理以及應(yīng)用。結(jié)構(gòu)、工作原理以及應(yīng)用。主要內(nèi)容包括串行通信基本知識、主要內(nèi)容包括串行通信基本知識、MCS-51單片機(jī)串行口結(jié)構(gòu)、串行口工作方式以及單片機(jī)串行口結(jié)構(gòu)、串行口工作方式以及單片機(jī)與單片機(jī)與PC機(jī)通信的接口電路。機(jī)通信的接口電路。單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口7.1 串行通信基本知識串行通信基本知識主要內(nèi)容主要內(nèi)容7.1.1 數(shù)據(jù)通信數(shù)據(jù)通信7.1.2 異

3、步通信和同步通信異步通信和同步通信7.1.3 波特率波特率7.1.4 通信方向通信方向7.1.5 串行通信接口種類串行通信接口種類單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口7.1.1 數(shù)據(jù)通信數(shù)據(jù)通信 計(jì)算機(jī)與外界的信息交換稱為通信?;居?jì)算機(jī)與外界的信息交換稱為通信?;镜耐ㄐ欧椒ㄓ胁⑿型ㄐ藕痛型ㄐ艃煞N。的通信方法有并行通信和串行通信兩種。 1并行通信并行通信單位信息(通常指一個字節(jié))的各位數(shù)據(jù)單位信息(通常指一個字節(jié))的各位數(shù)據(jù)同時傳送的通信方法稱為并行通信。同時傳送的通信方法稱為并行通信。2串行通信串行通信單位信息的各位數(shù)據(jù)被分

4、時一位一位依次單位信息的各位數(shù)據(jù)被分時一位一位依次順序傳送的通信方式稱為串行通信。順序傳送的通信方式稱為串行通信。 單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口7.1.1 數(shù)據(jù)通信數(shù)據(jù)通信圖圖7-1 并行通信示意圖并行通信示意圖從圖中可以看出:從圖中可以看出:并行通信連線多,速度快,適合近距離通信;并行通信連線多,速度快,適合近距離通信;串行通信連線少,速度慢,適合遠(yuǎn)距離通信。串行通信連線少,速度慢,適合遠(yuǎn)距離通信。圖圖7-1 并行通信示意圖并行通信示意圖圖圖7-2 串行通信示意圖串行通信示意圖單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版

5、)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口1異步通信異步通信異步通信中,傳送的數(shù)據(jù)可以是一個字符異步通信中,傳送的數(shù)據(jù)可以是一個字符代碼或一個字節(jié)數(shù)據(jù),數(shù)據(jù)以幀的形式一幀一代碼或一個字節(jié)數(shù)據(jù),數(shù)據(jù)以幀的形式一幀一幀傳送。幀傳送。 7.1.2 異步通信和同步通信異步通信和同步通信圖圖7-3 異步通信的一幀數(shù)據(jù)格式異步通信的一幀數(shù)據(jù)格式單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口2同步通信同步通信在同步通信中,每一數(shù)據(jù)塊發(fā)送開始時,在同步通信中,每一數(shù)據(jù)塊發(fā)送開始時,先發(fā)送一個或兩個同步字符,使發(fā)送與接收先發(fā)送一個或兩個同步字符

6、,使發(fā)送與接收取得同步,然后再順序發(fā)送數(shù)據(jù)。數(shù)據(jù)塊的取得同步,然后再順序發(fā)送數(shù)據(jù)。數(shù)據(jù)塊的各個字符間取消起始位和停止位,所以通信各個字符間取消起始位和停止位,所以通信速度得以提高速度得以提高 。7.1.2 異步通信和同步通信異步通信和同步通信圖圖7-4 同步通信數(shù)據(jù)幀格式同步通信數(shù)據(jù)幀格式單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口7.1.3 波特率波特率在串行通信中,對數(shù)據(jù)傳送速度有一定在串行通信中,對數(shù)據(jù)傳送速度有一定要求。波特率表示每秒傳送的位數(shù),單位為要求。波特率表示每秒傳送的位數(shù),單位為b/s(記作波特)。(記作波特)。例如:數(shù)

7、據(jù)傳送速率為每秒鐘例如:數(shù)據(jù)傳送速率為每秒鐘10個字符,個字符,若每個字符的一幀為若每個字符的一幀為11位,則傳送波持率為:位,則傳送波持率為:11b/字符字符10字符字符/s110b/s異步通信的傳送速率一般在異步通信的傳送速率一般在5019 200b/s之間之間 。單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口7.1.4 通信方向通信方向單工方式:一對傳輸線只允許單方向傳送單工方式:一對傳輸線只允許單方向傳送數(shù)據(jù);數(shù)據(jù);半雙工方式:一對傳輸線允許向兩個方向半雙工方式:一對傳輸線允許向兩個方向中的任一方向傳送數(shù)據(jù),但不能同時進(jìn)行;中的任一

8、方向傳送數(shù)據(jù),但不能同時進(jìn)行;全雙工方式:用兩對傳輸線連接在發(fā)送器全雙工方式:用兩對傳輸線連接在發(fā)送器和接收器上,發(fā)送和接收能同時進(jìn)行。和接收器上,發(fā)送和接收能同時進(jìn)行。單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口7.1.4 通信方向通信方向圖圖7-5 串行通信傳輸方式串行通信傳輸方式單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口7.1.5 串行通信接口種類串行通信接口種類根據(jù)串行通信格式及約定(如同步方式、根據(jù)串行通信格式及約定(如同步方式、通信速率、數(shù)據(jù)塊格式等)不同,形成了通信速

9、率、數(shù)據(jù)塊格式等)不同,形成了許多串行通信接口標(biāo)準(zhǔn),如常見的:許多串行通信接口標(biāo)準(zhǔn),如常見的:UART(串行異步通信接口)、(串行異步通信接口)、USB(通用串行總線接口)、(通用串行總線接口)、I2C(集成電路間的串行總線)、(集成電路間的串行總線)、SPI(串行外設(shè)總線)、(串行外設(shè)總線)、485總線、總線、CAN總線接口等??偩€接口等。單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口7.2 串行口串行口結(jié)構(gòu)及控制結(jié)構(gòu)及控制主要內(nèi)容主要內(nèi)容7.2.1 MCS-51串行口結(jié)構(gòu)串行口結(jié)構(gòu)7.2.2 與串行口有關(guān)的特與串行口有關(guān)的特殊功能寄存器

10、殊功能寄存器7.2.3 波特率設(shè)計(jì)波特率設(shè)計(jì)單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口7.2.1 MCS-51串行口結(jié)構(gòu)串行口結(jié)構(gòu)圖圖7-6 串行口方式串行口方式1、3內(nèi)部結(jié)構(gòu)示意簡圖內(nèi)部結(jié)構(gòu)示意簡圖單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口7.2.2 與串行口有關(guān)的特殊功能寄存器與串行口有關(guān)的特殊功能寄存器1控制狀態(tài)寄存器控制狀態(tài)寄存器SCON用于定義串行通信口的工作方式和反映串用于定義串行通信口的工作方式和反映串行口狀態(tài),其字節(jié)地址為行口狀態(tài),其字節(jié)地址為98H,復(fù)位值為,復(fù)

11、位值為0000 0000B,可位尋址格式為:,可位尋址格式為:D7D6D5D4D3D2D1D0SM0 SM1 SM2 REN TB8 RB8TIRI單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口lSM0和和SM1(SCON.7、SCON.6):串行):串行口工作方式選擇位??诠ぷ鞣绞竭x擇位。 7.2.2 與串行口有關(guān)的特殊功能寄存器與串行口有關(guān)的特殊功能寄存器SM0 SM1 工作方式工作方式功能說明功能說明波特率波特率00方式方式0同步移位寄存器同步移位寄存器fosc/1201方式方式18位數(shù)據(jù)位數(shù)據(jù)UART可變可變(T1溢出率溢出率/32

12、或或/16)10方式方式29位數(shù)據(jù)位數(shù)據(jù)UARTfosc/64或或 fosc/3211方式方式39位數(shù)據(jù)位數(shù)據(jù)UART可變可變(T1溢出率溢出率/32或或/16)lSM2(SCON.5):多機(jī)通信控制位,在):多機(jī)通信控制位,在方式方式2或或3中使用。中使用。lREN(SCON.4):允許接收控制位,由):允許接收控制位,由軟件置軟件置1或清或清0。單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口lTB8(SCON.3):發(fā)送數(shù)據(jù)的第):發(fā)送數(shù)據(jù)的第9位。位。lRB8(SCON.2):接收數(shù)據(jù)的第):接收數(shù)據(jù)的第9位。位。lTI(SCON.1

13、):發(fā)送中斷標(biāo)志。):發(fā)送中斷標(biāo)志。lRI(SCON.0):接收中斷標(biāo)志。):接收中斷標(biāo)志。7.2.2 與串行口有關(guān)的特殊功能寄存器與串行口有關(guān)的特殊功能寄存器關(guān)于關(guān)于TI和和RI:串行發(fā)送中斷標(biāo)志:串行發(fā)送中斷標(biāo)志TI和接和接收中斷收中斷RI是同一個中斷源,是同一個中斷源,CPU事先不知道事先不知道是發(fā)送中斷標(biāo)志是發(fā)送中斷標(biāo)志TI還是接收中斷標(biāo)志還是接收中斷標(biāo)志RI產(chǎn)生產(chǎn)生的中斷請求,所以,在全雙工通信時,必須的中斷請求,所以,在全雙工通信時,必須由軟件來判別。由軟件來判別。單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口2電源控制寄存器電

14、源控制寄存器PCON電源控制寄存器電源控制寄存器PCON (地址為地址為87H)中只中只有有SMOD位與串行口工作有關(guān)。位與串行口工作有關(guān)。D7D6D5D4D3D2D1D0SMOD-GF1GF0PDIDL7.2.2 與串行口有關(guān)的特殊功能寄存器與串行口有關(guān)的特殊功能寄存器SMOD(PCON.7):波特率倍增位。):波特率倍增位。串行口工作于方式串行口工作于方式1、方式、方式2和方式和方式3時,當(dāng)時,當(dāng)SMOD1時,串行口波特率加倍。復(fù)位值為時,串行口波特率加倍。復(fù)位值為0000 0000B。PCON寄存器不能進(jìn)行位尋址。寄存器不能進(jìn)行位尋址。單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言

15、版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口7.2.3 波特率設(shè)計(jì)波特率設(shè)計(jì)方式方式0和方式和方式2的波特率是固定的,方式的波特率是固定的,方式1和方式和方式3的波特率是由定時器的波特率是由定時器T1的溢出率來的溢出率來決定的。在增強(qiáng)型單片機(jī)中,也可以使用決定的。在增強(qiáng)型單片機(jī)中,也可以使用T2作波特率發(fā)生器。作波特率發(fā)生器。1方式方式0的波特率的波特率固定為振蕩頻率的固定為振蕩頻率的1/12。并不受。并不受PCON寄寄存器中存器中SMOD位的影響。位的影響。方式方式0的波特率的波特率=fosc/12單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單

16、片機(jī)串行口2方式方式2的波特率的波特率接收與發(fā)送的移位時鐘由振蕩頻率接收與發(fā)送的移位時鐘由振蕩頻率fosc的的第二節(jié)拍第二節(jié)拍P2時鐘(時鐘(fosc/2)給出,所以,方)給出,所以,方式式2波特率取決于波特率取決于PCON中中SMOD位的值:位的值:當(dāng)當(dāng)SMOD=0時,波特率為時,波特率為fosc的的1/64;若;若SMOD=1,則波特率為,則波特率為fosc的的1/32。即。即方式方式2的波特率的波特率= 2SMODfosc/647.2.3 波特率設(shè)計(jì)波特率設(shè)計(jì)單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口3方式方式1和方式和方式3的波

17、特率的波特率(1)T1作波特率發(fā)生器作波特率發(fā)生器在最典型應(yīng)用中,定時器在最典型應(yīng)用中,定時器T1選用定時器模選用定時器模式式2,此時,此時n=8,設(shè)定時器的初值為,設(shè)定時器的初值為X:于是,于是,X=256 - -322SMOD12fosc 322SMOD波特率波特率)( 3841SMODfosc方式方式1、3的波特率的波特率= (T1溢出速率)溢出速率)即波特率即波特率= /(2n -初值)初值)7.2.3 波特率設(shè)計(jì)波特率設(shè)計(jì)單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口(2)T2作波特率發(fā)生器作波特率發(fā)生器在增強(qiáng)型單片機(jī)中,還可以使

18、用在增強(qiáng)型單片機(jī)中,還可以使用T2作為作為波特率發(fā)生器。當(dāng)寄存器波特率發(fā)生器。當(dāng)寄存器T2CON的位的位TCLK=1和(或)和(或)RCLK=1時,允許串行口時,允許串行口從從T2獲得發(fā)送和(或)接收的波特率。獲得發(fā)送和(或)接收的波特率。 串行口方式串行口方式1、3的波特率的波特率=T2溢出率溢出率/16定時器定時器2作波特率發(fā)生器時,計(jì)數(shù)在每個作波特率發(fā)生器時,計(jì)數(shù)在每個狀態(tài)周期遞增。這樣:狀態(tài)周期遞增。這樣:方式方式1、3的波特率的波特率=),(振振蕩蕩頻頻率率RCAP2LRCAP2H6553632 7.2.3 波特率設(shè)計(jì)波特率設(shè)計(jì)單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)

19、第7章章MCS-51單片機(jī)串行口單片機(jī)串行口主要內(nèi)容主要內(nèi)容7.3.1 串行口方式串行口方式07.3.2 串行口方式串行口方式17.3.3 串行口方式串行口方式2和方式和方式37.3 串行口工作方式串行口工作方式單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口7.3.1 串行口方式串行口方式0方式方式0為同步移位寄存器輸入為同步移位寄存器輸入/輸出方式,輸出方式,常用于擴(kuò)展常用于擴(kuò)展I/O口???。RXD為數(shù)據(jù)輸入或輸出,為數(shù)據(jù)輸入或輸出,TXD為移位時鐘,作為外接部件的同步信號。為移位時鐘,作為外接部件的同步信號。方式方式0不適用于兩個不適用

20、于兩個89C52之間的數(shù)據(jù)通之間的數(shù)據(jù)通信,可以通過外接移位寄存器來實(shí)現(xiàn)單片機(jī)信,可以通過外接移位寄存器來實(shí)現(xiàn)單片機(jī)的接口擴(kuò)展。的接口擴(kuò)展。在這種方式下,收在這種方式下,收/發(fā)的數(shù)據(jù)為發(fā)的數(shù)據(jù)為8位,低位,低位在前,無起始位、奇偶校驗(yàn)位及停止位,位在前,無起始位、奇偶校驗(yàn)位及停止位,波特率是固定的。波特率是固定的。單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口7.3.1 串行口方式串行口方式0發(fā)送電路發(fā)送電路接收電路接收電路單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口7.3.2 串行口

21、方式串行口方式1方式方式1真正用于串行發(fā)送或接收,為真正用于串行發(fā)送或接收,為10位位通用異步接口。通用異步接口。TXD與與RXD分別用于發(fā)送與分別用于發(fā)送與接收數(shù)據(jù)。接收數(shù)據(jù)。收發(fā)一幀數(shù)據(jù)的格式為收發(fā)一幀數(shù)據(jù)的格式為1位起始位、位起始位、8位數(shù)位數(shù)據(jù)位(低位在前)、據(jù)位(低位在前)、1位停止位,共位停止位,共10位。在位。在接收時,停止位進(jìn)入接收時,停止位進(jìn)入SCON的的RB8,此方式,此方式的傳送波特率可調(diào)。的傳送波特率可調(diào)。單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口7.3.3 串行口方式串行口方式2和方式和方式3串行口工作在方式串

22、行口工作在方式2和方式和方式3均為每幀均為每幀11位異步通信格式,由位異步通信格式,由TXD和和RXD發(fā)送與接發(fā)送與接收(兩種方式操作是完全一樣的,不同的收(兩種方式操作是完全一樣的,不同的只是特波率)。只是特波率)。每幀每幀11位:即位:即1位起始位、位起始位、8位數(shù)據(jù)位位數(shù)據(jù)位(低位在前)、(低位在前)、1位可編程的第位可編程的第9數(shù)據(jù)位和數(shù)據(jù)位和1位停止位。位停止位。發(fā)送時,第發(fā)送時,第9數(shù)據(jù)位(數(shù)據(jù)位(TB8)可以設(shè)置為)可以設(shè)置為1或或0,也可將奇偶位裝入,也可將奇偶位裝入TB8;接收時,第接收時,第9數(shù)據(jù)位進(jìn)入數(shù)據(jù)位進(jìn)入SCON的的RB8。 單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語

23、言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口7.4 串行口應(yīng)用舉例串行口應(yīng)用舉例 主要內(nèi)容主要內(nèi)容 7.4.1 同步方式應(yīng)用同步方式應(yīng)用 7.4.2 異步方式應(yīng)用異步方式應(yīng)用單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口7.4.1 同步方式應(yīng)用同步方式應(yīng)用MSC-51單片機(jī)的串行口在方式單片機(jī)的串行口在方式0時,以時,以同步方式操作。外接串入同步方式操作。外接串入/并出或并入并出或并入/串出串出器件,可實(shí)現(xiàn)器件,可實(shí)現(xiàn)I/O口的擴(kuò)展。口的擴(kuò)展。例例7-2 用用89C52串行口外接串行口外接164串入串入/并出并出移位寄存器擴(kuò)

24、展移位寄存器擴(kuò)展8位并行輸出口,外接位并行輸出口,外接165并并入入/串出移位寄存器擴(kuò)展串出移位寄存器擴(kuò)展8位并行輸入口。位并行輸入口。8位位并行輸出口的每位都接一個發(fā)光二極管,要并行輸出口的每位都接一個發(fā)光二極管,要求從求從8位并行輸入口讀入開關(guān)的狀態(tài)值,使位并行輸入口讀入開關(guān)的狀態(tài)值,使閉合開關(guān)對應(yīng)的發(fā)光二極管點(diǎn)亮。如圖閉合開關(guān)對應(yīng)的發(fā)光二極管點(diǎn)亮。如圖7-13所示。所示。單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口7.4.1 同步方式應(yīng)用同步方式應(yīng)用圖圖7-13 方式方式0擴(kuò)展輸入輸出電路擴(kuò)展輸入輸出電路單片機(jī)原理及應(yīng)用(單片機(jī)原理

25、及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口解:數(shù)據(jù)的輸入輸出通過解:數(shù)據(jù)的輸入輸出通過RXD接收和發(fā)送,接收和發(fā)送,移位時鐘通過移位時鐘通過TXD送出,送出,74HC164用于串用于串/并轉(zhuǎn)換,并轉(zhuǎn)換,74HC165用于并用于并/串轉(zhuǎn)換。串轉(zhuǎn)換。C語言程序清單:語言程序清單:#includesbit P1_0=P10;sbit P1_1=P11;unsigned char data1;void main() SCON=0 x10;/串行口方式串行口方式0,允許,允許接收接收ES=1;EA=1; /允許串行口中斷允許串行口中斷7.4.1 同步方式應(yīng)用同步方式應(yīng)用單片

26、機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口P1_0=0;/關(guān)閉并行輸出關(guān)閉并行輸出P1_1=1;/并行置入數(shù)據(jù)并行置入數(shù)據(jù)P1_1=0; /開始串行移位開始串行移位SBUF=0;/送入串行數(shù)據(jù)送入串行數(shù)據(jù)while(1);/等待中斷等待中斷void s_srv() interrupt 4/中斷服務(wù)程序中斷服務(wù)程序if(TI)/發(fā)送中斷發(fā)送中斷TI=0;P1_0=1;/打開并行輸出打開并行輸出7.4.1 同步方式應(yīng)用同步方式應(yīng)用單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口else/接收中

27、斷接收中斷RI=0;data1=SBUF;/讀取接收的數(shù)據(jù)讀取接收的數(shù)據(jù)P1_0=0;/關(guān)閉并行輸出關(guān)閉并行輸出SBUF=data1;/送入串行數(shù)據(jù)送入串行數(shù)據(jù)P1_1=1;/為接收下一次為接收下一次P1_1=0;/數(shù)據(jù)做準(zhǔn)備數(shù)據(jù)做準(zhǔn)備匯編語言程序清單:匯編語言程序清單:ORG 0000HSJMP MAINORG 23HSJMP S_SRV ;串行口中斷服務(wù)程序串行口中斷服務(wù)程序7.4.1 同步方式應(yīng)用同步方式應(yīng)用單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口MAIN: MOV SCON,#10H ;串行口方式串行口方式0初始化初始化SET

28、B ESSETB EAMOV A,#0CLR P1.0;關(guān)閉并行輸出關(guān)閉并行輸出MOV SBUF,A;開始串行輸出開始串行輸出SETB P1.1CLR P1.1SJMP $;等待中斷等待中斷7.4.1 同步方式應(yīng)用同步方式應(yīng)用單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口S_SRV:JBC TI,SENDCLRRIMOV A,SBUFCLR P1.0CPL AMOV SBUF,ASETB P1.1CLR P1.1RETISEND:SETB P1.0RETI7.4.1 同步方式應(yīng)用同步方式應(yīng)用單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語

29、言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口7.4.2 異步方式應(yīng)用異步方式應(yīng)用串行口方式串行口方式1與方式與方式3很近似,波特率設(shè)置很近似,波特率設(shè)置一樣,不同之處在于方式一樣,不同之處在于方式3比方式比方式1多了一個多了一個數(shù)據(jù)附加位。數(shù)據(jù)附加位。方式方式2與方式與方式3基本一樣(只是波特率設(shè)置基本一樣(只是波特率設(shè)置不同),接收不同),接收/發(fā)送發(fā)送11位信息:開始為位信息:開始為1位起位起始位(始位(0),中間),中間8位數(shù)據(jù)位數(shù)據(jù)位之后為位數(shù)據(jù)位數(shù)據(jù)位之后為1位程控位(由用戶置位程控位(由用戶置SCON的的TB8決定),最決定),最后是后是1位停止位(位停止位(1)。只比方式)

30、。只比方式1多了一位程多了一位程控位??匚?。單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口例例7-3 將片內(nèi)將片內(nèi)RAM 50H5FH中的數(shù)據(jù)串中的數(shù)據(jù)串行發(fā)送,用第行發(fā)送,用第9個數(shù)據(jù)位作奇偶校驗(yàn)位,設(shè)晶個數(shù)據(jù)位作奇偶校驗(yàn)位,設(shè)晶振為振為11.059 2MHz,波特率為,波特率為2 400b/s,編制,編制串行口方式串行口方式3的發(fā)送程序。的發(fā)送程序。解:用解:用TB8作奇偶校驗(yàn)位,在數(shù)據(jù)寫入發(fā)作奇偶校驗(yàn)位,在數(shù)據(jù)寫入發(fā)送緩沖器之前先將數(shù)據(jù)的奇偶位送緩沖器之前先將數(shù)據(jù)的奇偶位P寫入寫入TB8,這時,第這時,第9位數(shù)據(jù)作奇偶校驗(yàn)用,發(fā)送采用

31、中位數(shù)據(jù)作奇偶校驗(yàn)用,發(fā)送采用中斷方式。斷方式。7.4.2 異步方式應(yīng)用異步方式應(yīng)用單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口C語言程序清單:語言程序清單:#includeunsigned char i=0;unsigned char array16 _at_ 0 x50; /發(fā)送緩沖區(qū)發(fā)送緩沖區(qū)void main() SCON=0 xc0;/串行口初始化串行口初始化TMOD=0 x20;/定時器初始化定時器初始化TH1=0 xf4;TL1=0 xf4;TR1=1; ES=1; EA=1; /中斷初始化中斷初始化ACC=arrayi;/

32、發(fā)送第一個數(shù)據(jù)送發(fā)送第一個數(shù)據(jù)送TB8=P; /累加器累加器,目的取目的取P位位SBUF=ACC;/發(fā)送一個數(shù)據(jù)發(fā)送一個數(shù)據(jù)while(1);/等待中斷等待中斷7.4.2 異步方式應(yīng)用異步方式應(yīng)用單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口void server() interrupt 4/串行口中斷服務(wù)程序串行口中斷服務(wù)程序TI=0;/清發(fā)送中斷標(biāo)志清發(fā)送中斷標(biāo)志ACC=array+i;/取下一個數(shù)據(jù)取下一個數(shù)據(jù)TB8=P;SBUF=ACC;if(i=16) /發(fā)送完畢,發(fā)送完畢,ES=0;/禁止串口中斷禁止串口中斷7.4.2 異步方式

33、應(yīng)用異步方式應(yīng)用單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口匯編語言程序清單:匯編語言程序清單:ORG0000HSJMPMAIN ;上電,轉(zhuǎn)主程序上電,轉(zhuǎn)主程序ORG23HSJMPSERVER ;轉(zhuǎn)中斷服務(wù)程序轉(zhuǎn)中斷服務(wù)程序MAIN:MOVSCON,#0C0H;串行口方式串行口方式3初始化初始化MOVTMOD,#20H;定時器定時器1工作在方式工作在方式2MOVTH1,#0F4HMOVTL1,#0F4HSETBTR1SETBES;允許串行口中斷允許串行口中斷SETBEA;CPU開中斷開中斷MOVR0,#50HMOVR7,#0FH7.4.2

34、 異步方式應(yīng)用異步方式應(yīng)用單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口MOVA,R0MOVC,PMOVTB8,C ;送奇偶標(biāo)志位到送奇偶標(biāo)志位到TB8MOVSBUF,A ;發(fā)送第一個數(shù)據(jù)發(fā)送第一個數(shù)據(jù)SJMP$SERVER:CLRTI ;清除發(fā)送中斷標(biāo)志清除發(fā)送中斷標(biāo)志INCR0 ;修改數(shù)據(jù)地址修改數(shù)據(jù)地址MOVA,R0MOVC,PMOVTB8,CMOVSBUF,A ;發(fā)送下一個數(shù)據(jù)發(fā)送下一個數(shù)據(jù)DJNZR7,ENDT ;判斷數(shù)據(jù)塊是否發(fā)送完判斷數(shù)據(jù)塊是否發(fā)送完CLRES ;否則,禁止串行口中斷否則,禁止串行口中斷ENDT:RETI ;中

35、斷返回中斷返回7.4.2 異步方式應(yīng)用異步方式應(yīng)用單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口例例7-4 編寫一個接收程序,將接收的編寫一個接收程序,將接收的16字節(jié)字節(jié)數(shù)據(jù)送入片內(nèi)數(shù)據(jù)送入片內(nèi)RAM 50H5FH單元中。設(shè)第單元中。設(shè)第9個數(shù)據(jù)位作奇偶校驗(yàn)位,晶振為個數(shù)據(jù)位作奇偶校驗(yàn)位,晶振為11.059 2 MHz,波特率為波特率為2 400b/s。解:解:RB8作奇偶校驗(yàn)位,接收時,取出該作奇偶校驗(yàn)位,接收時,取出該位進(jìn)行核對,接收采用查詢方式。位進(jìn)行核對,接收采用查詢方式。7.4.2 異步方式應(yīng)用異步方式應(yīng)用單片機(jī)原理及應(yīng)用(單片

36、機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口C語言程序清單:語言程序清單:#includeunsigned char i;unsigned char array16 _at_ 0 x50; /接收緩沖區(qū)接收緩沖區(qū)void main()SCON=0 xd0; /串行口初始化,允許接收串行口初始化,允許接收TMOD=0 x20;TH1=0 xf4;TL1=0 xf4;TR1=1;7.4.2 異步方式應(yīng)用異步方式應(yīng)用單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口for(i=0;i16;i+) /循環(huán)接收循環(huán)接收1

37、6個數(shù)據(jù)個數(shù)據(jù)while(!RI); /等待一次接收完成等待一次接收完成RI=0;ACC=SBUF;if(RB8=P) /校驗(yàn)正確校驗(yàn)正確arrayi=ACC; else /校驗(yàn)不正確校驗(yàn)不正確F0=1;break;while(1);7.4.2 異步方式應(yīng)用異步方式應(yīng)用單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口匯編語言程序清單:匯編語言程序清單:MAIN:MOV TMOD,#20H;定時器初始化定時器初始化MOV TH1,#0F4HMOV TL1,#0F4HSETB TR1MOV SCON,#0D0H;串口初始化,允許接收串口初始化,允

38、許接收MOV R0,#50H;首地址送首地址送R0MOV R7,#10H;數(shù)據(jù)長度送數(shù)據(jù)長度送R7WAIT:JNB RI,$;等待接收完成等待接收完成 CLR RI;清中斷標(biāo)志清中斷標(biāo)志 MOV A,SBUF;讀數(shù)到累加器讀數(shù)到累加器7.4.2 異步方式應(yīng)用異步方式應(yīng)用單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口JNB P,PNP;P=0,轉(zhuǎn),轉(zhuǎn)PNPJNB RB8,ERROR;P=1,RB8=0,轉(zhuǎn)出錯,轉(zhuǎn)出錯SJMP RIGHTPNP: JBRB8,ERROR;P=0,RB8=1,轉(zhuǎn)出錯,轉(zhuǎn)出錯RIGHT:MOV R0,A;存數(shù)存數(shù)I

39、NC R0;修改地址指針修改地址指針DJNZ R7,WAIT;未接收完,繼續(xù)未接收完,繼續(xù)CLR F0;置正確接收標(biāo)志置正確接收標(biāo)志F0=0RETERROR:SETB F0;置錯誤接收標(biāo)志置錯誤接收標(biāo)志F0=1RET7.4.2 異步方式應(yīng)用異步方式應(yīng)用單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口例例7-5 用第用第9個數(shù)據(jù)位作奇偶校驗(yàn)位,編個數(shù)據(jù)位作奇偶校驗(yàn)位,編制串行口方式制串行口方式3的全雙工通信程序,設(shè)雙機(jī)將的全雙工通信程序,設(shè)雙機(jī)將各自鍵盤的按鍵鍵值發(fā)送給對方,接收正確各自鍵盤的按鍵鍵值發(fā)送給對方,接收正確后放入緩沖區(qū)(可用于顯示

40、或其它處理),后放入緩沖區(qū)(可用于顯示或其它處理),晶振為晶振為11.059 2 MHz,波特率為,波特率為9 600b/s。解:因?yàn)槭侨p工方式,通信雙方的程序解:因?yàn)槭侨p工方式,通信雙方的程序一樣。發(fā)送和接收都采用中斷方式。一樣。發(fā)送和接收都采用中斷方式。7.4.2 異步方式應(yīng)用異步方式應(yīng)用單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口C語言程序清單:語言程序清單:#includechar k;unsigned char buffer;void main()SCON=0 xd0; /串行口初始化串行口初始化, 允許接允許接收收TMOD

41、=0 x20; /定時器初始化定時器初始化TH1=0 xfd;TL1=0 xfd;TR1=1;ES=1; /開串行口中斷開串行口中斷EA=1; /開總中斷開總中斷7.4.2 異步方式應(yīng)用異步方式應(yīng)用單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口while(1)k=key(); /讀取按鍵按下鍵值讀取按鍵按下鍵值if(k!=- -1) /無鍵按下返回?zé)o鍵按下返回- -1ACC=k; /將鍵值送累加器,取將鍵值送累加器,取P位位TB8=P; /送送TB8SBUF=ACC; /發(fā)送發(fā)送display(); /顯示程序顯示程序7.4.2 異步方式應(yīng)

42、用異步方式應(yīng)用單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口void serial_server() interrupt 4if(TI) /發(fā)送引起,清發(fā)送引起,清TITI=0;else /否則,接收引起否則,接收引起RI=0;ACC=SBUF; /讀取接收數(shù)據(jù)讀取接收數(shù)據(jù)if(RB8=P) /校驗(yàn)正確,校驗(yàn)正確, buffer=ACC; /存入緩沖區(qū)存入緩沖區(qū)7.4.2 異步方式應(yīng)用異步方式應(yīng)用單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口匯編語言程序清單:匯編語言程序清單:ORG 0

43、000HSJMP MAIN ;跳轉(zhuǎn)到主程序跳轉(zhuǎn)到主程序ORG 23HLJMP S_SERV ;跳轉(zhuǎn)到串口中斷服務(wù)程序跳轉(zhuǎn)到串口中斷服務(wù)程序MAIN:MOV SP,#0DFH ;設(shè)置堆棧指針設(shè)置堆棧指針MOV SCON,#0D0H ;串口初始化串口初始化MOV TMOD,#20H ;定時器初始化,定時器初始化,T1方式方式2MOV TH1,#0FDHMOV TL1,#0FDH ;定時器定時器1賦初值賦初值7.4.2 異步方式應(yīng)用異步方式應(yīng)用單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口SETB TR1 ;啟動定時器啟動定時器1SETB ES

44、;開中斷開中斷SETB EALOOP:LCALL KEY;讀取按鍵讀取按鍵(參看第參看第9章章), ;有鍵按下返回鍵值有鍵按下返回鍵值,CJNE A,#0FFH,SEND ;無鍵按下返回?zé)o鍵按下返回0FFH,;有鍵按下轉(zhuǎn)發(fā)送有鍵按下轉(zhuǎn)發(fā)送NEXT:LCALL DISPLAY ;調(diào)用顯示調(diào)用顯示LJMP LOOP ;主程序循環(huán)主程序循環(huán)7.4.2 異步方式應(yīng)用異步方式應(yīng)用單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口SEND:MOV C,PMOV TB8,CMOV SBUF,A;帶校驗(yàn)位發(fā)送帶校驗(yàn)位發(fā)送LJMP LOOP;循環(huán)循環(huán)S_SERV

45、:JBC RI,RECV ;是接收中斷轉(zhuǎn)接收處理是接收中斷轉(zhuǎn)接收處理CLR TI; 是發(fā)送中斷,清是發(fā)送中斷,清TIRETI 7.4.2 異步方式應(yīng)用異步方式應(yīng)用單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口RECV: ;接收處理程序接收處理程序MOV A,SBUF;取接收值送取接收值送AJB P,ONE;校驗(yàn)位為校驗(yàn)位為1,轉(zhuǎn),轉(zhuǎn)JB RB8,I_END;校驗(yàn)錯,轉(zhuǎn)中斷返校驗(yàn)錯,轉(zhuǎn)中斷返回回SJMP RIGHT;校驗(yàn)正確,正確處校驗(yàn)正確,正確處理理ONE:JNB RB8,I_END;校驗(yàn)錯,轉(zhuǎn)中斷返校驗(yàn)錯,轉(zhuǎn)中斷返回回RIGHT:MOV

46、BUFFER,A;接收數(shù)據(jù)送緩沖區(qū)接收數(shù)據(jù)送緩沖區(qū)I_END:RETI ;中斷返回中斷返回7.4.2 異步方式應(yīng)用異步方式應(yīng)用單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口7.5 單片機(jī)與單片機(jī)與PC機(jī)通信的接口電路機(jī)通信的接口電路主要內(nèi)容主要內(nèi)容7.5.1 MAX232芯片簡介芯片簡介7.5.2 PC機(jī)與機(jī)與89C52串行通信的接口電路串行通信的接口電路單片機(jī)原理及應(yīng)用(單片機(jī)原理及應(yīng)用(C語言版)第語言版)第7章章MCS-51單片機(jī)串行口單片機(jī)串行口利用利用PC機(jī)配置的異步通信適配器,可以機(jī)配置的異步通信適配器,可以很方便地完成很方便地完成PC機(jī)與單片機(jī)的

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論