《單片機(jī)原理》第五章_第1頁(yè)
《單片機(jī)原理》第五章_第2頁(yè)
《單片機(jī)原理》第五章_第3頁(yè)
《單片機(jī)原理》第五章_第4頁(yè)
《單片機(jī)原理》第五章_第5頁(yè)
已閱讀5頁(yè),還剩51頁(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)介

第5章MCS-51單片機(jī)的串行口及其應(yīng)用5.1串行數(shù)據(jù)通信概述5.2單片機(jī)系統(tǒng)中的串行接口及特點(diǎn)5.3MCS-51單片機(jī)串行口的控制5.4MCS-51單片機(jī)串行口的四種工作方式5.5串行口波特率的設(shè)定5.6串行口應(yīng)用舉例編輯ppt打印機(jī)計(jì)算機(jī)網(wǎng)絡(luò)鼠標(biāo)掃描儀硬盤(pán)2、串行通信接口的應(yīng)用I2CSPIRS232USB5.1.1常見(jiàn)的串行通信接口5.1串行數(shù)據(jù)通信概述1、串行通訊是實(shí)現(xiàn)遠(yuǎn)距離低成本數(shù)據(jù)傳輸?shù)挠行Х椒?。從機(jī)從機(jī)從機(jī)從機(jī)主機(jī)通用機(jī)單片機(jī)照片編輯ppt5.1.2串行通信的分類(lèi)1、同步傳輸和異步傳輸(按照數(shù)據(jù)傳輸方式劃分)5.1串行數(shù)據(jù)通信概述(1)同步方式:以數(shù)據(jù)塊為單位進(jìn)行數(shù)據(jù)傳送,包括同步字符、數(shù)據(jù)塊和校驗(yàn)字符CRC。同步字符數(shù)據(jù)字符1數(shù)據(jù)字符2數(shù)據(jù)字符3數(shù)據(jù)字符nCRC1CRC2(a)單同步字符幀結(jié)構(gòu)同步字符1同步字符2數(shù)據(jù)字符1數(shù)據(jù)字符2數(shù)據(jù)字符nCRC1CRC2(b)雙同步字符幀結(jié)構(gòu)【特點(diǎn)】?jī)?yōu)點(diǎn)是數(shù)據(jù)傳輸速率較高,缺點(diǎn)是要求發(fā)送時(shí)鐘和接收時(shí)鐘保持嚴(yán)格同步。編輯ppt5.1.2串行通信的分類(lèi)1、同步傳輸和異步傳輸(按照數(shù)據(jù)傳輸方式劃分)5.1串行數(shù)據(jù)通信概述(2)異步方式:以字符為單位進(jìn)行數(shù)據(jù)傳送,每一個(gè)字符均按固定的字符格式傳送,又被稱(chēng)為幀。【特點(diǎn)】?jī)?yōu)點(diǎn)是不需要傳送同步脈沖,可靠性高,所需設(shè)備簡(jiǎn)單,發(fā)送與接收相互獨(dú)立,互不同步,但雙方必須使用相同的波特率和字符幀格式;缺點(diǎn)是字符幀中因包含有起始位和停止位而降低了有效數(shù)據(jù)的傳輸速率。D70/1D6D5D4D3D2D1D0D70/1D1D000118位數(shù)據(jù)奇偶校驗(yàn)奇偶校驗(yàn)起始位起始位停止位停止位第n幀字符第n+1幀第n-1幀編輯ppt5.1.2串行通信的分類(lèi)1、同步傳輸和異步傳輸(按照數(shù)據(jù)傳輸方式劃分)5.1串行數(shù)據(jù)通信概述(2)異步方式:以字符為單位進(jìn)行數(shù)據(jù)傳送,每一個(gè)字符均按固定的字符格式傳送,又被稱(chēng)為幀。D70/1D6D5D4D3D2D1D0D70/1D1D000118位數(shù)據(jù)奇偶校驗(yàn)奇偶校驗(yàn)起始位起始位停止位停止位第n幀字符第n+1幀第n-1幀異步通信協(xié)議:①?zèng)]有數(shù)據(jù)發(fā)送時(shí),數(shù)據(jù)線保持“1”狀態(tài);②發(fā)送數(shù)據(jù)時(shí),先發(fā)起始位“0”,其后是數(shù)據(jù);③數(shù)據(jù)后再發(fā)一位停止位“1”。編輯ppt單工:廣播雙工:電話半雙工:對(duì)講機(jī)5.1.2串行通信的分類(lèi)2、單工、雙工、半雙工傳輸(按照數(shù)據(jù)傳輸方向劃分)5.1串行數(shù)據(jù)通信概述編輯ppt5.1.3串行通信速率——波特率5.1串行數(shù)據(jù)通信概述波特率是指每秒鐘傳送信號(hào)的數(shù)量,單位為波特(Baud)。而每秒鐘傳送二進(jìn)制數(shù)的位數(shù)定義為比特率,單位是bps(bitpersecond)或?qū)懗蒪/s(位/秒)。

