(玩電子) 電子技術學習與研xin)/div>
當前位置︰單片機(ji)教程網 >> 基(ji)礎教程 >> 瀏覽文章

十分11选5官网

作者:佚名   來(lai)源:本站原(yuan)創   點(dian)擊(ji)數:x  更(geng)新時間︰2007年(nian)08月14日   【字體(ti)︰ 中(zhong)

介紹︰串行(xing)口是單片機(ji)與外界進行(xing)信(xin)息交換的工(gong)具。

8051單片機(ji)的通(tong)信(xin)方式有(you)兩(liang)種︰

並行(xing)通(tong)信(xin):數據的各位同時發(fa)送或接收。  串行(xing)通(tong)信(xin):數據一位一位次序發(fa)送或接收。參看下圖︰

串行(xing)通(tong)信(xin)的方式︰

異步(bu)通(tong)信(xin)︰它用(yong)一個起(qi)始位表示(shi)字符的開(kai)始,用(yong)停止位表示(shi)字符的結束。其每幀的格式如下︰

在一幀格式中(zhong),先是一個起(qi)始位0,然後是8個數據位,規定低位在前,高位在後,接下來(lai)是奇偶校驗位(能(neng)省略),最後是停止位1。用(yong)這種zhi)袷獎硎shi)字符,則字符能(neng)一個接一個地傳送。

在異步(bu)通(tong)信(xin)中(zhong),CPU與外設之(zhi)間必(bi)須有(you)兩(liang)項規定,即字符格式和波特(te)率。字符格式的規定是雙方能(neng)夠在對同一種0和1的串理解成(cheng)同一種意義(yi)。原(yuan)則上字符格式能(neng)由(you)通(tong)信(xin)的雙方自由(you)制定,但從通(tong)用(yong)、方便(bian)的角度出發(fa),一般還是使(shi)用(yong)一些標準為(wei)好,如采(cai)用(yong)ASCII標準。

波特(te)率即數據傳送的速率,其定義(yi)是每秒鐘傳送的二進制數的位數。例如,數據傳送的速率是120字符/s,而每個字符如上述規定包含(han)10數位,則傳送波特(te)率為(wei)1200波特(te)。

同步(bu)通(tong)信(xin)︰在同步(bu)通(tong)信(xin)中(zhong),每個字符要(yao)用(yong)起(qi)始位和停止位作為(wei)字符開(kai)始和結束的標志,佔用(yong)了時間;所以在數據塊傳遞時,為(wei)了提高速度,常去掉這些標志,采(cai)用(yong)同步(bu)傳送。由(you)于數據塊傳遞開(kai)始要(yao)用(yong)同步(bu)字符來(lai)指(zhi)示(shi),同時要(yao)求由(you)時鐘來(lai)實現(xian)發(fa)送端與接收端之(zhi)間的同步(bu),故硬件較復雜。

通(tong)信(xin)方向︰在串行(xing)通(tong)信(xin)中(zhong),把通(tong)信(xin)接口只(zhi)能(neng)發(fa)送或接收的單向傳送辦法叫單工(gong)傳送;而把數據在甲乙(yi)兩(liang)機(ji)之(zhi)間的雙向傳遞,稱(chen)之(zhi)為(wei)雙工(gong)傳送。在雙工(gong)傳送方式中(zhong)又分(fen)為(wei)半雙工(gong)傳送和全(quan)雙工(gong)傳送。半雙工(gong)傳送是兩(liang)機(ji)之(zhi)間不能(neng)同時進行(xing)發(fa)送和接收,任wo)皇備茫 zhi)能(neng)發(fa)或者只(zhi)能(neng)收信(xin)息。

2.8051單片機(ji)的串行(xing)接口結構

