單片機(jī) 第07章 串行口_第1頁
單片機(jī) 第07章 串行口_第2頁
單片機(jī) 第07章 串行口_第3頁
單片機(jī) 第07章 串行口_第4頁
單片機(jī) 第07章 串行口_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2第7章

MCS-51的串行口沈陽航空航天大學(xué)2課程主要內(nèi)容(1)串行通訊的基本概念及MCS-51串行口的SFR(2)串行口的工作方式(3)串行口波特率的制定(4)串行口的編程方法(5)雙機(jī)通訊的實(shí)現(xiàn)提高:MCS51的多機(jī)通訊MCS51與PC機(jī)的通訊37.1

串行通訊的基本概念通訊的基本方式:串行通訊與并行通訊串行同步通訊、串行異步通訊單工、半雙工和全雙工串行通訊4并行通訊、串行通訊并行通訊:數(shù)據(jù)各位同時(shí)傳送串行通訊:數(shù)據(jù)一位一位順序傳送5串行異步通訊6串行同步通訊一種串行同步通訊的方法:需要有數(shù)據(jù)端、同步時(shí)鐘端脈沖端數(shù)據(jù)端

7.2

MCS-51串行口的基本結(jié)構(gòu)發(fā)送器:將CPU送來的并行數(shù)據(jù),通過發(fā)送移位寄存器變?yōu)榇袛?shù)據(jù)逐位發(fā)送,并自動(dòng)添加起始位、停止位和奇偶校驗(yàn)位。接收器:將接收到的串行數(shù)據(jù),經(jīng)接收移位寄存器變?yōu)椴⑿袛?shù)據(jù),去掉起始位、停止位后,將正確數(shù)據(jù)送到接收數(shù)據(jù)緩沖器,供CPU讀取。

7串行接口邏輯部件

框圖8串行口的基本結(jié)構(gòu)控制器:接收CPU送來的編程命令,按選定方式實(shí)現(xiàn)對(duì)串行接口的控制。主要控制參數(shù)有:傳送波特率的選擇、數(shù)據(jù)格式的選擇

等。另外還與CPU交換狀態(tài)信號(hào)和中斷信號(hào)。9串行口的基本結(jié)構(gòu)SCON為串行口控制/狀態(tài)寄存器,通過編程寫入SCON的控制位可選擇串行口的工作方式,讀出SCON的狀態(tài)位可查詢串行口的工作狀態(tài)。定時(shí)/計(jì)數(shù)器T1被用做串行口的波特率發(fā)生器,由可控分頻電路決定數(shù)據(jù)傳送的波特率。串行口信息的發(fā)送/接收是通過寫/讀數(shù)據(jù)緩沖器SBUF來實(shí)現(xiàn)的。10

7.3

串行口的SFR串行數(shù)據(jù)緩沖器SBUF(99H)

串行口有兩個(gè)8位數(shù)據(jù)緩沖器,一個(gè)是發(fā)送數(shù)據(jù)

緩沖器SBUF,一個(gè)是接收數(shù)據(jù)緩沖器SBUF。它們共

用一個(gè)地址99H,發(fā)送SBUF只能寫入,而接收SBUF

只能讀出。通過指令區(qū)分:MOV

SBUF,AMOV

A,SBUF控制寄存器SCON

(98H)

SM0

SM1

SM2

REN

TB8

RB8

TI

RI節(jié)電控制寄存器PCON(87H)

SMOD

(D7)復(fù)位后狀態(tài)均為00H117.3.1

串行口控制寄存器SCON

SM0、SM1:串行口4種工作方式選擇位

SM2:方式2和方式3中的多機(jī)通信控制位。在方式2和

方式3中,如SM2=1,則當(dāng)接收到的第9位數(shù)據(jù)(RB8)

為0時(shí),不激活接收中斷標(biāo)志RI(RI=1)。在方式1中,

如SM2=1,則只有當(dāng)接收到有效停止位時(shí)才激活RI,

若沒有接收到有效停止位,則RI清0。在方式0中,

SM2必須為0。

REN:允許串行接收位。REN=1允許接收;