在單片機(jī)串行通信中,傳送的信號(hào)是二進(jìn)制信號(hào),波特率與比特率數(shù)值上相等。單位采用bps?!纠咳舯忍芈蕿?600bps,則每秒傳輸960幀,即960字符/秒,而每位傳輸時(shí)間:T=1/9600≈0.104(ms)編輯ppt5.2單片機(jī)系統(tǒng)中的串行接口及特點(diǎn)在嵌入式系統(tǒng)中,與并行接口的總線形式相比:串行通訊成為簡(jiǎn)化電路結(jié)構(gòu)的新的接口形式而越來(lái)越多的被采用。MCS-51內(nèi)部含有一個(gè)可編程全雙工串行通信口,具有UART的全部功能。UART(UniversalAsynchronousReceiver/Transmitter)通用異步接收器/發(fā)送器8串-并8并-串發(fā)送接收1時(shí)鐘時(shí)鐘編輯pptMCS51單片機(jī)串行(異步)通訊應(yīng)用示意圖MCS-51(甲)

MCS-51(乙)TXDRXDRXDTXDRS-232或485RS-232或485TXDRXDRS-232PC機(jī)COM1,COM2單片機(jī)甲、乙之間近距離的直接通訊單片機(jī)甲乙兩地之間遠(yuǎn)距離通訊單片機(jī)與PC機(jī)之間的數(shù)據(jù)通訊返回前一次TXDRXDTXDRXD返回5.2單片機(jī)系統(tǒng)中的串行接口及特點(diǎn)編輯ppt5.3.1數(shù)據(jù)緩沖寄存器SBUF(99H)在MCS-51的串行口電路中,SBUF是用來(lái)存放發(fā)送和接收數(shù)據(jù)的兩個(gè)獨(dú)立的緩沖寄存器,在SFR的地址都是99H。CPU執(zhí)行寫(xiě)SBUF指令便開(kāi)始引發(fā)串口的發(fā)送。

MOVSBUF,A當(dāng)串口接收緩沖器接收到一幀數(shù)據(jù)時(shí),可以執(zhí)行下面指令進(jìn)行讀?。?/p>

MOVA,SBUF5.3MCS-51單片機(jī)串行口的控制MCS51通過(guò)數(shù)據(jù)緩沖寄存器SBUF和控制寄存器SCON、PCON實(shí)現(xiàn)對(duì)串行口的控制編輯pptSBUF實(shí)際上是一個(gè)能夠獨(dú)立完成數(shù)據(jù)接收和數(shù)據(jù)發(fā)送操作的復(fù)雜的硬件電路;①CPU只要將數(shù)據(jù)送到發(fā)送SBUF(MOVSBUF,A)后,SBUF便一位一位地發(fā)送數(shù)據(jù),發(fā)送完成后標(biāo)志TI=1;②在CPU允許接收串行數(shù)據(jù)的前提下,外部串行數(shù)據(jù)經(jīng)RXD送入SBUF時(shí),電路便自動(dòng)啟動(dòng)接收,直至完成一幀數(shù)據(jù)后標(biāo)志RI=1。由于發(fā)送SBUF與接收SBUF是兩個(gè)獨(dú)立的緩沖器,所以51串行口是一個(gè)可以同時(shí)發(fā)送與接收的“全雙工”接口。5.3MCS-51單片機(jī)串行口的控制接收SBUF移位寄存器發(fā)送SBUF移位寄存器內(nèi)部總線CPURXDP3.0TXDP3.1編輯pptSM0SM1:串行口工作模式選擇位。SM0SM1SM2RENTB8RB8TIRISM0SM1模式功能波特率000同步移位寄存器模式fosc/1201110位異步通信UART可變10211位異步通信UARTfosc/64或/3211311位異步通信UART可變5.3.2

串行口控制寄存器SCON(SFR地址98H)返回5.3MCS-51單片機(jī)串行口的控制編輯pptRI:完成一幀數(shù)據(jù)接收標(biāo)志,必須由軟件清零,接收完成RI=1并申請(qǐng)中斷(如果中斷開(kāi)放,則引發(fā)中斷);TI

