版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
單片機原理與應(yīng)用設(shè)計[張毅剛等編著][電子教案]單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第1頁1/39第7章89C51串行口全雙工異步通訊串行口4種工作方式,波特率由片內(nèi)定時器/計數(shù)器控制。每發(fā)送或接收一幀數(shù)據(jù),均可發(fā)出中止請求。除用于串行通訊,還可用來擴展并行I/O口。7.1串行口結(jié)構(gòu)串行口內(nèi)部結(jié)構(gòu)以以下圖,兩個物理上獨立地接收和發(fā)送緩沖器,可同時收、發(fā)數(shù)據(jù)(全雙工)。兩個緩沖器共用一個特殊功效存放器字節(jié)地址:SBUF(99H)
單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第2頁2/39控制存放器共兩個:特殊功效存放器SCON和PCON。7.1.1串行口控制存放器SCON
字節(jié)地址98H,可位尋址,格式如圖7-2所表示。
單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第3頁3/39(1)SM0、SM1——串行口4種工作方式選擇位
表7-1串行口4種工作方式SM0SM1方式 功能說明
000同時移位存放器方式(用于擴展I/O口)0118位異步收發(fā),波特率可變(由定時器控制)1029位異步收發(fā),波特率為fosc/64或fosc/321139位異步收發(fā),波特率可變(由定時器控制)(2)SM2——多機通信控制位
用于方式2或方式3中。圖7-2單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第4頁4/39當串行口以方式2或方式3接收時,假如SM2=1,只有當接收到第9位數(shù)據(jù)(RB8)為“1”時,才將接收到前8位數(shù)據(jù)送入SBUF,并置“1”RI,產(chǎn)生中止請求;當接收到第9位數(shù)據(jù)(RB8)為“0”時,則將接收到前8位數(shù)據(jù)丟棄。假如SM2=0,則不論第9位數(shù)據(jù)是“1”還是“0”,都將前8位數(shù)據(jù)送入SBUF中,并置“1”RI,產(chǎn)生中止請求。方式1時,假如SM2=1,則只有收到停頓位時才會激活RI。方式0時,SM2必須為0。
(3)REN——允許串行接收位由軟件置“1”或清“0”。
單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第5頁5/39
REN=1允許串行口接收數(shù)據(jù)。
REN=0禁止串行口接收數(shù)據(jù)。
(4)TB8——發(fā)送第9位數(shù)據(jù)方式2和3時,TB8是要發(fā)送第9位數(shù)據(jù),可作為奇偶校驗位使用,也可作為地址幀或數(shù)據(jù)幀標志。
=1為地址幀,=0為數(shù)據(jù)幀(5)RB8——接收到第9位數(shù)據(jù)方式2和3時,RB8存放接收到第9位數(shù)據(jù)。在方式1,假如SM2=0,RB8是接收到停頓位。在方式0,不使用RB8。
(6)TI——發(fā)送中止標志位單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第6頁6/39方式0時,串行發(fā)送第8位數(shù)據(jù)結(jié)束時由硬件置“1”,其它工作方式,串行口發(fā)送停頓位開始時置“1”。TI=1,表示一幀數(shù)據(jù)發(fā)送結(jié)束,可供軟件查詢,也可申請中止。CPU響應(yīng)中止后,向SBUF寫入要發(fā)送下一幀數(shù)據(jù)。TI必須由軟件清0。(7)RI——接收中止標志位
方式0時,接收完第8位數(shù)據(jù)時,RI由硬件置1。其它工作方式,串行接收到停頓位時,該位置“1”。RI=1,表示一幀數(shù)據(jù)接收完成,并申請中止。該位狀態(tài)也可軟件查詢。RI必須由軟件清“0”。7.1.2特殊功效存放器PCON
字節(jié)地址為87H,沒有位尋址功效。
單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第7頁7/39SMOD:波特率選擇位。比如:方式1波特率計算公式為:
方式1波特率=(2SMOD/32)×定時器T1溢出率也稱SMOD位為波特率倍增位。7.2串行口4種工作方式7.2.1方式0同時移位存放器輸入/輸出方式,慣用于外接移位存放器,以擴展并行I/O口。8位數(shù)據(jù)為一幀,不設(shè)起始位和停頓位,先發(fā)送或接收最低 單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第8頁8/39位。波特率固定為fosc/12。幀格式以下:1.方式0發(fā)送
當CPU執(zhí)行一條將數(shù)據(jù)寫入發(fā)送緩沖器SBUF指令時,產(chǎn)生一個正脈沖,串行口即把SBUF中8位數(shù)據(jù)以fosc/12固定波特率從RXD引腳串行輸出,低位在先,TXD引腳輸出同時移位脈沖,發(fā)送完8位數(shù)據(jù)置“1”中止標志位TI。時序如圖7-5所表示。2.方式0接收
REN=1,接收數(shù)據(jù),REN=0,禁止接收。單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第9頁9/39REN=1,允許接收。向串口SCON寫入控制字(置為方式0,并置“1”REN位,同時RI=0)時,產(chǎn)生一個正脈沖,串行口即開始接收數(shù)據(jù)。RXD為數(shù)據(jù)輸入端,TXD為移位脈沖信號輸出端,接收器也以fosc/12固定波特率采樣RXD引腳數(shù)據(jù)信息,當收到8位數(shù)據(jù)時置“1”RI。表示一幀數(shù)據(jù)接收完,時序以下:圖7-5單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第10頁10/39方式0下,SCON中TB8、RB8位沒有用到,發(fā)送或接收完8位數(shù)據(jù)由硬件置“1”TI或RI,CPU響應(yīng)中止。TI或RI須由用戶軟件清“0”,可用以下指令:
CLRTI ;TI位清“0” CLRRI ;RI位清“0”方式0時,SM2位必須為0。圖7-6單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第11頁11/397.2.2方式1
SM0、SM1=01方式1一幀數(shù)據(jù)為10位,1個起始位(0),8個數(shù)據(jù)位,1個停頓位(1),先發(fā)送或接收最低位。幀格式如圖7-7:方式1波特率=(2SMOD/32)×定時器T1溢出率SMOD為PCON存放器最高位值(0或1)。圖7-7單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第12頁12/39
1.方式1發(fā)送
方式1輸出,數(shù)據(jù)由TXD輸出,一幀信息為10位,1位起始位0,8位數(shù)據(jù)位(先低位)和1位停頓位1。當執(zhí)行一條數(shù)據(jù)寫發(fā)送緩沖器SBUF指令,就開啟發(fā)送。圖中TX時鐘是發(fā)送波特率。發(fā)送開始時,內(nèi)部發(fā)送控制信號變?yōu)橛行А⑵鹗嘉幌騎XD輸出,今后,每經(jīng)過一個TX時鐘周期,便產(chǎn)生一個移位脈沖,并由TXD輸出一個數(shù)據(jù)位。8位數(shù)據(jù)位全部發(fā)送完成后,置“1”TI。方式1發(fā)送數(shù)據(jù)時序,如圖7-8所表示。單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第13頁13/392.方式1接收
數(shù)據(jù)從RXD(P3.0)腳輸入。當檢測到起始位負跳變時,開始接收數(shù)據(jù)。定時控制信號有兩種):接收移位時鐘(RX時鐘,頻率和波特率相同)和位檢測器采樣脈沖(頻率是RX時鐘16倍,1位數(shù)據(jù)期間,有16個采樣脈沖),當采樣到RXD端從1到0跳變時就開啟檢測器,接收值是3次連續(xù)采樣(第7、8、9個脈沖圖7-8單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第14頁14/39時采樣)進行表決以確認是否是真正起始位(負跳變)開始。當一幀數(shù)據(jù)接收完,須同時滿足兩個條件,接收才真正有效。⑴RI=0,即上一幀數(shù)據(jù)接收完成時,RI=1發(fā)出中止請求已被響應(yīng),SBUF中數(shù)據(jù)已被取走,說明“接收SBUF”已空。⑵SM2=0或收到停頓位=1(方式1時,停頓位已進入RB8),圖7-9單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第15頁15/39則收到數(shù)據(jù)裝入SBUF和RB8(RB8裝入停頓位),且置“1”中止標志RI。若這兩個條件不一樣時滿足,收到數(shù)據(jù)將丟失。7.2.3方式29位異步通信接口。每幀數(shù)據(jù)均為11位,1位起始位0,8位數(shù)據(jù)位(先低位),1位可程控第9位數(shù)據(jù)和1位停頓位。幀格式如圖7-10。方式2波特率=(2SMOD/64)×fosc
圖7-10單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第16頁16/391.方式2發(fā)送發(fā)送前,先依據(jù)通訊協(xié)議由軟件設(shè)置TB8(比如,雙機通訊時奇偶校驗位或多機通訊時地址/數(shù)據(jù)標志位)。方式2發(fā)送數(shù)據(jù)波形如圖7-11所表示。
圖7-11單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第17頁17/39例7-1
方式2發(fā)送在雙機通訊中應(yīng)用。下面發(fā)送中止服務(wù)程序,是在雙機通訊中,以TB8作為奇偶校驗位,處理方法為數(shù)據(jù)寫入SBUF之前,先將數(shù)據(jù)奇偶校驗位寫入TB8,以確保采取偶校驗發(fā)送。
PIPTI:PUSHPSW;現(xiàn)場保護PUSHAcc
SETBRS1;選擇第2組工作存放器區(qū)CLRRS0CLRTI;發(fā)送中止標志清“0”MOVA,@R0;取數(shù)據(jù)單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第18頁18/39
MOVC,P ;校驗位送TB8,采取偶校驗 MOVTB8,C MOVSBUF,A ;開啟發(fā)送 INCR0 ;數(shù)據(jù)指針加1 POPAcc ;恢復(fù)現(xiàn)場 POPPSW RETI ;中止返回2.方式2接收
SM0、SM1=10,且REN=1。數(shù)據(jù)由RXD端輸入,接收11位信息。當位檢測到RXD從1到0負跳變,并判斷起始位有效后,開始收一幀信息。在接收器完第9位數(shù)據(jù)后,需滿足兩個條件,才能將接收到數(shù)據(jù)送入SBUF。單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第19頁19/39(1)RI=0,意味著接收緩沖器為空。(2)SM2=0或接收到第9位數(shù)據(jù)位RB8=1時。當上述兩個條件滿足時,接收到數(shù)據(jù)送入SBUF(接收緩沖器),第9位數(shù)據(jù)送入RB8,并置“1”RI。若不滿足兩個條件,接收信息將被丟棄。方式2接收數(shù)據(jù)時序如圖7-12所表示。
例7-2
方式2接收在雙機通訊中應(yīng)用。圖7-12單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第20頁20/39本例與上例相對應(yīng)。若第9位數(shù)據(jù)為校驗位,在接收程序中作偶校驗處理,設(shè)1組存放器區(qū)R0為數(shù)據(jù)緩沖器指針。
PIRI: PUSHPSW PUSHAcc SETBRS0 ;選擇1組存放器區(qū) CLRRS1 CLRRI MOVA,SBUF ;收到數(shù)據(jù)送A MOVC,P JNCL1 ;C=0。跳L1 JNBRB8,ERP ;ERP為犯錯處理程序
單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第21頁21/39
AJMPL2L1: JBRB8,ERP ;RB8=1,跳ERPL2: MOV@R0,A INCR0 POPAcc POPPSW
ERP: ……… ;犯錯處理程序段 ……… RETI7.2.4方式3SM0、SM1=11,串口為方式3。波特率可變9位異步通訊方式,除波特率外,方式3和方式2相同。方式3時序見方式2。單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第22頁22/39
方式3波特率=(2SMOD/32)×定時器T1溢出率7.3多機通信要確保主機與所選擇從機實現(xiàn)可靠地通信,必須確保串口含有識別功效。SCON中SM2位就是滿足這一條件而設(shè)置多機通信控制位。原理:在串行口以方式2(或方式3)接收時,若SM2=1,表示置多機通信功效位,這時有兩種可能:(1)接收到第9位數(shù)據(jù)為1時,數(shù)據(jù)才裝入SBUF,并置中止標志RI=1向CPU發(fā)出中止請求;(2)接收到第9位數(shù)據(jù)為0時,則不產(chǎn)生中止標志,信息將拋棄。單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第23頁23/39若SM2=0,則接收第9位數(shù)據(jù)不論是0還是1,都產(chǎn)生RI=1中止標志,接收到數(shù)據(jù)裝入SBUF中。上述特征,便可實現(xiàn)89C51多機通信。
設(shè)多機系統(tǒng)中有一主機和3個8031從機,如圖7-13。主機RXD與從機TXD相連,主機TXD與從機RXD端相連。從機地址分別為00H、01H、02H。
圖7-13單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第24頁24/39多機通信工作過程:(1)從機串行口編程為方式2或方式3接收,且置“1”SM2和REN位,使從機只處于多機通訊且接收地址幀狀態(tài)。(2)主機先將從機地址(即準備接收數(shù)據(jù)從機)發(fā)給各從機,主機發(fā)出地址信息第9位為1,各從機接收到第9位信息RB8為1,且因為SM2=1,則置“1”RI,各從機響應(yīng)中止,執(zhí)行中止程序。在中止服務(wù)子程序中,判主機送來地址是否和本機地址相符合,相符則該從機清“0”SM2位,準備接收主機數(shù)據(jù)或命令;若不符,則保持SM2=1狀態(tài)。單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第25頁25/39(3)接著主機發(fā)送數(shù)據(jù)幀,此時各從機串行口接收到RB8=0,只有地址相符合從機系統(tǒng)(即已清“0”SM2位從機)才能激活RI,從而進入中止,在中止程序中接收主機數(shù)據(jù)(或命令);
其它從機因SM2=1,又RB8=0不激活中止標志RI,不能進入中止,接收數(shù)據(jù)丟失。圖7-13所表示多機系統(tǒng)是主從式,由主機控制多機之間通信,從機和從機通訊只能經(jīng)主機才能實現(xiàn)。7.4波特率制訂方法方式0、方式2波特率是固定;方式1、方式3波特率由定時器T1溢出率來確定。單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第26頁26/397.4.1波特率定義波特率定義。對于定時器不一樣工作方式,波特率范圍不一7.4.2定時器T1產(chǎn)生波特率計算(1)方式0波特率=時鐘頻率fosc×1/12,不受SMOD位值影響。若fosc=12MHz,波特率為fosc/12即1Mb/s。(2)方式2波特率=(2SMOD/64)×fosc
若fosc=12MHz:SMOD=0波特率=187.5kb/s;
SMOD=1波特率=375kb/s
單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第27頁27/39(3)方式1或方式3時,波特率為:
波特率=(2SMOD/64)×T1溢出率實際設(shè)定波特率時,T1常設(shè)置為方式2定時(自動裝初值)這種方式不但操作方便,也可預(yù)防因軟件重裝初值而帶來定時誤差。實際使用時,為預(yù)防煩雜初值計算,慣用波特率和初值X間關(guān)系列成表7-2(P124),以供查用。表7-2有兩點需要注意:(1)時鐘振蕩頻率為12MHz或6MHz時,表中初值X和對應(yīng)波特率之間有一定誤差。比如,F(xiàn)DH對應(yīng)理論值是10416波特(時鐘6MHz)。與9600波特相差816波特,單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第28頁28/39消除誤差能夠調(diào)整時鐘振蕩頻率fosc實現(xiàn)。比如采取時鐘振蕩頻率為11.0592MHz。(2)假如串行通訊選取很低波特率,比如,波特率選為55,可將T1設(shè)置為方式1定時。但在T1溢出時,需用在中止服務(wù)程序中重新裝入初值。中止響應(yīng)時間和執(zhí)行指令時間會使波特率產(chǎn)生一定誤差,可用改變初值方法加以調(diào)整。例7-3
若8031單片機時鐘振蕩頻率為11.0592MHz,選取T1為方式2定時作為波特率發(fā)生器,波特率為2400b/s,求初值。
上述結(jié)果可直接從表7-2中查到。這里時鐘振蕩頻率選為11.0592MHz,就可使初值為整數(shù),從而產(chǎn)生準確波特率。單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第29頁29/397.5串行口編程和應(yīng)用
介紹89C51之間雙機串行通信硬件接口和軟件設(shè)計。
7.5.1雙機串行通信硬件接口89C51串行口為TTL電平。這種以TTL電平串行傳輸數(shù)據(jù)方式,抗干擾性差,傳輸距離短。為了提升串行通信可靠性,增大串行通信距離,普通都采取標準串行接口,如RS-232、RS-422A、RS-485等來實現(xiàn)串行通信。依據(jù)89C51雙機通信距離和抗干擾性要求,可選擇TTL電平傳輸,或選擇RS-232C、RS-422A、RS485串行接口進行串行數(shù)據(jù)傳輸。單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第30頁30/391.TTL電平通信接口假如兩個89C51單片機相距在幾米之內(nèi),它們串行口可直接相連,從而直接用TTL電平傳輸方法來實現(xiàn)雙機通信,接口電路如圖7-14所表示。圖7-14單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第31頁31/392.RS-232C雙機通信接口假如雙機通信距離在30m之內(nèi),可利用RS-232C標準接口實現(xiàn)點對點雙機通信,接口電路如圖7-15所表示。圖7-15中MAX232A是美國MAXIM企業(yè)生產(chǎn)RS-232C雙工發(fā)送器/接收器電路芯片。圖7-15單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第32頁32/393.RS-422A雙機通信接口為了增加通信距離,能夠在通信線路上采取光電隔離方法,利用RS-422A標準進行雙機通信,最大傳輸距離可達1000m左右,其接口電路如圖7-16所表示。圖7-16中SN75174、SN75175是TTL電平到RS-232電平與RS-232電平到TTL電平電平轉(zhuǎn)換芯片。圖7-16單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第33頁33/394.RS-485雙機通信接口RS-422A雙機通信需四芯傳輸線,這對長距離通信很不經(jīng)濟,故在工業(yè)現(xiàn)場,通常采取雙絞線傳輸RS-485串行通信接口,它很輕易實現(xiàn)多機通信。圖7-17給出了其RS-485雙機通信接口電路,最大傳輸距離可達1000m左右。圖7-17單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第34頁34/397.5.2雙機串行通信軟件編程4種工作方式中方式0是移位存放器工作方式,主要用于擴展并行I/O用,并不用于串行通信。串行口方式1~3是用于串行通信,下面介紹串行口方式1~3雙機串行通信軟件編程。軟件編程實際上與上面介紹各種串行標準硬件接口電路無關(guān)。1.串行口方式1應(yīng)用編程例7-4本例采取方式1進行雙機串行通信,收、發(fā)雙方均采取6MHz晶振,波特率為2400b/s,每一幀信息為10位,第0位為起始位,第1~8位為數(shù)據(jù)位,最終1位為停頓位。發(fā)送方把以78H、77H單元內(nèi)容為首地址,以76H、75H單元內(nèi)單片機原理與應(yīng)用設(shè)計張毅剛等編著電子教案課件第35頁35/39容減1為末地址數(shù)據(jù)塊經(jīng)過串行口發(fā)送給接收方。發(fā)送方要發(fā)送數(shù)據(jù)塊地址為H~201FH。發(fā)送時先發(fā)送
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)生實習(xí)自我鑒定范文合集15篇
- 外賣行業(yè)競爭策略研究-洞察分析
- 胎盤miRNA表達譜與疾病預(yù)后-洞察分析
- 鐵路機車車輛市場供需分析-洞察分析
- 遺傳物質(zhì)重塑機制及基因置換分析-洞察分析
- 循環(huán)型金屬產(chǎn)業(yè)鏈構(gòu)建-洞察分析
- 網(wǎng)絡(luò)直播演出競爭優(yōu)勢-洞察分析
- 藝術(shù)市場的價格波動-洞察分析
- 學(xué)生個體差異評價研究-洞察分析
- 特殊兒童注意力訓(xùn)練方法-洞察分析
- 建工意外險培訓(xùn)課件
- 三年級必讀書目《格林童話》閱讀測試題(附答案)
- 人口老齡化社會的挑戰(zhàn)與機遇
- 三級(高級)電子商務(wù)師理論考試題庫含答案
- 2023-2024學(xué)年高一上學(xué)期期末考試數(shù)學(xué)試卷及答案(共五套)
- 社區(qū)宣傳工作方案及措施
- 安全教育主題班會:防恐怖、防極端、防不法侵害
- 乳業(yè)市場督導(dǎo)總結(jié)匯報
- 銀行市場份額提升方案
- 鎮(zhèn)海煉化線上測評試題
- 浙江省溫州市2022-2023學(xué)年八年級上學(xué)期數(shù)學(xué)期末試題(含答案)
評論
0/150
提交評論