REN=0禁止接收,由軟件置位或清零。

TB8:是工作在方式2和3時(shí),要發(fā)送的第9位數(shù)據(jù)???/p>

由軟件置1或清0。在許多的通訊協(xié)議中該位是奇偶校驗(yàn)位。在多機(jī)通訊中用來表示是地址幀還是數(shù)據(jù)幀,TB8=1為地址幀,TB8=0為數(shù)據(jù)幀。12串行口控制寄存器SCONRB8:當(dāng)工作在方式2和3時(shí),為接收到的第9位數(shù)據(jù)。TI:發(fā)送中斷標(biāo)志位,在方式0串行發(fā)送第8位數(shù)據(jù)結(jié)束

時(shí)由硬件置1,或在其它方式串行發(fā)送停止位后置1,

并申請(qǐng)中斷。CPU響應(yīng)中斷后,可發(fā)送下一幀數(shù)據(jù),

TI必須由軟件清0。RI:為接收結(jié)束中斷標(biāo)志。在方式0中,當(dāng)接收到一幀數(shù)

據(jù)的第8位結(jié)束時(shí),RI=1。在其他方式中,接收到停止

位后,RI=1,表示可讀取接收SBUF中的內(nèi)容。RI必

須用軟件清0。每次發(fā)送和接收前,要注意先將TI和RI標(biāo)志位清0

。

串行口作為一個(gè)中斷源,中斷入口地址只有一個(gè)(0023H),當(dāng)用中斷方式同時(shí)進(jìn)行發(fā)送和接收時(shí),可通過查詢TI和RI狀態(tài),確定是發(fā)送還是接收結(jié)束引起的中斷。137.3.2

節(jié)電控制寄存器PCONPCON主要用于節(jié)電運(yùn)行方式控制,

PCON.7用做串行口波特率加倍控制位。當(dāng)設(shè)定SMOD=1時(shí),波特率加倍,當(dāng)SMOD=0時(shí),波特率不加倍。147.4

串行口的工作方式SM0、SM1工作方式選擇位UART串行異步15

RXD數(shù)據(jù)輸出7.4.1

工作方式

0

:(SM0=0

SM1=0)

串行口方式0為8位數(shù)據(jù)同步移位寄存器方式。RXD引腳

為同步數(shù)據(jù)的輸入/輸出端,TXD引腳為同步移位脈沖輸出端。一個(gè)數(shù)據(jù)幀為8位,每一個(gè)移位脈沖對(duì)應(yīng)數(shù)據(jù)幀的一個(gè)數(shù)據(jù)位。方式0的波特率固定為fosc/12。

TXD

REN=0

SBUFD0D1D2D3D4D5D6D7串行口方式

0

工作時(shí)序圖

TI

(a)

發(fā)送時(shí)序圖

TXD

REN=1

RI=0

RXD輸入數(shù)據(jù)

RI

(b)

接收時(shí)序圖16方式0的說明:發(fā)送:寫入SCON使REN=0,TI=0;然后執(zhí)行寫入SBUF的指令,8位數(shù)據(jù)裝入發(fā)送SBUF,硬件啟動(dòng)串行口發(fā)送器進(jìn)行一次發(fā)送。通過發(fā)送移位寄存器將8位數(shù)據(jù)逐位送到RXD引腳,每個(gè)機(jī)器周期內(nèi)發(fā)送一位數(shù)據(jù)。對(duì)應(yīng)發(fā)送數(shù)據(jù)的每一位,由TXD引腳同步輸出一個(gè)移位脈沖。發(fā)送完一幀,自動(dòng)置位TI標(biāo)志,并申請(qǐng)串行口中斷。若CPU響應(yīng)中斷,則將從0023H單元開始執(zhí)行串行口的中斷服務(wù)程序。接受:寫入SCON使REN

=

1、RI

=