8051單片機(ji)串行(xing)接口是一個可編程的全(quan)雙工(gong)串行(xing)通(tong)信(xin)接口。它可用(yong)作異步(bu)通(tong)信(xin)方式(UART),與串行(xing)傳送信(xin)息的外部設備相連接,或用(yong)于通(tong)過標準異步(bu)通(tong)信(xin)協議進行(xing)全(quan)雙工(gong)的8051多機(ji)系(xi)統也能(neng)通(tong)過同步(bu)方式,使(shi)用(yong)TTL或CMOS移(yi)位寄存器來(lai)擴充I/O口。

8051單片機(ji)通(tong)過管腳RXD(P3.0,串行(xing)數據接收端)和管腳TXD(P3.1,串行(xing)數據發(fa)送端)與外界通(tong)信(xin)。SBUF是串行(xing)口緩沖寄存器,包括發(fa)送寄存器和接收寄存器。它們有(you)相同名字和地址空間,但不會出現(xian)沖突,因為(wei)它們兩(liang)個一個只(zhi)能(neng)被CPU讀出數據,一個只(zhi)能(neng)被CPU寫入(ru)數據。

串行(xing)口的控(kong)制與狀態(tai)寄存器

串行(xing)口控(kong)制寄存器SCON

它用(yong)于定義(yi)串行(xing)口的工(gong)作方式及實施接收和發(fa)送控(kong)制。字節(jie)地址為(wei)98H,其各位定義(yi)如下表︰

D7
D6
D5
D4
D3
D2
D1
D0
SM0
SM1
SM2
REN
TB8
RB8
TI
RI

SM0、SM1︰串行(xing)口工(gong)作方式選(xuan)擇位,其定義(yi)如下︰

SM0、SM1
工(gong)作方式
功(gong)能(neng)描述
波特(te)率
0 0
方式0
8位移(yi)位寄存器
Fosc/12
0 1
方式1
10位UART
可變(bian)
1 0
方式2
11位UART
Fosc/64或fosc/32
1 1
方式3
11位UART
可變(bian)

其中(zhong)fosc為(wei)晶體(ti)震蕩器頻(pin)率

SM2︰多機(ji)通(tong)信(xin)控(kong)制位。在方式0時,SM2一定要(yao)等于0。在方式1中(zhong),當(SM2)=1則只(zhi)有(you)接收到有(you)效停止位時,RI才置1。在方式2或方式3當(SM2)=1且接收到的第九位數據RB8=0時,RI才置1。

REN︰接收允許控(kong)制位。由(you)軟(ruan)件置位以允許接收,又由(you)軟(ruan)件清0來(lai)禁(jin)止接收。

TB8: 是要(yao)發(fa)送數據的第9位。在方式2或方式3中(zhong),要(yao)發(fa)送的第9位數據,根(gen)據需要(yao)由(you)軟(ruan)件置1或清0。例如,可約定作為(wei)奇偶校驗位,或在多機(ji)通(tong)信(xin)中(zhong)作為(wei)區(qu)別(bie)地址fen)』蚴 〉謀曛疚弧/p>

RB8︰接收到的數據的第9位。在方式0中(zhong)不使(shi)用(yong)RB8。在方式1中(zhong),若(SM2)=0,RB8為(wei)接收到的停止位。在方式2或方式3中(zhong),RB8為(wei)接收到的第9位數據。

TI︰發(fa)送中(zhong)斷標志。在方式0中(zhong),第8位發(fa)送結束時,由(you)硬件置位。在其它方式的發(fa)送停止位前,由(you)硬件置位。TI置位既表示(shi)一幀信(xin)息發(fa)送結束,同時也是申請(qing)中(zhong)斷,可根(gen)據需要(yao),用(yong)軟(ruan)件查詢的辦法獲得數據已發(fa)送完畢xi)男xin)息,或用(yong)中(zhong)斷xi)姆絞嚼lai)發(fa)送下一個數據。TI必(bi)須用(yong)軟(ruan)件清0。

