版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第一節(jié)
串行通訊口概述其次節(jié)
串行口結(jié)構(gòu)與工作原理第三節(jié)
波特率設(shè)計(jì)第四節(jié)
串行通訊工作方式第五節(jié)
串行口應(yīng)用舉例第六節(jié)多機(jī)串行通訊技術(shù)第7章串行通訊口作業(yè)講解1①RET指令必需作子程序的最終一條指令;RETI必需作中斷服務(wù)程序的最終一條指令。②RETI指令除復(fù)原斷點(diǎn)地址外,還復(fù)原CPU響應(yīng)中斷時硬件自動疼惜的現(xiàn)場信息。執(zhí)行RETI指令后,將清除中斷響應(yīng)時所置位的優(yōu)先級狀態(tài)觸發(fā)器,使得已申請的同級或低級中斷申請可以響應(yīng);而RET指令只能復(fù)原返回地址。作業(yè)講解2用表格說明方式0的最短定時常數(shù),8191,送入TH0,TL0的常數(shù):FF1F作業(yè)講解3晶振為12MHz,在方式1下,最大的定時時間Tmax為:
Tmax=65536μs=65.536ms另設(shè)兩個軟件計(jì)數(shù)器方案:T1定時50ms;軟件計(jì)數(shù)器1:秒計(jì)數(shù),用片內(nèi)50H作為循環(huán)次數(shù)20。軟件計(jì)數(shù)器2:分計(jì)數(shù),用片內(nèi)51H單元作為循環(huán)次數(shù)60。設(shè)置TMOD計(jì)算T1的初始值X
X=65536-50000μs/1μs
=15536D
=3CB0H作業(yè)講解3 MOV50H,#14H ;20*50ms=1s
MOV51H,#3CH ;60*1s=1min
MOVTMOD,#10H ;設(shè)定時器1為方式1
MOVTH1,#3CH ;賦初值
MOVTL1,#0B0H
SETBTR1 ;啟動T1L2: JBCTF1,L1 ;50ms到?
SJMPL2
L1: MOVTH1,#3CH MOVTL1,#0B0H DJNZ50H,L2 ;未到1s接著循環(huán)
MOV50H,#14H DJNZ51H,L2 ;未到1min接著循環(huán)
MOV51H,#3CH
CPLP1.2 ;1min到P1.2端取反 SJMPL2 ;反復(fù)循環(huán)作業(yè)講解31、無說明;2、中斷響應(yīng)子程序中利用A作為存放中間值,須要疼惜。一般用干脆地址比較好。劃分一個RAM區(qū);3、定時初值須要重置,循環(huán)初值也須要重置。4、須要注明出口和入口第一節(jié)
串行通訊口概述串行通訊:所傳送數(shù)據(jù)的各位按依次一位一位地發(fā)送或接收。經(jīng)濟(jì),但速度慢。并行通訊:所傳送數(shù)據(jù)的各位同時發(fā)送或接收。速度快,但價(jià)格貴。
串行通訊中的幾個概念:一、傳送編碼因?yàn)閱胃ㄓ嵕€僅能表示0和1兩種狀態(tài),而需傳送的信息中有字母、數(shù)字和字符等,這就要用二進(jìn)制數(shù)對傳送字符編碼。常用的主要有美國標(biāo)準(zhǔn)信息交換碼ASCII和擴(kuò)展的BCD碼EBCDIC,后一種是8位編碼,較常用在同步通信中。
二、同步和異步方式1、
異步通訊ASYNC(AsynchronousDataCommunication):①
數(shù)據(jù)以一個字符為單位進(jìn)行傳送,一幀一幀地傳送;②
在幀格式中先用一個起始位“0”表示字符的起先;③
5-8位數(shù)據(jù),規(guī)定低位在前,高位在后;④
奇偶校驗(yàn)位(可省略)⑤
停止位“1”表示字符的結(jié)束D0D1D2D3D4D5D6D7PD0D01010N-1第N個字符(一串行幀)
N+12、同步通訊(速度快,但硬件結(jié)構(gòu)要求高)在數(shù)據(jù)或字符起先處用一同步字符來指示(常約定1—2個),由時鐘來實(shí)現(xiàn)發(fā)送端和接收端同步。一旦檢測到與規(guī)定的同步字符符合,下面就連續(xù)依據(jù)依次傳送數(shù)據(jù)。SYN字符1SYN字符2連續(xù)傳送的數(shù)據(jù)
三、波特率
波特率是異步通訊中對數(shù)據(jù)傳送速率的規(guī)定,其意義是每秒鐘傳送多少位二進(jìn)制數(shù)。
例如:數(shù)據(jù)傳送的速率每秒為120個字符,每個字符由1個起始位、
8個數(shù)據(jù)位和1個停止位組成,則其傳送波特率為:
10*120=1200b/s=1200波特每一位的傳送時間即為波特率的倒數(shù):
Td=1/1200=0.833ms
異步通訊的傳送速度一般在50到9600波特之間。四、通訊方向1、
單工傳送:只能發(fā)送或接收,這種單向傳送的方法稱單工傳送;2、
半雙工傳送:數(shù)據(jù)可在兩機(jī)之間雙向傳送,但接收和發(fā)送不能同時進(jìn)行,只能分時接收和發(fā)送;3、全雙工傳送:兩機(jī)的發(fā)送和接收可以同時進(jìn)行。圖串行通信數(shù)據(jù)傳送的三種方式(a)單工方式;(b)半雙工方式;(c)全雙工方式五、信號的調(diào)制與解調(diào)
異步通訊有距離的限制,傳輸距離較遠(yuǎn)時,信號衰減、頻帶不夠?qū)挘虼?,用調(diào)制器把數(shù)字信號轉(zhuǎn)換成模擬信號,并加以放大再傳送,這個過程叫調(diào)制。在接收時,再用解調(diào)器檢測此模擬信號,并把它轉(zhuǎn)換成數(shù)字信號再送入計(jì)算機(jī)接口,這個過程即解調(diào)。其次節(jié)
串行口結(jié)構(gòu)與工作原理一.功能與結(jié)構(gòu)圖串行口方式0結(jié)構(gòu)示意圖發(fā)送SBUF(99H)接收SBUF(99H)發(fā)送控制器接收控制器串行口中斷定時器T1輸入移位寄存器串行控制寄存器98H+TIRI門內(nèi)部總線P3.1TXDP3.0RXD1、
輸入數(shù)據(jù)先進(jìn)入輸入移位寄存器,再送入接收SBUF。在此接受了雙緩沖結(jié)構(gòu),這是為避開在接收到其次幀數(shù)據(jù)之前,CPU未剛好響應(yīng)接收器的前一幀中斷懇求,沒把前一幀數(shù)據(jù)讀走,而造成兩幀數(shù)據(jù)重疊的錯誤;MOVSBUF,A2、
對于發(fā)送器,因?yàn)榘l(fā)送時CPU是主動的,不會產(chǎn)生寫重疊問題,一般不須要雙緩沖器結(jié)構(gòu),以保持最大傳送速率。MOVA,SBUF3、8051串行口通過編程可設(shè)置4種工作方式,三種幀格式:
方式0:以8位數(shù)據(jù)為一幀,不設(shè)起始位和停止位,先發(fā)送或接收最低位。
D0D1D2D3D4D5D6D7
方式1:以10位為一幀傳輸,設(shè)有一個起始位“0”,8個數(shù)據(jù)位和一個停止位“1”。
0D0D1D2D3D4D5D6D71
起始
停止方式2和3:以11位為一幀傳輸,設(shè)有一個起始位“0”,8個數(shù)據(jù)位,
1個可編程位(第九數(shù)據(jù)位)D8和一個停止位“1”。
0D0D1D2D3D4D5D6D7D81
起始
停止
可編程位D8由軟件置1或清0,該位可作校驗(yàn)位,也可作它用。一般用在多機(jī)通訊中。二、串行口限制寄存器SCONCPU專用寄存器SCON為串行口限制字,方式選擇、接收和發(fā)送限制以及串行口的狀態(tài)標(biāo)記。復(fù)位時,SCON全部位均清0。
SCON(98H):SM0SM1SM2RENTB8RB8TIRI
位地址:9FH9EH9DH9CH9BH9AH99H98H1、串行方式選擇SM0、SM1:由軟件置位或清零,用于選擇串行口四種工作方式。
SM0SM1工作方式功能波特率
00方式0移位寄存器方式fosc/12
01方式18位異步通信方式
可變
10方式29位異步通信方式
fosc/64或fosc/32
11方式39位異步通信方式
可變2、TI:發(fā)送中斷標(biāo)記位。在方式0時,當(dāng)發(fā)送數(shù)據(jù)第8位結(jié)束后,或在其它方式發(fā)送停止位后,由內(nèi)部硬件使TI置位,向CPU懇求中斷。CPU在響應(yīng)中斷后,必需用軟件清零。此外,TI也可供查詢運(yùn)用。3、RI:接收中斷標(biāo)記位。在方式0時,當(dāng)接收數(shù)據(jù)的第8位結(jié)束后,或在其它方式接收到停止位的中間由內(nèi)部硬件使RI置位,向CPU懇求中斷。同樣,在CPU響應(yīng)中斷后,也必需用軟件清零。RI也可供查詢運(yùn)用。4、REN:允許串行接收限制位。若REN=0,則禁止接收;REN=1,則允許接收,該位由軟件置位或復(fù)位。5、TB8:發(fā)送數(shù)據(jù)D8位。在方式2和方式3時,TB8為所要發(fā)送的第9位數(shù)據(jù)。在多機(jī)通信中,以TB8位的狀態(tài)表示主機(jī)發(fā)送的是地址還是數(shù)據(jù):TB8=0為數(shù)據(jù),TB8=1為地址;也可用作數(shù)據(jù)的奇偶校驗(yàn)位。該位由軟件置位或復(fù)位。6、RB8:接收數(shù)據(jù)D8位。在方式2和方式3時,接收到的第9位數(shù)據(jù),可作為奇偶校驗(yàn)位或地址幀或數(shù)據(jù)幀的標(biāo)記。方式1時,若SM2=0,則RB8是接收到的停止位。在方式0時,不運(yùn)用RB8位。7、SM2:方式2、方式3時用于多機(jī)通信的限制位。?方式2或方式3處于接收時:
若SM2=1且接收到的第9位數(shù)據(jù)(RB8)為0時,不啟動接收中斷標(biāo)記RI(即RI=0),并且將接收到的前8位數(shù)據(jù)丟棄;
若SM2=1且收到的第9位RB8為1時,才將接收到的前8位數(shù)據(jù)送入SBUF,并置位RI,產(chǎn)生中斷懇求。若SM2=0,則不論第9位數(shù)據(jù)為0或1,都將前8位數(shù)據(jù)裝入SBUF中,并產(chǎn)生中斷懇求。?方式1中,當(dāng)處于接收時,若SM2=1,則只有接收到有效的停止信號為止,RI才置"1"。?方式0中SM2應(yīng)置"0"。三、專用寄存器PCON
CPU專用寄存器PCON為電源限制寄存器。
PCON(87H):SMODXXXGF1GF0PDIDLPCON的最高位SMOD是串行口波特率系數(shù)限制位。SMOD=1時,波特率增大一倍。其余各位與串行口無關(guān)。SMOD=0時,方式2波特率為fosc/64;
SMOD=1時,方式2波特率為fosc/32;
SMOD還影響方式1、方式3波特率的計(jì)算公式。第三節(jié)
波特率設(shè)計(jì)
串行口編程可約定4種工作方式。其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可變的,由定時器T1的溢出率限制。一、方式0和方式21、
方式0,每個機(jī)器周期發(fā)送或接收一位數(shù)據(jù),因此波特率固定為時鐘頻率的1/12,且不受SMOD的影響。2、
方式2的波特率取決于PCON中的SMOD之值。當(dāng)SMOD=0時,波特率為時鐘頻率的1/64;若SMOD=1,則波特率為時鐘頻率的1/32。
方式2波特率=(2SMOD/64)*Fosc二、方式1和方式3串行口方式1和方式3的波特率由定時器T1的溢出率與SMOD值同時確定。波特率=(2SMOD/32)*(T1的溢出率)其中:T1的溢出率取決于計(jì)數(shù)速率和定時器的預(yù)置值。1、
計(jì)數(shù)速率:當(dāng)TMOD中C/T=0,定時方式,計(jì)數(shù)速率=Fosc/12;=1,計(jì)數(shù)方式,計(jì)數(shù)速率取決于外部輸入時鐘頻率。3、溢出率為溢出周期之倒數(shù):
波特率=(2SMOD/32)(Fosc/(12*(256-X))4、定時器T1方式2的初始值為:
X=256-(fosc*(SMOD+1)/(384*波特率))
2、溢出周期:當(dāng)定時器T1作波特率發(fā)生器運(yùn)用時,通常是選用自動重裝載模式,即模式2。在模式2中,TL1作計(jì)數(shù)用,而自動重裝載的值放在TH1內(nèi)。設(shè)計(jì)數(shù)初值為X,那么每過“256-X”個機(jī)器周期,定時器T1就會產(chǎn)生一次溢出。為了避開因溢出而產(chǎn)生不必要的中斷,此時應(yīng)禁止T1中斷。溢出周期為:(12/Fosc)*(256-X)
例:已知8051單片機(jī)時鐘振蕩器為11.0592MHZ,選用定時器T1工作方式2作波特率發(fā)生器,波特率為2400波特,求初值。解:設(shè)SMOD=0,
X=256—11.0592*106*1/(384*2400)=244=F4H
所以TH1=TL1=F4H
假如串行通訊選用很低的波特率,可將定時器T1置于方式0或方式1,即13位或16位定時方式。但在這種狀況下,T1溢出時,需重裝初值,從而對波特率產(chǎn)生確定的誤差。
表:常用波特率與定時/計(jì)數(shù)器1各參數(shù)關(guān)系見書中P123第四節(jié)
串行通訊工作方式一、方式01、
在方式0下,串行口作同步移位寄存器用,其波特率是固定的,為fosc/12。2、
串行數(shù)據(jù)由RXD(P3.0)端輸入或輸出。3、
同步移位脈沖由TXD(P3.1)端送出。4、
這種方式常用于擴(kuò)展I/O口
RXD8051TXD1274LS164345610111213數(shù)據(jù)輸出移位脈沖D7D0串入并出寄存器方式0用于I/O擴(kuò)展輸出RXDTXD
80519274LS165
654314131211數(shù)據(jù)輸入移位脈沖D0D7并入串出寄存器方式0用于I/O擴(kuò)展輸入發(fā)送:當(dāng)一個數(shù)據(jù)寫入發(fā)送緩沖寄存器SBUF,串行口即把8位數(shù)據(jù)以fosc/12的波特率從RXD端送出(低位在前),發(fā)送完置中斷標(biāo)記TI為1。接收:REN是串行口接收器允許接收限制位。REN=0,禁止接收;REN=1,允許接收。當(dāng)軟件置REN為1時,即起先從RXD端以fosc/12波特率輸入數(shù)據(jù)(低位在前),當(dāng)接收到8位數(shù)據(jù)時,置中斷標(biāo)記RI為1。
這種擴(kuò)展方法輸入輸出的速度是不高的,如fosc=12MHZ,則每移動一位需1us.留意:1、串行限制寄存器中TB8或RB8位在方式0中未用。2、每當(dāng)發(fā)送或接收完8位數(shù)據(jù)時,由硬件將發(fā)送中斷TI或接收中斷RI標(biāo)記置位。3、CPU響應(yīng)TI或RI中斷懇求時,不會清除TI或RI標(biāo)記,必需由用戶用軟件清0。4、方式0時,SM2位必需為0。二、方式11、
串行口為8位通用異步接口,一幀信息為10位。2、
1位起始位0,8位數(shù)據(jù)位和1位停止位1;3、
傳送波特率可調(diào)
發(fā)送:數(shù)據(jù)從TXD端輸出,當(dāng)數(shù)據(jù)寫入發(fā)送緩沖器SBUF時,就啟動發(fā)送器發(fā)送。當(dāng)發(fā)送完一幀數(shù)據(jù)后,就把TI標(biāo)記置1,并申請中斷。接收:由REN置1允許接收,串行口采樣引腳RXD。當(dāng)采到1至0的跳變時,確認(rèn)是起始位“0”,就起先接收一幀數(shù)據(jù)。當(dāng)RI=0且停止位為1或者SM2=0時,停止位進(jìn)入RB8位,同時置位中斷標(biāo)記RI;否則,信息將丟失。所以通常方式1下,設(shè)SM2=0。三、方式21、
串行口為9位通用異步接口,一幀信息為11位。2、
1位起始位0,8位數(shù)據(jù)位,1位可編程位和1位停止位1;3、
傳送波特率與SMOD有關(guān)。發(fā)送:發(fā)送前,先依據(jù)通訊協(xié)議由軟件設(shè)置TB8(如作奇偶校驗(yàn)位或地址/數(shù)據(jù)標(biāo)識位),然后將要發(fā)送的數(shù)據(jù)寫入SBUF,即啟動發(fā)送器。發(fā)送過程,是執(zhí)行任何一條以SBUF作為目的寄存器的指令而啟動的?!皩慡BUF”信號,把8位數(shù)據(jù)裝入SBUF,同時還把TB8裝到發(fā)送移位寄存器的第9位位置上,并通知發(fā)送限制器,要求進(jìn)行一次發(fā)送。然后即從TXD端輸出一幀信息。接收:先置位REN為1,使串行口處于允許接收狀態(tài),同時還要將RI清0。在滿足這個條件的前提下,再依據(jù)SM2的狀態(tài)(因?yàn)镾M2是方式2和方式3的多機(jī)通訊限制位)和所接收到的RB8的狀態(tài)才能確定此串行口在信息到來后是否會使RI置1,并申請中斷,接收數(shù)據(jù)。當(dāng)SM2=0時,不管是RB8為0還是為1,RI都置1,此串行口將接收發(fā)來的信息。當(dāng)SM2=1時,且RB8為1時,表示在多機(jī)通訊狀況下,接收的信息為地址幀,此時RI置1。串行口將接收發(fā)來的信息。當(dāng)SM2=1時,且RB8為0時,表示接收的信息為數(shù)據(jù)幀,但不是發(fā)給本從機(jī)的,此時RI不置1,因此所接收的數(shù)據(jù)幀將丟失。四、方式3
方式3為波特率可變的11位異步通訊方式。除波特率外,方式3和方式2完全相同。第五節(jié)
串行口應(yīng)用舉例一、方式0舉例,用串行口擴(kuò)展I/O口
例1用并行輸入8位移位寄存器74LS165作為擴(kuò)展輸入口。下圖是利用8051的3根口線擴(kuò)展為16根輸入口線的好用電路,其由2塊74LS165串接而成(前級的數(shù)據(jù)輸出位QH與后級的信號輸入端SIN相連)。
現(xiàn)編程從16位擴(kuò)展口讀入20個字節(jié)數(shù)據(jù)(讀十次),并把它們轉(zhuǎn)存到內(nèi)部RAM的50H~63H中。
P3.08051
P3.1
P1.0QHSIN74LS165S/LCKQH74LS165S/LCK+5VD0D7D0D76129111516810
MOVR7,#14H ;設(shè)置讀入字節(jié)數(shù)
MOVR0,#50H ;設(shè)片內(nèi)RAM指針 SETBF0 ;設(shè)置讀入字節(jié)奇偶數(shù)標(biāo)記RCV0:CLRP1.0 ;并行口輸入數(shù)據(jù),允許74165串行移位
SETBP1.0
RCV1:MOVSCON,#10H;設(shè)串行口方式0并啟動接收
JNBRI,$ ;等待接收一幀數(shù)據(jù)CLRRI ;清接收中斷標(biāo)記
MOVA,SBUF ;取緩沖器數(shù)據(jù)
MOV@R0,A
INCR0
CPLF0
JBF0,RCV2;判是否接收完偶數(shù)幀,接收完則重新并行置入
DECR7
SJMPRCV1 ;否則再接收一幀RCV2:DJNZR7,RCV0 ;判是否已讀入預(yù)定的字節(jié)數(shù)程序中F0作為讀入字節(jié)的奇偶性標(biāo)記。由于每次由擴(kuò)展口并行輸入到移位寄存器的是兩個字節(jié)數(shù)據(jù),置入一次,串行口應(yīng)接收二幀數(shù)據(jù)。故已接收的數(shù)據(jù)字節(jié)數(shù)為奇數(shù)時F0=0,不再并行輸入數(shù)據(jù)就干脆啟動接收過程。否則F0=1,在啟動接收過程前,應(yīng)當(dāng)先在外部移位寄存器中輸入新的數(shù)據(jù)。例2用8位并行輸出串行移位寄存器74LS164作為擴(kuò)展輸出口。由于74LS164無并行輸出限制端,在串行輸入過程中,其輸出端的狀態(tài)會不斷變更,故在某些場合,在74LS164與輸出裝置之間,還應(yīng)加上輸出可控的緩沖級(如74LS244),以便串行輸入過程結(jié)束后再輸出。
圖中的輸出裝置是2位共陽級七段顯示發(fā)光二極管,接受靜態(tài)顯示方式。
由于74LS164在低電平輸出時,允許通過電流可達(dá)8mA,故不需再加驅(qū)動電路。與動態(tài)掃描顯示比較,靜態(tài)顯示方式的優(yōu)點(diǎn)是CPU不必常見的為顯示服務(wù),軟件設(shè)計(jì)比較簡潔,很簡潔做到顯示不閃爍。
編程把片內(nèi)20H、21H中的數(shù)字取出,由串行口送給顯示器,顯示相應(yīng)的數(shù)字。+5VP3.08051P3.1
P1.0
QAQHA,B74LS164CLRCK
QAQHA,B74LS164CLRCK+5V
共陽極LED
。ga
共陽極LED
。ga3131,298714 MOVR7,#02H;設(shè)置顯示位數(shù) MOVR0,#20H;設(shè)顯示數(shù)據(jù)區(qū)指針
MOVSCON,#00H;設(shè)串行口方式0DISP1: MOVA,@R0
MOVDPTR,#TABH
MOVCA,@A+DPTR;取顯示碼
MOVSBUF,A;啟動串行口發(fā)送過程
JNBTI,$;等待接收一幀數(shù)據(jù)
CLRTI;清串行口發(fā)送中斷標(biāo)記
INCR0;修改指針取下一個數(shù)
DJNZR7,DISP1
RET
TAB: DBC0H,F9H,A4H,B0H,99H;0,1,2,3,4的顯示代碼
DB92H,82H,F8H,80H,98H;5,6,7,8,9的顯示代碼方式1舉例例:雙機(jī)通信,甲機(jī)發(fā)送乙機(jī)接收,波特率2400,晶振6MHz,T1作為波特率發(fā)生器,串行口工作在方式1。甲機(jī)送出數(shù)據(jù)為50H起先的16個字節(jié)數(shù)據(jù)。乙機(jī)接收數(shù)據(jù)存放在3000H~300FH單元中(外部RAM)
解:
雙機(jī)通信串行口工作在方式1,定時器T1工作在方式2。
定時常數(shù):X=256-(fosc*(SMOD+1))/(384*波特率)
若SMOD=0,則X=249.49,誤差較大。
取SMOD=1,則X=242.98=243=F3H,誤差較小。
發(fā)送程序:
MOVTMOD,#20H;定時器(波特率)初始化
MOVTL1,#0F3H
MOVTH1,#0F3H
SETBTR1
MOVSCON,#40H;串行口初始化
MOVPCON,#80H
MOVR0,#50H
MOVR7,#10H
TRS: MOVA,@R0
MOVSBUF,AWAIT: JBCTI,CONT
AJMPWAIT
CONT: INCR0
DJNZR7,TRS
RET
接收程序: MOVTMOD,#20H;定時器(波特率)初始化
MOVTL1,#0F3H
MOVTH1,#0F3H
SETBTR1
MOVSCON,#50H;串行口初始化
MOVPCON,#80H
MOVDPTR,#3000H
MOVR7,#10H
WAIT: JBCRI,READ AJMPWAIT
READ: MOVA,SBUF
MOVX@DPTR,A
INCDPTR
DJNZR7,WAIT RET
例:方式3舉例編程把甲機(jī)片內(nèi)RAM50H—5FH單元中的數(shù)據(jù)塊從串行口輸出。乙機(jī)從甲機(jī)接收16字節(jié)數(shù)據(jù)塊,并存入片外3000H—300FH單元。接收過程要求推斷奇偶校驗(yàn)標(biāo)記RB8。若出錯置F0標(biāo)記為1,正確置F0標(biāo)記為0。然后返回。要求:定義工作方式3發(fā)送,TB8作奇偶校驗(yàn)位。接受定時器1方式2作波特率發(fā)生器,波特率為1200,F(xiàn)osc=11.0592MHZ分析:預(yù)置值TH1=0E8H。發(fā)送: MOV TMOD,#20H ;設(shè)置定時器1為方式2 MOV TL1,#0E8H ;設(shè)置預(yù)置值;
MOV TH1,#0E8H SETB TR1 ;啟動定時器1 MOV SCON,#0C0H ;設(shè)置串行口為方式3 MOV PCON,#00H ;SMOD=0 MOV R0,#50H ;設(shè)數(shù)據(jù)塊指針
MOV R7,#10H ;設(shè)數(shù)據(jù)長度TRS: MOV A,@R0 ;取數(shù)據(jù)到A
MOV C,P MOV TB8,C ;奇偶位P送TB8
MOV SBUF,A ;數(shù)據(jù)送SBUF,啟動發(fā)送WAIT: JBC TI,CONT ;判一幀是否發(fā)送完
AJMP MAIT ;未完等待CONT: INC R0 ;更新數(shù)據(jù)單元
DJNZ R7,TRS ;循環(huán)發(fā)送至結(jié)束
RET ;返回接收: MOV TMOD,#20H ;設(shè)置定時器1為方式2 MOV TL1,#0E8H ;設(shè)置預(yù)置值 MOV TH1,#0E8H SETB TR1 ;啟動定時器1 MOV SCON,#0C0H ;設(shè)置串行口為方式3 MOV PCON,#00H ;SMOD=0 MOV DPTR,#3000H;設(shè)置數(shù)據(jù)塊指針 MOV R7,#10H ;設(shè)數(shù)據(jù)塊長度 SETB REN ;允許接收WAIT: JBC RI,READ ;判一幀是否接收完 AJMP WAIT ;未完接著等待READ: MOV A,SBUF ;讀入一幀數(shù)據(jù) JNB PSW.0,PZ ;奇偶位P為0則轉(zhuǎn) JNB RB8,ERR ;P=1,RB8=0則出錯 SJMP YES ;二者全為1則正確PZ: JB RB8,ERR ;P=0,RB8=1則出錯YES: MOVX @DPTR,A ;正確,存放數(shù)據(jù) INC DPTR ;修改地址指針 DJNZ R7,WAIT ;推斷數(shù)據(jù)塊接收完否 CLR PSW.5 ;接收正確,且接收完清F0標(biāo)記 RET ;返回ERR: SETB PSW.5 ;出錯置F0標(biāo)記為1 RET ;返回第六節(jié)多機(jī)串行通訊技術(shù)一、多機(jī)通訊的基本原理圖主從式多機(jī)通訊系統(tǒng)
MCS-51系列單片機(jī)的串行通訊方式2和方式3具有多機(jī)通訊功能,可構(gòu)成各種分布式通
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 邯鄲市重點(diǎn)中學(xué)2025年高三畢業(yè)生復(fù)習(xí)統(tǒng)一檢測試題語文試題含解析
- 物理物質(zhì)的三態(tài) 溫度的測量第1課時同步練習(xí) 2024-2025學(xué)年蘇科版物理八年級上學(xué)期
- 廣東省汕頭市貴嶼中學(xué)2024-2025學(xué)年下學(xué)期高三年級期中考試語文試題試卷含解析
- DB54T 0408-2024羊肚菌菌種生產(chǎn)技術(shù)規(guī)程
- 廣東茂名十七中2024-2025學(xué)年高三下學(xué)期第三次監(jiān)測語文試題含解析
- 甘肅省武威第三中學(xué)2025屆高三第一次模擬質(zhì)量聯(lián)測語文試題含解析
- 腦卒中后吞咽障礙患者進(jìn)食護(hù)理團(tuán)體標(biāo)準(zhǔn)
- 福建省莆田二十五中2025年第二學(xué)期期末高三語文試題含解析
- 大學(xué)生最期待的被表白方式
- 幼兒午睡登記表
- 現(xiàn)場管理中的組織架構(gòu)與層級管理
- 消防車輛交通事故培訓(xùn)課件
- 大健康馬術(shù)俱樂部項(xiàng)目評價(jià)分析報(bào)告
- 冷庫保養(yǎng)維護(hù)辦法培訓(xùn)課件
- 小兒過敏性休克應(yīng)急演練
- 了解滅火器與滅火器的使用方法
- 論述商務(wù)談判主持人的職責(zé)
- 衛(wèi)生院醫(yī)藥領(lǐng)域集中整治工作方案
- 粵教版綜合實(shí)踐活動三年級上冊第四單元第一課時《玩具總動員》課件
- 浙江省寧波市金蘭教育合作組織2023-2024學(xué)年高二上學(xué)期期中聯(lián)考數(shù)學(xué)試題
- 新視野大學(xué)英語第三版視聽說思政數(shù)字課程2答案
評論
0/150
提交評論