0,將啟動(dòng)串行口接收器開始接收。由TXD輸出移位脈沖,每對(duì)應(yīng)一個(gè)移位脈沖,采樣一次RXD引腳信號(hào)。每個(gè)機(jī)器周期采樣一次RXD引腳,采到的數(shù)據(jù)位送入接收移位寄存器后,接收移位寄存器左移一位。接收完一幀,自動(dòng)置位RI標(biāo)志,申請(qǐng)串行口中斷,并將接收下來的8位數(shù)據(jù)裝入接收SBUF。若CPU響應(yīng)中斷,則從0023H單元開始執(zhí)行串行口的中斷服務(wù)程序。串行口方式0常用于擴(kuò)展單片機(jī)的并行I/O口,也可外接串行同步I/O設(shè)備。用方式0輸入/輸出數(shù)據(jù)皆通過RXD端,因此方式0為半雙工方式,只能分時(shí)進(jìn)行發(fā)送和接收。7.4.2

方式1(SM0=0SM1=1)功能說明:串行口方式1為8位數(shù)據(jù)全雙工異步

通信方式。TXD為發(fā)送數(shù)據(jù)端,RXD為接收數(shù)

據(jù)端。一個(gè)數(shù)據(jù)幀為10位,包含8位數(shù)據(jù)位,1

個(gè)起始位“0”和1個(gè)停止位“1”。串行口用方式1

工作時(shí),使用定時(shí)器T1作為波特率發(fā)生器,波

特率的設(shè)定以T1的溢出率為基準(zhǔn),波特率計(jì)算

式為:(2/32)×T1溢出率。

17SMOD

方式1的時(shí)序圖

寫入SBUF

TXD數(shù)據(jù)輸出D0D1D2D3D4D5D6D7停止位起始位

RXD輸入數(shù)據(jù)D0D1D2D3D4D5D6D7停止位起始位

采樣RI

(b)

接收時(shí)序圖

串行口方式1工作時(shí)序圖

18

TI

(a)

發(fā)送時(shí)序圖

檢測(cè)REN=1,負(fù)跳變方式1功能說明執(zhí)行寫入SBUF指令,將8位數(shù)據(jù)裝入發(fā)送SBUF,并啟動(dòng)發(fā)送器進(jìn)行一次發(fā)送:先將起始位“0”送到TXD引腳,再從低到高逐位發(fā)送8位數(shù)據(jù),最后發(fā)送停止位“1”。每位發(fā)送占用的時(shí)間由設(shè)定的波特率決定。發(fā)送完一幀數(shù)據(jù),置位TI標(biāo)志,申請(qǐng)串行口中斷。當(dāng)REN=1時(shí),允許接收器準(zhǔn)備接收。開始,以16倍于波特率的速率檢測(cè)RXD引腳的負(fù)跳變,當(dāng)檢測(cè)到負(fù)跳變后,啟動(dòng)一次接收,接收完一幀信息,判斷是否滿足條件:RI

=

0,而且停止位為1(或SM2=0)。若同時(shí)滿足這兩個(gè)條件,則置位RI標(biāo)志,申請(qǐng)串行口中斷,并將接收的8位數(shù)據(jù)裝入接收SBUF,停止位裝入RB8;否則接收無效,丟失所接收的一幀信息,且不影響RI標(biāo)志。一位時(shí)間以后,接收器重新開始檢測(cè)RXD端的負(fù)跳變,以準(zhǔn)備接收下一幀數(shù)據(jù)。

19207.4.3

方式2、方式3串行口方式2和方式3皆為9位數(shù)據(jù)全雙工異步通信方式,比串行口方式1增加了第9位數(shù)據(jù)位。TXD為發(fā)送數(shù)據(jù)端,RXD為接收數(shù)據(jù)端。一幀信息有11位,包括9位數(shù)據(jù)位,1個(gè)起始位“0”和1個(gè)停止位“1”。發(fā)送數(shù)據(jù)的第9位在TB8中,接收數(shù)據(jù)的第9位存入RB8中。第9位數(shù)據(jù)位也稱為可編程位,常用做奇偶校檢位或多機(jī)通信中的地址/數(shù)據(jù)識(shí)別位。串行口的方式2與方式3的唯一差別是波特率設(shè)定方法不同,方式2的波特率以系統(tǒng)時(shí)鐘為基準(zhǔn),計(jì)算式為:(2/64)×fosc。方式3的波特率與方式1的相同,計(jì)算式為:(2

/32)×T1溢出率。SMODSMOD

