MCS單片機(jī)的內(nèi)部資源管理_第1頁(yè)
MCS單片機(jī)的內(nèi)部資源管理_第2頁(yè)
MCS單片機(jī)的內(nèi)部資源管理_第3頁(yè)
MCS單片機(jī)的內(nèi)部資源管理_第4頁(yè)
MCS單片機(jī)的內(nèi)部資源管理_第5頁(yè)
已閱讀5頁(yè),還剩81頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第3章MCS-51單片機(jī)的內(nèi)部資源及應(yīng)用主要內(nèi)容:

MCS-51單片機(jī)內(nèi)部各器件的具體結(jié)構(gòu)、組成原理、工作方式的設(shè)置及典型應(yīng)用,為讀者后續(xù)學(xué)習(xí)單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)、充分利用單片機(jī)內(nèi)部資源解決工程實(shí)際問(wèn)題奠定基礎(chǔ)。重點(diǎn)在于各器件工作方式的設(shè)置及靈活應(yīng)用,難點(diǎn)在于中斷系統(tǒng)和定時(shí)器/計(jì)數(shù)器的應(yīng)用。

3.1.1MCS-51內(nèi)部并行I/O口

8051有4個(gè)8位并行I/O口,分別命名為P0,P1,P2和P3口。1.P0口

P0口為雙向三態(tài)輸入/輸出口,P0口既可作為地址/數(shù)據(jù)總線口,又可作為通用I/O口,可驅(qū)動(dòng)8個(gè)TTL輸入。在訪問(wèn)3.1MCS-51單片機(jī)的并行I/O口

外部存儲(chǔ)器時(shí),P0口作地址/數(shù)據(jù)總線復(fù)用口,是一個(gè)真正的雙向口,并分時(shí)送出地址的低8位和送出(或接收)相應(yīng)存儲(chǔ)單元的數(shù)據(jù)。作通用I/O口時(shí),P0口只是一個(gè)準(zhǔn)雙向口,需要在外部引腳處外接上拉電阻。P0口的位結(jié)構(gòu)如右圖所示。2.P2口

P2口常用做外部存儲(chǔ)器的高8位地址口。當(dāng)不用做地址口時(shí),P2口也可作為通用I/O口,這時(shí)它也是一個(gè)準(zhǔn)雙向I/O口。不必外接上拉電阻就可以驅(qū)動(dòng)任何MOS驅(qū)動(dòng)電路,且只能驅(qū)動(dòng)4個(gè)TTL輸入。P2口的位結(jié)構(gòu)如右圖所示。3.P1口

P1口常用做通用I/O口,它也是一個(gè)標(biāo)準(zhǔn)的準(zhǔn)雙向I/O口,不必外接上拉電阻就可以驅(qū)動(dòng)任何MOS驅(qū)動(dòng)電路,且只能驅(qū)動(dòng)4個(gè)TTL輸入。P1口的位結(jié)構(gòu)如右圖所示。4.P3口

P3口是一個(gè)雙功能口,第一功能與P1口一樣可用做通用I/O口,也是一個(gè)準(zhǔn)雙向I/O口,能驅(qū)動(dòng)4個(gè)TTL輸入。另外還具有第二功能。P3口工作在第二功能時(shí)各管腳定義如下表所示。P3口的位結(jié)構(gòu)圖如右圖所示。3.1.2MCS-51內(nèi)部并行I/O口的應(yīng)用

MCS-51I/O端口的操作方式:(1)輸出數(shù)據(jù)方式:CPU通過(guò)一條數(shù)據(jù)傳送指令就可以把輸出數(shù)據(jù)寫(xiě)入P0~P3的端口鎖存器,然后通過(guò)輸出驅(qū)動(dòng)器送到端口引腳線。例如,下面的指令均可在P0口輸出數(shù)據(jù)。

MOVP0,AANLP0,#dataORLP0,A(2)讀端口數(shù)據(jù)方式:

CPU讀入的這個(gè)數(shù)據(jù)并非端口引腳線上的數(shù)據(jù)。讀端口數(shù)據(jù)可以直接讀端口。例如,下面的指令均可以從P1口輸入數(shù)據(jù)。

MOVA,P1MOV20H,P1MOVR0,P1MOV@R0,P1(3)讀端口引腳方式:讀端口引腳方式可以從端口引腳上讀入信息。在這種方式下,CPU首先必須使欲讀端口引腳所對(duì)應(yīng)的鎖存器置1,然后才能讀端口引腳。因此,用戶(hù)在讀引腳時(shí)必須先置位鎖存器后讀,連續(xù)使用兩條指令。例如,下面的程序可以讀P1引腳上的低4位信號(hào)。

MOVP1,#0FH;置位P1引腳的低4位鎖存器MOVA,P1;讀P1引腳上的低4位信號(hào)送累加器A

在I/O口直接用做輸入/輸出時(shí),CPU既可以把它們看做數(shù)據(jù)口,也可以看做狀態(tài)口,這是由用戶(hù)決定的。

[例題1]要求將兩個(gè)BCD撥碼開(kāi)關(guān)的數(shù)字和,在LED數(shù)碼管上顯示出來(lái)。(用CD4511驅(qū)動(dòng)LED)

解:CD4511是BCD鎖存—段碼譯碼—共陰LED驅(qū)動(dòng)集成電路,其引腳如右圖所示,各引腳功能如下:VCC:接正電源;Vss:接地;A,B,C,D:BCD碼輸入腳(A為最低位,D為最高位);

Qa~Qg:段碼輸出腳,高電平有效,最大可輸出25mA電流;

BI:熄滅,接低電平則Qa~Qg全部輸出低電平;LT:點(diǎn)亮測(cè)試,接低電平則Qa~Qg全部輸出高電平;LE:鎖存允許,接高電平鎖存,則輸出不會(huì)隨BCD碼輸入改變。1.I/O口直接用于輸入/輸出

硬件電路設(shè)計(jì):BCD撥碼開(kāi)關(guān)為4位,兩個(gè)BCD撥碼開(kāi)關(guān)分別接至P3口的高四位和低四位(注意:應(yīng)連接上拉電阻),由P1口的高四位和低四位通過(guò)兩片CD4511分別擴(kuò)展兩位LED。硬件電路如下圖所示。軟件設(shè)計(jì)思想:讀P3口引腳,得到輸入數(shù)據(jù),將數(shù)據(jù)分成2個(gè)4位BCD碼,求BCD碼和,輸出到P1口,通過(guò)CD4511驅(qū)動(dòng)LED顯示。程序如下:

ORG0100H MOVP3,#0FFH ;讀引腳先對(duì)其寫(xiě)1MOVA,P3 ;讀引腳CPLA ;取反,取真正的鍵值MOV20H,A ;A中的數(shù)據(jù)送20H單元保存SWAPA ;A中的內(nèi)容半字節(jié)交換ANLA,#0FH ;A中得到原高4位的反碼ANL20H,#0FH ;20H單元中得到原低4位的反碼ADDA,20H ;A中為原高低4位反碼之和DAA ;BCD碼調(diào)整MOVP1,A ;輸出到P1口SJMP$ ;程序執(zhí)行完,“原地踏步”END 2.I/O口擴(kuò)展外部鎖存器

為了提高數(shù)據(jù)傳輸速率,MCS-51單片機(jī)常常需要使I/O口通過(guò)外部鎖存器和輸入設(shè)備相連。如下圖所示為8051通過(guò)74LS373與輸入設(shè)備連接的接口圖。通過(guò)中斷方式讀取數(shù)據(jù),8051響應(yīng)該中斷請(qǐng)求后在中斷服務(wù)程序中通過(guò)下面的指令讀取輸入數(shù)據(jù):

MOVDPTR,#7FFFH;DPTR指向74LS373端口,地址為7FFFH)MOVXA,@DPTR;讀入數(shù)據(jù)到A中