RI︰接收中(zhong)斷標志位。在方式0,當接收完第8位數據後,由(you)硬件置位。在其它方式中(zhong),在接收到停止位的中(zhong)間時刻由(you)硬件置位(例外情(qing)況見于SM2的說明)。RI置位表示(shi)一幀數據接收完畢,可用(yong)查詢的辦法獲知或者用(yong)中(zhong)斷xi)陌旆 裰 I也必(bi)須用(yong)軟(ruan)件清0。

特(te)殊功(gong)能(neng)寄存器PCON

PCON是為(wei)了在CHMOS的80C51單片機(ji)上實現(xian)電源控(kong)制而附加的。其中(zhong)最高位是SMOD。

串行(xing)口的工(gong)作方式

8051單片機(ji)的全(quan)雙工(gong)串行(xing)口可編程為(wei)4種工(gong)作方式,現(xian)分(fen)述如下︰

方式0為(wei)移(yi)位寄存器輸(shu)入(ru)/輸(shu)出方式。可外接移(yi)位寄存器以擴展I/O口,也能(neng)外接同步(bu)輸(shu)入(ru)/輸(shu)出設備。8位串行(xing)數據者是從RXD輸(shu)入(ru)或輸(shu)出,TXD用(yong)來(lai)輸(shu)出同步(bu)脈沖。

輸(shu)出 串行(xing)數據從RXD管腳輸(shu)出,TXD管腳輸(shu)出移(yi)位脈沖。CPU將數據寫入(ru)發(fa)送寄存器時,立即啟(qi)動發(fa)送,將8位數據以fos/12的固(gu)定波特(te)率從RXD輸(shu)出,低位在前,高位在後。發(fa)送完一幀數據後,發(fa)送中(zhong)斷標志TI由(you)硬件置位。

輸(shu)入(ru) 當串行(xing)口以方式0接收時,先置位允許接收控(kong)制位REN。此時,RXD為(wei)串行(xing)數據輸(shu)入(ru)端,TXD仍為(wei)同步(bu)脈沖移(yi)位輸(shu)出端。當(RI)=0和(REN)=1同時滿足時,開(kai)始接收。當接收到第8位數據時,將數據移(yi)入(ru)接收寄存器,並由(you)硬件置位RI。

下面兩(liang)圖分(fen)別(bie)是方式0擴展輸(shu)出和輸(shu)入(ru)的接線圖。


<單片機(ji)串行(xing)口接線圖>

方式1為(wei)波特(te)率可變(bian)的10位異步(bu)通(tong)信(xin)接口方式。發(fa)送或接收一幀信(xin)息,包括1個起(qi)始位0,8個數據位和1個停止位1。

輸(shu)出 當CPU執行(xing)一條(tiao)指(zhi)令將數據寫入(ru)發(fa)送緩沖SBUF時,就啟(qi)動發(fa)送。串行(xing)數據從TXD管腳輸(shu)出,發(fa)送完一幀數據後,就由(you)硬件置位TI。

輸(shu)入(ru) 在(REN)=1時,串行(xing)口采(cai)樣RXD管腳,當采(cai)樣到1至0的跳變(bian)時,確認是開(kai)始位0,就開(kai)始接收一幀數據。只(zhi)有(you)當(RI)=0且停止位為(wei)1或者(SM2)=0時,停止位才進入(ru)RB8,8位數據才能(neng)進入(ru)接收寄存器,並由(you)硬件置位中(zhong)斷標志RI;不然信(xin)息丟失(shi)。所以在方式1接收時,應先用(yong)軟(ruan)件清零RI和SM2標志。

方式2

方式月為(wei)固(gu)定波特(te)率的11位UART方式。它比方式1增(zeng)加了一位可程控(kong)為(wei)1或0的第9位數據。

輸(shu)出: 發(fa)送的串行(xing)數據由(you)TXD端輸(shu)出一幀信(xin)息為(wei)11位,附加的第9位來(lai)自SCON寄存器的TB8位,用(yong)軟(ruan)件置位或復位。它可作為(wei)多機(ji)通(tong)信(xin)中(zhong)地址/數據信(xin)息的標志位,也能(neng)作為(wei)數據的奇偶校驗位。當CPU執行(xing)一條(tiao)數據寫入(ru)SUBF的指(zhi)令時,就啟(qi)動發(fa)送器發(fa)送。發(fa)送一幀信(xin)息後,置位中(zhong)斷標志TI。