方式2、3的時(shí)序

寫入SBUF

TXD數(shù)據(jù)輸出

RXD輸入數(shù)據(jù)RI

(b)

接收時(shí)序圖

串行口方式

2、方式

3

工作時(shí)序圖

21D0D1D2D3D4D5D6TB8停止位起始位D7D0D1D2D3D4D5D6RB8停止位起始位D7

TI

(a)

發(fā)送時(shí)序圖REN=1,

檢測(cè)

負(fù)跳變22方式2、3的功能說明發(fā)送時(shí),應(yīng)先將發(fā)送數(shù)據(jù)的第9位送入TB8,再寫入8位數(shù)據(jù)到發(fā)送SBUF,使發(fā)送器啟動(dòng)一次發(fā)送,將一幀數(shù)據(jù)逐位送到TXD引腳:發(fā)送起始位“0”之后,再發(fā)送SBUF中的8位數(shù)據(jù),接著發(fā)送TB8中的第9位,最后發(fā)送停止位“1”。一幀發(fā)送結(jié)束,置位TI標(biāo)志,申請(qǐng)串行口中斷。方式2和方式3的接收過程和方式1的接收過程基本相同,但RB8中裝入的是接收數(shù)據(jù)的第9位,而不是停止位。接收有效必須同時(shí)滿足的兩個(gè)條件改為:RI=0,且接收的第9位數(shù)據(jù)位為1(或SM2=0)。當(dāng)正確接收到一幀

數(shù)據(jù)后,前面8位數(shù)據(jù)進(jìn)入接收SBUF,第9位數(shù)據(jù)進(jìn)入RB8。237.5

波特率的制定波特率的定義:串行口每秒鐘發(fā)送或者接收的位數(shù).串行口方式0的波特率是固定的,為系統(tǒng)時(shí)鐘的12分頻(fosc/12),即每個(gè)機(jī)器周期傳送一位數(shù)據(jù)位。串行口用方式2工作時(shí),波特率為(2/64)×fosc

。SMOD為PCON中的D7位,即波特率加倍選擇位。方式2可有兩種波特率供選擇,當(dāng)SMOD=0時(shí),波特率為fosc/64;當(dāng)SMOD=1時(shí),波特率則為fosc/32

。串行口方式1和方式3用定時(shí)器T1作為波特率發(fā)生器,其波特率有多種選擇,與T1的溢出率有關(guān)。波特率=

(2/32)×T1溢出率SMODSMOD串行口方式1和方式3的波特率=

×24定時(shí)器T1產(chǎn)生波特率的計(jì)算T1溢出率:T1溢出時(shí)間的倒數(shù)。T1用于波特率發(fā)生器時(shí)一般工作于非門控定時(shí)器方式2,即常數(shù)自動(dòng)重裝入方式。TH1

=

TL1為T1的時(shí)間常數(shù)

f

osc12

×

(2

-

TH1)=T1溢出率2

32

fosc12×(256-TH1)8SMOD25定時(shí)器T1產(chǎn)生波特率的計(jì)算串行口用方式1和方式3工作時(shí),當(dāng)需要很低的波特率時(shí),也可選擇T1工作于方式1,但需利用T1溢出中斷來實(shí)現(xiàn)軟件重裝初值,T1用方式1工作時(shí)溢出率為:N為T1溢出后用軟件重裝初值所需的機(jī)器周期數(shù)。fosc12[2-(TH1TL1)

+

N]16

26T1產(chǎn)生的常用波特率27波特率計(jì)算的幾點(diǎn)注意事項(xiàng):1)波特率的相對(duì)誤差不大于2.5%2)注意SMOD位對(duì)波特率的影響例如:通訊波特率設(shè)為2400,晶振頻率為6MHz,計(jì)算T1的計(jì)時(shí)常數(shù)。當(dāng)SMOD=0時(shí),計(jì)時(shí)常數(shù)約為249,相對(duì)誤差7%。當(dāng)SMOD=1時(shí),計(jì)時(shí)常數(shù)約為243,相對(duì)誤差0.16%。287.6

