版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章中斷、定時(shí)與串行通信4.1中斷系統(tǒng)4.2定時(shí)/計(jì)數(shù)器4.3串行通信及其接口習(xí)題4
4.1中斷系統(tǒng)
4.1.1中斷的概念中斷是指CPU對(duì)系統(tǒng)中或系統(tǒng)外發(fā)生的某個(gè)事件的一種響應(yīng)過(guò)程,即CPU正在執(zhí)行程序時(shí),系統(tǒng)發(fā)生某一事件需要迅速處理,CPU暫時(shí)停止現(xiàn)行程序的執(zhí)行,而自動(dòng)轉(zhuǎn)去處理該事件;當(dāng)事件處理完成后,CPU再返回到被暫停的程序斷點(diǎn)處,繼續(xù)執(zhí)行原來(lái)的程序,這一過(guò)程稱為中斷,如圖4.1所示。
圖4.1中斷過(guò)程
為實(shí)現(xiàn)中斷功能,單片機(jī)的中斷系統(tǒng)應(yīng)解決以下幾方面的問(wèn)題。
1.中斷源
所謂中斷源,是指引起CPU中斷的事件,即中斷請(qǐng)求信號(hào)的來(lái)源。中斷源向CPU提出的處理請(qǐng)求,稱為中斷請(qǐng)求或中斷申請(qǐng)。中斷請(qǐng)求信號(hào)的產(chǎn)生及該信號(hào)怎樣被CPU有效地識(shí)別是中斷源需要解決的問(wèn)題,而且要求中斷請(qǐng)求信號(hào)產(chǎn)生一次,只能被CPU接收處理一次,不能一次中斷被CPU多次響應(yīng),這也就是中斷請(qǐng)求信號(hào)的及時(shí)撤除問(wèn)題。
2.中斷響應(yīng)、處理與返回
中斷源向CPU提出中斷請(qǐng)求,CPU暫時(shí)停止自身的事務(wù),轉(zhuǎn)去處理事件的過(guò)程,稱為中斷響應(yīng)過(guò)程。對(duì)事件的整個(gè)處理過(guò)程,稱為中斷服務(wù)或中斷處理。處理完畢,再回到原來(lái)被中止的地方,稱為中斷返回。CPU接收到中斷請(qǐng)求信號(hào)后,怎樣轉(zhuǎn)向該中斷源的中斷服務(wù)程序及執(zhí)行完中斷處理程序后如何正確返回被中斷的程序繼續(xù)執(zhí)行是問(wèn)題的關(guān)鍵。中斷響應(yīng)與返回的過(guò)程中涉及CPU響應(yīng)中斷的條件、現(xiàn)場(chǎng)保護(hù)等問(wèn)題。
3.中斷級(jí)別
通常一個(gè)中斷系統(tǒng)都有多個(gè)中斷源,經(jīng)常會(huì)出現(xiàn)兩個(gè)以上中斷源同時(shí)提出中斷請(qǐng)求的情況,這樣就需要設(shè)計(jì)者事先根據(jù)輕重緩急給每一個(gè)中斷源確定一個(gè)中斷級(jí)別(優(yōu)先權(quán)),當(dāng)多個(gè)中斷源同時(shí)發(fā)出中斷申請(qǐng)時(shí),CPU能找到優(yōu)先權(quán)級(jí)別最高的中斷源,響應(yīng)它的中斷請(qǐng)求,在優(yōu)先權(quán)級(jí)別最高的中斷源處理完后,再響應(yīng)級(jí)別較低的中斷源。當(dāng)CPU響應(yīng)某一中斷源的請(qǐng)求并進(jìn)行中斷處理時(shí),若有優(yōu)先權(quán)級(jí)別更高的中斷源發(fā)出中斷申請(qǐng),則CPU要能中斷正在進(jìn)行的中斷服務(wù)程序,保留這個(gè)程序的斷點(diǎn)和現(xiàn)場(chǎng),響應(yīng)高級(jí)中斷,在高級(jí)中斷處理完以后,再繼續(xù)執(zhí)行被中斷的中斷程序,這種情況稱為中斷嵌套。CPU一般都可實(shí)現(xiàn)多級(jí)中斷嵌套。
4.1.2MCS-51系列單片機(jī)的中斷系統(tǒng)
1.?MCS-51系列單片機(jī)中斷系統(tǒng)的組成
MCS-51系列單片機(jī)的中斷系統(tǒng)是8位單片機(jī)中功能較強(qiáng)的一種。51子系列單片機(jī)具有5個(gè)中斷源,52子系列單片機(jī)具有6個(gè)中斷源,具有兩級(jí)中斷優(yōu)先級(jí),可實(shí)現(xiàn)兩級(jí)中斷嵌套,4個(gè)用于中斷控制的特殊功能寄存器IE、IP、TCON和SCON用來(lái)控制中斷的類型、中斷的開放/禁止和各種中斷源的優(yōu)先級(jí)別。MCS-51系列單片機(jī)中斷系統(tǒng)結(jié)構(gòu)框圖如圖4.2所示。
圖4.2MCS-51系列單片機(jī)中斷系統(tǒng)結(jié)構(gòu)框圖
1)定時(shí)/計(jì)數(shù)器控制寄存器TCON
TCON為定時(shí)/計(jì)數(shù)器T0、Tl的控制器寄存器,同時(shí)也鎖存了T0、Tl的溢出中斷請(qǐng)求信號(hào)標(biāo)志和外部中斷請(qǐng)求信號(hào)標(biāo)志,其各位的定義如下:
2)串行口控制寄存器SCON
SCON為串行口控制寄存器,SCON的低兩位鎖存串行口接收中斷和發(fā)送中斷標(biāo)志RI和TI,其格式如下:
?TI:串行口發(fā)送中斷標(biāo)志位。
?RI:串行口接收中斷標(biāo)志位。
3.中斷控制
MCS-51單片機(jī)有兩個(gè)特殊功能寄存器,用于中斷系統(tǒng)的控制,分別為中斷允許寄存器IE和中斷優(yōu)先級(jí)寄存器IP。
1)中斷允許寄存器IE
IE控制CPU對(duì)中斷源的開放或屏蔽,其格式如下:
?EA:CPU總中斷開放標(biāo)志位。
?ES:串行中斷允許標(biāo)志位。
?ET1:定時(shí)/計(jì)數(shù)器T1溢出中斷允許標(biāo)志位。
?EX1:外部中斷1中斷允許標(biāo)志位。
?ET0:定時(shí)/計(jì)數(shù)器T0溢出中斷允許標(biāo)志位。
?EX0:外部中斷0中斷允許標(biāo)志位。
2)中斷優(yōu)先級(jí)寄存器IP
MCS-51單片機(jī)具有兩個(gè)中斷優(yōu)先級(jí),每個(gè)中斷源可編程為高優(yōu)先級(jí)中斷或低優(yōu)先級(jí)中斷,并可實(shí)現(xiàn)二級(jí)中斷嵌套。特殊功能寄存器IP就是用來(lái)設(shè)定各中斷源優(yōu)先級(jí)別的,其格式如下:
?PS:串行口中斷優(yōu)先級(jí)控制位。
?PT1:定時(shí)/計(jì)數(shù)器T1中斷優(yōu)先級(jí)控制位。
?PX1:外部中斷1中斷優(yōu)先級(jí)控制位。
?PT0:定時(shí)/計(jì)數(shù)器T0中斷優(yōu)先級(jí)控制位。
?PX0:外部中斷0中斷優(yōu)先級(jí)控制位。
通過(guò)設(shè)置IP寄存器把各中斷源的優(yōu)先級(jí)分為高、低兩級(jí),它們遵循兩條基本原則:
(1)低優(yōu)先級(jí)中斷可以被高優(yōu)先級(jí)中斷所中斷,反之不能。
(2)一種中斷一旦得到響應(yīng),與它同級(jí)的中斷不能再中斷。
當(dāng)CPU同時(shí)收到幾個(gè)同一優(yōu)先級(jí)別的中斷請(qǐng)求時(shí),哪一個(gè)的請(qǐng)求得到服務(wù)取決于內(nèi)部的硬件查詢順序,CPU將按自然優(yōu)先級(jí)順序確定響應(yīng)哪個(gè)中斷請(qǐng)求。其自然優(yōu)先級(jí)由硬件形成,查詢次序如表4.1所示。
4.1.3中斷處理過(guò)程
中斷處理過(guò)程可分為三個(gè)階段:中斷響應(yīng)、中斷處理和中斷返回。
1.中斷響應(yīng)
1)中斷響應(yīng)條件
單片機(jī)響應(yīng)中斷的條件為中斷源有請(qǐng)求(中斷允許寄存器IE相應(yīng)位置1),且CPU開中斷(即EA=1)。這樣,在每個(gè)機(jī)器周期的S5P2期間,對(duì)所有中斷源按用戶設(shè)置的優(yōu)先級(jí)和內(nèi)部規(guī)定的優(yōu)先級(jí)進(jìn)行順序檢測(cè),并可在S6期間找到所有有效的中斷請(qǐng)求。如有中斷請(qǐng)求,且滿足下列條件,則在下一個(gè)機(jī)器周期的S1期間響應(yīng)中斷,否則將丟棄中斷采樣的結(jié)果:
(1)無(wú)同級(jí)或高級(jí)中斷正在處理;
(2)現(xiàn)行指令執(zhí)行到最后一個(gè)機(jī)器周期且已結(jié)束;
(3)若現(xiàn)行指令為RETI或訪問(wèn)IE、IP的指令時(shí),執(zhí)行完該指令且緊隨其后的另一條指令也已執(zhí)行完畢。
2)中斷響應(yīng)過(guò)程
CPU響應(yīng)中斷后,首先置位相應(yīng)的優(yōu)先級(jí)觸發(fā)器,然后把斷點(diǎn)地址壓入堆棧保護(hù),并將響應(yīng)的中斷矢量地址裝入程序計(jì)數(shù)器,轉(zhuǎn)入該中斷服務(wù)程序進(jìn)行處理。各中斷源與之對(duì)應(yīng)的矢量地址見表4.2。
3)中斷響應(yīng)時(shí)間
所謂中斷響應(yīng)時(shí)間,是指CPU檢測(cè)到中斷請(qǐng)求信號(hào)到轉(zhuǎn)入中斷服務(wù)程序入口所需要的機(jī)器周期數(shù)。了解中斷響應(yīng)時(shí)間對(duì)設(shè)計(jì)實(shí)時(shí)測(cè)控應(yīng)用系統(tǒng)有重要指導(dǎo)意義。
中斷響應(yīng)的最長(zhǎng)時(shí)間(在無(wú)特殊情況下)由下列情況決定:若中斷檢測(cè)時(shí)正在執(zhí)行RETI或訪問(wèn)IE或IP指令的第一個(gè)機(jī)器周期,則包括檢測(cè)在內(nèi)需要兩個(gè)機(jī)器周期(以上三條指令均需兩個(gè)機(jī)器周期);若緊接著要執(zhí)行的指令恰好是執(zhí)行時(shí)間最長(zhǎng)的乘、除法指令,則其執(zhí)行時(shí)間均為四個(gè)機(jī)器周期;再用兩個(gè)機(jī)器周期執(zhí)行一條長(zhǎng)調(diào)用指令才轉(zhuǎn)入中斷服務(wù)程序。這樣,總共需要8個(gè)機(jī)器周期。其他情況下的中斷響應(yīng)時(shí)間一般為3~8個(gè)機(jī)器周期。
2.中斷處理
CPU響應(yīng)中斷結(jié)束后即轉(zhuǎn)至中斷服務(wù)程序的入口,并從中斷服務(wù)程序的第一條指令開始執(zhí)行,直到返回指令為止,這個(gè)過(guò)程稱為中斷處理或中斷服務(wù)。中斷處理包括兩部分內(nèi)容:一是保護(hù)現(xiàn)場(chǎng)和恢復(fù);二是為中斷源服務(wù)。
保護(hù)現(xiàn)場(chǎng)是指保護(hù)PSW、工作寄存器、專用寄存器等數(shù)據(jù)。如果在中斷服務(wù)程序中要用這些寄存器,則在進(jìn)入中斷服務(wù)之前應(yīng)將它們的內(nèi)容保護(hù)起來(lái),即保護(hù)現(xiàn)場(chǎng)。在中斷結(jié)束時(shí),即執(zhí)行RETI指令之前,再恢復(fù)這些寄存器的內(nèi)容,即恢復(fù)現(xiàn)場(chǎng)。
中斷服務(wù)是針對(duì)中斷源的具體要求進(jìn)行的處理。
3.中斷返回
中斷服務(wù)程序中,最后一條指令是中斷返回指令RETI,該指令的功能是結(jié)束本次中斷服務(wù),返回到原程序。在執(zhí)行RETI指令時(shí),將壓入堆棧的中斷點(diǎn)地址彈出并送回程序計(jì)數(shù)器,使程序返回到原來(lái)被中斷處繼續(xù)執(zhí)行,同時(shí)清除相應(yīng)的優(yōu)先級(jí)觸發(fā)器。
4.1.4中斷請(qǐng)求的撤除
中斷源發(fā)出中斷請(qǐng)求后,CPU首先置位相應(yīng)的中斷標(biāo)志位,然后通過(guò)對(duì)中斷標(biāo)志位的檢測(cè)決定是否響應(yīng)中斷,所以撤除中斷請(qǐng)求就是要清除中斷標(biāo)志。CPU響應(yīng)某中斷請(qǐng)求后,在該中斷返回之前,應(yīng)將其對(duì)應(yīng)的中斷標(biāo)志位復(fù)位,否則CPU在返回主程序后將再次響應(yīng)該中斷。MCS-51單片機(jī)各個(gè)中斷源標(biāo)志位的清除方法不相同。
圖4.3給出了一種常用的撤銷外部中斷請(qǐng)求電路。
圖4.3撤銷外部中斷請(qǐng)求電路
圖4.4擴(kuò)展四個(gè)外部中斷源電路
4.2定時(shí)/計(jì)數(shù)器
4.2.1定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)及工作原理1.定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)MCS-51單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器邏輯結(jié)構(gòu)如圖4.5所示,它由6個(gè)特殊功能寄存器組成。其中,TMOD為定時(shí)/計(jì)數(shù)器方式控制寄存器,用來(lái)設(shè)置兩個(gè)16位定時(shí)/計(jì)數(shù)器T0和T1的工作方式;TCON為定時(shí)/計(jì)數(shù)器控制寄存器,主要用來(lái)控制定時(shí)/計(jì)數(shù)器T0和T1的啟動(dòng)和停止。兩個(gè)16位的定時(shí)/計(jì)數(shù)器T0?(TH0和TL0)和T1(TH1和TL1)用于設(shè)置定時(shí)或計(jì)數(shù)。
圖4.5定時(shí)/計(jì)數(shù)器邏輯結(jié)構(gòu)框圖
2.定時(shí)/計(jì)數(shù)器的工作原理
MCS-51單片機(jī)內(nèi)部的兩個(gè)16位可編程的定時(shí)/計(jì)數(shù)器T0和T1均有定時(shí)和計(jì)數(shù)功能。T0和T1的工作方式及功能選擇、定時(shí)時(shí)間、啟動(dòng)方式等均可以通過(guò)編程對(duì)相應(yīng)特殊功能
寄存器TMOD和TCON進(jìn)行設(shè)置來(lái)實(shí)現(xiàn),計(jì)數(shù)值也可由軟件命令設(shè)置于16位的定時(shí)/計(jì)數(shù)器(TH0、TL0或TH1、TL1)中。
4.2.2定時(shí)/計(jì)數(shù)器的工作方式寄存器及控制寄存器
1.定時(shí)/計(jì)數(shù)器方式寄存器TMOD(89H)
定時(shí)/計(jì)數(shù)器T0、T1都有四種工作方式,可通過(guò)程序?qū)MOD進(jìn)行設(shè)置來(lái)選擇,其各位定義如下:
?GATE:門控位,用于控制定時(shí)/計(jì)數(shù)器的啟動(dòng)是否受外部中斷請(qǐng)求信號(hào)的控制。
?:定時(shí)或計(jì)數(shù)功能選擇位。
?M1、M0:定時(shí)/計(jì)數(shù)器工作方式選擇位。MCS-51單片機(jī)的定時(shí)/計(jì)數(shù)器有四種工作方式,如表4.3所示。
2.定時(shí)/計(jì)數(shù)器控制寄存器TCON
TCON用于控制定時(shí)/計(jì)數(shù)器的啟、停、溢出標(biāo)志和外部中斷信號(hào)觸發(fā)方式,其各位定義如下:
?TR1:定時(shí)/計(jì)數(shù)器T1的啟??刂莆?。
?TR0:定時(shí)/計(jì)數(shù)器T0的啟??刂莆弧?/p>
3.定時(shí)/計(jì)數(shù)器的工作方式
1)方式0
方式0為13位定時(shí)/計(jì)數(shù)器。13位計(jì)數(shù)寄存器由TH0(TH1)的高8位和TL0(TL1)的低5位構(gòu)成,TL0(TL1)中的高3位不用。T0(或T1)方式0的結(jié)構(gòu)框圖如圖4.6所示。
圖4.6T0(或T1)方式0的結(jié)構(gòu)框圖
2)方式1
方式1是16位定時(shí)/計(jì)數(shù)器,其結(jié)構(gòu)與方式0類似,唯一的區(qū)別在于計(jì)數(shù)器的位數(shù)不同。方式1的加1計(jì)數(shù)器由TH0(TH1)的8位和TL0(TL1)的8位構(gòu)成。
在方式1時(shí),計(jì)數(shù)器的計(jì)數(shù)值由下式確定:
N?=?216-x?=?65536-x
計(jì)數(shù)范圍為1~65536。
定時(shí)器的定時(shí)時(shí)間由下式確定:
T?=?N?×?Tcy?=?(65536-x)Tcy
如果fosc=12MHz,則Tcy=1μs,定時(shí)范圍為1~65536μs。
3)方式2
方式2是能自動(dòng)重裝計(jì)數(shù)初值的8位計(jì)數(shù)器。方式2中把16位的計(jì)數(shù)器拆成兩個(gè)8位計(jì)數(shù)器,低8位作計(jì)數(shù)器用,高8位用以保存計(jì)數(shù)初值。當(dāng)?shù)?位計(jì)數(shù)產(chǎn)生溢出時(shí),將溢出中斷標(biāo)志位置1,同時(shí)又將保存在高8位中的計(jì)數(shù)初值重新裝入低8位計(jì)數(shù)器中,繼續(xù)計(jì)數(shù),循環(huán)不止。T0(或T1)方式2的結(jié)構(gòu)框圖如圖4.7所示。
圖4.7T0(或T1)方式2的結(jié)構(gòu)框圖
在工作方式2時(shí),計(jì)數(shù)器的計(jì)數(shù)值由下式確定:
N?=?28-x?=?256-x
計(jì)數(shù)范圍為1~256。
定時(shí)器的定時(shí)值由下式確定:
T?=?N?×?Tcy?=?(256-x)Tcy
如果fosc=12MHz,則Tcy=1μs,定時(shí)范圍為1~256μs。
4)方式3
定時(shí)/計(jì)數(shù)器T0和T1在前三種工作方式下,其功能完全相同。但工作方式3對(duì)T0和T1是大不相同的。當(dāng)T1設(shè)置為工作方式3時(shí),它將保持初始值不變,并停止計(jì)數(shù),其狀態(tài)相當(dāng)于將啟??刂莆籘R1設(shè)為0,因此T1不能工作在方式3下。
若將T0設(shè)為方式3,TL0和TH0被分成兩個(gè)互相獨(dú)立的8位計(jì)數(shù)器,其邏輯結(jié)構(gòu)如圖4.8所示。
圖4.8T0方式3的結(jié)構(gòu)框圖
4.2.3定時(shí)/計(jì)數(shù)器應(yīng)用舉例
1.定時(shí)/計(jì)數(shù)器初始化
定時(shí)/計(jì)數(shù)器初始化的內(nèi)容包含以下幾點(diǎn):
(1)確定定時(shí)/計(jì)數(shù)器的工作模式及工作方式,即給TMOD置相應(yīng)的控制字。
(2)計(jì)算計(jì)數(shù)初值,送入計(jì)數(shù)器TH0、TL0或TH1、TL1中。
(3)根據(jù)使用要求確定是否需要開放中斷,若使用溢出中斷功能,則需要對(duì)中斷允許寄存器IE以及中斷優(yōu)先級(jí)寄存器IP進(jìn)行設(shè)置。
(4)給定時(shí)/計(jì)數(shù)器控制寄存器TCON送入命令字,啟動(dòng)定時(shí)/計(jì)數(shù)器工作。
2.定時(shí)/計(jì)數(shù)器計(jì)數(shù)初值計(jì)算
1)定時(shí)器的初值計(jì)算
當(dāng)選擇定時(shí)功能時(shí),計(jì)數(shù)器是對(duì)機(jī)器周期進(jìn)行計(jì)數(shù)。設(shè)T為定時(shí)時(shí)間,x為計(jì)數(shù)器的初值,n為計(jì)數(shù)器位數(shù),單片機(jī)系統(tǒng)時(shí)鐘頻率為fosc,則計(jì)數(shù)初值可通過(guò)如下公式計(jì)算:
2)計(jì)數(shù)功能的初值計(jì)算
選擇計(jì)數(shù)功能時(shí),計(jì)數(shù)脈沖由外部引腳引入,是對(duì)外部脈沖進(jìn)行計(jì)數(shù),計(jì)數(shù)初值可由下式確定:
x?=?2n-N
式中,N為計(jì)數(shù)值,其他參數(shù)的定義同定時(shí)器初值計(jì)算公式。
3.應(yīng)用舉例
例4.2用定時(shí)/計(jì)數(shù)器T1進(jìn)行外部事件計(jì)數(shù),每計(jì)數(shù)1000個(gè)脈沖后,定時(shí)/計(jì)數(shù)器T1轉(zhuǎn)為定時(shí)工作方式,定時(shí)10ms后又轉(zhuǎn)為計(jì)數(shù)方式,如此循環(huán)不止。假定fosc為6MHz,用方式1編程。
解將T1在定時(shí)和計(jì)數(shù)兩種方式下輪換工作,首先讓T1工作在方式1。
T1為定時(shí)器時(shí)初值計(jì)算如下:
T1為計(jì)數(shù)器時(shí)初值計(jì)算如下:
4.3串行通信及其接口
CPU與外部的信息交換稱為通信。通信的基本方式可分為并行通信和串行通信兩種。并行通信是指構(gòu)成信息的二進(jìn)制字符的各位數(shù)據(jù)同時(shí)傳送的通信方法。并行通信的主要特點(diǎn)是傳輸速度快,在短距離通信中占優(yōu)勢(shì),對(duì)長(zhǎng)距離數(shù)據(jù)傳輸來(lái)說(shuō),因?yàn)樾盘?hào)線太多導(dǎo)致線路復(fù)雜,成本高。串行通信是指構(gòu)成信息的二進(jìn)制字符的各位數(shù)據(jù)一位一位順序地傳送的通信方式。串行通信線路簡(jiǎn)單,成本低但傳輸速度慢,適用于遠(yuǎn)距離傳輸。
4.3.1串行通信方式
1.異步通信
在異步通信中,被傳送的信息通常是一個(gè)字符代碼或一個(gè)字節(jié)數(shù)據(jù),它們都以規(guī)定的相同傳送格式(字符幀格式)一幀一幀地發(fā)送或接收。發(fā)送端和接收端各有一套彼此獨(dú)立、互不同步的通信機(jī)構(gòu),可以由各自的時(shí)鐘來(lái)控制數(shù)據(jù)的發(fā)送和接收。
一個(gè)字符在異步傳送中又稱為一幀數(shù)據(jù),字符幀也稱數(shù)據(jù)幀,由起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位四部分組成,異步通信的字符幀格式如圖4.9所示。圖4.9異步通信的字符幀格式
在串行異步傳送中,通信雙方必須事先約定:
字符格式。雙方要事先約定字符的編碼形式、奇偶校驗(yàn)形式及起始位和停止位的規(guī)定。例如用ASCII碼通信,有效數(shù)據(jù)為7位,加一個(gè)奇偶校驗(yàn)位、一個(gè)起始位和一個(gè)停止位共10位。當(dāng)然停止位也可以大于1位。
波特率。波特率就是數(shù)據(jù)的傳送速率,即每秒鐘傳送的二進(jìn)制位數(shù),單位為位/秒。它與字符的傳送速率(字符/秒)之間有以下關(guān)系:
波特率?=?一個(gè)字符的二進(jìn)制編碼位數(shù)?×?字符/秒
發(fā)送端與接收端的波特率必須一致。
2.同步通信
同步通信是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,一次通信只傳送一幀信息。這里的信息幀與異步通信中的字符幀不同,通常含有若干個(gè)數(shù)據(jù)字符,即數(shù)據(jù)塊,它們都是由同步字符、數(shù)據(jù)字符和校驗(yàn)字符三部分組成的。一旦檢測(cè)到同步字符,下面就是按順序傳送的數(shù)據(jù)塊。同步通信的格式如圖4.10所示。
圖4.10同步通信的格式
3)串行通信的制式
串行通信中,信息數(shù)據(jù)在通信線路兩端的通信設(shè)備之間傳遞,按照數(shù)據(jù)傳遞方向和兩端通信設(shè)備所處的工作狀態(tài),可將串行通信分為單工、半雙工和全雙工三種工作制式,如圖4.11所示。
圖4.11串行通信數(shù)據(jù)傳送的制式
4.3.2MCS-51單片機(jī)的串行通信接口及其工作方式
1.串行口的結(jié)構(gòu)與功能
MCS-51單片機(jī)串行口內(nèi)部結(jié)構(gòu)示意圖如圖4.12所示。?MCS-51單片機(jī)串行口主要由兩個(gè)物理上獨(dú)立的串行數(shù)據(jù)緩沖寄存器SBUF、發(fā)送控制器、接收控制器、輸入移位寄存器和輸出控制門組成。兩個(gè)特殊功能寄存器SCON和PCON用來(lái)控制串行口的工作方式和波特率。發(fā)送緩沖寄存器SBUF只能寫,不能讀;接收緩沖寄存器SBUF只能讀,不能寫。兩個(gè)緩沖寄存器共用一個(gè)地址99H,可以用讀/寫指令區(qū)分。圖4.12MCS-51單片機(jī)串行口內(nèi)部結(jié)構(gòu)示意圖
2.與串行口相關(guān)的控制寄存器
MCS-51單片機(jī)中,與串行口工作相關(guān)的特殊功能寄存器有四個(gè),分別為串行口控制寄存器SCON、電源控制寄存器PCON、中斷允許寄存器IE和中斷優(yōu)先級(jí)寄存器IP。其中PCON、IE、IP在前面章節(jié)已經(jīng)介紹過(guò),在此只介紹SCON。
SCON用于串行口的工作方式選擇、接收和發(fā)送控制以及串行口的狀態(tài)標(biāo)志,是一個(gè)可位尋址的8位特殊功能寄存器。其各位的定義如下:
?SM0、SM1:由軟件置位或清0,用于選擇串行口四種工作方式,如表4.4所示。
3.串行口工作方式
1)方式0
方式0下,串行口用作同步移位寄存器,其波特率固定為單片機(jī)振蕩頻率的1/12,串行傳送數(shù)據(jù)8位為一幀,由RXD(P3.0)引腳發(fā)送或接收,低位在前,高位在后。TXD(P3.1)引腳輸出同步移位脈沖信號(hào),可以作為外部擴(kuò)展的移位寄存器的移位時(shí)鐘,因而串行口方式0常用于擴(kuò)展外部并行I/O口。
2)方式1
在方式1下,串行口為10位通用異步通信接口。一幀信息包括1位起始位(0)、8位數(shù)據(jù)位(低位在前)和l位停止位(1)。TXD是發(fā)送端,RXD是接收端。其傳送波特率可變。
3)方式2與方式3
方式2、方式3都是11位異步通信接口,發(fā)送或接收的一幀信息由11位組成,其中1位起始位、9位數(shù)據(jù)位(低位在前)和1位停止位。方式2與方式3僅波特率不同,方式2的波特率為fosc/32(SMOD=1時(shí))或fosc/64(SMOD=0時(shí)),而方式3的波特率由定時(shí)/計(jì)數(shù)器T1及SMOD決定。
4.波特率設(shè)置
串行口的四種工作方式對(duì)應(yīng)著三種波特率模式。
對(duì)于方式0,波特率是固定的,為fosc12。
對(duì)于方式2,波特率由振蕩頻率fosc和SMOD(PCON.7)所決定,其對(duì)應(yīng)公式為
當(dāng)SMOD=0時(shí),波特率為fosc/64;當(dāng)SMOD=1時(shí),波特率為fosc/32。
對(duì)于方式1和方式3,波特率由定時(shí)/計(jì)數(shù)器T1的溢出率和SMOD決定,即由下式確定:
其中,溢出率取決于計(jì)數(shù)速率和定時(shí)器的初值。當(dāng)利用TI作波特率發(fā)生器時(shí),通常選用方式2,即8位自動(dòng)重裝初值模式,其中TL1作計(jì)數(shù)器,TH1存放自動(dòng)重裝的定時(shí)初值。因此,對(duì)T1初始化時(shí),寫入方式控制字TMOD=00100000B。
這樣每過(guò)“256-x”個(gè)機(jī)器周期,定時(shí)器T1就會(huì)產(chǎn)生一次溢出,溢出周期為
溢出率為溢出周期的倒數(shù),因此,波特率的公式還可寫成:
實(shí)際應(yīng)用時(shí),總是先確定波特率,再計(jì)算定時(shí)器T1的定時(shí)初值。根據(jù)上述波特率的公式,得出計(jì)算定時(shí)器方式2的初值x的公式為
4.3.3串行通信應(yīng)用舉例
1.利用串行口擴(kuò)展并行I/O接口
當(dāng)串行口工作于方式0時(shí),是移位寄存器方式,此時(shí)可以利用串行口外接移位寄存器將串行口擴(kuò)展為并行口。
例4.3利用串行口方式0擴(kuò)展I/O接口,接8個(gè)共陰極數(shù)碼管,使片內(nèi)RAM的30H~37H單元的內(nèi)容依次顯示在8個(gè)數(shù)碼管上。
解串行口工作在方式0,在TXD和RXD引腳連接串入并出的移位寄存器74LS164即可實(shí)現(xiàn)題目要求,利用串行口擴(kuò)展并行I/O口電路圖如圖4.13所示。圖4.13利用串行口擴(kuò)展并行I/O口電路圖
2.用串行口作異步通信
串行口工作方式1、2、3都是異步通信,它們之間的區(qū)別在于字符幀格式和通信波特率不同。雙機(jī)異步通信的連接線路圖如圖4.14所示。圖4.14雙機(jī)異步通信的連接線路圖
例4.4甲乙兩機(jī)按工作方式1進(jìn)行串行通信,甲乙雙方的fosc=11.059MHz,波特率取2400,甲機(jī)將片內(nèi)RAM的30H到3FH的內(nèi)容向乙機(jī)發(fā)送,先發(fā)送數(shù)據(jù)塊長(zhǎng)度,再發(fā)送數(shù)據(jù)。甲機(jī)數(shù)據(jù)全部發(fā)送完向乙機(jī)發(fā)送一個(gè)累加校驗(yàn)和。乙機(jī)接收數(shù)據(jù)進(jìn)行累加和校驗(yàn),若與甲機(jī)發(fā)送的一致,則發(fā)送數(shù)據(jù)AAH,表示接收正確;若不一致,則發(fā)送數(shù)據(jù)BBH,甲機(jī)接收到BBH后,重發(fā)數(shù)據(jù)。編寫程序。
解當(dāng)fosc=11.0592MHz,波特率取2400,取SMOD為0,定時(shí)/計(jì)數(shù)器T1工作于方式2時(shí),計(jì)數(shù)初值為0F4H。設(shè)R6作為數(shù)據(jù)長(zhǎng)度計(jì)算器,R5為累加和寄存器。乙機(jī)接收的數(shù)據(jù)存放于片內(nèi)RAM的30H開始的單元。
3.多機(jī)通信
MCS-51的方式2和方式3有一個(gè)專門的應(yīng)用領(lǐng)域,即多處理機(jī)通信,它可以方便地應(yīng)用于主從式系統(tǒng)。這種系統(tǒng)采用一臺(tái)主機(jī)和多臺(tái)從機(jī),主機(jī)和各從機(jī)可實(shí)現(xiàn)全雙工通信,其中主機(jī)發(fā)送的信息可被各從機(jī)接收,而各從機(jī)發(fā)送的信息只能由主機(jī)接收,從機(jī)與從機(jī)之間不能
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度深圳定制旅游租車服務(wù)合同范本2篇
- 【智慧測(cè)評(píng)】2021高考生物(人教版)總復(fù)習(xí)作業(yè):必修3-第3章-植物的激素調(diào)節(jié)-階段質(zhì)量檢測(cè)
- 重慶2025年重慶市榮昌區(qū)基層醫(yī)療衛(wèi)生事業(yè)單位招聘7人筆試歷年典型考點(diǎn)(頻考版試卷)附帶答案詳解
- 鐵路接觸網(wǎng)設(shè)備故障分析與預(yù)防考核試卷
- 養(yǎng)老機(jī)構(gòu)管理研究-洞察分析
- 網(wǎng)絡(luò)安全與抗干擾-洞察分析
- 用戶流失風(fēng)險(xiǎn)評(píng)估-洞察分析
- 藥物遞送系統(tǒng)創(chuàng)新-第1篇-洞察分析
- 體育旅游與社區(qū)互動(dòng)-洞察分析
- 系統(tǒng)穩(wěn)定性與錯(cuò)誤容忍-洞察分析
- 數(shù)學(xué)與語(yǔ)言學(xué)、語(yǔ)言藝術(shù)的交叉研究
- 2023年云南大學(xué)滇池學(xué)院教師招聘考試筆試題庫(kù)及答案
- 醫(yī)院“無(wú)陪護(hù)”病房試點(diǎn)工作方案
- 清華大學(xué)大學(xué)物理-光的偏振
- 心理健康教育-網(wǎng)絡(luò)與青少年
- 高中英語(yǔ)人教版(2019) 選擇性必修一 Unit 3 課文語(yǔ)法填空(含答案)
- 2021-2022學(xué)年陜西省寶雞市陳倉(cāng)區(qū)北師大版六年級(jí)上冊(cè)期末考試數(shù)學(xué)試卷(含答案解析)
- 水工-建筑物課件
- 應(yīng)用PDCA提高入院宣教的知曉率
- 線性系統(tǒng)理論鄭大鐘307張課件
- 2019-2020學(xué)年第一學(xué)期廣東省廣州市天河區(qū)3年級(jí)數(shù)學(xué)期末考試卷
評(píng)論
0/150
提交評(píng)論