:完成一幀數(shù)據(jù)發(fā)送標(biāo)志,必須由軟件清零,發(fā)送完成TI=1同時(shí)申請(qǐng)中斷(如果中斷開(kāi)放,則引發(fā)中斷);RB8:在9位有效數(shù)據(jù)傳送的模式2、3時(shí),接收到的第9位數(shù)據(jù);TB8:在9位有效數(shù)據(jù)傳送的模式2、3時(shí),將要發(fā)送的第9位數(shù)據(jù);REN:允許接收位,REN=1時(shí)允許接收。由軟件置位或清零。SM2:多機(jī)通信使能位。跳過(guò)中斷撤消返回5.3MCS-51單片機(jī)串行口的控制SM0SM1SM2RENTB8RB8TIRI5.3.2串行口控制寄存器SCON(SFR地址98H)編輯pptSM2:多機(jī)通信使能位.(1)模式0、1時(shí):SM2不用,應(yīng)設(shè)為0。

(2)模式2、3時(shí): 若SM2=0,無(wú)論RB8如何,RI都能被激活(RI=1)。

但RI=1不能引發(fā)中斷!只能用查詢的方式接收數(shù)據(jù)。若SM2=1,收到的第9位(RB8)=0時(shí),則RI不會(huì)被激活; 若SM2=1且RB8=1時(shí),RI才能被激活=1并可引發(fā)中斷。5.3MCS-51單片機(jī)串行口的控制SM0SM1SM2RENTB8RB8TIRI5.3.2串行口控制寄存器SCON(SFR地址98H)返回編輯ppt使用RI、TI標(biāo)志完成數(shù)據(jù)的發(fā)送與接收RI(SCON.0):接收完成標(biāo)志當(dāng)SUBF從RXD接收完一個(gè)完整的數(shù)據(jù)幀時(shí)RI=1,如果中斷是開(kāi)放的,則RI=1時(shí)會(huì)自動(dòng)引發(fā)中斷。用戶可以通過(guò)中斷服務(wù)程序?qū)BUF中的數(shù)據(jù)取出送累加器A。

MOVA,SBUF——在中服程序中接收數(shù)據(jù);

也可以使用查詢的方式對(duì)RI進(jìn)行檢測(cè):

JNBRI,$ ;如果RI≠1則等待

MOVA,SBUF

;RI=1時(shí),取SBUF中數(shù)據(jù)送A由于SBUF與CPU之間各自獨(dú)立工作,那么:①接收數(shù)據(jù)時(shí)CPU何時(shí)讀取SBUF中的數(shù)據(jù)?②發(fā)送數(shù)據(jù)時(shí),CPU何時(shí)再向SBUF發(fā)送下一個(gè)數(shù)據(jù)? ——雙方只能通過(guò)標(biāo)志進(jìn)行協(xié)調(diào)5.3MCS-51單片機(jī)串行口的控制編輯pptTI(SCON.1):發(fā)送完成標(biāo)志。當(dāng)CPU執(zhí)行MOVSBUF,A指令后,便引發(fā)一次串行通信的過(guò)程。SBUF開(kāi)始通過(guò)TXD向外按位發(fā)送數(shù)據(jù)。當(dāng)完成一幀數(shù)據(jù)的發(fā)送后,TI=1。如果系統(tǒng)中斷是開(kāi)放的,則TI=1會(huì)自動(dòng)引發(fā)中斷。用戶可以通過(guò)中斷服務(wù)程序向SBUF輸送下一個(gè)數(shù)據(jù):

CLRTI;軟件清除標(biāo)志,準(zhǔn)備引發(fā)下次中斷

MOVSBUF,A

;在中斷程序中發(fā)送下一個(gè)數(shù)據(jù);也可以使用查詢的方式對(duì)TI進(jìn)行檢測(cè):

JNB TI,$ ;如果TI≠1則等待

CLRTI;軟件清除標(biāo)志,準(zhǔn)備下次發(fā)送

MOVSBUF,A

;TI=1時(shí)發(fā)送下一個(gè)數(shù)據(jù)5.3MCS-51單片機(jī)串行口的控制編輯ppt使用查詢RI、TI標(biāo)志的方式進(jìn)行發(fā)送與接收N個(gè)數(shù)據(jù)CLRSCON.TI數(shù)據(jù)送累加器Amovsbuf,aTI=1?N個(gè)數(shù)據(jù)發(fā)送完?YESNOYESNO發(fā)送數(shù)據(jù)的程序框圖SETBSCON.RENmova,sbufRI=1?N個(gè)數(shù)據(jù)接收完?YESNOYESNOCLRSCON.RIA送數(shù)據(jù)區(qū)接收數(shù)據(jù)程序框圖5.3MCS-51單片機(jī)串行口的控制編輯pptSMOD:串行口波特率倍率控制位SMOD=1時(shí),方式1、2、3的波特率加倍SMOD——————GF1GF0PDIDL5.3.3控制寄存器PCON(SFR地址87H)5.3MCS-51單片機(jī)串行口的控制返回波特率=2SMOD32×(T1溢出率)方式1、3下波特率可變:模式2的波特率固定為:

波特率=2SMOD64×fosc編輯ppt5.4MCS-51串行口的四種工作方式【特點(diǎn)】做同步移位寄存器用。其波特率固定為fosc/12。在這種模式下RXD(P3.0)做數(shù)據(jù)口;TXD(P3.1)做移位脈沖輸出端。在移位過(guò)程中,先移數(shù)據(jù)的低位D0(移位脈沖的頻率就是模式0的波特率)?!局饕δ堋渴褂么锌跀U(kuò)展并行口MCS-51RXDTXDData外部移位寄存器cp移位脈沖串行數(shù)據(jù)并行的數(shù)據(jù)(8位)5.4.1模式0【注意】方式0并不是一種同步通信方式寄存器編輯ppt模式0的時(shí)序信號(hào)(發(fā)送)S1~S6S1~S6S1~S6S1~S6S1~S6S1~S6S1~S6S1~S6S1~S6S1~S6S1~S6寫(xiě)SBUFSENDD1D0D2D3D4D5D6D7RXD端數(shù)據(jù)SHIFTTXD端同步脈沖TI中斷標(biāo)志movsbuf,a

指令從發(fā)送到結(jié)束的10個(gè)機(jī)器周期5.4MCS-51串行口的四種工作方式5.4.1模式0編輯ppt【特點(diǎn)】①10位傳輸格式(1個(gè)起始位+8個(gè)數(shù)據(jù)位+1個(gè)停止位);用于真正遠(yuǎn)距離的異步通訊方式;②波特率可變(定時(shí)器T1的溢出率來(lái)確定,所以首先要對(duì)T1進(jìn)行初始化以確定串行口的波特率)。(1)發(fā)送操作:在TI=0,執(zhí)行movsbuf,a

指令后開(kāi)始,自動(dòng)在8位字符前后分別添加1個(gè)起始位和停止位,并從TXD端開(kāi)始依次發(fā)送一幀數(shù)據(jù)。當(dāng)發(fā)送完后將TI置位。TI5.4.2模式15.4MCS-51串行口的四種工作方式D7D6D5D4D3D2D1D08位數(shù)據(jù)0起始位1停止位TXD編輯ppt(2)接收操作:在REN=1且RI=0的條件下進(jìn)行。串行口的接收電路對(duì)RXD線進(jìn)行采樣,其采樣頻率是接收時(shí)鐘的16倍。當(dāng)連續(xù)8次采集到RXD線上為低電平時(shí),檢測(cè)電路便認(rèn)定RXD線上有了“起始位”,此后,便開(kāi)始在每個(gè)采樣周期中的第7、8、9三個(gè)脈沖時(shí)進(jìn)行RXD采樣,采取“三中取二”的原則來(lái)確定接收的數(shù)據(jù)。D0D1D2D3D4D5D6D7起始位8位數(shù)據(jù)停止位7.8.9RIRXD當(dāng)連續(xù)8次采集到低電平時(shí),便確認(rèn)起始位到來(lái)在每個(gè)第7,8,9個(gè)脈沖對(duì)RXD采樣并采用“以三取二”來(lái)確定采集的數(shù)據(jù)5.4MCS-51串行口的四種工作方式5.4.2模式1編輯ppt當(dāng)接收到停止位時(shí),必須滿足:RI=0且SM2=0,才能把接收的數(shù)據(jù)送到SBUF中(停止位送SCON的RB8中,并使RI=1),否則數(shù)據(jù)丟失。上面的條件意味著:要想得到接收的數(shù)據(jù),在接收前必須事先清零RI。波特率=2SMOD32×(T1溢出率)方式1下波特率可變:5.4MCS-51串行口的四種工作方式D7D6D5D4D3D2D1D0起始位8位數(shù)據(jù)停止位7.8.9RIRXD5.4.2模式1編輯ppt【特點(diǎn)】模式2、3都是11位傳輸格式: 1個(gè)起始位+9個(gè)數(shù)據(jù)位+1個(gè)停止位。