串行口的編程舉例設(shè)定波特率設(shè)定串行口的工作方式設(shè)計(jì)中斷服務(wù)程序或查詢程序注意對(duì)TI、RI的處理(硬件置位、軟件清零)29例1:

方式2發(fā)送50H~5FH中內(nèi)容ORGAJMPORGAJMPORG0000H;復(fù)位入口MAINT0023H;串行口中斷入口TRANI0100H;主程序入口MAINT:MOVSCON,#80H;串行口初始化,用;方式2發(fā)送,TI=0;波特率=

fosc/32MOVSETBPCON,#80HEASETBES;允許串行口中斷MOVMOVR0,#50HR7,#10H;設(shè)數(shù)據(jù)指針;數(shù)據(jù)長度30LOOP:

MOVA,@R0;取一個(gè)字符;加奇偶校驗(yàn)MOVMOVC,PTB8,CMOVSBUF,A;發(fā)送一個(gè)字符HERE:SJMPTRANI:CLRHERETI;CPU執(zhí)行其他任務(wù),同時(shí)等待發(fā)送結(jié)束;中斷服務(wù)程序,發(fā)送結(jié)束標(biāo)志清0DJNZR7,NEXT;發(fā)送完全部字符?

CLR

SJMPNEXT:

INCESTENDR0;已發(fā)送完,關(guān)閉串行口中斷;未發(fā)送完,修改指針MOVA,@R0;取下一個(gè)字符;加奇偶校驗(yàn)MOVMOVC,PTB8,CMOVSBUF,A;再次發(fā)送一個(gè)字符TEND:RETI;中斷返回主程序317.7

MCS-51雙機(jī)串行通訊的實(shí)現(xiàn)如何進(jìn)行物理連線?波特率的選擇?工作方式的選擇?如何編程實(shí)現(xiàn)?32雙機(jī)串行通訊的實(shí)現(xiàn)-17.7.1

正確進(jìn)行物理接線33雙機(jī)串行通訊的實(shí)現(xiàn)-2設(shè)定一致的波特率設(shè)定一致的串行口工作方式分別設(shè)計(jì)中斷服務(wù)程序或查詢程序注意對(duì)TI、RI的處理(硬件置位、軟件清零)347.7.2

方式3發(fā)送50H~5FH的內(nèi)容

待發(fā)送的16個(gè)字節(jié)存放在片內(nèi)RAM中

地址為50H~5FH

串行口波特率為2400

波特率發(fā)生器T1工作于方式2,且SMOD=0

晶振為11.0592MHz

計(jì)算得到TL1的初值為F4H

串行口工作于方式3第9位發(fā)送奇偶校驗(yàn)位35例2:

方式3發(fā)送50H~5FH中內(nèi)容-1

ORG

0000H

AJMP

MAIN

ORG

0023H

AJMP

L1

ORG

0100HMAIN:MOVSCON,#0C0H;復(fù)位入口;串行口中斷入口;主程序入口;串行口初始化,用方式2發(fā)送,TI=0MOV

PCON,#00H;SMOD=0MOV;T1方式2定時(shí);寫入T1時(shí)間常數(shù)

TMOD,#20HMOV

TL1,#0F4HMOV

TH1,#0F4H

;啟動(dòng)T1SETB

TR1SETB

EASETB

ESMOV

R0,#50HMOV

R7,#10H;允許串行口中斷;設(shè)數(shù)據(jù)指針;數(shù)據(jù)長度LOOP:

MOVA,@R0;取一個(gè)字符MOV

C,PMOV

TB8,CMOV

SBUF,A;加奇偶校驗(yàn);發(fā)送一個(gè)字符HERE:SJMPHERE;CPU原地循環(huán),等待發(fā)送結(jié)束36

例2:

方式3發(fā)送50H~5FH中內(nèi)容-2L1:TIR7,NEXTESTENDR0A,@R0C,PTB8,CSBUF,A

CLR

DJNZ

CLR

SJMPNEXT:

INC

MOV

MOV

MOV

MOVTEND:

RETI

