單片機(jī)原理:7-3-4串行口多機(jī)通信和波特率_第1頁
單片機(jī)原理:7-3-4串行口多機(jī)通信和波特率_第2頁
單片機(jī)原理:7-3-4串行口多機(jī)通信和波特率_第3頁
單片機(jī)原理:7-3-4串行口多機(jī)通信和波特率_第4頁
單片機(jī)原理:7-3-4串行口多機(jī)通信和波特率_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第7章

AT89S51單片機(jī)的

串行口17.3多機(jī)通信多個(gè)單片機(jī)可利用串行口進(jìn)行多機(jī)通信,經(jīng)常采用如圖7-16所示的主從式結(jié)構(gòu)。系統(tǒng)中有1個(gè)主機(jī)(單片機(jī)或其他有串行接口的微機(jī))和多個(gè)單片機(jī)組成的從機(jī)系統(tǒng)。主機(jī)的RXD與所有從機(jī)的TXD端相連,TXD與所有從機(jī)的RXD端相連。從機(jī)地址分別為01H、02H和03H。

圖7-16

多機(jī)通信系統(tǒng)示意圖2 主從式是指多機(jī)系統(tǒng)中,只有一個(gè)主機(jī),其余全是從機(jī)。主機(jī)發(fā)送的信息可以被所有從機(jī)接收,任何一個(gè)從機(jī)發(fā)送的信息,只能由主機(jī)接收。從機(jī)和從機(jī)之間不能進(jìn)行直接通信,只能經(jīng)主機(jī)才能實(shí)現(xiàn)。多機(jī)通信的工作原理: 要保證主機(jī)與所選擇的從機(jī)通信,須保證串口有識(shí)別功能。SCON中的SM2位就是為滿足這一條件設(shè)置的多機(jī)通信控制位。其工作原理是在串行口以方式2(或方式3)接收時(shí),若SM2

=

1,則表示進(jìn)行多機(jī)通信,可能以下兩種情況:3(1)從機(jī)接收到的主機(jī)發(fā)來的第9位數(shù)據(jù)RB8=1(地址)時(shí),前8位數(shù)據(jù)才裝入SBUF,并置中斷標(biāo)志RI

=

1,向CPU發(fā)出中斷請(qǐng)求。在中斷服務(wù)程序中,從機(jī)把接收到的SBUF中的數(shù)據(jù)存入數(shù)據(jù)緩沖區(qū)中。(2)如果從機(jī)接收到的第9位數(shù)據(jù)RB8=0(數(shù)據(jù))時(shí),則不產(chǎn)生中斷標(biāo)志RI=1,不引起中斷,從機(jī)不接收主機(jī)發(fā)來的數(shù)據(jù)。若SM2

=

0,則接收的第9位數(shù)據(jù)不論是0還是1,從機(jī)都將產(chǎn)生RI

=

1中斷標(biāo)志,接收到的數(shù)據(jù)裝入SBUF中。4應(yīng)用這一特性,可實(shí)現(xiàn)AT89S51單片機(jī)的多機(jī)通信。多機(jī)通信的工作過程:(1)各從機(jī)初始化程序允許從機(jī)的串行口中斷,將串行口編程為方式2或方式3接收,即9位異步通信方式,且SM2和REN位置“1”,使從機(jī)處于多機(jī)通信且只接收地址幀的狀態(tài)。(2)在主機(jī)和某個(gè)從機(jī)通信之前,先將從機(jī)地址(即準(zhǔn)備接收數(shù)據(jù)的從機(jī))發(fā)送給各個(gè)從機(jī),接著才傳送數(shù)據(jù)(或命令),主機(jī)發(fā)出的地址幀信息的第9位為1,數(shù)據(jù)(或命令)幀的第9位為0。5當(dāng)主機(jī)向各從機(jī)發(fā)送地址幀時(shí),各從機(jī)的串行口接收到的第9位信息RB8為1,且由于各從機(jī)的SM2=1,則RI置“1”,各從機(jī)響應(yīng)中斷.在中斷服務(wù)子程序中,判斷主機(jī)送來的地址是否和本機(jī)地址相符合,若為本機(jī)地址,則該從機(jī)SM2位清“0”,準(zhǔn)備接收主機(jī)的數(shù)據(jù)或命令;若地址不相符,則保持SM2

=

1。(3)接著主機(jī)發(fā)送數(shù)據(jù)(或命令)幀,數(shù)據(jù)幀的第9位為0。此時(shí)各從機(jī)接收到的RB8

=

0。只有與前面地址相符合的從機(jī)(即SM2位已清“0”的從機(jī))才能激活中斷標(biāo)志位RI,從而進(jìn)入中斷服務(wù)程序,接收主機(jī)發(fā)來的數(shù)據(jù)(或命令);與主機(jī)發(fā)來的地址不相符的從機(jī),由于SM2保持為1,又RB8

=