3.2MCS-51單片機(jī)的中斷斷系統(tǒng)計(jì)算機(jī)與外界界的聯(lián)系是通通過(guò)外部設(shè)備備(也稱(chēng)為外外設(shè)、輸入/輸出設(shè)備或或I/O設(shè)備備)與外界聯(lián)聯(lián)系的。計(jì)算算機(jī)與外設(shè)之之間不是直接接相連的,而而是通過(guò)不同同的接口電路路來(lái)達(dá)到彼此此間的信息傳傳送的目的。。計(jì)算機(jī)與外設(shè)設(shè)之間交換信信息的方式::(1)無(wú)條件件傳送方式::外設(shè)對(duì)計(jì)算機(jī)機(jī)來(lái)說(shuō)總是準(zhǔn)準(zhǔn)備好的。(2)查詢(xún)傳傳送方式:傳送前計(jì)算機(jī)機(jī)先查詢(xún)外設(shè)設(shè)的狀態(tài),若若已經(jīng)準(zhǔn)備好好就傳送,否否則就繼續(xù)查查詢(xún)/等待。。(3)中斷傳傳送方式:外設(shè)通過(guò)申請(qǐng)請(qǐng)中斷的方式式與計(jì)算機(jī)進(jìn)進(jìn)行數(shù)據(jù)傳送送。(4)直接存存儲(chǔ)器存取方方式(DMA):傳送數(shù)據(jù)的雙雙方直接通過(guò)過(guò)總線傳送數(shù)數(shù)據(jù),不經(jīng)經(jīng)CPU中轉(zhuǎn)轉(zhuǎn)。3.2.1中中斷的基基本概念1.中斷的定定義所謂“中斷””,是指CPU執(zhí)行正常常程序時(shí),系系統(tǒng)中出現(xiàn)特特殊請(qǐng)求,CPU暫時(shí)中中止當(dāng)前的程程序,轉(zhuǎn)去處處理更緊急的的事件(執(zhí)行行中斷服務(wù)程程序),處理理完畢(中斷斷服務(wù)完成))后,CPU自動(dòng)返回原原程序的過(guò)程程。作用:采用中斷技術(shù)術(shù)可以提高CPU效率、、解決速度矛矛盾、實(shí)現(xiàn)并并行工作、分分時(shí)操作、實(shí)實(shí)時(shí)處理、故故障處理、應(yīng)應(yīng)付突發(fā)事件件,可使多項(xiàng)項(xiàng)任務(wù)共享一一個(gè)資源(CPU)。中斷與子程序序的最主要區(qū)區(qū)別:子程序是預(yù)先先安排好的,,中斷是隨機(jī)機(jī)發(fā)生的。中斷涉及的幾幾個(gè)環(huán)節(jié):中斷源、中中斷申請(qǐng)、開(kāi)開(kāi)放中斷、保保護(hù)現(xiàn)場(chǎng)、中中斷服務(wù)、恢恢復(fù)現(xiàn)場(chǎng)、中中斷返回。2.中斷源源中斷源是指引引起中斷的設(shè)設(shè)備或事件,,或發(fā)出中斷斷請(qǐng)求的源頭頭。3.中斷的的分類(lèi)中斷按功能通通??煞譃榭煽善帘沃袛?、、非屏蔽中斷斷和軟件中斷斷三類(lèi)??善帘沃袛嗍鞘侵窩PU可可以通過(guò)指令令來(lái)允許或屏屏蔽中斷的請(qǐng)請(qǐng)求。非屏蔽中斷是是指CPU對(duì)對(duì)中斷請(qǐng)求是是不可屏蔽的的,一旦出現(xiàn)現(xiàn),CPU必必須響應(yīng)。軟件中斷則是是指通過(guò)相應(yīng)應(yīng)的中斷指令令使CPU響響應(yīng)中斷。4.中斷優(yōu)優(yōu)先權(quán)與中斷斷嵌套中斷優(yōu)先級(jí)((也稱(chēng)為中斷斷優(yōu)先權(quán))::給每個(gè)中斷源源指定中斷響響應(yīng)的優(yōu)先級(jí)級(jí)別,CPU按中斷源源的優(yōu)先級(jí)高高低順序響應(yīng)應(yīng)各中斷源發(fā)發(fā)出的中斷請(qǐng)請(qǐng)求。中斷嵌套:在某一瞬間,,CPU因響響應(yīng)某一中斷斷源的中斷請(qǐng)請(qǐng)求而正在執(zhí)執(zhí)行它的中斷斷服務(wù)程序時(shí)時(shí),若又有一一級(jí)別高的中中斷源向CPU發(fā)出中斷斷請(qǐng)求,且CPU的中斷斷是開(kāi)放的,,CPU可以以把正在執(zhí)行行的中斷服務(wù)務(wù)程序暫停下下來(lái),轉(zhuǎn)而響響應(yīng)和處理優(yōu)優(yōu)先權(quán)更高的的中斷源的中中斷請(qǐng)求,等等處理完后再再轉(zhuǎn)回來(lái),繼繼續(xù)執(zhí)行原來(lái)來(lái)的中斷服務(wù)務(wù)程序,這就就是中斷嵌套套。中斷嵌套的過(guò)過(guò)程和子程序序嵌套過(guò)程類(lèi)類(lèi)似,子程序序的返回指令令是RET,,而中斷服務(wù)務(wù)程序的返回回指令是RETI。5.中斷響響應(yīng)及處理過(guò)過(guò)程①保護(hù)斷點(diǎn)點(diǎn)②尋找中斷斷源③中斷處理理④中斷返回回保護(hù)斷點(diǎn)和尋尋找中斷源都都是由硬件自動(dòng)完成的,用戶(hù)戶(hù)不用考慮。6.中斷系系統(tǒng)的功能中斷系統(tǒng):能夠?qū)崿F(xiàn)中斷斷功能的硬件件電路和軟件件程序。中斷系統(tǒng)的功功能:能夠?qū)崿F(xiàn)中斷斷優(yōu)先權(quán)排隊(duì)隊(duì)、中斷嵌套套、自動(dòng)響應(yīng)應(yīng)中斷和中斷斷返回等功能能。MCS-51單片機(jī)的大大部分中斷電電路都是集成成在芯片內(nèi)部部的,只有外外部中斷請(qǐng)求求信號(hào)產(chǎn)生電電路才分散在在各中斷源電電路和接口電電路中。3.2.2MCS-51的中斷斷系統(tǒng)MCS-51提供了5個(gè)個(gè)中斷源,2個(gè)中斷優(yōu)先先級(jí)控制,可可實(shí)現(xiàn)2個(gè)中中斷服務(wù)嵌套套??赏ㄟ^(guò)程程序設(shè)置中斷斷的允許或屏屏蔽,設(shè)置中中斷的優(yōu)先級(jí)級(jí)。1.MCS-51的中斷斷源8051允許許5個(gè)中斷源源:(1)外部中中斷源(中斷斷標(biāo)志為IE0和IE1)由((P3.2))端口線引引入,低電平平或下降沿引引起。由((P3.3))端口線引引入,低電平平或下降沿引引起。(2)內(nèi)部中中斷源(中斷標(biāo)志為為T(mén)F0、TF1和TI/RI)T0:定時(shí)/計(jì)數(shù)器0中中斷,由T0回零溢出引引起。T1:定時(shí)/計(jì)數(shù)器1中中斷,由T1回零溢出引引起。TI/RI::串行I/O中斷,完成成一幀字符發(fā)發(fā)送/接收引引起。8051的中中斷結(jié)構(gòu)如下下圖所示。CPU識(shí)別中中斷申請(qǐng)的依依據(jù):CPU在每個(gè)個(gè)機(jī)器周期的的S5P2期期間,會(huì)自動(dòng)動(dòng)查詢(xún)各個(gè)中中斷申請(qǐng)標(biāo)志志位,若查到到某標(biāo)志位被被置位,將啟啟動(dòng)中斷機(jī)制制。2.中斷控制制MCS-51單片機(jī)設(shè)置置了4個(gè)專(zhuān)用用寄存器用于于中斷控制,,用戶(hù)通過(guò)設(shè)設(shè)置其狀態(tài)來(lái)來(lái)管理中斷系系統(tǒng)。(1)定時(shí)器器控制寄存器器TCON((88H))TF1TR1TF0TR0IE1IT1IE0IT0TF0/TF1:定時(shí)器溢出中中斷申請(qǐng)標(biāo)志志位(由硬件自動(dòng)置位)。=0:定時(shí)器未溢出出;=1:定時(shí)器溢出(由全“1”變成全“0”)時(shí)由硬件自動(dòng)動(dòng)置位,申請(qǐng)請(qǐng)中斷,中斷被CPU響應(yīng)后由硬硬件自動(dòng)清零。TR0/TR1:定時(shí)器運(yùn)行啟啟停控制位(可由用戶(hù)通通過(guò)軟件設(shè)置置)。=0:定時(shí)器停止運(yùn)運(yùn)行;=1:定時(shí)器啟動(dòng)運(yùn)運(yùn)行。IE0/IE1:外部中斷申請(qǐng)請(qǐng)標(biāo)志位(由硬件自動(dòng)動(dòng)置位,中中斷響應(yīng)后轉(zhuǎn)轉(zhuǎn)向中斷服務(wù)務(wù)程序時(shí),由由硬件自動(dòng)清0)。=0:沒(méi)有外部中斷斷申請(qǐng);=1:有外部中斷申申請(qǐng)。IT0/IT1:外部中斷請(qǐng)求求的觸發(fā)方式式控制位(可由用戶(hù)通通過(guò)軟件設(shè)置置)。=0:在INT0/INT1端端申請(qǐng)中斷的的信號(hào)低電平平有效;=1:在INT0/INT1端端申請(qǐng)中斷的的信號(hào)負(fù)跳變變有效。(2)串行口口控制寄存器器SCON((98H))TI/RI::串行口發(fā)送/接收中斷申請(qǐng)標(biāo)志志位(由硬件自動(dòng)置位,必須由由用戶(hù)在中斷斷服務(wù)程序中中用軟件清0)。=0:沒(méi)有串行口發(fā)送/接收中斷申請(qǐng);=1:有串行口發(fā)送/接收中斷申請(qǐng)。SCON的高高6位用于串串行口工作方方式設(shè)置和串串行口發(fā)送/接收控制。。(3)中斷允許控控制寄存器IE(0A8H))SM0SM1SM2RENTB8RB8TIRI

EA