輸(shu)入(ru): 在(REN)=1時,串行(xing)口采(cai)樣RXD管腳,當采(cai)樣到1至0的跳變(bian)時,確認是開(kai)始位0,就開(kai)始接收一幀數據。在接收到附加的第9位數據後,當(RI)=0或者(SM2)=0時,第9位數據才進入(ru)RB8,8位數據才能(neng)進入(ru)接收寄存器,並由(you)硬件置位中(zhong)斷標志RI;不然信(xin)息丟失(shi)。且不置位RI。再過一位時間後,不管上述條(tiao)件時否滿足,接收電路(lu)即行(xing)復位,並重新檢(jian)測RXD上從1到0的跳變(bian)。

工(gong)作方式3

方式3為(wei)波特(te)率可變(bian)的11位UART方式。除波特(te)率外,其余與方式2相同。

波特(te)率選(xuan)擇

如前所述,在串行(xing)通(tong)信(xin)中(zhong),收發(fa)雙方的數據傳送率(波特(te)率)要(yao)有(you)一定的約定。在8051串行(xing)口的四種工(gong)作方式中(zhong),方式0和2的波特(te)率是固(gu)定的,而方式1和3的波特(te)率是可變(bian)的,由(you)定時器T1的溢出率控(kong)制。

方式0

方式0的波特(te)率shi)gu)定為(wei)主振頻(pin)率的1/12。

方式2

方式2的波特(te)率由(you)PCON中(zhong)的選(xuan)擇位SMOD來(lai)決定,可由(you)下式表示(shi)︰

波特(te)率=2的SMOD次方除以64再乘一個fosc,也就是當SMOD=1時,波特(te)率為(wei)1/32fosc,當SMOD=0時,波特(te)率為(wei)1/64fosc

3.方式1和方式3

定時器T1作為(wei)波特(te)率發(fa)生(sheng)器,其公式如下︰

波特(te)率=定時器T1溢出率

T1溢出率= T1計(ji)數率/產生(sheng)溢出所需的周期數

式中(zhong)T1計(ji)數率取決于它工(gong)作在定時器狀態(tai)還是計(ji)數器狀態(tai)。當工(gong)作于定時器狀態(tai)時,T1計(ji)數率為(wei)fosc/12;當工(gong)作于計(ji)數器狀態(tai)時,T1計(ji)數率為(wei)外部輸(shu)入(ru)頻(pin)率,此頻(pin)率應小于fosc/24。產生(sheng)溢出所需周期與定時器T1的工(gong)作方式、T1的預置值有(you)關。

定時器T1工(gong)作于方式0︰溢出所需周期數=8192-x

定時器T1工(gong)作于方式1︰溢出所需周期數=65536-x

定時器T1工(gong)作于方式2︰溢出所需周期數=256-x

因為(wei)方式2為(wei)自動重裝入(ru)初(chu)值的8位定時器/計(ji)數器模式,所以用(yong)它來(lai)做波特(te)率發(fa)生(sheng)器最恰當。

當時鐘頻(pin)率選(xuan)用(yong)11.0592MHZ時,取易獲得標準的波特(te)率,所以很多單片機(ji)系(xi)統選(xuan)用(yong)這個看起(qi)來(lai)“怪”的晶體(ti)震蕩器就是這個道理。

下表列(lie)出了定時器T1工(gong)作于方式2常用(yong)波特(te)率及初(chu)值。

常用(yong)波特(te)率
Fosc(MHZ)
SMOD
TH1初(chu)值
19200
11.0592
1
FDH
9600
11.0592
0
FDH
4800
11.0592
0
FAH
2400
11.0592
0
F4h
1200
11.0592
0
E8h
 

十分11选5官网

十分11选5官网 | 下一页