0,因此不能激活中斷標(biāo)志RI,就不能接受主機(jī)發(fā)來的數(shù)據(jù)幀。6從而保證主機(jī)與從機(jī)間通信的正確性。此時(shí)主機(jī)與建立聯(lián)系的從機(jī)已經(jīng)設(shè)置為單機(jī)通信模式,即在整個(gè)通信中,通信的雙方都要保持發(fā)送數(shù)據(jù)的第9位(即TB8位)為0,防止其他的從機(jī)誤接收數(shù)據(jù)。(4)結(jié)束數(shù)據(jù)通信并為下一次的多機(jī)通信做好準(zhǔn)備。在多機(jī)系統(tǒng),每個(gè)從機(jī)都被賦予唯一的地址。例如,圖7-16三個(gè)從機(jī)的地址可設(shè)為:01H、02H、03H。還要預(yù)留1~2個(gè)“廣播地址”,它是所有從機(jī)共有的地址,例如將“廣播地址”設(shè)為00H。當(dāng)主機(jī)與從機(jī)的數(shù)據(jù)通信結(jié)束后,一定要將從機(jī)再設(shè)置為多機(jī)通信模式,以便進(jìn)行下一次的多機(jī)通信。7這時(shí)要求與主機(jī)正在進(jìn)行數(shù)據(jù)傳輸?shù)膹臋C(jī)必須隨時(shí)注意,一旦接收的數(shù)據(jù)第9位(RB8)為“1”,說明主機(jī)傳送的不再是數(shù)據(jù),而是地址,這個(gè)地址就有可能是“廣播地址”。當(dāng)收到“廣播地址”后,便將從機(jī)的通信模式再設(shè)置成多機(jī)模式,為下一次的多機(jī)通信做好準(zhǔn)備。87.4波特率的制定方法串行通信,收、發(fā)雙方發(fā)送或接收的波特率必須一致。4種工作方式。方式0和方式2的波特率是固定的;方式1和方式3的波特率是可變的,由T1溢出率確定。7.4.1波特率的定義波特率的定義:串行口每秒發(fā)送(或接收)的位數(shù)。設(shè)發(fā)送一位所需要的時(shí)間為T,則波特率為1/T。定時(shí)器的不同工作方式,得到的波特率的范圍不一樣,這是由T1在不同工作方式下計(jì)數(shù)位數(shù)的不同所決定。97.4.2定時(shí)器T1產(chǎn)生波特率的計(jì)算和串行口的工作方式有關(guān)。(1)方式0時(shí),波特率固定為時(shí)鐘頻率fosc的1/12,不受SMOD位值的影響。若fosc

=

12MHz,波特率為1Mbit/s。(2)方式2時(shí),波特率僅與SMOD位的值有關(guān)。

方式2波特率

=

fosc若fosc

=

12MHz:

SMOD

=

0,波特率

=

187.5kbit/s;SMOD

=

1,波特率

為375kbit/s。(3)方式1或方式3定時(shí),常用T1作為波特率發(fā)生器,其關(guān)系式為10波特率

=

定時(shí)器T1的溢出率

(7-1)由式(7-1)見,T1溢出率和SMOD的值共同決定波特率。在實(shí)際設(shè)定波特率時(shí),T1常設(shè)置為方式2定時(shí)(自動(dòng)裝初值),即TL1作為8位計(jì)數(shù)器,TH1存放備用初值。這種方式操作方便,也避免因軟件重裝初值帶來的定時(shí)誤差。設(shè)定時(shí)器T1方式2的初值為X,則有

定時(shí)器T1的溢出率

=

(7-2)11將式(7-2)代入式(7-1),則有

波特率

=

(7-3)由式(7-3)可見,波特率隨fosc、SMOD和初值X而變化。實(shí)際使用時(shí),經(jīng)常根據(jù)已知波特率和時(shí)鐘頻率fosc來計(jì)算T1的初值X。為避免繁雜的初值計(jì)算,常用的波特率和初值X間的關(guān)系常列成表7-2的形式,以供查用。12

表7-2

用定時(shí)器T1產(chǎn)生的常用波特率13波

率foscSMOD位方式初值X62.5kbit/s12MHz12FFH19.2kbit/s11.0592MHz12FDH9.6kbit/s11.0592MHz02FDH4.8kbit/s11.0592MHz02FAH2.4kbit/s11.0592MHz02F4H1.2kbit/s11.0592MHz02E8H對(duì)表7-2有兩點(diǎn)需要注意:(1)在使用的時(shí)鐘振蕩頻率fosc為12MHz或6MHz時(shí),將初值X和fosc帶入式(7-3)中計(jì)算出的波特率有一定誤差。消除誤差可采用時(shí)鐘頻率11.0592MHz。(2)如果選用很低的波特率,如波特率選為55,可將定時(shí)器T1設(shè)置為方式1定時(shí)。但在這種情況下,T1溢出時(shí),需在中斷服務(wù)程序中重新裝入初值。中斷響應(yīng)時(shí)間和執(zhí)行指令時(shí)間會(huì)使波特率產(chǎn)生一定的誤差,可用改變初值的方法加以調(diào)整。14【例7-3】

若時(shí)鐘頻率為11.0592MHz,選用T1的方式2定時(shí)作為波特率發(fā)生器,波特率為2

400bit/s,求初值。設(shè)T1為方式2定時(shí),選SMOD

=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論