ESET1EX1ET0EX0(3))中中斷斷允允許許控控制制寄寄存存器器IE((0A8H))EAESET1EX1ET0EX0EX0/EX1/ET1/ET0/ES位位::分別別是是/,,T0/T1,,串串行行口口的的中中斷斷允允許許控控制制位位。。=0::禁止止中中斷斷;;=1::允許許中中斷斷。。EA::總的的中中斷斷允允許許控控制制位位((總總開(kāi)開(kāi)關(guān)關(guān)))::=0::禁止止全全部部中中斷斷;;=1::允許許中中斷斷。。(4))中中斷斷優(yōu)優(yōu)先先級(jí)級(jí)控控制制寄寄存存器器IP((0B8H))8051有有兩兩個(gè)個(gè)中中斷斷優(yōu)優(yōu)先先級(jí)級(jí),,即即高高優(yōu)優(yōu)先先級(jí)級(jí)和和低低優(yōu)優(yōu)先先級(jí)級(jí),,每每個(gè)個(gè)中中斷斷源源都都可可設(shè)設(shè)置置為為高高或或低低中中斷斷優(yōu)優(yōu)先先級(jí)級(jí),,以以便便CPU對(duì)對(duì)所所有有的的中中斷斷實(shí)實(shí)現(xiàn)現(xiàn)兩兩級(jí)級(jí)中中斷斷嵌嵌套套。。8051內(nèi)內(nèi)部部中中斷斷系系統(tǒng)統(tǒng)對(duì)對(duì)各各中中斷斷源源的的中中斷斷優(yōu)優(yōu)先先級(jí)級(jí)有有一一個(gè)個(gè)統(tǒng)統(tǒng)一一的的規(guī)規(guī)定定,,稱(chēng)稱(chēng)為為自自然然優(yōu)優(yōu)先先級(jí)級(jí)((也也稱(chēng)稱(chēng)為為系系統(tǒng)統(tǒng)缺缺省省優(yōu)優(yōu)先先級(jí)級(jí)))。。如如下下表表所所示示。。8051單單片片機(jī)機(jī)的的中中斷斷優(yōu)優(yōu)先先級(jí)級(jí)采采用用了了自自然然優(yōu)優(yōu)先先級(jí)級(jí)和和人人工工設(shè)設(shè)置置高高、、低低優(yōu)優(yōu)先先級(jí)級(jí)的的策策略略,,中中斷斷處處于于同同一一級(jí)級(jí)別別時(shí)時(shí),,就就由由自自然然優(yōu)優(yōu)先先級(jí)級(jí)確確定定。。開(kāi)開(kāi)機(jī)機(jī)時(shí)時(shí),,每每個(gè)個(gè)中中斷斷都都處處于于低低優(yōu)優(yōu)先先級(jí)級(jí),,中中斷斷優(yōu)優(yōu)先先級(jí)級(jí)可可以以通通過(guò)過(guò)程程序序來(lái)來(lái)設(shè)設(shè)定定,,由由中中斷斷優(yōu)優(yōu)先先級(jí)級(jí)寄寄存存器器IP來(lái)來(lái)統(tǒng)統(tǒng)一一管管理理。。(4))中中斷斷優(yōu)優(yōu)先先級(jí)級(jí)控控制制寄寄存存器器IP((0B8H))PSPT1PX1PT0PX0PX0/PX1::/優(yōu)先先級(jí)級(jí)控控制制位位::=0::屬低低優(yōu)優(yōu)先先級(jí)級(jí);;=1::屬高高優(yōu)優(yōu)先先級(jí)級(jí)。。PT0/PT1::T0/T1中中斷斷優(yōu)優(yōu)先先級(jí)級(jí)控控制制位位::=0::屬低低優(yōu)優(yōu)先先級(jí)級(jí);;=1::屬高高優(yōu)優(yōu)先先級(jí)級(jí)。。PS1::串行行口口中中斷斷優(yōu)優(yōu)先先級(jí)級(jí)控控制制位位::=0::屬低低優(yōu)優(yōu)先先級(jí)級(jí);;=1::屬高高優(yōu)優(yōu)先先級(jí)級(jí)。。中斷斷優(yōu)優(yōu)先先級(jí)級(jí)處處理理原原則則::對(duì)同時(shí)時(shí)發(fā)發(fā)生生多多個(gè)個(gè)中中斷斷申申請(qǐng)請(qǐng)時(shí)時(shí)::不同同優(yōu)優(yōu)先先級(jí)級(jí)的的中中斷斷同同時(shí)時(shí)申申請(qǐng)請(qǐng)::先先高高后后低低相同同優(yōu)優(yōu)先先級(jí)級(jí)的的中中斷斷同同時(shí)時(shí)申申請(qǐng)請(qǐng)::按按序序執(zhí)執(zhí)行行正處處理理低低優(yōu)優(yōu)先先級(jí)級(jí)中中斷斷又又接接到到高高級(jí)級(jí)別別中中斷斷::高高打打斷斷低低正處處理理高高優(yōu)優(yōu)先先級(jí)級(jí)中中斷斷又又接接到到低低級(jí)級(jí)別別中中斷斷::高高不不理理低低3.中中斷斷響響應(yīng)應(yīng)(1)中中斷斷響響應(yīng)應(yīng)的的條條件件MCS-51單單片片機(jī)機(jī)工工作作時(shí)時(shí),,在在每每個(gè)個(gè)機(jī)機(jī)器器周周期期中中都都會(huì)會(huì)去去查查詢(xún)?cè)兏鞲鱾€(gè)個(gè)中中斷斷標(biāo)標(biāo)志志,,如如果果有有中中斷斷請(qǐng)請(qǐng)求求。。必必須須滿(mǎn)滿(mǎn)足足下下列列條條件件單單片片機(jī)機(jī)才才能能響響應(yīng)應(yīng)中中斷斷。。①相相應(yīng)應(yīng)的的中中斷斷是是開(kāi)開(kāi)放放的的;;②沒(méi)沒(méi)有有同同級(jí)級(jí)的的中中斷斷或或更更高高級(jí)級(jí)別別的的中中斷斷正正在在處處理理;;③正正在在執(zhí)執(zhí)行行的的指指令令必必須須執(zhí)執(zhí)行行完完最最后后1個(gè)個(gè)機(jī)機(jī)器器周周期期;;④若若正正在在執(zhí)執(zhí)行行RETI,,或或正正在在訪訪問(wèn)問(wèn)IE或或IP寄寄存存器器,則則必必須須執(zhí)執(zhí)行行完完當(dāng)當(dāng)前前指指令令的的下下一一條條指指令令。。后后方方能響響應(yīng)應(yīng)中中斷斷。。(2)中中斷斷響響應(yīng)應(yīng)的的過(guò)過(guò)程程中斷斷過(guò)過(guò)程程包包括括中中斷斷請(qǐng)請(qǐng)求求、、中中斷斷響響應(yīng)應(yīng)、、中中斷斷服服務(wù)務(wù)、、中中斷斷返返回回四四個(gè)個(gè)階階段段。。中斷斷請(qǐng)請(qǐng)求求::中斷斷源源將將相相應(yīng)應(yīng)請(qǐng)請(qǐng)求求中中斷斷的的標(biāo)標(biāo)志志位位置置““1””,,表表示示發(fā)發(fā)出出請(qǐng)請(qǐng)求求,,并并由由CPU查查詢(xún)?cè)?。。中斷斷響響?yīng)應(yīng)::在中中斷斷允允許許條條件件下下相相應(yīng)應(yīng)中中斷斷。。斷斷點(diǎn)點(diǎn)入入棧?!烦烦兄袛鄶鄻?biāo)標(biāo)志志→→關(guān)關(guān)閉閉低低同同級(jí)級(jí)中中斷斷允允許許→→中中斷斷入入口口地地址址送送PC。。這這些些工工作作都都是是由由硬硬件件自自動(dòng)動(dòng)完完成成的的。。中斷斷服服務(wù)務(wù)::根據(jù)據(jù)入入口口地地址址轉(zhuǎn)轉(zhuǎn)中中斷斷服服務(wù)務(wù)程程序序,,包包含含保保護(hù)護(hù)現(xiàn)現(xiàn)場(chǎng)場(chǎng)、、執(zhí)執(zhí)行行中中斷斷主主體體、、恢恢復(fù)復(fù)現(xiàn)現(xiàn)場(chǎng)場(chǎng)。。中斷斷返返回回::執(zhí)行行中中斷斷返返回回RETI指指令令→→斷斷點(diǎn)點(diǎn)出出棧?!_(kāi)開(kāi)放放中中斷斷允允許許→→返返回回原原程程序序。。中斷斷服服務(wù)務(wù)程程序序入入口口地地址址::中斷斷響響應(yīng)應(yīng)的的主主要要內(nèi)內(nèi)容容就就是是由由硬硬件件自自動(dòng)動(dòng)生生成成一一條條長(zhǎng)長(zhǎng)調(diào)調(diào)用用指指令令((LCALLaddr16)),,CPU執(zhí)執(zhí)行行這這條條長(zhǎng)長(zhǎng)調(diào)調(diào)用用指指令令便便響響應(yīng)應(yīng)中中斷斷,,轉(zhuǎn)轉(zhuǎn)入入相相應(yīng)應(yīng)的的中中斷斷服服務(wù)務(wù)程程序序。。這這里里的的addr16就就是是程程序序存存儲(chǔ)儲(chǔ)器器中中相相應(yīng)應(yīng)的的中中斷斷服服務(wù)務(wù)程程序序的的入入口口地地址址,,MCS-51的的5個(gè)個(gè)中中斷斷源源的的中中斷斷服服務(wù)務(wù)程程序序入入口口地地址址是是固固定定的的,,如如下下表表所所示示。。8051的的5個(gè)個(gè)中中斷斷源源的的中中斷斷服服務(wù)務(wù)入入口口地地址址之之間間相相差差8個(gè)個(gè)單單元元。。這這8個(gè)個(gè)存存儲(chǔ)儲(chǔ)單單元元用用來(lái)來(lái)存存儲(chǔ)儲(chǔ)中中斷斷服服務(wù)務(wù)程程序序一一般般來(lái)來(lái)說(shuō)說(shuō)是是不不夠夠的的。。用用戶(hù)戶(hù)常常在在中中斷斷服服務(wù)務(wù)程程序序地地址址入入口口處處放放一一條條三三字字節(jié)節(jié)的的長(zhǎng)長(zhǎng)轉(zhuǎn)轉(zhuǎn)移移指指令令。。一一般般地地,,主主程程序序從從0030H單單元元以以后后開(kāi)開(kāi)始始存存放放。。例例如如::ORG0000HLJMPSTART;轉(zhuǎn)轉(zhuǎn)入主主程序,,START為為主程序序地址標(biāo)標(biāo)號(hào)ORG0003HLJMPINT0;轉(zhuǎn)轉(zhuǎn)外中斷斷中斷服服務(wù)程序序ORG000BHLJMPT0;轉(zhuǎn)轉(zhuǎn)定時(shí)時(shí)器T0中斷服服務(wù)程序序ORG0030HSTART:…………;主主程序開(kāi)開(kāi)始(3)中斷響響應(yīng)時(shí)間間正常中斷斷響應(yīng)時(shí)時(shí)間至少少為3~~8個(gè)機(jī)機(jī)器周期期,如果果有同級(jí)級(jí)或高級(jí)級(jí)中斷服服務(wù),將將延長(zhǎng)中中斷響應(yīng)應(yīng)時(shí)間。。4.中斷請(qǐng)請(qǐng)求的撤撤除為了避免免中斷請(qǐng)請(qǐng)求標(biāo)志志沒(méi)有及及時(shí)撤除除而造成成的重復(fù)復(fù)響應(yīng)同同一中斷斷請(qǐng)求的的錯(cuò)誤,,CPU在相相應(yīng)中斷斷時(shí)必須須及時(shí)將將其中斷斷請(qǐng)求標(biāo)標(biāo)志位撤撤除。8051的5個(gè)個(gè)中斷源源的中斷斷請(qǐng)求撤撤除的方方法是不不同的。。(1)定定時(shí)器溢溢出中斷斷請(qǐng)求的的撤除定時(shí)器溢溢出中斷斷得到響響應(yīng)后,,其中斷斷請(qǐng)求的的標(biāo)志位位TF0和TF1由硬硬件自動(dòng)復(fù)位。(2)串串行口中中斷請(qǐng)求求的撤除除串行口中中斷得到到響應(yīng)后后,其中中斷請(qǐng)求求的標(biāo)志志位TI和RI不能由由硬件自自動(dòng)復(fù)位位,必須須由用戶(hù)戶(hù)在中斷斷服務(wù)程程序的適適當(dāng)位置置通過(guò)如如下指令令將它們們撤除。。CLRTI;撤除除發(fā)送中中斷請(qǐng)求求標(biāo)志CLRRI;撤除除接收中中斷請(qǐng)求求標(biāo)志或采用字字節(jié)型指指令:ANLSCON,#0FCH(3)外部中中斷請(qǐng)求求的撤除除外部中斷斷請(qǐng)求的的兩種觸觸發(fā)方式式(電平平觸發(fā)和和負(fù)邊沿沿觸發(fā)))的中斷斷請(qǐng)求撤撤除的方方法是不不同的。。負(fù)邊沿觸觸發(fā)方式式:CPU在在前一機(jī)機(jī)器周期期采到/引引腳為高高,后一一機(jī)器周周期采到到為低才才認(rèn)為是是一次中中斷請(qǐng)求求,即依依靠CPU兩次次檢測(cè)((或))上的的負(fù)邊沿沿觸發(fā)電電平狀態(tài)態(tài)而置位位外部中中斷標(biāo)志志位IE0或IE1。。CPU可可記憶申申請(qǐng)、可可由硬件件自動(dòng)撤除中斷斷申請(qǐng)。。電平觸發(fā)發(fā)方式::/引腳上的的低電平平須持續(xù)續(xù)到中斷斷發(fā)生。。若中斷斷返回前前仍未及及時(shí)撤除除低電平平,雖然然CPU在響應(yīng)應(yīng)中斷時(shí)時(shí)能由硬硬件自動(dòng)動(dòng)復(fù)位IE0或或IE1,但引引腳上的的低電平平仍會(huì)使使已經(jīng)復(fù)復(fù)位的IE0或或IE1再次置置位,產(chǎn)產(chǎn)生重復(fù)復(fù)中斷的的錯(cuò)誤。。電平觸發(fā)發(fā)型外部部中斷請(qǐng)請(qǐng)求的撤撤除必須須由外部部硬件使使(或))上的低低電平隨隨著其中中斷被響響應(yīng)而變變?yōu)楦唠婋娖健F淦渲袛嗾?qǐng)請(qǐng)求撤除除的電路路如下圖圖所示。。外來(lái)的低低電平→→反相→→CP端端產(chǎn)生上上跳沿→→D端端的“0”輸出出到Q端端→申請(qǐng)請(qǐng)中斷,,中斷服務(wù)務(wù)返回前前對(duì)P1.0送送“0””→令令Q端變變?yōu)椤?”指令如下下:ANLP1,,#0FEH((或CLRP1.0));令Q端端置“1”O(jiān)RLP1,#01H((SETBP1.0);令SD端置““1”,以免下下次中斷斷來(lái)時(shí)Q端不能能變“0”3.2.3MCS-51中斷系系統(tǒng)的編編程(1)中中斷初始始化設(shè)置置:開(kāi)相應(yīng)中中斷允許許(IE))、根據(jù)據(jù)需要選選擇優(yōu)先先級(jí)(IP))和選選擇外中中斷觸發(fā)發(fā)方式((TCON),,設(shè)置計(jì)計(jì)數(shù)器、、串行口口的有關(guān)關(guān)參數(shù)。。(2)中中斷服務(wù)務(wù)程序的的編寫(xiě)::中斷入口口、保護(hù)護(hù)現(xiàn)場(chǎng)、、關(guān)中斷斷、中斷斷服務(wù)主主體程序序、恢復(fù)復(fù)現(xiàn)場(chǎng)、、開(kāi)中斷斷、設(shè)置置計(jì)數(shù)器器、串行行口的有有關(guān)參數(shù)數(shù)、中斷斷返回指指令RETI。。[例題2]設(shè)8051外部部中斷源源接引腳腳,,中斷斷觸發(fā)方方式為電電平觸發(fā)發(fā),試編編制8051中中斷系統(tǒng)統(tǒng)的初始始化程序序。解:采用用位操作作指令實(shí)實(shí)現(xiàn)(也也可以采采用傳送送指令和和邏輯指指令)。。SETBEA;開(kāi)開(kāi)總中中斷SETBEX0;開(kāi)中中斷SETBPX0;設(shè)設(shè)置為高高優(yōu)先級(jí)級(jí)CLRIT0;設(shè)設(shè)置置為電電平觸觸發(fā)方方式[例題3]通過(guò)外部中中斷控控制八八盞燈燈循環(huán)環(huán)點(diǎn)亮亮。解:通過(guò)P1口口擴(kuò)展展八盞盞燈,,在引引腳腳接一一個(gè)按按鈕開(kāi)開(kāi)關(guān)到到地,,每按按一下下按鈕鈕就申申請(qǐng)一一次中中斷,,點(diǎn)亮亮一盞盞燈,,中斷斷服務(wù)務(wù)則是是:依依次點(diǎn)點(diǎn)亮八八盞燈燈中的的一盞盞。采采用邊邊沿觸觸發(fā)。。硬件件電路路如下下圖所所示。。程序如如下::ORG0000HLJMPMAINORG0013H;中中斷斷服務(wù)務(wù)程序序入口口地址址LJMPIN11MAIN::SETBEA;開(kāi)開(kāi)總總中斷斷允許許“開(kāi)開(kāi)關(guān)””SETBEX1;開(kāi)開(kāi)分分中斷斷允許許“開(kāi)開(kāi)關(guān)””CLRPX1;低低優(yōu)優(yōu)先級(jí)級(jí)(也也可不不要此此句))SETBIT1;邊邊沿觸觸發(fā)MOVA,#01H;給給累加加器A賦初初值SJMP$;原原地地等待待中斷斷申請(qǐng)請(qǐng)IN11::RLA;左環(huán)移移一次次MOVP1,A;輸輸出到到P1口RETI;中中斷返返回END3.2.4MCS-51擴(kuò)展外外部中中斷請(qǐng)請(qǐng)求輸輸入口口8051單單片機(jī)機(jī)只提提供了了兩個(gè)個(gè)外部部中斷斷請(qǐng)求求輸入入端,,如果果需要要使用用多于于兩個(gè)個(gè)的中中斷源源,就就必須須擴(kuò)展展外部部中斷斷請(qǐng)求求輸入入口。1.定定時(shí)器器/計(jì)計(jì)數(shù)器器用于于擴(kuò)展展外部部中斷斷請(qǐng)求求輸入入口8051單單片機(jī)機(jī)有兩兩個(gè)定定時(shí)器器/計(jì)計(jì)數(shù)器器,它它們作作為計(jì)計(jì)數(shù)器器使用用時(shí),,計(jì)數(shù)數(shù)輸入入端T0((或T1))發(fā)生生負(fù)跳跳變將將使計(jì)計(jì)數(shù)器器加1,利利用此此特性性,適適當(dāng)設(shè)設(shè)置計(jì)計(jì)數(shù)初初值,,就可可以把把計(jì)數(shù)數(shù)輸入入端T0((或T1))作為為外部部中斷斷請(qǐng)求求輸入入口。。其特特點(diǎn)是是以占占用內(nèi)內(nèi)部定定時(shí)中中斷為為代價(jià)價(jià)的。。中斷斷服務(wù)務(wù)程序序的入入口地地址仍然為為000BH或或001BH。。2.查查詢(xún)方方式擴(kuò)擴(kuò)展外外部中中斷請(qǐng)請(qǐng)求輸輸入口口把多個(gè)個(gè)中斷斷源通通過(guò)硬硬件((如與與非門(mén)門(mén))引引入外外部中中斷輸輸入端端,同同時(shí)又又連到到某個(gè)個(gè)I/O口口。當(dāng)當(dāng)有中中斷源源申請(qǐng)請(qǐng)中斷斷時(shí),,在中中斷服服務(wù)程程序中中通過(guò)過(guò)軟件件查詢(xún)?cè)兛纱_確定哪哪一個(gè)個(gè)是正正在申申請(qǐng)的的中斷斷源,,其查查詢(xún)的的次序序可由由中斷斷優(yōu)先先級(jí)決決定。。其特特點(diǎn)是是中斷斷響應(yīng)應(yīng)速度度較慢慢。適適用用于外外部中中斷源源較多多的場(chǎng)場(chǎng)合。。3.使用專(zhuān)專(zhuān)用芯片擴(kuò)擴(kuò)展外部中中斷請(qǐng)求輸輸入口當(dāng)外部中斷斷源較多,,同時(shí)又要要求中斷響響應(yīng)速度很很高時(shí),查查詢(xún)方式擴(kuò)擴(kuò)展外部中中斷請(qǐng)求輸輸入口的方方法很難滿(mǎn)滿(mǎn)足要求。。這時(shí)可以以使用專(zhuān)用用接口芯片片進(jìn)行外部部中斷請(qǐng)求求輸入口的的擴(kuò)展。74LS148優(yōu)先先級(jí)編碼器器和可編程程中斷控制制器8259均可以以實(shí)現(xiàn)該任任務(wù)。3.3MCS-51單片機(jī)的定定時(shí)器/計(jì)數(shù)器3.3.1定時(shí)器/計(jì)數(shù)器1.基本概概念(1)計(jì)數(shù):計(jì)數(shù)是指對(duì)對(duì)外部事件件的個(gè)數(shù)進(jìn)進(jìn)行計(jì)量。。其實(shí)質(zhì)就就是對(duì)外部部輸入脈沖沖的個(gè)數(shù)進(jìn)進(jìn)行計(jì)量。。實(shí)現(xiàn)計(jì)數(shù)數(shù)功能的器器件稱(chēng)為計(jì)計(jì)數(shù)器。(2)定時(shí):8051單單片機(jī)中的的定時(shí)器和和計(jì)數(shù)器是是一個(gè)部件件,只不過(guò)過(guò)計(jì)數(shù)器記記錄的是外外界發(fā)生的的事件,而而定時(shí)器則則是由單片片機(jī)內(nèi)部提提供一個(gè)非非常穩(wěn)定的的計(jì)數(shù)源進(jìn)進(jìn)行定時(shí)的的。這個(gè)計(jì)計(jì)數(shù)源是由由單片機(jī)的的晶振經(jīng)過(guò)過(guò)12分頻頻后獲得的的一個(gè)脈沖沖源。所以以定時(shí)器計(jì)計(jì)數(shù)脈沖的的時(shí)間間隔隔與晶振有有關(guān)。(3)定時(shí)的種種類(lèi)軟件定時(shí)::利用執(zhí)行一一個(gè)循環(huán)程程序進(jìn)行時(shí)時(shí)間延遲。。其特點(diǎn)是是定時(shí)時(shí)間間精確,不不需外加硬硬件電路,,但占用CPU時(shí)間間。因此軟軟件定時(shí)的的時(shí)間不宜宜過(guò)長(zhǎng)。硬件定時(shí)::利用硬件電電路實(shí)現(xiàn)定定時(shí)。其特特點(diǎn)是不占占用CPU時(shí)間,通通過(guò)改變電電路元器件件參數(shù)來(lái)調(diào)調(diào)節(jié)定時(shí),,但使用不不夠靈活方方便。對(duì)于于時(shí)間較長(zhǎng)長(zhǎng)的定時(shí),,常用硬件件電路來(lái)實(shí)實(shí)現(xiàn)??删幊潭〞r(shí)時(shí)器:通過(guò)專(zhuān)用的的定時(shí)器/計(jì)數(shù)器芯芯片實(shí)現(xiàn)。。其特點(diǎn)是是通過(guò)對(duì)系系統(tǒng)時(shí)鐘脈脈沖進(jìn)行計(jì)計(jì)數(shù)實(shí)現(xiàn)定定時(shí),定時(shí)時(shí)時(shí)間可通通過(guò)程序設(shè)設(shè)定的方法法改變,使使用靈活方方便。也可可實(shí)現(xiàn)對(duì)外外部脈沖的的計(jì)數(shù)功能能。MCS-51單片機(jī)機(jī)內(nèi)部有兩兩個(gè)16位位可編程的的定時(shí)器/計(jì)數(shù)器,,簡(jiǎn)稱(chēng)為T(mén)0和T1,均可作作定時(shí)器用用也可計(jì)數(shù)數(shù)器,它們們均是二進(jìn)進(jìn)制加法計(jì)計(jì)數(shù)器,當(dāng)當(dāng)計(jì)數(shù)器計(jì)計(jì)滿(mǎn)回零時(shí)時(shí)能自動(dòng)產(chǎn)產(chǎn)生溢出中中斷請(qǐng)求,,表示定時(shí)時(shí)時(shí)間已到到或計(jì)數(shù)已已終止。適適用于定時(shí)時(shí)控制、延延時(shí)、外部部計(jì)數(shù)和檢檢測(cè)等。計(jì)數(shù)器:對(duì)引腳T0(P3.4))和T1((P3.5.)輸入入的外部脈脈沖信號(hào)計(jì)計(jì)數(shù),當(dāng)輸輸入脈沖信信號(hào)從1到到0的負(fù)跳跳變時(shí),計(jì)計(jì)數(shù)器就自自動(dòng)加1。。計(jì)數(shù)的最最高頻率一一般為振蕩蕩頻率的1/24。。定時(shí)器:對(duì)系統(tǒng)晶振振振蕩脈沖沖的12分分頻輸出進(jìn)進(jìn)行計(jì)數(shù)。。(1)定時(shí)時(shí)器/計(jì)數(shù)數(shù)器的結(jié)構(gòu)構(gòu)組成:16位加法法計(jì)數(shù)器、、工作方式式寄存器TMOD和和控制寄存存器TCON。T0:TL0(低低8位)和和TH0((高8位))T1:TL1(低低8位)和和TH1((高8位))2.MCS-51內(nèi)部定時(shí)器器/計(jì)數(shù)器8051單單片機(jī)內(nèi)部部的定時(shí)器器/計(jì)數(shù)器器的結(jié)構(gòu)如如下圖所示示。(2)控制寄存存器TCON(88H)TF1TR1TF0TR0IE1IT1IE0IT0TF0/TF1:T0/1計(jì)計(jì)數(shù)溢出標(biāo)標(biāo)志位。可可用于申請(qǐng)請(qǐng)中斷或供供CPU查查詢(xún)。在進(jìn)進(jìn)入中斷服服務(wù)程序時(shí)時(shí)會(huì)自動(dòng)清清零;但在在查詢(xún)方式式時(shí)必須軟軟件清零。。=1:計(jì)數(shù)溢出;;=0:計(jì)數(shù)未滿(mǎn)。。TR0/TR1:T0/1啟啟??刂莆晃弧?1:?jiǎn)?dòng)計(jì)數(shù);;=0:停止計(jì)數(shù)。。IE0/IE1和IT0/IT1:用于管理外外部中斷((前面已介介紹過(guò))。。M1,M0:工作方式選選擇位。。=00:13位定時(shí)時(shí)器/計(jì)數(shù)數(shù)器;=01:16位定時(shí)時(shí)器/計(jì)數(shù)數(shù)器(常用用);=10:可自動(dòng)重裝裝的8位定定時(shí)器/計(jì)計(jì)數(shù)器(常常用);=11:T0分為為2個(gè)8位位定時(shí)器/計(jì)數(shù)器;;僅適用于于T0。C/::定時(shí)方式/計(jì)數(shù)方式式選擇位。。=1:選擇計(jì)數(shù)器器工作方式式,對(duì)T0/T1引引腳輸入的的外部事件件的負(fù)脈沖沖計(jì)數(shù);=0::選擇定時(shí)器器工作方式式,對(duì)機(jī)器器周期脈沖沖計(jì)數(shù)定時(shí)時(shí)。如下頁(yè)圖所所示。(2)工作作方式寄存存器TMODGATEC/T