;中斷服務(wù)程序,發(fā)送結(jié)束標(biāo)志位清0

;發(fā)送完全部字符?

;已發(fā)送完,關(guān)閉串行口中斷

;未發(fā)送完,修改指針

;取下一個(gè)字符

;加奇偶校驗(yàn)

;再次發(fā)送一個(gè)字符

;中斷返回主程序377.7.3

方式3接收接收到的16個(gè)字節(jié)存放在片內(nèi)RAM中地址為50H~5FH串行口波特率為2400波特率發(fā)生器T1工作于方式2,

且SMOD=0晶振為11.0592MHz計(jì)算得到TL1的初值為0F4H串行口工作于方式3奇偶校驗(yàn)方式判斷接收數(shù)據(jù)是否出錯(cuò)設(shè)校驗(yàn)出錯(cuò)標(biāo)志位為F0MAIN:

MOV

MOVSCON,#0D0H

;串行口方式3允許接收,RI=0PCON,#00H

;SMOD=0MOV

TMOD,#20HMOV

TL1,#0F4HMOV

TH1,#0F4HSETB

TR1

;T1方式2定時(shí)

;寫入T1時(shí)間常數(shù);啟動(dòng)T1

LCALL

AAAASJMP

$

38方式3接收-查詢39方式3接收-查詢AAAA:

MOV

MOVR7,#10HWAIT:

JBC

SJMPR0,#50H

;設(shè)數(shù)據(jù)指針;數(shù)據(jù)長度RI,NEXT

;查詢RI標(biāo)志,等待串行口接收結(jié)束WAITNEXT:

MOV

JNB

JNB

SJMPCOMP:JBRIGHT:MOVA,SBUFP,COMPRB8,ERRRIGHTRB8,ERR@R0,A

;讀取一個(gè)接收字符

;進(jìn)行奇偶校驗(yàn)

;P≠RB8,數(shù)據(jù)出錯(cuò)

;P=RB8,數(shù)據(jù)正確;保存一個(gè)字符到片內(nèi)RAMINC

R0DJNZ

;修改指針R7,WAIT

;全部字符接收完?F0F0

CLR

RETERR:

SETB

RET

;F0

=0,接收數(shù)據(jù)全部正確;返回主程序

;F0

=1,接收數(shù)據(jù)出錯(cuò);返回主程序40雙機(jī)通訊小結(jié)物理接線:

TXD-RXD、RXD-TXD、共地必須一致的波特率必須一致的工作方式各自的發(fā)送和接收程序可以不同417.4

提高:多機(jī)通訊主機(jī)與各從機(jī)實(shí)現(xiàn)全雙工通信,而各從機(jī)之間只能通過主機(jī)交換信息。下圖是由MCS-51構(gòu)成的的集散式分布系統(tǒng)427.4.1

多機(jī)通訊的基本原理多機(jī)通信控制位SM2的使用:當(dāng)串行口以方式2(或方式3)接收時(shí),若SM2=1,則只有接收到第9位數(shù)據(jù)為1,才將接收的數(shù)據(jù)裝入接收SBUF,并置位RI標(biāo)志;否則,不會(huì)置位RI,也不產(chǎn)生中斷請(qǐng)求,一幀信息被丟棄。若SM2=0,則接收到的第9位不論為0還是為1,都會(huì)將數(shù)據(jù)裝入SBUF,并置位RI標(biāo)志。根據(jù)這一功能,可實(shí)現(xiàn)多機(jī)系統(tǒng)中的主從一對(duì)一通信。43現(xiàn)將多機(jī)通信步驟概述如下:1)

令所有從機(jī)SM2=1,處于只接收地址幀狀態(tài)(第9位為1)。2)

主機(jī)令TB8=1,并發(fā)送地址呼叫信息。3)

各從機(jī)接收到地址幀后,將接收到的地址與本機(jī)地址編號(hào)相比較,確認(rèn)是否為被呼叫目標(biāo)。4)

被呼叫從機(jī)使SM2清0,變?yōu)榻邮諗?shù)據(jù)幀狀態(tài),而未被呼叫從機(jī)仍保持SM2=1。5)