模式2與模式3的區(qū)別僅在波特率上——模式2:固定為fosc/64或fosc/32。(具體由PCON中的SMOD位來(lái)確定)。模式3:可變,由定時(shí)器T1的溢出波特率來(lái)確定(同方式1一樣,為1/32或1/16倍的T1溢出率)。D0D1D2D3D4D5D6D7D8起始位8+1位數(shù)據(jù)停止位第9位015.4.3模式2、3第9位數(shù)據(jù)由用戶安排,可以是奇偶校驗(yàn)位,可以是其他控制位5.4MCS-51串行口的四種工作方式編輯ppt5.4MCS-51串行口的四種工作方式模式2、3的發(fā)送過(guò)程類(lèi)似于模式1,唯一的區(qū)別在于數(shù)據(jù)幀中數(shù)據(jù)是9位。這樣,在發(fā)送一幀數(shù)據(jù)時(shí),CPU除了要把8位數(shù)據(jù)送SBUF外(movsbuf,a),還要事先將第9位數(shù)據(jù)送到SCON.TB8中。SETBSCON.TB8

或:

CLRSCON.TB8

例如:

SETBSCON.TB8

或:

CLRSCON.TB8MOVSBUF,AMOVSBUF,ASCON(98H)(1)發(fā)送5.4.3模式2、3SM0SM1SM2RENTB8RB8TIRI編輯pptRI=0是保證下一個(gè)數(shù)據(jù)的正常接收的重要條件。每次當(dāng)SBUF收到數(shù)據(jù)時(shí),RI自動(dòng)置1。當(dāng)取走數(shù)據(jù)時(shí)必須通過(guò)軟件復(fù)位RI(指令CLRRI),否則外部發(fā)來(lái)的數(shù)據(jù)將丟失!模式2、3的接收過(guò)程類(lèi)似于模式1,不同的是:模式1時(shí),SCON中的RB8是接收到的停止位“1”;而模式2、3時(shí),RB8是接收到的第9位(D8)。5.4MCS-51串行口的四種工作方式(2)接收5.4.3模式2、3編輯ppt串行口模式2、3時(shí)數(shù)據(jù)幀格式發(fā)送時(shí):將SCON中的TB8作為第9位數(shù)據(jù)發(fā)送;接收時(shí):將接收來(lái)的第9位送到SCON中的RB8中。5.4MCS-51串行口的四種工作方式5.4.3模式2、3D0D1D2D3D4D5D6D7D8起始位8+1位數(shù)據(jù)停止位01SM0SM1SM2RENTB8RB8TIRI返回編輯ppt在串行口的異步通訊中,發(fā)送方與接收方是兩個(gè)互相獨(dú)立的系統(tǒng),它們的系統(tǒng)時(shí)鐘可以各不相同(如圖所示)。在這種條件下使通訊正確的條件是:

(1)要有相同的字符幀格式;(2)要有相同的波特率。5.5串行口波特率的設(shè)定編輯pptSM0SM1模式功能波特率000同步移位寄存器模式fosc/1201110位異步通信UART可變,由T1初值確定10211位異步通信UARTfosc/64或/32*11311位異步通信UART可變,由T1初值確定*當(dāng)SMOD=1時(shí),B=fosc/32;當(dāng)SMOD=0時(shí),B=fosc/64。3、模式1、3的波特率由T1的溢出率來(lái)決定的(SMOD=1使波特率加倍)。MCS-51單片機(jī)的串行口4種模式其波特率各不相同1、模式0的波特率無(wú)需用戶干預(yù),其固定值為fosc/122、模式2的波特率為fosc/64或fosc/32,用戶通過(guò)設(shè)置SMOD來(lái)選擇其一。5.5串行口波特率的設(shè)定編輯ppt模式1、3的波特率設(shè)定模式1、3下的波特率計(jì)算公式:在編制串行口通訊(模式1、3)程序時(shí),在初始化程序中,通過(guò)T1進(jìn)行波特率的設(shè)定,即對(duì)T1進(jìn)行初始化。T1初始化的主要任務(wù):(1)設(shè)置T1為定時(shí)(C/T=0)、模式2(自動(dòng)重裝)方式。(2)計(jì)算定時(shí)常數(shù)并分別送給TH1、TL1。T1溢出率:=(計(jì)數(shù)速率)/[256-(TH1)]=(fosc/12)/[256-(TH1)]波特率=2SMOD32×(T1溢出率)

T=(M-TC)×Tosc×12其中,T:定時(shí)時(shí)間;Tosc:時(shí)鐘周期;M:模;TC:計(jì)數(shù)初值。5.5串行口波特率的設(shè)定編輯ppt根據(jù)波特率求初值TH的計(jì)算公式B=fosc/[384×(256-TH)];(SMOD=0時(shí))或B=fosc/[192×(256-TH)];(SMOD=1時(shí))其中:fosc為系統(tǒng)時(shí)鐘頻率,TH為定時(shí)器T1的初值。所以可以推出:

TH=256-[fosc/(384*B)];(SMOD=0時(shí))或:TH=256-[fosc/(192*B)];(SMOD=1時(shí))【例】設(shè)系統(tǒng)時(shí)鐘為11.0592MHz,要求波特率為1200Hz,求TH。【解】用上述公式有(設(shè)SMOD=0):TH=256-[11.0592MHz/(384×1200)]=232=0E8H5.5串行口波特率的設(shè)定返回編輯ppt為什么51系列單片機(jī)常用11.0592MHz的晶振?因?yàn)樗軌驕?zhǔn)確地劃分成時(shí)鐘頻率,與UART(通用異步接收器/發(fā)送器)常見(jiàn)的波特率相關(guān)。

常用波特率通常按規(guī)范取1200、2400、4800、9600、…,特別是較高的波特率(9600,19200),用11.0592MHz可以得到準(zhǔn)確的數(shù)值,而用12MHz或6MHz就不能得到整數(shù)數(shù)值。通信是一定要準(zhǔn)確發(fā)送和接受的,否則積累誤差就會(huì)產(chǎn)生。5.5串行口波特率的設(shè)定編輯ppt5.6串行口的應(yīng)用舉例在編制串行通訊程序時(shí),通訊雙方必須保證:

(1)相同的“波特率”;(2)相同的“字符幀格式”格式。MCS-51串口的4種模式中:0、2模式的波特率是固定的;1和3模式時(shí)波特率是可變且由定時(shí)器T1來(lái)作波特率發(fā)生器(以模式2的方式工作)。根據(jù)波特率計(jì)算T1的初值TC,串口程序初始化任務(wù)之一。在通訊過(guò)程中,對(duì)標(biāo)志(RI、TI)的判斷是控制通訊全過(guò)程的關(guān)鍵環(huán)節(jié)。編輯ppt四種模式的接收、發(fā)送條件模式發(fā)送條件接收條件收發(fā)方式主要應(yīng)用0TI=0RI=0,REN=1查詢、中斷同步移位,系統(tǒng)擴(kuò)并口1TI=0RI=0,REN=1查詢、中斷8位數(shù)據(jù)異步傳送2、3TI=0RI=0,REN=1,SM2=0查詢(無(wú)中斷)8位數(shù)據(jù)+奇偶位的異步收發(fā)UARTRI=0,REN=1,SM2=1若RB8=0時(shí)接收無(wú)效;若RB8=1時(shí)引發(fā)中斷。8位數(shù)據(jù)+控制位的異步收發(fā)UART5.6串行口的應(yīng)用舉例編輯ppt

【例】使用串入/并出移位寄存器CD4094(也可用74LS164)擴(kuò)展8位并行輸出口,8位輸出端的各位都接一個(gè)發(fā)光二極管。要求編程實(shí)現(xiàn):發(fā)光二極管從左到右以一定延遲輪流點(diǎn)亮,并不斷循環(huán)。8051

Data

CD4094CLK移位脈沖串行數(shù)據(jù)STBP1.0RXDTXDSTB:輸出允許控制端,STB=1時(shí),允許并行輸出5.6.1模式0舉例——串并變換5.6串行口的應(yīng)用舉例編輯ppt8051

Data

CD4094CLKSTBP1.0RXDTXDORG0200HBFS0:MOVSCON,#00H;模式0CLRES;禁止串行中斷MOVA,#80HLOOP:CLRP1.0MOVSBUF,AJNBTI,$SETBP1.0ACALLDELAYCLRTIRRASJMPLOOPRET編程(查詢方式)5.6串行口的應(yīng)用舉例SM0SM1SM2RENTB8RB8TIRI編輯ppt

【例2】利用串行模式0構(gòu)成的2位LED數(shù)碼管驅(qū)動(dòng)電路MCS-51P3.0P3.1P1.0QAQHA,B74LS164/CLRCLKQAQHA,B74LS164/CLRCLKRXDTXD共陰極LED數(shù)碼管.gfedcba共陰極LED數(shù)碼管.gfedcba5.6串行口的應(yīng)用舉例編輯ppt5.6.2模式1舉例——雙機(jī)通信

