




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第6章MCS-51串行口1單片機(jī)串口第1頁2內(nèi)容介紹:通信方式:串行口與并行口串行通訊方式:異步通信和同時(shí)通信§1串行口結(jié)構(gòu)§2串行口工作方式§3多機(jī)通訊§4波特率制訂方法§5串行口編程和應(yīng)用
單片機(jī)串口第2頁3串行口與并行口并行通信:8位數(shù)據(jù)同時(shí)發(fā)送或接收。8051外部設(shè)備并行通信串行通信:數(shù)據(jù)一位一位次序發(fā)送或接收。80518051TXDTXDRXDRXD串行通信單片機(jī)串口第3頁4異步通信:它用一個(gè)起始位表示字符開始,用停頓位表示字符結(jié)束。
其每幀格式以下:在一幀格式中,先是一個(gè)起始位0,然后是8個(gè)數(shù)據(jù)位,要求低位在前,高位在后,接下來是奇偶校驗(yàn)位(能夠省略),最終是停頓位1。用這種格式表示字符,則字符能夠一個(gè)接一個(gè)地傳送。
在異步通信中,CPU與外設(shè)之間必須有兩項(xiàng)要求,即字符格式和波特率。
字符格式要求是雙方能夠在對(duì)同一個(gè)0和1串了解成同一個(gè)意義。標(biāo)準(zhǔn)上字符格式能夠由通信雙方自由制訂,但從通用、方便角度出發(fā),普通還是使用一些標(biāo)準(zhǔn)為好,如采取ASCII標(biāo)準(zhǔn)。
波特率即數(shù)據(jù)傳送速率,其定義是每秒鐘傳送二進(jìn)制數(shù)位數(shù)。比如,數(shù)據(jù)傳送速率是120字符/s,而每個(gè)字符如上述要求包含10數(shù)位,則傳送波特率為1200波特。單片機(jī)串口第4頁5同時(shí)通信:
在異步通信中,每個(gè)字符要用起始位和停頓位作為字符開始和結(jié)束標(biāo)志,占用了時(shí)間;所以在數(shù)據(jù)塊傳遞時(shí),為了提升速度,常去掉這些標(biāo)志,采取同時(shí)傳送。因?yàn)閿?shù)據(jù)塊傳遞開始要用同時(shí)字符來指示,同時(shí)要求由時(shí)鐘來實(shí)現(xiàn)發(fā)送端與接收端之間同時(shí),故硬件較復(fù)雜。單片機(jī)串口第5頁6通信方向:單工傳送:在串行通訊中,把通訊接口只能發(fā)送或接收單向傳送方法叫單工傳送;雙工傳送:而把數(shù)據(jù)在甲乙兩機(jī)之間雙向傳遞,稱之為雙工傳送。在雙工傳送方式中又分為半雙工傳送和全雙工傳送。
1、半雙工傳送:是兩機(jī)之間不能同時(shí)進(jìn)行發(fā)送和接收,任一時(shí)該,只能發(fā)或者只能收信息。
2、全雙工傳送:是兩機(jī)之間能同時(shí)進(jìn)行發(fā)送和接收。單片機(jī)串口第6頁7§6.1串行口結(jié)構(gòu)
MCS-51單片機(jī)內(nèi)部有一個(gè)功效很強(qiáng)全雙工串行口,該串行口有四種工作方式,波特率可用軟件設(shè)置,由片內(nèi)定時(shí)器/計(jì)數(shù)器產(chǎn)生。串行口接收、發(fā)送數(shù)據(jù)均可觸發(fā)中止系統(tǒng),使用十分方便。
MCS-51單片機(jī)內(nèi)部串行口,有兩個(gè)物理上獨(dú)立地接收、發(fā)送緩沖器SBUF,可同時(shí)發(fā)送、接收數(shù)據(jù),發(fā)送緩沖器只能寫入不能讀出,接收緩沖器只能讀出不能寫入,兩個(gè)緩沖器共用一個(gè)字節(jié)地址(99H)。
控制MCS-51單片機(jī)串行口控制存放器共有兩個(gè):
串行口控制存放器SCON
特殊功效存放器PCON單片機(jī)串口第7頁8§6.1.1串行口控制存放器SCONSCONRITIRB8TB8RENSM2SM1SM0D7D6D5D4D3D2D1D098H9FH9EH9DH9CH9BH9AH99H98H
SM0、SM1:串行口4種工作方式選擇位。
SM2:多機(jī)通訊控制位。
REN:允許串行接收控制位。TB8:是工作在方式2和3時(shí),要發(fā)送第9位數(shù)據(jù)。RB8:當(dāng)工作在方式2和3時(shí),為收到第9位數(shù)據(jù)。
TI:發(fā)送中止標(biāo)志位。
RI:接收中止標(biāo)志位。單片機(jī)串口第8頁9SM0、SM1:串行口4種工作方式選擇位SCONRITIRB8TB8RENSM2SM1SM0D7D6D5D4D3D2D1D098H9FH9EH9DH9CH9BH9AH99H98HSM0SM1方式 功效
00方式0同時(shí)移位存放器方式01方式18位串行口(波特率可變)10方式29位串行口(波特率固定)11方式39位串行口(波特率可變)單片機(jī)串口第9頁10SM2:允許方式2和3多機(jī)通訊控制位。SCONRITIRB8TB8RENSM2SM1SM0D7D6D5D4D3D2D1D098H9FH9EH9DH9CH9BH9AH99H98H(1)方式2,方式3下,SM2=1,接收到第9位RB8=0時(shí),不激活RI,不能向CPU申請(qǐng)中止如接收到第9位RB8=1時(shí),激活RI,將RI=1,向CPU申請(qǐng)中止(2)方式2,方式3下,SM2=0,不論RB8=0或RB8=1,都激活RI=1。(3)方式1,當(dāng)SM2=1時(shí),只有接收到有效停頓位時(shí),才激活RI當(dāng)SM2=0時(shí),正常接收。(4)方式0,SM2必須清0,即SM2=0。單片機(jī)串口第10頁11REN:允許串行接收控制位SCONRITIRB8TB8RENSM2SM1SM0D7D6D5D4D3D2D1D098H9FH9EH9DH9CH9BH9AH99H98HREN:允許串行接收控制位,由軟件置位或清零。REN=1,允許串行口接收數(shù)據(jù)。REN=0,禁止串行口接收數(shù)據(jù)。單片機(jī)串口第11頁12TB8和RB8:SCONRITIRB8TB8RENSM2SM1SM0D7D6D5D4D3D2D1D098H9FH9EH9DH9CH9BH9AH99H98HTB8:當(dāng)串行口工作在方式2、方式3,要發(fā)送第9位數(shù)據(jù)時(shí)放在TB8中(D8=第9位),需要時(shí)由軟件置1或清0。在許多通訊協(xié)議中該位是奇偶校驗(yàn)位。在多機(jī)通訊中用來表示是地址幀還是數(shù)據(jù)幀,TB8=1為地址幀,TB8=0為數(shù)據(jù)幀。RB8:方式2、方式3下,要接收第9位數(shù)據(jù)。可能是奇偶校驗(yàn)位或在多機(jī)通訊中為地址幀或數(shù)據(jù)幀標(biāo)識(shí)位。
方式1時(shí),SM2=0,RB8是已接收停頓位。
方式0時(shí),不使用RB8。單片機(jī)串口第12頁13TI和RISCONRITIRB8TB8RENSM2SM1SM0D7D6D5D4D3D2D1D098H9FH9EH9DH9CH9BH9AH99H98HTI:發(fā)送中止標(biāo)志 由硬件在方式0串行發(fā)送第8位結(jié)束時(shí)置位或其它方式串行發(fā)送停頓位開始時(shí)置位。必須由軟件清零TI。RI:接收中止標(biāo)志:由硬件在方式0串行接收到第8位結(jié)束時(shí)置位或其它方式下串行接收停頓位中間時(shí)置位,必須由軟件清零RI。單片機(jī)串口第13頁14§6.1.2特殊功效存放器PCONPCONSMODD7D6D5D4D3D2D1D087HPCON:電源控制存放器 SMOD:串行口波特率系數(shù)控制位
SMOD=1
波特率加倍
SMOD=0
波特率不加倍D0~D6:掉電方式控制位。單片機(jī)串口第14頁15§6.2串行口工作方式SM0SM1方式
功效
00方式0
同時(shí)移位存放器方式01方式1
8位串行口(波特率可變)10方式2
9位串行口(波特率固定)11方式3
9位串行口(波特率可變)單片機(jī)串口第15頁16§6.2.1方式0
方式0為移位存放器輸入/輸出方式。可外接移位存放器以擴(kuò)展I/O口,也能夠外接同時(shí)輸入/輸出設(shè)備。8位串行數(shù)據(jù)者是從RXD輸入或輸出,TXD用來輸出同時(shí)脈沖。
方式0輸出方式0輸入單片機(jī)串口第16頁17方式0輸出
數(shù)據(jù)從RXD引腳串行輸出,TXD引腳輸出移位脈沖。
當(dāng)一個(gè)數(shù)據(jù)寫入串行口發(fā)送緩沖器時(shí),串行口即將8位數(shù)據(jù)以fosc/12固定波特率從RXD引腳輸出,低位在先。發(fā)送完8位數(shù)據(jù)置“1”中止標(biāo)志位TI。CPU響應(yīng)TI中止,標(biāo)志位必須由用戶程序清0。單片機(jī)串口第17頁18方式0輸入:
REN為串行口接收器允許接收控制位,REN=0,禁止接收,REN=1,允許接收。當(dāng)串行口置為方式0,并置“l(fā)”REN位,串行口處于方式0輸入。引腳RXD為數(shù)據(jù)輸入端,TXD為移位脈沖信號(hào)輸出端,接收器也以fosc/12固定波特率采樣RXD引腳數(shù)據(jù)信息,當(dāng)接收器接收到8位數(shù)據(jù)時(shí)置“l(fā)”中止標(biāo)志RI。CPU響應(yīng)RI中止,標(biāo)志位必須由用戶程序清0。單片機(jī)串口第18頁19方式1:串行口被控制為波特率可變8位異步通信接口。
波特率=(2SMOD/32)×T1溢出率式中SMOD為PCON存放器最高位值(0或1)。
一幀信息包含10位:1位起始位(低電平0)+8位數(shù)據(jù)位(低位在先)+1位停頓位(高電平1)方式1發(fā)送:TXD-發(fā)送端方式1接收:RXD-接收端單片機(jī)串口第19頁20方式1發(fā)送
CPU執(zhí)行寫入SBUF指令后,開啟串行口發(fā)送數(shù)據(jù),數(shù)據(jù)從發(fā)送端發(fā)送出去,發(fā)送完成后,將TI置位,向CPU申請(qǐng)中止,再次發(fā)送之前必須由軟件清0。單片機(jī)串口第20頁21方式1接收
當(dāng)REN=1且采樣到RXD引腳負(fù)跳變,而且接收到有效起始位時(shí),才開始接收本幀其余信息。當(dāng)滿足RI=0且SM2=0或接收到停頓位為1時(shí),接收數(shù)據(jù)有效,裝入SBUF,停頓位裝入RB8中,同時(shí)置位RI=1,向CPU申請(qǐng)中止。若有一個(gè)條件不滿足,則信息丟失。單片機(jī)串口第21頁22
方式2
9位異步通信接口(固定波特率)波特率:(2SMOD/64)×fOSC
一幀信息11位:1位起始位+8位數(shù)據(jù)位+1位可編程位+1位停頓位1位可編程位:接收時(shí)放到RB8中,發(fā)送時(shí)放到TB8中,奇偶校驗(yàn)位可放到可編程位中作為校驗(yàn)。方式2發(fā)送:方式2接收:單片機(jī)串口第22頁23方式2發(fā)送方式2發(fā)送:先把可編程位放到TB8中,然后CPU執(zhí)行一條寫入發(fā)送緩沖區(qū),當(dāng)發(fā)送數(shù)據(jù)到停頓位時(shí),將TI置位,當(dāng)要送到下一幀時(shí),先將TI清0。單片機(jī)串口第23頁24方式2接收方式2接收:與方式1相同,當(dāng)REN=1且采樣到RXD引腳負(fù)跳變,而且接收到有效起始位時(shí),才開始接收本幀其余信息。當(dāng)滿足RI=0且SM2=0或接收到第9數(shù)據(jù)位為1時(shí),接收數(shù)據(jù)有效,裝入SBUF,第9位數(shù)據(jù)裝入RB8中,同時(shí)置位RI=1,向CPU申請(qǐng)中止。若有一個(gè)條件不滿足,則信息丟失。單片機(jī)串口第24頁25
方式39位異步通信接口波特率=(2SMOD/32)×T1溢出率(同方式1算法相同)
一幀信息11位:1位起始位+8位數(shù)據(jù)位+1位可編程位+1位停頓位1位可編程位:接收時(shí)放到RB8中,發(fā)送時(shí)放到TB8中,奇偶校驗(yàn)位可放到可編程位中作為校驗(yàn)。除波特率不一樣,其它同方式2發(fā)送一樣:除波特率不一樣,其它同方式2接收一樣:單片機(jī)串口第25頁26§6.3多機(jī)通信
串行口控制存放器SCON中SM2為方式2或方式3多機(jī)通信控制位,當(dāng)串行口以方式2或方式3工作時(shí),若SM2程控為l,此時(shí)只有當(dāng)串行口接收到第9位數(shù)據(jù)RB8=1時(shí),才置1中止標(biāo)志RI,若接收到RB8=0,則不產(chǎn)生中止標(biāo)志,信息被丟失。應(yīng)用MCS-51串行口這個(gè)特征,便可實(shí)現(xiàn)多機(jī)通訊。
多機(jī)通信舉例:有一個(gè)主機(jī)(MCS-5l或其它含有串行接口微機(jī))和三個(gè)由8031組成從機(jī)系統(tǒng)。單片機(jī)串口第26頁27多機(jī)通信
設(shè)在一個(gè)多機(jī)系統(tǒng)中有一個(gè)主機(jī)(MCS-5l或其它含有串行接口微機(jī))和三個(gè)由8031組成從機(jī)系統(tǒng),從機(jī)地址分別為00H、0lH和02H。(地址=1,數(shù)據(jù)=0)。1、發(fā)送地址TB8=1:當(dāng)SM2=1且RB8=1,激活RI,進(jìn)入中止服務(wù)子程序,進(jìn)行地址比較。如地址相同,則SM2=0,不然SM2=1。2、發(fā)送數(shù)據(jù)TB8=0:當(dāng)SM2=1且RB8=0,不能激活RI。
當(dāng)SM2=0且RB8=0,能夠激活RI。
能夠進(jìn)入中止服務(wù)子程序,接收數(shù)據(jù)。單片機(jī)串口第27頁28§6.4波特率制訂方法波特率定義:串行口每秒鐘發(fā)送(或接收)位數(shù)稱為波特率。
當(dāng)串行口工作于方式1和方式3時(shí),波特率是可變,由SMOD位和定時(shí)器溢出率確定,允許用戶所取波特率范圍比較大。一、定時(shí)器T1工作于方式0波特率求法:二、定時(shí)器T1工作于方式1波特率求法:二、定時(shí)器T1工作于方式2波特率求法:單片機(jī)串口第28頁29一、定時(shí)器T1工作于方式0
波特率求法:
當(dāng)串行口工作于方式1和方式3時(shí),波特率是可變,由SMOD位和定時(shí)器溢出率確定,允許用戶所取波特率范圍比較大。一、定時(shí)器T1工作于方式0波特率求法:
方式0相當(dāng)于定時(shí)器T1是一個(gè)13位定時(shí)器/計(jì)數(shù)器,它采取TH1八位和TL1低五位組成一個(gè)13位計(jì)數(shù)器,它波特率按下式計(jì)算:
波特率=(2SMOD/32)×T1溢出率T1溢出率=1/(T1溢出時(shí)間)T1溢出時(shí)間=(213-a+執(zhí)行置13位定時(shí)器值中止處理程序機(jī)器周期數(shù))*12/晶振頻率
注意:a是定時(shí)器計(jì)數(shù)初值,就是我們所要求值。單片機(jī)串口第29頁30二、定時(shí)器T1工作于方式1
波特率求法:
當(dāng)串行口工作于方式1和方式3時(shí),波特率是可變,由SMOD位和定時(shí)器溢出率確定,允許用戶所取波特率范圍比較大。一、定時(shí)器T1工作于方式1波特率求法:
方式1相當(dāng)于定時(shí)器T1是一個(gè)16位定時(shí)器/計(jì)數(shù)器,它波特率按下式計(jì)算:
波特率=(2SMOD/32)×T1溢出率T1溢出率=1/(T1溢出時(shí)間)T1溢出時(shí)間=(216-a+執(zhí)行置16位定時(shí)器值中止處理程序機(jī)器周期數(shù))*12/晶振頻率
注意:a是定時(shí)器計(jì)數(shù)初值,就是我們所要求值。單片機(jī)串口第30頁31二、定時(shí)器T1工作于方式2
波特率求法:
當(dāng)串行口工作于方式1和方式3時(shí),波特率是可變,由SMOD位和定時(shí)器溢出率確定,允許用戶所取波特率范圍比較大。一、定時(shí)器T1工作于方式2波特率求法:
方式2是8位自動(dòng)裝入初值定時(shí)器,它波特率按下式計(jì)算:
波特率=(2SMOD/32)×T1溢出率T1溢出率=1/(T1溢出時(shí)間)T1溢出時(shí)間=(28-a)*12/晶振頻率
注意:a是定時(shí)器計(jì)數(shù)初值,就是我們所要求值。
普通來講,定時(shí)器方式2用來確定波特率是比較理想,它不需要中止服務(wù)程序來置數(shù),且算出波特率比較準(zhǔn)確,提議使用定時(shí)器T1方式2來確定波特率。單片機(jī)串口第31頁
三、波特率計(jì)算在串行通信中,收發(fā)雙方對(duì)發(fā)送或接收數(shù)據(jù)速率要有約定。經(jīng)過軟件可對(duì)單片機(jī)串行口編程為四種工作方式,其中方式0和方式2波特率是固定,而方式1和方式3波特率是可變,由定時(shí)器T1溢出率來決定。串行口四種工作方式對(duì)應(yīng)三種波特率。因?yàn)檩斎胍莆粫r(shí)鐘起源不一樣,所以,各種方式波特率計(jì)算公式也不相同。方式0波特率=fosc/12方式2波特率=(2SMOD/64)·fosc方式1波特率=(2SMOD/32)·(T1溢出率)方式3波特率=(2SMOD/32)·(T1溢出率)單片機(jī)串口第32頁
當(dāng)T1作為波特率發(fā)生器時(shí),最經(jīng)典使用方法是使T1工作在自動(dòng)再裝入8位定時(shí)器方式(即方式2,且TCONTR1=1,以開啟定時(shí)器)。這時(shí)溢出率取決于TH1中計(jì)數(shù)值。
T1溢出率=fosc/{12×[256-(TH1)]}
在單片機(jī)應(yīng)用中,慣用晶振頻率為:12MHz和11.0592MHz。所以,選取波特率也相對(duì)固定。慣用串行口波特率以及各參數(shù)關(guān)系如表所表示。單片機(jī)串口第33頁
串行口工作之前,應(yīng)對(duì)其進(jìn)行初始化,主要是設(shè)置產(chǎn)生波特率定時(shí)器1、串行口控制和中止控制。詳細(xì)步驟以下:確定T1工作方式(編程TMOD存放器);計(jì)算T1初值,裝載TH1、TL1;開啟T1(編程TCON中TR1位);確定串行口控制(編程SCON存放器);串行口在中止方式工作時(shí),要進(jìn)行中止設(shè)置(編程IE、IP存放器)。單片機(jī)串口第34頁35練習(xí)1-串行口波特率設(shè)串行口工作在方式1,定時(shí)器T1工作方式2,波特率=2400bit/sfOSC=6MHZSMOD=0,求計(jì)數(shù)初值a。(若SMOD=1呢?)。解:波特率=(2SMOD/32)*T1溢出率=(2SMOD/32)*{1/[(28-a)*(12/fOSC)]}2400=(1/32)*{1/[(28-a)*[12/(6*106)]}256-a=(6*106)/(240
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 游泳救生員職業(yè)發(fā)展前景試題及答案
- 工程圖紙閱讀試題及答案
- 2024年微生物環(huán)境影響評(píng)估試題及答案
- 關(guān)于游泳救生員的新規(guī)政策試題及答案
- 為未來鋪路的2024年體育經(jīng)紀(jì)人試題及答案
- 微生物檢驗(yàn)知識(shí)培訓(xùn)的試題及答案回顧
- 模具設(shè)計(jì)師考試常考試題及答案清單
- 三年級(jí)數(shù)學(xué)《筆算除法》教學(xué)課件
- 2024年足球裁判員組織架構(gòu)與責(zé)任試題及答案
- 模具設(shè)計(jì)師資格考試考點(diǎn)試題及答案
- SZDB-Z 173-2016 物業(yè)綠化養(yǎng)護(hù)管理規(guī)范
- 藝考全真樂理試題及答案
- 報(bào)價(jià)單模板完
- 可燃?xì)怏w報(bào)警系統(tǒng)安裝記錄
- 項(xiàng)目管理人員安全教育課件
- 伸臂式焊接變位機(jī)設(shè)計(jì)總體設(shè)計(jì)和旋轉(zhuǎn)減速器設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 生產(chǎn)作業(yè)流程圖
- 血細(xì)胞儀白細(xì)胞五分類法原理和散點(diǎn)圖特征
- 山東省醫(yī)院目錄
- 電子匯劃業(yè)務(wù)收費(fèi)憑證
- 受托支付合同(銀行版)
評(píng)論
0/150
提交評(píng)論