M1

M0GATEC/T

M1

M0T1T2GATE::門(mén)控位,定定時(shí)器/計(jì)計(jì)數(shù)器的啟啟/停可由由軟件與硬硬件兩者控控制=0::軟件控制,,只由TCON中的的啟/??乜刂莆籘R0/TR1控制定定時(shí)器/計(jì)計(jì)數(shù)器的啟啟/停。=1::硬件控制,,由外部中中斷請(qǐng)求信信號(hào)/和和TCON中的啟/??刂莆晃籘R0/TR1組組合狀態(tài)控控制定時(shí)器器/計(jì)數(shù)器器的啟/停停。其控制邏輯輯如下圖所所示。3.3.2定時(shí)時(shí)器/計(jì)數(shù)數(shù)器的工作作方式8051單單片機(jī)的定定時(shí)器/計(jì)計(jì)數(shù)器共有有四種工作作模式,現(xiàn)現(xiàn)以T0為為例加以介介紹,T1與T0的的工作原理理相同,但但方式3下下T1停止止計(jì)數(shù)。方方式(如F0)和用用戶(hù)定義名名稱(chēng)等幾種種方式。1.工作方方式0(M1M0=00,,13位位定時(shí)器/計(jì)數(shù)器))由TH0的的全部8位位和TL0的低5位位(TL0的高3位未用))構(gòu)成13位加1計(jì)計(jì)數(shù)器,當(dāng)當(dāng)TL0低低5位計(jì)數(shù)數(shù)滿(mǎn)時(shí)直接接向TH0進(jìn)位,并并當(dāng)全部13位計(jì)數(shù)數(shù)滿(mǎn)溢出時(shí)時(shí),溢出標(biāo)標(biāo)志位TF0置“1”。2.工作方方式1((M1M0=01,16位定時(shí)器器/計(jì)數(shù)器器)由TH0和和TL0構(gòu)構(gòu)成16位位加1計(jì)數(shù)數(shù)器,其他他特性與工工作方式0相同。3.工作方方式2((M1M0=10,自動(dòng)動(dòng)重裝計(jì)數(shù)數(shù)初值的8位定時(shí)器器/計(jì)數(shù)器器)16位定時(shí)時(shí)器/計(jì)數(shù)數(shù)器被拆成成兩個(gè)8位位寄存器TH0和TL0,CPU在對(duì)對(duì)它們初始始化時(shí)必須須裝入相同同的定時(shí)器器/計(jì)數(shù)器器初值。以以TL0作作計(jì)數(shù)器,,而TH0作為預(yù)置置寄存器。。當(dāng)計(jì)數(shù)滿(mǎn)滿(mǎn)溢出時(shí),,TF0置置“1”,,同時(shí)TH0將計(jì)數(shù)數(shù)初值以硬硬件方法自自動(dòng)裝入TL0。這這種工作方方式很適合合于那些重重復(fù)計(jì)數(shù)的的應(yīng)用場(chǎng)合合(如串行行數(shù)據(jù)通信信的波特率率發(fā)生器))。4.工作方方式3((M1M0=11,2個(gè)8位定定時(shí)器/計(jì)計(jì)數(shù)器,僅僅適用于T0)TL0:8位定時(shí)器器/計(jì)數(shù)器器,使用T0原有控控制資源TR0和TF0,其其功能和操操作與方式式0或方式式1完全相相同。TH0:只能作為8位定時(shí)器器,借用T1的控制制位TR1和TF1,只能對(duì)對(duì)片內(nèi)機(jī)器器周期脈沖沖計(jì)數(shù)。在方式3模模式下,定定時(shí)器/計(jì)計(jì)數(shù)器0可可以構(gòu)成兩兩個(gè)定時(shí)器器或者一個(gè)個(gè)定時(shí)器和和一個(gè)計(jì)數(shù)數(shù)器。T0方式3下的T1方式2,,因定時(shí)初初值能自動(dòng)動(dòng)恢復(fù),用用作波特率率發(fā)生器更更為合適。。定時(shí)器/計(jì)計(jì)數(shù)器可按按片內(nèi)機(jī)器器周期定時(shí)時(shí),也可對(duì)對(duì)由T0/T1引腳腳輸入一個(gè)個(gè)負(fù)脈沖進(jìn)進(jìn)行加法計(jì)計(jì)數(shù)。在應(yīng)應(yīng)用時(shí),其其工作方式式和工作過(guò)過(guò)程均可通通過(guò)程序設(shè)設(shè)定和控制制,因此,,定時(shí)器/計(jì)數(shù)器在在工作前必必須先對(duì)其其進(jìn)行初始始化,計(jì)算算和設(shè)置初初值。1.定時(shí)時(shí)器T0/T1中中斷申請(qǐng)過(guò)過(guò)程(1)在已已經(jīng)開(kāi)放T0/T1中斷允許許且已被啟啟動(dòng)的前提提下,T0/T1加1計(jì)滿(mǎn)滿(mǎn)溢出時(shí)TF0/TF1標(biāo)標(biāo)志位自動(dòng)動(dòng)置“1””;(2)CPU檢測(cè)到TCON中TF0/TF1變變“1””后,將將產(chǎn)生指指令:LCALL000BH/LCALL001BH執(zhí)行行中斷服服務(wù)程序序;(3)TF0/TF1標(biāo)志位位由硬件件自動(dòng)清清“0””,以備備下次中中斷申請(qǐng)請(qǐng)。3.3.3定時(shí)器/計(jì)數(shù)器的的應(yīng)用2.定時(shí)器/計(jì)數(shù)器初初始化的的步驟(1)寫(xiě)寫(xiě)TMOD,設(shè)設(shè)置定時(shí)時(shí)器/計(jì)計(jì)數(shù)器的的工作方方式;((2)計(jì)算算定時(shí)器器/計(jì)數(shù)數(shù)器的初初值,寫(xiě)寫(xiě)入TH0/TH1、、TL0/TL1。((3)設(shè)置置IE、、IP,,以開(kāi)放放相應(yīng)的的中斷和和設(shè)定中中斷優(yōu)先先級(jí)。3.定定時(shí)器/計(jì)數(shù)器器的定時(shí)時(shí)器/計(jì)計(jì)數(shù)器范范圍(1)工工作方式式0:13位定定時(shí)器/計(jì)數(shù)器器方式最大計(jì)數(shù)數(shù)值=213=8192(2)工工作方式式1:16位定定時(shí)器/計(jì)數(shù)器器方式最大計(jì)數(shù)數(shù)值=216=65536(3)工作方式式2和工作方方式3:8位的定定時(shí)器/計(jì)數(shù)器器方式因因此,最大計(jì)數(shù)數(shù)值=28=2563.計(jì)數(shù)器初初值的計(jì)計(jì)算方法:用最大計(jì)計(jì)數(shù)量減減去需要要的計(jì)數(shù)數(shù)次數(shù)。。即:TC=MC其中:TC———計(jì)數(shù)器器需要預(yù)預(yù)置的初初值;M——計(jì)計(jì)數(shù)器的的模值((最大計(jì)計(jì)數(shù)值));方式0時(shí)時(shí),M=213;方式1時(shí),M=216;方式2,3時(shí),M=28;C——計(jì)計(jì)數(shù)器計(jì)計(jì)滿(mǎn)回0所需的的計(jì)數(shù)值值,即設(shè)設(shè)計(jì)任務(wù)務(wù)要求的的計(jì)數(shù)值值。例如:流水線上上一個(gè)包包裝是12盒,,要求每每到12盒就產(chǎn)產(chǎn)生一個(gè)個(gè)動(dòng)作,,用單片片機(jī)的工工作方式式0來(lái)控控制,則則應(yīng)當(dāng)預(yù)預(yù)置的初初值為::TC=MC=21312=81804.定時(shí)器初初值的計(jì)計(jì)算定時(shí)時(shí)間間的計(jì)算算公式為為:T=(MTC)××T0(或TC=MT/T0)其中:T——定定時(shí)器的的定時(shí)時(shí)時(shí)間,即即設(shè)計(jì)任任務(wù)要求求的定時(shí)時(shí)時(shí)間;;T0——計(jì)數(shù)數(shù)器計(jì)數(shù)數(shù)脈沖的的周期,,即單片片機(jī)系統(tǒng)統(tǒng)主頻周周期的12倍;;M——計(jì)計(jì)數(shù)器的的模值;;TC———定時(shí)器器需要預(yù)預(yù)置的初初值。若設(shè)初值值TC=0,則則定時(shí)器器定時(shí)時(shí)時(shí)間為最最大。若若設(shè)單片片機(jī)系統(tǒng)統(tǒng)主頻為為12MHz,,則各種種工作方方式定時(shí)時(shí)器的最最大定時(shí)時(shí)時(shí)間為為:工作方式式0:Tmax=213×1s=8.192ms工作方式式1:Tmax=216×1s=65.536ms工作方式式2和3:Tmax=28×1s=0.256ms5.定時(shí)器/計(jì)數(shù)器應(yīng)應(yīng)用舉例例[例題4]設(shè)一只發(fā)發(fā)光二極極管LED和8051的P1.0腳腳相連。。當(dāng)P1.0腳腳是高電電平時(shí),,LED發(fā)亮;;當(dāng)P1.0腳腳是低電電平時(shí),,LED不亮。。編制程程序用定定時(shí)器來(lái)來(lái)實(shí)現(xiàn)發(fā)發(fā)光二極極管LED的閃閃爍功能能,設(shè)置置LED每1s閃爍一一次。已已知單片片機(jī)系統(tǒng)統(tǒng)主頻為為12MHz。。解:定時(shí)器/計(jì)數(shù)器器的最長(zhǎng)長(zhǎng)的定時(shí)時(shí)是65.536ms,無(wú)法法實(shí)現(xiàn)1s的定定時(shí)??煽梢圆捎糜密浖?jì)計(jì)數(shù)器來(lái)來(lái)進(jìn)行設(shè)設(shè)計(jì)。設(shè)計(jì)思想想:定義一個(gè)個(gè)軟件計(jì)計(jì)數(shù)器單單元30H,先先用定時(shí)時(shí)器/計(jì)計(jì)數(shù)器0做一個(gè)個(gè)50ms的定定時(shí)器,,定時(shí)時(shí)時(shí)間到了了以后將將軟件計(jì)計(jì)數(shù)器中中的值加加1,如如果軟件件計(jì)數(shù)器器計(jì)到了了20,,取反P1.0,并清清掉軟件件計(jì)數(shù)器器中的值值,否則則直接返返回。則則完成了了20次次定時(shí)中中斷才取取反一次次P1.0,因因此定時(shí)時(shí)時(shí)間就就為20×50=1000ms=1s。定時(shí)器/計(jì)數(shù)器器0采用用工作方方式1,,其初值值為:21650ms/1s=6553650000=15536=3CB0H電路圖如如下:程序如下下:ORG0000HAJMPSTART;轉(zhuǎn)入入主程序序ORG000BH;定時(shí)時(shí)器/計(jì)計(jì)數(shù)器0的中斷斷服務(wù)程程序入口口地址AJMPTIME0;跳跳轉(zhuǎn)到真真正的定定時(shí)器中中斷服務(wù)務(wù)程序處處ORG0030HSTART:MOVSP,#60H;設(shè)設(shè)置堆棧棧指針MOVP1,#0FFH;關(guān)關(guān)發(fā)光二二極管LED((使其滅滅)MOV30H,#00H;軟軟件計(jì)數(shù)數(shù)器預(yù)清清0MOVTMOD,#01H;定時(shí)時(shí)器/計(jì)計(jì)數(shù)器0工作于于方式1MOVTH0,#3CH;設(shè)置定定時(shí)器/計(jì)數(shù)數(shù)器的初值MOVTL0,#0B0HSETBEA;開(kāi)總總中斷允許SETBET0;開(kāi)開(kāi)定時(shí)器/計(jì)計(jì)數(shù)器0中斷斷允許SETBTR0;啟動(dòng)定定時(shí)器/計(jì)數(shù)數(shù)器0LOOP:AJMPLOOP;循循環(huán)環(huán)等待待(真正正工作作時(shí),,這里里可寫(xiě)寫(xiě)任意意其他他程序序)定時(shí)器器/計(jì)計(jì)數(shù)器器0的的中斷斷服務(wù)務(wù)程序序如下下:TIME0:PUSHACC;將將PSW和和ACC推推入堆堆棧保保護(hù)PUSHPSWINC30H;軟軟件計(jì)計(jì)數(shù)器器加1MOVA,30HCJNEA,#20,T_LP2;軟軟件計(jì)計(jì)數(shù)器器單元元中的的值到到了20了了嗎??到了,,繼續(xù)續(xù)執(zhí)行行;否否則則,轉(zhuǎn)轉(zhuǎn)入T_LP2T_LP1:CPLP1.0;到到了,,P1.0取反反MOV30H,#00H;清清軟軟件計(jì)計(jì)數(shù)器器T_LP2:MOVTH0,#3CH;重重置定定時(shí)器器/計(jì)計(jì)數(shù)器器的初初值MOVTL0,#0B0HPOPPSW;恢恢復(fù)PSW和ACCPOPACCRETI;中中斷斷返回回END[例題題5]設(shè)外部部有一一個(gè)計(jì)計(jì)數(shù)源源。編編制程程序,,對(duì)外外部計(jì)計(jì)數(shù)源源進(jìn)行行計(jì)數(shù)數(shù)并顯顯示。。解:將外部部計(jì)數(shù)數(shù)源連連到定定時(shí)器器/計(jì)計(jì)數(shù)器器1的的外部部引腳腳T1上,,可用用LED將將計(jì)數(shù)數(shù)的值值顯示示出來(lái)來(lái),我我們用用P1口連連接的的8個(gè)個(gè)LED來(lái)來(lái)顯示示計(jì)到到的數(shù)數(shù)據(jù)。。LED對(duì)對(duì)P1口電電平要要求同同例4。(電路路圖類(lèi)類(lèi)同例例3))程序如如下::ORG0000HAJMPSTART;轉(zhuǎn)轉(zhuǎn)入主主程序序ORG0030HSTART:MOVSP,#60H;設(shè)設(shè)置置堆棧棧指針針MOVTMOD,#60H;定定時(shí)器器/計(jì)計(jì)數(shù)器器1作作計(jì)數(shù)數(shù)用SETBTR1;啟啟動(dòng)動(dòng)計(jì)數(shù)數(shù)器1開(kāi)始始運(yùn)行行LOOP:MOVA,TL1;讀讀計(jì)數(shù)數(shù)器1的計(jì)計(jì)數(shù)值值送AMOVP1,A;將將計(jì)計(jì)數(shù)值值輸出出到P1口口,驅(qū)驅(qū)動(dòng)LED顯示示AJMPLOOP;轉(zhuǎn)轉(zhuǎn)回回LOOPEND3.4MCS-51單單片機(jī)機(jī)的串串行通通信3.4.1概概述述1.通通信通信::?jiǎn)纹瑱C(jī)機(jī)與外外界進(jìn)進(jìn)行信信息交交換統(tǒng)統(tǒng)稱(chēng)為為通信信。8051單片機(jī)機(jī)的通通信方方式有有兩種種:并行通通信::數(shù)據(jù)的的各位位同時(shí)時(shí)發(fā)送送或接接收。。特點(diǎn)點(diǎn)是傳傳送速速度快快、效效率高高,但但成本本高。。適用用于短短距離離傳送送數(shù)據(jù)據(jù)。計(jì)計(jì)算機(jī)機(jī)內(nèi)部部的數(shù)數(shù)據(jù)傳傳送一一般均均采用用并行行方式式。串行通通信::數(shù)據(jù)一一位一一位順順序發(fā)發(fā)送或或接收收。特特點(diǎn)是是傳送送速度度慢,,但成成本低低。適適用于于較長(zhǎng)長(zhǎng)距離離傳送送數(shù)據(jù)據(jù)。計(jì)計(jì)算機(jī)機(jī)與外外界的的數(shù)據(jù)據(jù)傳送送一般般均采采用串串行方方式。。2.數(shù)數(shù)據(jù)據(jù)通信信的制制式單工方方式::數(shù)據(jù)僅僅按一一個(gè)固固定方方向傳傳送;;半雙工工方式式:數(shù)據(jù)可可實(shí)現(xiàn)現(xiàn)雙向向傳送送,但但不能能同時(shí)時(shí)進(jìn)行行;全雙工工方式式:允許雙雙方同同時(shí)進(jìn)進(jìn)行數(shù)數(shù)據(jù)雙雙向傳傳送;;多工方方式::在同一一線路路上實(shí)實(shí)現(xiàn)資資源共共享。。3.串串行行通信信的分分類(lèi)串行數(shù)數(shù)據(jù)通通信按按數(shù)據(jù)據(jù)傳送送方式式可分分為異異步通通信和和同步步通信信兩種種形式式:同步方方式::以數(shù)據(jù)據(jù)塊為為單位位進(jìn)行行數(shù)據(jù)據(jù)傳送送,包包括同同步字字符、、數(shù)據(jù)據(jù)塊和和校驗(yàn)驗(yàn)字符符CRC。。優(yōu)點(diǎn)點(diǎn)是數(shù)數(shù)據(jù)傳傳輸速速率較較高,,缺點(diǎn)點(diǎn)是要要求發(fā)發(fā)送時(shí)時(shí)鐘和和接收收時(shí)鐘鐘保持持嚴(yán)格格同步步。數(shù)數(shù)據(jù)格格式如如下圖圖所示示。異步方方式::以字符為為單位位進(jìn)行行數(shù)據(jù)據(jù)傳送送,每每一個(gè)個(gè)字符符均按按固定定的字字符格格式傳傳送,,又被被稱(chēng)為為幀。。優(yōu)點(diǎn)點(diǎn)是不不需要要傳送送同步步脈沖沖,可可靠性性高,,所需需設(shè)備備簡(jiǎn)單單;缺缺點(diǎn)是是字符符幀中中因包包含有有起始始位和和停止止位而而降低低了有有效數(shù)數(shù)據(jù)的的傳輸輸速率率。數(shù)據(jù)格格式如如下圖圖所示示:4.串串行行數(shù)據(jù)據(jù)通信信的波波特率率波特率率是指指每秒秒鐘傳傳送信信號(hào)的的數(shù)量量,單單位為為波特特(Baud))。而而每秒秒鐘傳傳送二二進(jìn)制制數(shù)的的信號(hào)號(hào)數(shù)((即二二進(jìn)制制數(shù)的的位數(shù)數(shù))定定義為為比特特率,,單位位是bps(bitpersecond))或?qū)憣?xiě)成b/s(位位/秒秒)。。在單片片機(jī)串串行通通信中中,傳傳送的的信號(hào)號(hào)是二二進(jìn)制制信號(hào)號(hào),波波特率率與比比特率率數(shù)值值上相相等。。單位位采用用bps。。例如,,異步步串行行通信信的數(shù)數(shù)據(jù)傳傳送的的速率率是120字符符/秒秒,而而每個(gè)個(gè)字符符規(guī)定定包含含10位數(shù)數(shù)字,,則傳傳輸波波特率率為::120字符符/秒秒×10位/字符符=1200位位/秒秒=1200bps3.4.2MCS-51的串串行口口MCS-51單單片機(jī)機(jī)內(nèi)部部有一一個(gè)全全雙工工的串串行通通信口口(P3.0、、P3.1),,既既可作作UART(通通用異異步接接收/發(fā)送送器))用,,也可可作同同步移移位寄寄存器器使用用,還還可用用于網(wǎng)網(wǎng)絡(luò)通通信,,其幀幀格式式可有有8位位、10位位和11位位,并并能設(shè)設(shè)置各各種波波特率率。1.串行行口寄寄存器器結(jié)構(gòu)構(gòu)(1))兩個(gè)個(gè)物理理上獨(dú)獨(dú)立的的同名名的接接收/發(fā)送送緩沖沖寄存存器SBUF指令MOVSBUF,A啟啟動(dòng)一一次數(shù)數(shù)據(jù)發(fā)發(fā)送,指指令MOVA,,SBUF完完成一一次數(shù)數(shù)據(jù)接接收,即即向發(fā)發(fā)送緩緩沖器器SBUF寫(xiě)入入數(shù)據(jù)據(jù)即可可發(fā)送送數(shù)據(jù)據(jù),從從接收收緩沖沖器SBUF讀讀出數(shù)數(shù)據(jù)即即可接接收數(shù)數(shù)據(jù)。。(2))輸入入和輸輸出移移位寄寄存器器和控控制器器等組組成。。(3))2個(gè)個(gè)SFR寄寄存器器SCON和PCON,,用于于串行行口的的初始始化編編程。。(4))接接收收/發(fā)發(fā)送送數(shù)數(shù)據(jù)據(jù),無(wú)無(wú)論論是是否否采采用用中中斷斷方方式式工工作作,每每接接收收/發(fā)發(fā)送送一一個(gè)個(gè)數(shù)數(shù)據(jù)據(jù)都都必必須須用用指指令令對(duì)對(duì)RI/TI清清0,,以以備備下下一一次次收收/發(fā)發(fā)。。SBUF(發(fā))SBUF(收)發(fā)送控制器TI接收控制器RI移位寄存器波特率發(fā)生器T11A累加器(門(mén))移位寄存器RxD(P3.1)TxD(P3.1)去申請(qǐng)中斷引腳引腳CPU內(nèi)部MCS-51串串行行口口的的結(jié)結(jié)構(gòu)構(gòu)如如下下圖圖所所示示::2.串行通信控制制寄存器SCON(98H)SM0SM1

SM2RENTB8RB8

TIR1SM0,SM1:串行口4種工工作方式控制制位。=00:方式0,8位位同步移位寄寄存器,其波波特率為fosc/12;=01:方式1,10位UART,其波特率率為可變,由由定時(shí)器控制制;=10:方式2,11位UART,其波特率率為fosc/64或fosc/32;=11:方式3,11位UART,其波特率率為可變,由由定時(shí)器控制制。其中:fosc為系統(tǒng)晶振頻頻率。RI,TI::串行口收/發(fā)發(fā)數(shù)據(jù)申請(qǐng)中中斷標(biāo)志位=1申請(qǐng)中中斷;=0不申請(qǐng)請(qǐng)中斷。RB8:在方式2、3中,用于存存放收到的第第9位數(shù)據(jù);;在雙機(jī)通信信中,作為奇奇偶校驗(yàn);在在多機(jī)通信中中,用作區(qū)別別地址幀/數(shù)數(shù)據(jù)幀的標(biāo)志志。TB8:方式2、3中中,是要發(fā)送送的第9位數(shù)數(shù)據(jù);在雙機(jī)機(jī)通信中,用用于對(duì)接收到到的數(shù)據(jù)進(jìn)行行奇偶校驗(yàn);;在多機(jī)通信信中,用作判判斷地址幀/數(shù)據(jù)幀,TB8=0表表示發(fā)送的的是數(shù)據(jù),TB8=1表表示發(fā)送的的是地址。REN:串行口接收允允許控制位=1:表示允許接收收;=0:禁止接收。SM2:串行口多機(jī)通通信控制位,,作為方式2、方式3的的附加控制位位。3.中斷允允許寄存器IE(0A8H)中斷允許寄存存器IE在3.2.2節(jié)節(jié)中已介紹。。其中對(duì)串行行口有影響的的位ES。ES為串行中中斷允許控制制位。ES=1:允許串行中斷斷;ES=0:禁止串行中斷斷。4.電源管管理寄存器PCON(87H)不可位尋址。。PCON主要用于實(shí)實(shí)現(xiàn)電源控制制而設(shè)置的專(zhuān)專(zhuān)用寄存器,,已在1.3.3節(jié)中介介紹過(guò)。其格格式如下圖所所示。SMOD

GF1GF0

PD1DLSMOD:串行口波特率率倍增位=1:串行口波特率率加倍。=0:串行口波特率率不變,系統(tǒng)統(tǒng)復(fù)位時(shí)默認(rèn)認(rèn)為SMOD=0。3.4.3串串行口的的工作方式1.工作方方式0(8位移位寄存存器I/O方方式)發(fā)送/接收過(guò)過(guò)程:SBUF中的的串行數(shù)據(jù)由由RxD逐位位移出/移入入(低位在先先,高位在后后);TxD輸出移位時(shí)時(shí)鐘,頻率=fosc1/12;每每送出/接收收8位數(shù)據(jù)TI/RI自動(dòng)置1;需要用軟軟件清零TI/RI。注意:串行口在方式式0下的工作作并非是一種種同步通信方方式,經(jīng)常配合“串串入并出”““并入串出””移位寄存器器一起使用,,以達(dá)到擴(kuò)展一一個(gè)并行口的的目的。擴(kuò)擴(kuò)展電路如下下圖所示。如要發(fā)送數(shù)據(jù)據(jù),查詢(xún)方式式的程序如下下:MOVSCON,#00H;;串行口方式式0MOVSBUF,A;;將將數(shù)據(jù)送出JNBTI,$;;等待數(shù)據(jù)據(jù)發(fā)送完畢CLRTI;;為下次次發(fā)送作準(zhǔn)備備注意:復(fù)位時(shí),SCON已經(jīng)經(jīng)被清零,缺缺省值為方式式0。發(fā)送條件:TI=0。接收條件:TI=0,置置位REN=1(允允許接收數(shù)據(jù)據(jù))。2.方式1(波特率可變的的10位異步通信方方式)發(fā)送/接收數(shù)數(shù)據(jù)的格式::一幀信息包括括1個(gè)起始位位0,8個(gè)數(shù)數(shù)據(jù)位和1個(gè)個(gè)停止位1。。發(fā)送/接收過(guò)過(guò)程:SBUF中的的串行數(shù)據(jù)由由RXD逐位位移出/移入入;TXD輸輸出移位時(shí)鐘鐘,頻率=((2SMOD/32)T1的溢出出率,波特率可變。。每送出/接接收8位數(shù)據(jù)據(jù)TI/RI自動(dòng)置置1;需要用用軟件清零TI/RI。工作作時(shí),發(fā)送端端自動(dòng)添加一一個(gè)起始位和和一個(gè)停止位位;接收端自自動(dòng)去掉一個(gè)個(gè)起始位和一一個(gè)停止位。。發(fā)送/接收條條件:同方式0。3.方式2(固定波特率的的11位異步接收/發(fā)送方式)發(fā)送/接收過(guò)過(guò)程:方式2的接收收/發(fā)送過(guò)程程類(lèi)似于方式式1,所不同同的是它比方方式1增加了了一位“第9位”數(shù)據(jù)(TB8/RB8),用用于“奇偶校校驗(yàn)”。方式式2常用于單單片機(jī)間通信信。波特率=fosc2SMOD/64。發(fā)送/接收條條件:同方式0。3.方式3(可變波特率的的11位異步接收/發(fā)送方式)方式3和方式2唯一一的區(qū)別是波波特率機(jī)制不不同,方式3的波特特率=(2SMOD/32)T1的溢出出率。奇偶校驗(yàn):奇偶校驗(yàn)是檢檢驗(yàn)串行通信信雙方傳輸?shù)牡臄?shù)據(jù)正確與與否的一個(gè)措措施,并不能能保證通信數(shù)數(shù)據(jù)的傳輸一一定正確。即即如果奇偶校驗(yàn)發(fā)生生錯(cuò)誤,表明明數(shù)據(jù)傳輸一一定出錯(cuò)了;;如果奇偶校校驗(yàn)沒(méi)有出錯(cuò)錯(cuò),絕不等于于數(shù)據(jù)傳輸完完全正確。奇校驗(yàn)規(guī)定::8位有效數(shù)據(jù)據(jù)連同1位附附加位中,二二進(jìn)制“1””的個(gè)數(shù)為奇奇數(shù)。偶校驗(yàn)規(guī)定::8位有效數(shù)據(jù)據(jù)連同1位附附加位中,二二進(jìn)制“1””的個(gè)數(shù)為偶偶數(shù)。約定發(fā)送采用用奇校驗(yàn):若發(fā)送的8位位有效數(shù)據(jù)中中“1”的個(gè)個(gè)數(shù)為偶數(shù),,則要人為在在附加位中添添加一個(gè)“1”一起發(fā)送送;若發(fā)送的的8位有效數(shù)數(shù)據(jù)中“1””的個(gè)數(shù)為奇奇數(shù),則要人人為在附加位位中添加一個(gè)個(gè)“0”一起起發(fā)送。約定接收采用用奇校驗(yàn):若接收到的9位數(shù)據(jù)中““1”的個(gè)數(shù)數(shù)為奇數(shù),則則表明接收正正確,取出8位有效數(shù)據(jù)據(jù)即可;若接接收到的9位位數(shù)據(jù)中“1”的個(gè)數(shù)為為偶數(shù),則表表明接收出錯(cuò)錯(cuò)!應(yīng)當(dāng)進(jìn)行行出錯(cuò)處理。。采用偶校驗(yàn)時(shí),處處理方法與奇奇校驗(yàn)類(lèi)似。。3.4.4串串行口的的通信波特率率串行口的通信信波特率恰到到好處地反映映了串行傳輸輸數(shù)據(jù)的速率率。在MCS-51串行行口的四種工工作方式中,,方式0和2的波特率是是固定的,而而方式1和3的波特率是是可變的,由由定時(shí)器T1的溢出率((T1溢出信信號(hào)的頻率))控制。各種種方式的通信信波特率如下下:方式0:波特率固定為為fosc/12。其中:fosc———系統(tǒng)主機(jī)晶晶振頻率方式2:波特率由PCON中的選選擇位SMOD來(lái)決定,,可由下式表表示:波特率=(2SMOD/64)×fosc方式1和方式

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論