主機(jī)使TB8=0,發(fā)送控制或數(shù)據(jù)信息。6)

只有SM2=0的從機(jī)能接收到控制或數(shù)據(jù)信息,仍保持SM2=1的從機(jī)不予理睬。44TRM02:AGAIN:

MOVMOVSCON,

#98HSBUF,

#02H;串口方式2,TB8=1;呼叫02號(hào)從機(jī)W1:W2:;等待發(fā)送一幀結(jié)束;等待從機(jī)應(yīng)答

JBCSJMP

JBCSJMPTI,

W2W1RI,

ANSW2ANS:MOVA,

SBUF

;取應(yīng)答地址;是否02號(hào)從機(jī)應(yīng)答XRLJZA,

#02HDTRMOVSBUF,

#0FFH;不是02號(hào),發(fā)復(fù)位信號(hào)W3:

JBCSJMPTI,

AGAIN

;復(fù)位后,重新呼叫W3DTR:CLRTB8;聯(lián)絡(luò)成功,換數(shù)據(jù)幀MOVMOVR0,

#50H

;開始發(fā)送數(shù)據(jù)串R7,

#10H7.4.2

編程實(shí)現(xiàn)

簡單編程:主機(jī)向02號(hào)從機(jī)發(fā)送50H~5FH單元內(nèi)的數(shù)據(jù)。發(fā)送程序如下:45LOOP:MOVA,

@R0MOVSBUF,

A;發(fā)送數(shù)據(jù)W4:NEXT:JBC

SJMPINCTI,

NEXTW4R0DJNZR7,

LOOP;發(fā)送完全部數(shù)據(jù)?SETBTB8;發(fā)送結(jié)束,使從機(jī)復(fù)位MOVSBUF,

#0FFHTI,

TENDW5W5:TEND:JBC

SJMP

RET46從機(jī)程序RECEV:MOVSCON,

#0B0H;串口方式2接收,SM2=1W1:JBC

RI,ACOMP;接收主機(jī)呼叫(監(jiān)聽)

SJMPACOMP:MOV

XRLW1A,

SBUF

;取呼叫地址A,

#02H

;判斷是否呼叫本機(jī)JNZCLRW1SM2;不是返回監(jiān)聽狀態(tài);是呼叫本機(jī),SM2=0MOVSBUF,

#02H;向主機(jī)應(yīng)答W2:JBCSJMPTI,DREW2DRE:W3:MOVMOVJBCR0,

#50HR7,

#10HRI,

NEXT;準(zhǔn)備開始接收主機(jī)數(shù)據(jù);等待接收

SJMPNEXT:

JNBW3RB8,

RECB;是否為復(fù)位信號(hào)?LJMPRECEV;復(fù)位,恢復(fù)監(jiān)聽狀態(tài)RECB:

MOV

MOV

INC

DJNZA,

SBUF

;讀取接收數(shù)據(jù)@R0,

AR0R7,

W3LJMPRECEV7.5

使用MCS51串行口串行通訊的局限性MCS-51串行口的輸入、輸出均為TTL電平,抗干擾性差,傳輸距離短。為提高串行通訊的可靠性,增大串行通訊的距離,采用標(biāo)準(zhǔn)串行接口,如RS-232、RS-422A、RS-485等標(biāo)準(zhǔn)。

477.5.1RS-232C接口RS232接口定義數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通訊設(shè)備(DCE)之間的串行接口標(biāo)準(zhǔn)。RS-232是由美國電子工業(yè)協(xié)會(huì)(EIA)于1962年制定的標(biāo)準(zhǔn).,臺(tái)式機(jī)一般都具有標(biāo)準(zhǔn)的RS232接口。RS232采用負(fù)邏輯,-12V表示邏輯“1”

+12V表示邏輯“0”

4849下圖是兩臺(tái)計(jì)算機(jī)利用MODEM、電話線進(jìn)行遠(yuǎn)距離串行通訊的示意圖,DTE為計(jì)算機(jī),DCE的典型代表是MODEM。50RS-232C的“D”型9針插頭的引腳定義517.5.2

溫馨提示

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