要求實(shí)現(xiàn)如下功能:?jiǎn)纹瑱C(jī)甲將P1口輸入的數(shù)據(jù)通過(guò)串行口發(fā)送給單片機(jī)乙,單片機(jī)乙將收到的數(shù)據(jù)在P1口輸出,并用指示燈顯示當(dāng)前收到的數(shù)據(jù)。(設(shè)系統(tǒng)時(shí)鐘為11.0592MHz,要求波特率為1200bps)MCS-51TXDP1.7P1.0MCS-51RXDP1.7P1.0∶8路開(kāi)關(guān)量輸入∶8路開(kāi)關(guān)量輸出串行口傳輸線乙甲GNDGND思考:可否用模式0或模式2?5.6串行口的應(yīng)用舉例編輯ppt編程——發(fā)送方(單片機(jī)甲)SM0SM1SM2RENTB8RB8TIRIGATEC/TM1M0GATEC/TM1M0TMOD為00100000B=20HSCON為01000000B=40HT1初始化啟動(dòng)T1串行口初始化輸入數(shù)據(jù)到A發(fā)送一幀數(shù)據(jù)MOVSBUF,ATI=1?軟件清TIYN1、串行口工作在模式12、定時(shí)器T1用作波特率發(fā)生器,工作于模式2(自動(dòng)重裝初值)3、采用查詢方式發(fā)送數(shù)據(jù)5.6串行口的應(yīng)用舉例編輯ppt發(fā)送方程序清單

org0000hljmp0100horg0100hstart:movtmod,#20h ;設(shè)定時(shí)器T1定時(shí)方式、模式2

movTL1,#0E8h;送定時(shí)初值(fosc=11.0592)movTH1,#0E8h;波特率B=1200

movpcon,#00h ;PCON中的SMOD=0

setbTR1 ;啟動(dòng)定時(shí)器T1

movscon,#40h ;設(shè)定串行口為模式1loop2:movp1,#0ffh

mova,p1 ;從P1口輸入數(shù)據(jù)

movsbuf,a ;數(shù)據(jù)送SBUF發(fā)送loop1:

jnbti,loop1 ;判斷數(shù)據(jù)是否發(fā)送完畢?

clrti ;發(fā)送完一幀后清標(biāo)志sjmp

loop2

;返回繼續(xù)波特率計(jì)算5.6串行口的應(yīng)用舉例編輯ppt定時(shí)器TMOD為00100000B=20HSCON(98H)為01010000B=50H編程——接收方(單片機(jī)乙)1、串行口工作在模式12、定時(shí)器T1用作波特率發(fā)生器,工作于模式2(自動(dòng)重裝初值)3、采用查詢方式接收數(shù)據(jù)5.6串行口的應(yīng)用舉例T1初始化啟動(dòng)T1串行口初始化輸出數(shù)據(jù)到P1RI=1?軟件清RIYN數(shù)據(jù)送AMOVA,SBUFSM0SM1SM2RENTB8RB8TIRIGATEC/TM1M0GATEC/TM1M0編輯ppt org0000h ljmpstart org0100hstart: movtmod,#20h ;選定T1為模式2(自動(dòng)重裝) movtl1,#0E8h ;設(shè)定初值 movth1,#0E8h ;同上 movpcon,#00h ;PCON的SMOD=0 setbtr1 ;啟動(dòng)T1定時(shí)器

clrri ;清接收標(biāo)志 movscon,#50h ;設(shè)定串行口為方式1loop1:

jnbri,loop1 ;判斷是否接收到數(shù)據(jù)?

clrri ;接收到數(shù)據(jù)后清接收標(biāo)志 mova,sbuf ;數(shù)據(jù)送累加器A movp1,a ;從P1口輸出 sjmploop1

;回繼續(xù)接收方程序清單5.6串行口的應(yīng)用舉例編輯ppt用中斷的方式接收數(shù)據(jù) org0000h ljmpstart org0023h ljmptxd1 org0100hstart: movtmod,#20h;選定T1為模式2(自動(dòng)重裝) movtl1,#0E8h;設(shè)定初值 movth1,#0E8h;同上 movpcon,#00h;PCON的SMOD=0 setbtr1 ;啟動(dòng)T1定時(shí)器 clrri ;清接收標(biāo)志 movscon,#50h;設(shè)定串行口為方式1,接收

movie,#90h ;開(kāi)串行口中斷 sjmp$;等待一幀數(shù)據(jù)接收完成(中斷) org0200hrxd1: clrri ;接收到數(shù)據(jù)后清接收標(biāo)志 mova,sbuf ;數(shù)據(jù)送累加器A movp1,a ;從P1口輸出 retiLJMP01H00HLJMP02H00HMOVCLR0000H0023H0100H0200H5.6串行口的應(yīng)用舉例編輯ppt中斷方式接收程序框圖EAXXESET1EX1ET0EX0中斷允許寄存器IE為10010000B=90H5.6串行口的應(yīng)用舉例輸出數(shù)據(jù)到P1接收一幀數(shù)據(jù)MOVA,SBUF軟件清RIRETI中斷服務(wù)程序框圖T1初始化并啟動(dòng)T1串行口初始化開(kāi)串行口中斷等待RI中斷主程序框圖編輯ppt5.6.3模式2、3應(yīng)用舉例與模式1相比,模式2、3的主要特點(diǎn):(1)9位數(shù)據(jù)的傳送格式:發(fā)送時(shí)第9位在TB8中;接收時(shí)第9位在RB8中。(2)SM2:多機(jī)通訊位:

模式0、1中:設(shè)SM2=0,RI可以正常的激活并引發(fā)中斷。模式2、3中:①SM2=0時(shí),RI能被激活,但不能引發(fā)中斷;②

SM2=1時(shí),當(dāng)RB8=1,RI可以激活且引發(fā)中斷;若RB8=0則不能激活RI,不能引發(fā)中斷!根據(jù)上面特點(diǎn),模式2、3可以:(1)利用第9位數(shù)據(jù)來(lái)傳送、接收數(shù)據(jù)的“奇偶校驗(yàn)位”(SM2=0)。(2)利用SM2、RB8實(shí)現(xiàn)多機(jī)通訊功能(SM2=1)。5.6串行口的應(yīng)用舉例返回編輯ppt【例】收發(fā)雙方約定為奇校驗(yàn)(9位數(shù)據(jù)中1的個(gè)數(shù)為奇),如何編程實(shí)現(xiàn)?【分析】發(fā)送方的第9位(存于TB8中)要根據(jù)前8位數(shù)據(jù)來(lái)確定。

若發(fā)送的8位數(shù)據(jù)是:00011010,則TB8為0。這樣當(dāng)接收方將SBUF的數(shù)據(jù)送A時(shí)(MOVA,SBUF),A中數(shù)據(jù)是:00011010。這時(shí)PSW.P=1,且RB8=0;若發(fā)送的8位數(shù)據(jù)是:00011011,則TB8為1。這樣當(dāng)接收方將SBUF的數(shù)據(jù)送A時(shí)(MOVA,SBUF),A中數(shù)據(jù)是:00011011。這時(shí)PSW.P=0,且RB8=1;接收方進(jìn)行P⊕RB8運(yùn)算,僅當(dāng)結(jié)果為1時(shí)通信才正確。

用第9位數(shù)據(jù)作為奇校驗(yàn)位,使通信數(shù)據(jù)的正確性得以提高。1、帶奇偶校驗(yàn)位的數(shù)據(jù)傳送5.6串行口的應(yīng)用舉例5.6.3模式2、3應(yīng)用舉例編輯ppt利用模式2、3進(jìn)行帶奇校驗(yàn)的串行通訊程序流程圖發(fā)送端程序(原始TI=0)接收端程序(原始RI=0)5.6串行口的應(yīng)用舉例數(shù)據(jù)送累加器APSW.P=1?SETSCON.TB8CLRSCON.TB8MOVSBUF,ATI=1?CLRSCON.TIYNNYRI=1?MOVA,SBUFPSW.P⊕RB8=1?出錯(cuò)處理CLRSCON.RIYNNY數(shù)據(jù)送內(nèi)存編輯ppt模式2、3使用時(shí)要注意的問(wèn)題在模式2、3中,可以實(shí)現(xiàn)較為特殊的通訊方式,如帶校驗(yàn)位的9位傳送、多機(jī)通訊。注意:當(dāng)SM2=0時(shí),只能采用查詢方式。功能SM2第9位工作方式帶校驗(yàn)位的9位數(shù)傳送SM2=0校驗(yàn)位以查詢(RI)的方式接收數(shù)據(jù)多機(jī)通訊主機(jī)SM2=0地址碼:TB8=1數(shù)據(jù)、命令時(shí)=0以查詢的方式工作從機(jī)SM2=1未選中時(shí)SM2不變以中斷的方式接收地址選中后SM2=0以查詢的方式與主機(jī)通訊轉(zhuǎn)至多機(jī)通信例子5.6串行口的應(yīng)用舉例編輯ppt關(guān)于SM2的設(shè)定對(duì)于接收操作:

模式1:SM2無(wú)用,令其=0即可。此時(shí)接收數(shù)據(jù)條件是:RI=0且REN=1。單片機(jī)可以利用查詢或中斷方式為串口服務(wù)。

模式2、3的接收條件是:(除了RI=0、REN=1外)①當(dāng)

SM2=0時(shí):RI可以被激活(但不能引發(fā)中斷);

②當(dāng)SM2=1時(shí):接收到RB8=1時(shí),RI不僅能激活,還能引發(fā)中斷。可見(jiàn):當(dāng)SM2=1時(shí),單片機(jī)是否能接收到數(shù)據(jù)取決于外部數(shù)據(jù)的第9位RB8。這樣外部可以通過(guò)第九位數(shù)據(jù)是“0”還是“1”來(lái)控制、決定單片機(jī)的接收狀況。5.

溫馨提示

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