![MCS單片機的內(nèi)部資源管理_第1頁](http://file4.renrendoc.com/view/89e2b54262253ed1d9adfc10fc8a750e/89e2b54262253ed1d9adfc10fc8a750e1.gif)
![MCS單片機的內(nèi)部資源管理_第2頁](http://file4.renrendoc.com/view/89e2b54262253ed1d9adfc10fc8a750e/89e2b54262253ed1d9adfc10fc8a750e2.gif)
![MCS單片機的內(nèi)部資源管理_第3頁](http://file4.renrendoc.com/view/89e2b54262253ed1d9adfc10fc8a750e/89e2b54262253ed1d9adfc10fc8a750e3.gif)
![MCS單片機的內(nèi)部資源管理_第4頁](http://file4.renrendoc.com/view/89e2b54262253ed1d9adfc10fc8a750e/89e2b54262253ed1d9adfc10fc8a750e4.gif)
![MCS單片機的內(nèi)部資源管理_第5頁](http://file4.renrendoc.com/view/89e2b54262253ed1d9adfc10fc8a750e/89e2b54262253ed1d9adfc10fc8a750e5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第3章MCS-51單片機的內(nèi)部資源及應用主要內(nèi)容:
MCS-51單片機內(nèi)部各器件的具體結(jié)構、組成原理、工作方式的設置及典型應用,為讀者后續(xù)學習單片機應用系統(tǒng)設計、充分利用單片機內(nèi)部資源解決工程實際問題奠定基礎。重點在于各器件工作方式的設置及靈活應用,難點在于中斷系統(tǒng)和定時器/計數(shù)器的應用。
3.1.1MCS-51內(nèi)部并行I/O口
8051有4個8位并行I/O口,分別命名為P0,P1,P2和P3口。1.P0口
P0口為雙向三態(tài)輸入/輸出口,P0口既可作為地址/數(shù)據(jù)總線口,又可作為通用I/O口,可驅(qū)動8個TTL輸入。在訪問3.1MCS-51單片機的并行I/O口
外部存儲器時,P0口作地址/數(shù)據(jù)總線復用口,是一個真正的雙向口,并分時送出地址的低8位和送出(或接收)相應存儲單元的數(shù)據(jù)。作通用I/O口時,P0口只是一個準雙向口,需要在外部引腳處外接上拉電阻。P0口的位結(jié)構如右圖所示。2.P2口
P2口常用做外部存儲器的高8位地址口。當不用做地址口時,P2口也可作為通用I/O口,這時它也是一個準雙向I/O口。不必外接上拉電阻就可以驅(qū)動任何MOS驅(qū)動電路,且只能驅(qū)動4個TTL輸入。P2口的位結(jié)構如右圖所示。3.P1口
P1口常用做通用I/O口,它也是一個標準的準雙向I/O口,不必外接上拉電阻就可以驅(qū)動任何MOS驅(qū)動電路,且只能驅(qū)動4個TTL輸入。P1口的位結(jié)構如右圖所示。4.P3口
P3口是一個雙功能口,第一功能與P1口一樣可用做通用I/O口,也是一個準雙向I/O口,能驅(qū)動4個TTL輸入。另外還具有第二功能。P3口工作在第二功能時各管腳定義如下表所示。P3口的位結(jié)構圖如右圖所示。3.1.2MCS-51內(nèi)部并行I/O口的應用
MCS-51I/O端口的操作方式:(1)輸出數(shù)據(jù)方式:CPU通過一條數(shù)據(jù)傳送指令就可以把輸出數(shù)據(jù)寫入P0~P3的端口鎖存器,然后通過輸出驅(qū)動器送到端口引腳線。例如,下面的指令均可在P0口輸出數(shù)據(jù)。
MOVP0,AANLP0,#dataORLP0,A(2)讀端口數(shù)據(jù)方式:
CPU讀入的這個數(shù)據(jù)并非端口引腳線上的數(shù)據(jù)。讀端口數(shù)據(jù)可以直接讀端口。例如,下面的指令均可以從P1口輸入數(shù)據(jù)。
MOVA,P1MOV20H,P1MOVR0,P1MOV@R0,P1(3)讀端口引腳方式:讀端口引腳方式可以從端口引腳上讀入信息。在這種方式下,CPU首先必須使欲讀端口引腳所對應的鎖存器置1,然后才能讀端口引腳。因此,用戶在讀引腳時必須先置位鎖存器后讀,連續(xù)使用兩條指令。例如,下面的程序可以讀P1引腳上的低4位信號。
MOVP1,#0FH;置位P1引腳的低4位鎖存器MOVA,P1;讀P1引腳上的低4位信號送累加器A
在I/O口直接用做輸入/輸出時,CPU既可以把它們看做數(shù)據(jù)口,也可以看做狀態(tài)口,這是由用戶決定的。
[例題1]要求將兩個BCD撥碼開關的數(shù)字和,在LED數(shù)碼管上顯示出來。(用CD4511驅(qū)動LED)
解:CD4511是BCD鎖存—段碼譯碼—共陰LED驅(qū)動集成電路,其引腳如右圖所示,各引腳功能如下:VCC:接正電源;Vss:接地;A,B,C,D:BCD碼輸入腳(A為最低位,D為最高位);
Qa~Qg:段碼輸出腳,高電平有效,最大可輸出25mA電流;
BI:熄滅,接低電平則Qa~Qg全部輸出低電平;LT:點亮測試,接低電平則Qa~Qg全部輸出高電平;LE:鎖存允許,接高電平鎖存,則輸出不會隨BCD碼輸入改變。1.I/O口直接用于輸入/輸出
硬件電路設計:BCD撥碼開關為4位,兩個BCD撥碼開關分別接至P3口的高四位和低四位(注意:應連接上拉電阻),由P1口的高四位和低四位通過兩片CD4511分別擴展兩位LED。硬件電路如下圖所示。軟件設計思想:讀P3口引腳,得到輸入數(shù)據(jù),將數(shù)據(jù)分成2個4位BCD碼,求BCD碼和,輸出到P1口,通過CD4511驅(qū)動LED顯示。程序如下:
ORG0100H MOVP3,#0FFH ;讀引腳先對其寫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口擴展外部鎖存器
為了提高數(shù)據(jù)傳輸速率,MCS-51單片機常常需要使I/O口通過外部鎖存器和輸入設備相連。如下圖所示為8051通過74LS373與輸入設備連接的接口圖。通過中斷方式讀取數(shù)據(jù),8051響應該中斷請求后在中斷服務程序中通過下面的指令讀取輸入數(shù)據(jù):
MOVDPTR,#7FFFH;DPTR指向74LS373端口,地址為7FFFH)MOVXA,@DPTR;讀入數(shù)據(jù)到A中
3.2MCS-51單片機的中斷斷系統(tǒng)計算機與外界界的聯(lián)系是通通過外部設備備(也稱為外外設、輸入/輸出設備或或I/O設備備)與外界聯(lián)聯(lián)系的。計算算機與外設之之間不是直接接相連的,而而是通過不同同的接口電路路來達到彼此此間的信息傳傳送的目的。。計算機與外設設之間交換信信息的方式::(1)無條件件傳送方式::外設對計算機機來說總是準準備好的。(2)查詢傳傳送方式:傳送前計算機機先查詢外設設的狀態(tài),若若已經(jīng)準備好好就傳送,否否則就繼續(xù)查查詢/等待。。(3)中斷傳傳送方式:外設通過申請請中斷的方式式與計算機進進行數(shù)據(jù)傳送送。(4)直接存存儲器存取方方式(DMA):傳送數(shù)據(jù)的雙雙方直接通過過總線傳送數(shù)數(shù)據(jù),不經(jīng)經(jīng)CPU中轉(zhuǎn)轉(zhuǎn)。3.2.1中中斷的基基本概念1.中斷的定定義所謂“中斷””,是指CPU執(zhí)行正常常程序時,系系統(tǒng)中出現(xiàn)特特殊請求,CPU暫時中中止當前的程程序,轉(zhuǎn)去處處理更緊急的的事件(執(zhí)行行中斷服務程程序),處理理完畢(中斷斷服務完成))后,CPU自動返回原原程序的過程程。作用:采用中斷技術術可以提高CPU效率、、解決速度矛矛盾、實現(xiàn)并并行工作、分分時操作、實實時處理、故故障處理、應應付突發(fā)事件件,可使多項項任務共享一一個資源(CPU)。中斷與子程序序的最主要區(qū)區(qū)別:子程序是預先先安排好的,,中斷是隨機機發(fā)生的。中斷涉及的幾幾個環(huán)節(jié):中斷源、中中斷申請、開開放中斷、保保護現(xiàn)場、中中斷服務、恢恢復現(xiàn)場、中中斷返回。2.中斷源源中斷源是指引引起中斷的設設備或事件,,或發(fā)出中斷斷請求的源頭頭。3.中斷的的分類中斷按功能通通??煞譃榭煽善帘沃袛?、、非屏蔽中斷斷和軟件中斷斷三類??善帘沃袛嗍鞘侵窩PU可可以通過指令令來允許或屏屏蔽中斷的請請求。非屏蔽中斷是是指CPU對對中斷請求是是不可屏蔽的的,一旦出現(xiàn)現(xiàn),CPU必必須響應。軟件中斷則是是指通過相應應的中斷指令令使CPU響響應中斷。4.中斷優(yōu)優(yōu)先權與中斷斷嵌套中斷優(yōu)先級((也稱為中斷斷優(yōu)先權)::給每個中斷源源指定中斷響響應的優(yōu)先級級別,CPU按中斷源源的優(yōu)先級高高低順序響應應各中斷源發(fā)發(fā)出的中斷請請求。中斷嵌套:在某一瞬間,,CPU因響響應某一中斷斷源的中斷請請求而正在執(zhí)執(zhí)行它的中斷斷服務程序時時,若又有一一級別高的中中斷源向CPU發(fā)出中斷斷請求,且CPU的中斷斷是開放的,,CPU可以以把正在執(zhí)行行的中斷服務務程序暫停下下來,轉(zhuǎn)而響響應和處理優(yōu)優(yōu)先權更高的的中斷源的中中斷請求,等等處理完后再再轉(zhuǎn)回來,繼繼續(xù)執(zhí)行原來來的中斷服務務程序,這就就是中斷嵌套套。中斷嵌套的過過程和子程序序嵌套過程類類似,子程序序的返回指令令是RET,,而中斷服務務程序的返回回指令是RETI。5.中斷響響應及處理過過程①保護斷點點②尋找中斷斷源③中斷處理理④中斷返回回保護斷點和尋尋找中斷源都都是由硬件自動完成的,用戶戶不用考慮。6.中斷系系統(tǒng)的功能中斷系統(tǒng):能夠?qū)崿F(xiàn)中斷斷功能的硬件件電路和軟件件程序。中斷系統(tǒng)的功功能:能夠?qū)崿F(xiàn)中斷斷優(yōu)先權排隊隊、中斷嵌套套、自動響應應中斷和中斷斷返回等功能能。MCS-51單片機的大大部分中斷電電路都是集成成在芯片內(nèi)部部的,只有外外部中斷請求求信號產(chǎn)生電電路才分散在在各中斷源電電路和接口電電路中。3.2.2MCS-51的中斷斷系統(tǒng)MCS-51提供了5個個中斷源,2個中斷優(yōu)先先級控制,可可實現(xiàn)2個中中斷服務嵌套套??赏ㄟ^程程序設置中斷斷的允許或屏屏蔽,設置中中斷的優(yōu)先級級。1.MCS-51的中斷斷源8051允許許5個中斷源源:(1)外部中中斷源(中斷斷標志為IE0和IE1)由((P3.2))端口線引引入,低電平平或下降沿引引起。由((P3.3))端口線引引入,低電平平或下降沿引引起。(2)內(nèi)部中中斷源(中斷標志為為TF0、TF1和TI/RI)T0:定時/計數(shù)器0中中斷,由T0回零溢出引引起。T1:定時/計數(shù)器1中中斷,由T1回零溢出引引起。TI/RI::串行I/O中斷,完成成一幀字符發(fā)發(fā)送/接收引引起。8051的中中斷結(jié)構如下下圖所示。CPU識別中中斷申請的依依據(jù):CPU在每個個機器周期的的S5P2期期間,會自動動查詢各個中中斷申請標志志位,若查到到某標志位被被置位,將啟啟動中斷機制制。2.中斷控制制MCS-51單片機設置置了4個專用用寄存器用于于中斷控制,,用戶通過設設置其狀態(tài)來來管理中斷系系統(tǒng)。(1)定時器器控制寄存器器TCON((88H))TF1TR1TF0TR0IE1IT1IE0IT0TF0/TF1:定時器溢出中中斷申請標志志位(由硬件自動置位)。=0:定時器未溢出出;=1:定時器溢出(由全“1”變成全“0”)時由硬件自動動置位,申請請中斷,中斷被CPU響應后由硬硬件自動清零。TR0/TR1:定時器運行啟啟停控制位(可由用戶通通過軟件設置置)。=0:定時器停止運運行;=1:定時器啟動運運行。IE0/IE1:外部中斷申請請標志位(由硬件自動動置位,中中斷響應后轉(zhuǎn)轉(zhuǎn)向中斷服務務程序時,由由硬件自動清0)。=0:沒有外部中斷斷申請;=1:有外部中斷申申請。IT0/IT1:外部中斷請求求的觸發(fā)方式式控制位(可由用戶通通過軟件設置置)。=0:在INT0/INT1端端申請中斷的的信號低電平平有效;=1:在INT0/INT1端端申請中斷的的信號負跳變變有效。(2)串行口口控制寄存器器SCON((98H))TI/RI::串行口發(fā)送/接收中斷申請標志志位(由硬件自動置位,必須由由用戶在中斷斷服務程序中中用軟件清0)。=0:沒有串行口發(fā)送/接收中斷申請;=1:有串行口發(fā)送/接收中斷申請。SCON的高高6位用于串串行口工作方方式設置和串串行口發(fā)送/接收控制。。(3)中斷允許控控制寄存器IE(0A8H))SM0SM1SM2RENTB8RB8TIRI
EA
ESET1EX1ET0EX0(3))中中斷斷允允許許控控制制寄寄存存器器IE((0A8H))EAESET1EX1ET0EX0EX0/EX1/ET1/ET0/ES位位::分別別是是/,,T0/T1,,串串行行口口的的中中斷斷允允許許控控制制位位。。=0::禁止止中中斷斷;;=1::允許許中中斷斷。。EA::總的的中中斷斷允允許許控控制制位位((總總開開關關))::=0::禁止止全全部部中中斷斷;;=1::允許許中中斷斷。。(4))中中斷斷優(yōu)優(yōu)先先級級控控制制寄寄存存器器IP((0B8H))8051有有兩兩個個中中斷斷優(yōu)優(yōu)先先級級,,即即高高優(yōu)優(yōu)先先級級和和低低優(yōu)優(yōu)先先級級,,每每個個中中斷斷源源都都可可設設置置為為高高或或低低中中斷斷優(yōu)優(yōu)先先級級,,以以便便CPU對對所所有有的的中中斷斷實實現(xiàn)現(xiàn)兩兩級級中中斷斷嵌嵌套套。。8051內(nèi)內(nèi)部部中中斷斷系系統(tǒng)統(tǒng)對對各各中中斷斷源源的的中中斷斷優(yōu)優(yōu)先先級級有有一一個個統(tǒng)統(tǒng)一一的的規(guī)規(guī)定定,,稱稱為為自自然然優(yōu)優(yōu)先先級級((也也稱稱為為系系統(tǒng)統(tǒng)缺缺省省優(yōu)優(yōu)先先級級))。。如如下下表表所所示示。。8051單單片片機機的的中中斷斷優(yōu)優(yōu)先先級級采采用用了了自自然然優(yōu)優(yōu)先先級級和和人人工工設設置置高高、、低低優(yōu)優(yōu)先先級級的的策策略略,,中中斷斷處處于于同同一一級級別別時時,,就就由由自自然然優(yōu)優(yōu)先先級級確確定定。。開開機機時時,,每每個個中中斷斷都都處處于于低低優(yōu)優(yōu)先先級級,,中中斷斷優(yōu)優(yōu)先先級級可可以以通通過過程程序序來來設設定定,,由由中中斷斷優(yōu)優(yōu)先先級級寄寄存存器器IP來來統(tǒng)統(tǒng)一一管管理理。。(4))中中斷斷優(yōu)優(yōu)先先級級控控制制寄寄存存器器IP((0B8H))PSPT1PX1PT0PX0PX0/PX1::/優(yōu)先先級級控控制制位位::=0::屬低低優(yōu)優(yōu)先先級級;;=1::屬高高優(yōu)優(yōu)先先級級。。PT0/PT1::T0/T1中中斷斷優(yōu)優(yōu)先先級級控控制制位位::=0::屬低低優(yōu)優(yōu)先先級級;;=1::屬高高優(yōu)優(yōu)先先級級。。PS1::串行行口口中中斷斷優(yōu)優(yōu)先先級級控控制制位位::=0::屬低低優(yōu)優(yōu)先先級級;;=1::屬高高優(yōu)優(yōu)先先級級。。中斷斷優(yōu)優(yōu)先先級級處處理理原原則則::對同時時發(fā)發(fā)生生多多個個中中斷斷申申請請時時::不同同優(yōu)優(yōu)先先級級的的中中斷斷同同時時申申請請::先先高高后后低低相同同優(yōu)優(yōu)先先級級的的中中斷斷同同時時申申請請::按按序序執(zhí)執(zhí)行行正處處理理低低優(yōu)優(yōu)先先級級中中斷斷又又接接到到高高級級別別中中斷斷::高高打打斷斷低低正處處理理高高優(yōu)優(yōu)先先級級中中斷斷又又接接到到低低級級別別中中斷斷::高高不不理理低低3.中中斷斷響響應應(1)中中斷斷響響應應的的條條件件MCS-51單單片片機機工工作作時時,,在在每每個個機機器器周周期期中中都都會會去去查查詢詢各各個個中中斷斷標標志志,,如如果果有有中中斷斷請請求求。。必必須須滿滿足足下下列列條條件件單單片片機機才才能能響響應應中中斷斷。。①相相應應的的中中斷斷是是開開放放的的;;②沒沒有有同同級級的的中中斷斷或或更更高高級級別別的的中中斷斷正正在在處處理理;;③正正在在執(zhí)執(zhí)行行的的指指令令必必須須執(zhí)執(zhí)行行完完最最后后1個個機機器器周周期期;;④若若正正在在執(zhí)執(zhí)行行RETI,,或或正正在在訪訪問問IE或或IP寄寄存存器器,則則必必須須執(zhí)執(zhí)行行完完當當前前指指令令的的下下一一條條指指令令。。后后方方能響響應應中中斷斷。。(2)中中斷斷響響應應的的過過程程中斷斷過過程程包包括括中中斷斷請請求求、、中中斷斷響響應應、、中中斷斷服服務務、、中中斷斷返返回回四四個個階階段段。。中斷斷請請求求::中斷斷源源將將相相應應請請求求中中斷斷的的標標志志位位置置““1””,,表表示示發(fā)發(fā)出出請請求求,,并并由由CPU查查詢詢。。中斷斷響響應應::在中中斷斷允允許許條條件件下下相相應應中中斷斷。。斷斷點點入入棧?!烦烦兄袛鄶鄻藰酥局尽P關閉閉低低同同級級中中斷斷允允許許→→中中斷斷入入口口地地址址送送PC。。這這些些工工作作都都是是由由硬硬件件自自動動完完成成的的。。中斷斷服服務務::根據(jù)據(jù)入入口口地地址址轉(zhuǎn)轉(zhuǎn)中中斷斷服服務務程程序序,,包包含含保保護護現(xiàn)現(xiàn)場場、、執(zhí)執(zhí)行行中中斷斷主主體體、、恢恢復復現(xiàn)現(xiàn)場場。。中斷斷返返回回::執(zhí)行行中中斷斷返返回回RETI指指令令→→斷斷點點出出棧?!_開放放中中斷斷允允許許→→返返回回原原程程序序。。中斷斷服服務務程程序序入入口口地地址址::中斷斷響響應應的的主主要要內(nèi)內(nèi)容容就就是是由由硬硬件件自自動動生生成成一一條條長長調(diào)調(diào)用用指指令令((LCALLaddr16)),,CPU執(zhí)執(zhí)行行這這條條長長調(diào)調(diào)用用指指令令便便響響應應中中斷斷,,轉(zhuǎn)轉(zhuǎn)入入相相應應的的中中斷斷服服務務程程序序。。這這里里的的addr16就就是是程程序序存存儲儲器器中中相相應應的的中中斷斷服服務務程程序序的的入入口口地地址址,,MCS-51的的5個個中中斷斷源源的的中中斷斷服服務務程程序序入入口口地地址址是是固固定定的的,,如如下下表表所所示示。。8051的的5個個中中斷斷源源的的中中斷斷服服務務入入口口地地址址之之間間相相差差8個個單單元元。。這這8個個存存儲儲單單元元用用來來存存儲儲中中斷斷服服務務程程序序一一般般來來說說是是不不夠夠的的。。用用戶戶常常在在中中斷斷服服務務程程序序地地址址入入口口處處放放一一條條三三字字節(jié)節(jié)的的長長轉(zhuǎn)轉(zhuǎn)移移指指令令。。一一般般地地,,主主程程序序從從0030H單單元元以以后后開開始始存存放放。。例例如如::ORG0000HLJMPSTART;轉(zhuǎn)轉(zhuǎn)入主主程序,,START為為主程序序地址標標號ORG0003HLJMPINT0;轉(zhuǎn)轉(zhuǎn)外中斷斷中斷服服務程序序ORG000BHLJMPT0;轉(zhuǎn)轉(zhuǎn)定時時器T0中斷服服務程序序ORG0030HSTART:…………;主主程序開開始(3)中斷響響應時間間正常中斷斷響應時時間至少少為3~~8個機機器周期期,如果果有同級級或高級級中斷服服務,將將延長中中斷響應應時間。。4.中斷請請求的撤撤除為了避免免中斷請請求標志志沒有及及時撤除除而造成成的重復復響應同同一中斷斷請求的的錯誤,,CPU在相相應中斷斷時必須須及時將將其中斷斷請求標標志位撤撤除。8051的5個個中斷源源的中斷斷請求撤撤除的方方法是不不同的。。(1)定定時器溢溢出中斷斷請求的的撤除定時器溢溢出中斷斷得到響響應后,,其中斷斷請求的的標志位位TF0和TF1由硬硬件自動復位。(2)串串行口中中斷請求求的撤除除串行口中中斷得到到響應后后,其中中斷請求求的標志志位TI和RI不能由由硬件自自動復位位,必須須由用戶戶在中斷斷服務程程序的適適當位置置通過如如下指令令將它們們撤除。。CLRTI;撤除除發(fā)送中中斷請求求標志CLRRI;撤除除接收中中斷請求求標志或采用字字節(jié)型指指令:ANLSCON,#0FCH(3)外部中中斷請求求的撤除除外部中斷斷請求的的兩種觸觸發(fā)方式式(電平平觸發(fā)和和負邊沿沿觸發(fā)))的中斷斷請求撤撤除的方方法是不不同的。。負邊沿觸觸發(fā)方式式:CPU在在前一機機器周期期采到/引引腳為高高,后一一機器周周期采到到為低才才認為是是一次中中斷請求求,即依依靠CPU兩次次檢測((或))上的的負邊沿沿觸發(fā)電電平狀態(tài)態(tài)而置位位外部中中斷標志志位IE0或IE1。。CPU可可記憶申申請、可可由硬件件自動撤除中斷斷申請。。電平觸發(fā)發(fā)方式::/引腳上的的低電平平須持續(xù)續(xù)到中斷斷發(fā)生。。若中斷斷返回前前仍未及及時撤除除低電平平,雖然然CPU在響應應中斷時時能由硬硬件自動動復位IE0或或IE1,但引引腳上的的低電平平仍會使使已經(jīng)復復位的IE0或或IE1再次置置位,產(chǎn)產(chǎn)生重復復中斷的的錯誤。。電平觸發(fā)發(fā)型外部部中斷請請求的撤撤除必須須由外部部硬件使使(或))上的低低電平隨隨著其中中斷被響響應而變變?yōu)楦唠婋娖?。其其中斷請請求撤除除的電路路如下圖圖所示。。外來的低低電平→→反相→→CP端端產(chǎn)生上上跳沿→→D端端的“0”輸出出到Q端端→申請請中斷,,中斷服務務返回前前對P1.0送送“0””→令令Q端變變?yōu)椤?”指令如下下:ANLP1,,#0FEH((或CLRP1.0));令Q端端置“1”O(jiān)RLP1,#01H((SETBP1.0);令SD端置““1”,以免下下次中斷斷來時Q端不能能變“0”3.2.3MCS-51中斷系系統(tǒng)的編編程(1)中中斷初始始化設置置:開相應中中斷允許許(IE))、根據(jù)據(jù)需要選選擇優(yōu)先先級(IP))和選選擇外中中斷觸發(fā)發(fā)方式((TCON),,設置計計數(shù)器、、串行口口的有關關參數(shù)。。(2)中中斷服務務程序的的編寫::中斷入口口、保護護現(xiàn)場、、關中斷斷、中斷斷服務主主體程序序、恢復復現(xiàn)場、、開中斷斷、設置置計數(shù)器器、串行行口的有有關參數(shù)數(shù)、中斷斷返回指指令RETI。。[例題2]設8051外部部中斷源源接引腳腳,,中斷斷觸發(fā)方方式為電電平觸發(fā)發(fā),試編編制8051中中斷系統(tǒng)統(tǒng)的初始始化程序序。解:采用用位操作作指令實實現(xiàn)(也也可以采采用傳送送指令和和邏輯指指令)。。SETBEA;開開總中中斷SETBEX0;開中中斷SETBPX0;設設置為高高優(yōu)先級級CLRIT0;設設置置為電電平觸觸發(fā)方方式[例題3]通過外部中中斷控控制八八盞燈燈循環(huán)環(huán)點亮亮。解:通過P1口口擴展展八盞盞燈,,在引引腳腳接一一個按按鈕開開關到到地,,每按按一下下按鈕鈕就申申請一一次中中斷,,點亮亮一盞盞燈,,中斷斷服務務則是是:依依次點點亮八八盞燈燈中的的一盞盞。采采用邊邊沿觸觸發(fā)。。硬件件電路路如下下圖所所示。。程序如如下::ORG0000HLJMPMAINORG0013H;中中斷斷服務務程序序入口口地址址LJMPIN11MAIN::SETBEA;開開總總中斷斷允許許“開開關””SETBEX1;開開分分中斷斷允許許“開開關””CLRPX1;低低優(yōu)優(yōu)先級級(也也可不不要此此句))SETBIT1;邊邊沿觸觸發(fā)MOVA,#01H;給給累加加器A賦初初值SJMP$;原原地地等待待中斷斷申請請IN11::RLA;左環(huán)移移一次次MOVP1,A;輸輸出到到P1口RETI;中中斷返返回END3.2.4MCS-51擴展外外部中中斷請請求輸輸入口口8051單單片機機只提提供了了兩個個外部部中斷斷請求求輸入入端,,如果果需要要使用用多于于兩個個的中中斷源源,就就必須須擴展展外部部中斷斷請求求輸入入口。1.定定時器器/計計數(shù)器器用于于擴展展外部部中斷斷請求求輸入入口8051單單片機機有兩兩個定定時器器/計計數(shù)器器,它它們作作為計計數(shù)器器使用用時,,計數(shù)數(shù)輸入入端T0((或T1))發(fā)生生負跳跳變將將使計計數(shù)器器加1,利利用此此特性性,適適當設設置計計數(shù)初初值,,就可可以把把計數(shù)數(shù)輸入入端T0((或T1))作為為外部部中斷斷請求求輸入入口。。其特特點是是以占占用內(nèi)內(nèi)部定定時中中斷為為代價價的。。中斷斷服務務程序序的入入口地地址仍然為為000BH或或001BH。。2.查查詢方方式擴擴展外外部中中斷請請求輸輸入口口把多個個中斷斷源通通過硬硬件((如與與非門門)引引入外外部中中斷輸輸入端端,同同時又又連到到某個個I/O口口。當當有中中斷源源申請請中斷斷時,,在中中斷服服務程程序中中通過過軟件件查詢詢可確確定哪哪一個個是正正在申申請的的中斷斷源,,其查查詢的的次序序可由由中斷斷優(yōu)先先級決決定。。其特特點是是中斷斷響應應速度度較慢慢。適適用用于外外部中中斷源源較多多的場場合。。3.使用專專用芯片擴擴展外部中中斷請求輸輸入口當外部中斷斷源較多,,同時又要要求中斷響響應速度很很高時,查查詢方式擴擴展外部中中斷請求輸輸入口的方方法很難滿滿足要求。。這時可以以使用專用用接口芯片片進行外部部中斷請求求輸入口的的擴展。74LS148優(yōu)先先級編碼器器和可編程程中斷控制制器8259均可以以實現(xiàn)該任任務。3.3MCS-51單片機的定定時器/計數(shù)器3.3.1定時器/計數(shù)器1.基本概概念(1)計數(shù):計數(shù)是指對對外部事件件的個數(shù)進進行計量。。其實質(zhì)就就是對外部部輸入脈沖沖的個數(shù)進進行計量。。實現(xiàn)計數(shù)數(shù)功能的器器件稱為計計數(shù)器。(2)定時:8051單單片機中的的定時器和和計數(shù)器是是一個部件件,只不過過計數(shù)器記記錄的是外外界發(fā)生的的事件,而而定時器則則是由單片片機內(nèi)部提提供一個非非常穩(wěn)定的的計數(shù)源進進行定時的的。這個計計數(shù)源是由由單片機的的晶振經(jīng)過過12分頻頻后獲得的的一個脈沖沖源。所以以定時器計計數(shù)脈沖的的時間間隔隔與晶振有有關。(3)定時的種種類軟件定時::利用執(zhí)行一一個循環(huán)程程序進行時時間延遲。。其特點是是定時時間間精確,不不需外加硬硬件電路,,但占用CPU時間間。因此軟軟件定時的的時間不宜宜過長。硬件定時::利用硬件電電路實現(xiàn)定定時。其特特點是不占占用CPU時間,通通過改變電電路元器件件參數(shù)來調(diào)調(diào)節(jié)定時,,但使用不不夠靈活方方便。對于于時間較長長的定時,,常用硬件件電路來實實現(xiàn)??删幊潭〞r時器:通過專用的的定時器/計數(shù)器芯芯片實現(xiàn)。。其特點是是通過對系系統(tǒng)時鐘脈脈沖進行計計數(shù)實現(xiàn)定定時,定時時時間可通通過程序設設定的方法法改變,使使用靈活方方便。也可可實現(xiàn)對外外部脈沖的的計數(shù)功能能。MCS-51單片機機內(nèi)部有兩兩個16位位可編程的的定時器/計數(shù)器,,簡稱為T0和T1,均可作作定時器用用也可計數(shù)數(shù)器,它們們均是二進進制加法計計數(shù)器,當當計數(shù)器計計滿回零時時能自動產(chǎn)產(chǎn)生溢出中中斷請求,,表示定時時時間已到到或計數(shù)已已終止。適適用于定時時控制、延延時、外部部計數(shù)和檢檢測等。計數(shù)器:對引腳T0(P3.4))和T1((P3.5.)輸入入的外部脈脈沖信號計計數(shù),當輸輸入脈沖信信號從1到到0的負跳跳變時,計計數(shù)器就自自動加1。。計數(shù)的最最高頻率一一般為振蕩蕩頻率的1/24。。定時器:對系統(tǒng)晶振振振蕩脈沖沖的12分分頻輸出進進行計數(shù)。。(1)定時時器/計數(shù)數(shù)器的結(jié)構構組成:16位加法法計數(shù)器、、工作方式式寄存器TMOD和和控制寄存存器TCON。T0:TL0(低低8位)和和TH0((高8位))T1:TL1(低低8位)和和TH1((高8位))2.MCS-51內(nèi)部定時器器/計數(shù)器8051單單片機內(nèi)部部的定時器器/計數(shù)器器的結(jié)構如如下圖所示示。(2)控制寄存存器TCON(88H)TF1TR1TF0TR0IE1IT1IE0IT0TF0/TF1:T0/1計計數(shù)溢出標標志位??煽捎糜谏暾堈堉袛嗷蚬┕〤PU查查詢。在進進入中斷服服務程序時時會自動清清零;但在在查詢方式式時必須軟軟件清零。。=1:計數(shù)溢出;;=0:計數(shù)未滿。。TR0/TR1:T0/1啟啟??刂莆晃?。=1:啟動計數(shù);;=0:停止計數(shù)。。IE0/IE1和IT0/IT1:用于管理外外部中斷((前面已介介紹過)。。M1,M0:工作方式選選擇位。。=00:13位定時時器/計數(shù)數(shù)器;=01:16位定時時器/計數(shù)數(shù)器(常用用);=10:可自動重裝裝的8位定定時器/計計數(shù)器(常常用);=11:T0分為為2個8位位定時器/計數(shù)器;;僅適用于于T0。C/::定時方式/計數(shù)方式式選擇位。。=1:選擇計數(shù)器器工作方式式,對T0/T1引引腳輸入的的外部事件件的負脈沖沖計數(shù);=0::選擇定時器器工作方式式,對機器器周期脈沖沖計數(shù)定時時。如下頁圖所所示。(2)工作作方式寄存存器TMODGATEC/T
M1
M0GATEC/T
M1
M0T1T2GATE::門控位,定定時器/計計數(shù)器的啟啟/??捎捎绍浖c硬硬件兩者控控制=0::軟件控制,,只由TCON中的的啟/??乜刂莆籘R0/TR1控制定定時器/計計數(shù)器的啟啟/停。=1::硬件控制,,由外部中中斷請求信信號/和和TCON中的啟/??刂莆晃籘R0/TR1組組合狀態(tài)控控制定時器器/計數(shù)器器的啟/停停。其控制邏輯輯如下圖所所示。3.3.2定時時器/計數(shù)數(shù)器的工作作方式8051單單片機的定定時器/計計數(shù)器共有有四種工作作模式,現(xiàn)現(xiàn)以T0為為例加以介介紹,T1與T0的的工作原理理相同,但但方式3下下T1停止止計數(shù)。方方式(如F0)和用用戶定義名名稱等幾種種方式。1.工作方方式0(M1M0=00,,13位位定時器/計數(shù)器))由TH0的的全部8位位和TL0的低5位位(TL0的高3位未用))構成13位加1計計數(shù)器,當當TL0低低5位計數(shù)數(shù)滿時直接接向TH0進位,并并當全部13位計數(shù)數(shù)滿溢出時時,溢出標標志位TF0置“1”。2.工作方方式1((M1M0=01,16位定時器器/計數(shù)器器)由TH0和和TL0構構成16位位加1計數(shù)數(shù)器,其他他特性與工工作方式0相同。3.工作方方式2((M1M0=10,自動動重裝計數(shù)數(shù)初值的8位定時器器/計數(shù)器器)16位定時時器/計數(shù)數(shù)器被拆成成兩個8位位寄存器TH0和TL0,CPU在對對它們初始始化時必須須裝入相同同的定時器器/計數(shù)器器初值。以以TL0作作計數(shù)器,,而TH0作為預置置寄存器。。當計數(shù)滿滿溢出時,,TF0置置“1”,,同時TH0將計數(shù)數(shù)初值以硬硬件方法自自動裝入TL0。這這種工作方方式很適合合于那些重重復計數(shù)的的應用場合合(如串行行數(shù)據(jù)通信信的波特率率發(fā)生器))。4.工作方方式3((M1M0=11,2個8位定定時器/計計數(shù)器,僅僅適用于T0)TL0:8位定時器器/計數(shù)器器,使用T0原有控控制資源TR0和TF0,其其功能和操操作與方式式0或方式式1完全相相同。TH0:只能作為8位定時器器,借用T1的控制制位TR1和TF1,只能對對片內(nèi)機器器周期脈沖沖計數(shù)。在方式3模模式下,定定時器/計計數(shù)器0可可以構成兩兩個定時器器或者一個個定時器和和一個計數(shù)數(shù)器。T0方式3下的T1方式2,,因定時初初值能自動動恢復,用用作波特率率發(fā)生器更更為合適。。定時器/計計數(shù)器可按按片內(nèi)機器器周期定時時,也可對對由T0/T1引腳腳輸入一個個負脈沖進進行加法計計數(shù)。在應應用時,其其工作方式式和工作過過程均可通通過程序設設定和控制制,因此,,定時器/計數(shù)器在在工作前必必須先對其其進行初始始化,計算算和設置初初值。1.定時時器T0/T1中中斷申請過過程(1)在已已經(jīng)開放T0/T1中斷允許許且已被啟啟動的前提提下,T0/T1加1計滿滿溢出時TF0/TF1標標志位自動動置“1””;(2)CPU檢測到TCON中TF0/TF1變變“1””后,將將產(chǎn)生指指令:LCALL000BH/LCALL001BH執(zhí)行行中斷服服務程序序;(3)TF0/TF1標志位位由硬件件自動清清“0””,以備備下次中中斷申請請。3.3.3定時器/計數(shù)器的的應用2.定時器/計數(shù)器初初始化的的步驟(1)寫寫TMOD,設設置定時時器/計計數(shù)器的的工作方方式;((2)計算算定時器器/計數(shù)數(shù)器的初初值,寫寫入TH0/TH1、、TL0/TL1。((3)設置置IE、、IP,,以開放放相應的的中斷和和設定中中斷優(yōu)先先級。3.定定時器/計數(shù)器器的定時時器/計計數(shù)器范范圍(1)工工作方式式0:13位定定時器/計數(shù)器器方式最大計數(shù)數(shù)值=213=8192(2)工工作方式式1:16位定定時器/計數(shù)器器方式最大計數(shù)數(shù)值=216=65536(3)工作方式式2和工作方方式3:8位的定定時器/計數(shù)器器方式因因此,最大計數(shù)數(shù)值=28=2563.計數(shù)器初初值的計計算方法:用最大計計數(shù)量減減去需要要的計數(shù)數(shù)次數(shù)。。即:TC=MC其中:TC———計數(shù)器器需要預預置的初初值;M——計計數(shù)器的的模值((最大計計數(shù)值));方式0時時,M=213;方式1時,M=216;方式2,3時,M=28;C——計計數(shù)器計計滿回0所需的的計數(shù)值值,即設設計任務務要求的的計數(shù)值值。例如:流水線上上一個包包裝是12盒,,要求每每到12盒就產(chǎn)產(chǎn)生一個個動作,,用單片片機的工工作方式式0來控控制,則則應當預預置的初初值為::TC=MC=21312=81804.定時器初初值的計計算定時時間間的計算算公式為為:T=(MTC)××T0(或TC=MT/T0)其中:T——定定時器的的定時時時間,即即設計任任務要求求的定時時時間;;T0——計數(shù)數(shù)器計數(shù)數(shù)脈沖的的周期,,即單片片機系統(tǒng)統(tǒng)主頻周周期的12倍;;M——計計數(shù)器的的模值;;TC———定時器器需要預預置的初初值。若設初值值TC=0,則則定時器器定時時時間為最最大。若若設單片片機系統(tǒng)統(tǒng)主頻為為12MHz,,則各種種工作方方式定時時器的最最大定時時時間為為:工作方式式0:Tmax=213×1s=8.192ms工作方式式1:Tmax=216×1s=65.536ms工作方式式2和3:Tmax=28×1s=0.256ms5.定時器/計數(shù)器應應用舉例例[例題4]設一只發(fā)發(fā)光二極極管LED和8051的P1.0腳腳相連。。當P1.0腳腳是高電電平時,,LED發(fā)亮;;當P1.0腳腳是低電電平時,,LED不亮。。編制程程序用定定時器來來實現(xiàn)發(fā)發(fā)光二極極管LED的閃閃爍功能能,設置置LED每1s閃爍一一次。已已知單片片機系統(tǒng)統(tǒng)主頻為為12MHz。。解:定時器/計數(shù)器器的最長長的定時時是65.536ms,無法法實現(xiàn)1s的定定時??煽梢圆捎糜密浖嬘嫈?shù)器來來進行設設計。設計思想想:定義一個個軟件計計數(shù)器單單元30H,先先用定時時器/計計數(shù)器0做一個個50ms的定定時器,,定時時時間到了了以后將將軟件計計數(shù)器中中的值加加1,如如果軟件件計數(shù)器器計到了了20,,取反P1.0,并清清掉軟件件計數(shù)器器中的值值,否則則直接返返回。則則完成了了20次次定時中中斷才取取反一次次P1.0,因因此定時時時間就就為20×50=1000ms=1s。定時器/計數(shù)器器0采用用工作方方式1,,其初值值為:21650ms/1s=6553650000=15536=3CB0H電路圖如如下:程序如下下:ORG0000HAJMPSTART;轉(zhuǎn)入入主程序序ORG000BH;定時時器/計計數(shù)器0的中斷斷服務程程序入口口地址AJMPTIME0;跳跳轉(zhuǎn)到真真正的定定時器中中斷服務務程序處處ORG0030HSTART:MOVSP,#60H;設設置堆棧棧指針MOVP1,#0FFH;關關發(fā)光二二極管LED((使其滅滅)MOV30H,#00H;軟軟件計數(shù)數(shù)器預清清0MOVTMOD,#01H;定時時器/計計數(shù)器0工作于于方式1MOVTH0,#3CH;設置定定時器/計數(shù)數(shù)器的初值MOVTL0,#0B0HSETBEA;開總總中斷允許SETBET0;開開定時器/計計數(shù)器0中斷斷允許SETBTR0;啟動定定時器/計數(shù)數(shù)器0LOOP:AJMPLOOP;循循環(huán)環(huán)等待待(真正正工作作時,,這里里可寫寫任意意其他他程序序)定時器器/計計數(shù)器器0的的中斷斷服務務程序序如下下:TIME0:PUSHACC;將將PSW和和ACC推推入堆堆棧保保護PUSHPSWINC30H;軟軟件計計數(shù)器器加1MOVA,30HCJNEA,#20,T_LP2;軟軟件計計數(shù)器器單元元中的的值到到了20了了嗎??到了,,繼續(xù)續(xù)執(zhí)行行;否否則則,轉(zhuǎn)轉(zhuǎn)入T_LP2T_LP1:CPLP1.0;到到了,,P1.0取反反MOV30H,#00H;清清軟軟件計計數(shù)器器T_LP2:MOVTH0,#3CH;重重置定定時器器/計計數(shù)器器的初初值MOVTL0,#0B0HPOPPSW;恢恢復PSW和ACCPOPACCRETI;中中斷斷返回回END[例題題5]設外部部有一一個計計數(shù)源源。編編制程程序,,對外外部計計數(shù)源源進行行計數(shù)數(shù)并顯顯示。。解:將外部部計數(shù)數(shù)源連連到定定時器器/計計數(shù)器器1的的外部部引腳腳T1上,,可用用LED將將計數(shù)數(shù)的值值顯示示出來來,我我們用用P1口連連接的的8個個LED來來顯示示計到到的數(shù)數(shù)據(jù)。。LED對對P1口電電平要要求同同例4。(電路路圖類類同例例3))程序如如下::ORG0000HAJMPSTART;轉(zhuǎn)轉(zhuǎn)入主主程序序ORG0030HSTART:MOVSP,#60H;設設置置堆棧棧指針針MOVTMOD,#60H;定定時器器/計計數(shù)器器1作作計數(shù)數(shù)用SETBTR1;啟啟動動計數(shù)數(shù)器1開始始運行行LOOP:MOVA,TL1;讀讀計數(shù)數(shù)器1的計計數(shù)值值送AMOVP1,A;將將計計數(shù)值值輸出出到P1口口,驅(qū)驅(qū)動LED顯示示AJMPLOOP;轉(zhuǎn)轉(zhuǎn)回回LOOPEND3.4MCS-51單單片機機的串串行通通信3.4.1概概述述1.通通信通信::單片機機與外外界進進行信信息交交換統(tǒng)統(tǒng)稱為為通信信。8051單片機機的通通信方方式有有兩種種:并行通通信::數(shù)據(jù)的的各位位同時時發(fā)送送或接接收。。特點點是傳傳送速速度快快、效效率高高,但但成本本高。。適用用于短短距離離傳送送數(shù)據(jù)據(jù)。計計算機機內(nèi)部部的數(shù)數(shù)據(jù)傳傳送一一般均均采用用并行行方式式。串行通通信::數(shù)據(jù)一一位一一位順順序發(fā)發(fā)送或或接收收。特特點是是傳送送速度度慢,,但成成本低低。適適用于于較長長距離離傳送送數(shù)據(jù)據(jù)。計計算機機與外外界的的數(shù)據(jù)據(jù)傳送送一般般均采采用串串行方方式。。2.數(shù)數(shù)據(jù)據(jù)通信信的制制式單工方方式::數(shù)據(jù)僅僅按一一個固固定方方向傳傳送;;半雙工工方式式:數(shù)據(jù)可可實現(xiàn)現(xiàn)雙向向傳送送,但但不能能同時時進行行;全雙工工方式式:允許雙雙方同同時進進行數(shù)數(shù)據(jù)雙雙向傳傳送;;多工方方式::在同一一線路路上實實現(xiàn)資資源共共享。。3.串串行行通信信的分分類串行數(shù)數(shù)據(jù)通通信按按數(shù)據(jù)據(jù)傳送送方式式可分分為異異步通通信和和同步步通信信兩種種形式式:同步方方式::以數(shù)據(jù)據(jù)塊為為單位位進行行數(shù)據(jù)據(jù)傳送送,包包括同同步字字符、、數(shù)據(jù)據(jù)塊和和校驗驗字符符CRC。。優(yōu)點點是數(shù)數(shù)據(jù)傳傳輸速速率較較高,,缺點點是要要求發(fā)發(fā)送時時鐘和和接收收時鐘鐘保持持嚴格格同步步。數(shù)數(shù)據(jù)格格式如如下圖圖所示示。異步方方式::以字符為為單位位進行行數(shù)據(jù)據(jù)傳送送,每每一個個字符符均按按固定定的字字符格格式傳傳送,,又被被稱為為幀。。優(yōu)點點是不不需要要傳送送同步步脈沖沖,可可靠性性高,,所需需設備備簡單單;缺缺點是是字符符幀中中因包包含有有起始始位和和停止止位而而降低低了有有效數(shù)數(shù)據(jù)的的傳輸輸速率率。數(shù)據(jù)格格式如如下圖圖所示示:4.串串行行數(shù)據(jù)據(jù)通信信的波波特率率波特率率是指指每秒秒鐘傳傳送信信號的的數(shù)量量,單單位為為波特特(Baud))。而而每秒秒鐘傳傳送二二進制制數(shù)的的信號號數(shù)((即二二進制制數(shù)的的位數(shù)數(shù))定定義為為比特特率,,單位位是bps(bitpersecond))或?qū)憣懗蒪/s(位位/秒秒)。。在單片片機串串行通通信中中,傳傳送的的信號號是二二進制制信號號,波波特率率與比比特率率數(shù)值值上相相等。。單位位采用用bps。。例如,,異步步串行行通信信的數(shù)數(shù)據(jù)傳傳送的的速率率是120字符符/秒秒,而而每個個字符符規(guī)定定包含含10位數(shù)數(shù)字,,則傳傳輸波波特率率為::120字符符/秒秒×10位/字符符=1200位位/秒秒=1200bps3.4.2MCS-51的串串行口口MCS-51單單片機機內(nèi)部部有一一個全全雙工工的串串行通通信口口(P3.0、、P3.1),,既既可作作UART(通通用異異步接接收/發(fā)送送器))用,,也可可作同同步移移位寄寄存器器使用用,還還可用用于網(wǎng)網(wǎng)絡通通信,,其幀幀格式式可有有8位位、10位位和11位位,并并能設設置各各種波波特率率。1.串行行口寄寄存器器結(jié)構構(1))兩個個物理理上獨獨立的的同名名的接接收/發(fā)送送緩沖沖寄存存器SBUF指令MOVSBUF,A啟啟動一一次數(shù)數(shù)據(jù)發(fā)發(fā)送,指指令MOVA,,SBUF完完成一一次數(shù)數(shù)據(jù)接接收,即即向發(fā)發(fā)送緩緩沖器器SBUF寫入入數(shù)據(jù)據(jù)即可可發(fā)送送數(shù)據(jù)據(jù),從從接收收緩沖沖器SBUF讀讀出數(shù)數(shù)據(jù)即即可接接收數(shù)數(shù)據(jù)。。(2))輸入入和輸輸出移移位寄寄存器器和控控制器器等組組成。。(3))2個個SFR寄寄存器器SCON和PCON,,用于于串行行口的的初始始化編編程。。(4))接接收收/發(fā)發(fā)送送數(shù)數(shù)據(jù)據(jù),無無論論是是否否采采用用中中斷斷方方式式工工作作,每每接接收收/發(fā)發(fā)送送一一個個數(shù)數(shù)據(jù)據(jù)都都必必須須用用指指令令對對RI/TI清清0,,以以備備下下一一次次收收/發(fā)發(fā)。。SBUF(發(fā))SBUF(收)發(fā)送控制器TI接收控制器RI移位寄存器波特率發(fā)生器T11A累加器(門)移位寄存器RxD(P3.1)TxD(P3.1)去申請中斷引腳引腳CPU內(nèi)部MCS-51串串行行口口的的結(jié)結(jié)構構如如下下圖圖所所示示::2.串行通信控制制寄存器SCON(98H)SM0SM1
SM2RENTB8RB8
TIR1SM0,SM1:串行口4種工工作方式控制制位。=00:方式0,8位位同步移位寄寄存器,其波波特率為fosc/12;=01:方式1,10位UART,其波特率率為可變,由由定時器控制制;=10:方式2,11位UART,其波特率率為fosc/64或fosc/32;=11:方式3,11位UART,其波特率率為可變,由由定時器控制制。其中:fosc為系統(tǒng)晶振頻頻率。RI,TI::串行口收/發(fā)發(fā)數(shù)據(jù)申請中中斷標志位=1申請中中斷;=0不申請請中斷。RB8:在方式2、3中,用于存存放收到的第第9位數(shù)據(jù);;在雙機通信信中,作為奇奇偶校驗;在在多機通信中中,用作區(qū)別別地址幀/數(shù)數(shù)據(jù)幀的標志志。TB8:方式2、3中中,是要發(fā)送送的第9位數(shù)數(shù)據(jù);在雙機機通信中,用用于對接收到到的數(shù)據(jù)進行行奇偶校驗;;在多機通信信中,用作判判斷地址幀/數(shù)據(jù)幀,TB8=0表表示發(fā)送的的是數(shù)據(jù),TB8=1表表示發(fā)送的的是地址。REN:串行口接收允允許控制位=1:表示允許接收收;=0:禁止接收。SM2:串行口多機通通信控制位,,作為方式2、方式3的的附加控制位位。3.中斷允允許寄存器IE(0A8H)中斷允許寄存存器IE在3.2.2節(jié)節(jié)中已介紹。。其中對串行行口有影響的的位ES。ES為串行中中斷允許控制制位。ES=1:允許串行中斷斷;ES=0:禁止串行中斷斷。4.電源管管理寄存器PCON(87H)不可位尋址。。PCON主要用于實實現(xiàn)電源控制制而設置的專專用寄存器,,已在1.3.3節(jié)中介介紹過。其格格式如下圖所所示。SMOD
GF1GF0
PD1DLSMOD:串行口波特率率倍增位=1:串行口波特率率加倍。=0:串行口波特率率不變,系統(tǒng)統(tǒng)復位時默認認為SMOD=0。3.4.3串串行口的的工作方式1.工作方方式0(8位移位寄存存器I/O方方式)發(fā)送/接收過過程:SBUF中的的串行數(shù)據(jù)由由RxD逐位位移出/移入入(低位在先先,高位在后后);TxD輸出移位時時鐘,頻率=fosc1/12;每每送出/接收收8位數(shù)據(jù)TI/RI自動置1;需要用軟軟件清零TI/RI。注意:串行口在方式式0下的工作作并非是一種種同步通信方方式,經(jīng)常配合“串串入并出”““并入串出””移位寄存器器一起使用,,以達到擴展一一個并行口的的目的。擴擴展電路如下下圖所示。如要發(fā)送數(shù)據(jù)據(jù),查詢方式式的程序如下下:MOVSCON,#00H;;串行口方式式0MOVSBUF,A;;將將數(shù)據(jù)送出JNBTI,$;;等待數(shù)據(jù)據(jù)發(fā)送完畢CLRTI;;為下次次發(fā)送作準備備注意:復位時,SCON已經(jīng)經(jīng)被清零,缺缺省值為方式式0。發(fā)送條件:TI=0。接收條件:TI=0,置置位REN=1(允允許接收數(shù)據(jù)據(jù))。2.方式1(波特率可變的的10位異步通信方方式)發(fā)送/接收數(shù)數(shù)據(jù)的格式::一幀信息包括括1個起始位位0,8個數(shù)數(shù)據(jù)位和1個個停止位1。。發(fā)送/接收過過程:SBUF中的的串行數(shù)據(jù)由由RXD逐位位移出/移入入;TXD輸輸出移位時鐘鐘,頻率=((2SMOD/32)T1的溢出出率,波特率可變。。每送出/接接收8位數(shù)據(jù)據(jù)TI/RI自動置置1;需要用用軟件清零TI/RI。工作作時,發(fā)送端端自動添加一一個起始位和和一個停止位位;接收端自自動去掉一個個起始位和一一個停止位。。發(fā)送/接收條條件:同方式0。3.方式2(固定波特率的的11位異步接收/發(fā)送方式)發(fā)送/接收過過程:方式2的接收收/發(fā)送過程程類似于方式式1,所不同同的是它比方方式1增加了了一位“第9位”數(shù)據(jù)(TB8/RB8),用用于“奇偶校校驗”。方式式2常用于單單片機間通信信。波特率=fosc2SMOD/64。發(fā)送/接收條條件:同方式0。3.方式3(可變波特率的的11位異步接收/發(fā)送方式)方式3和方式2唯一一的區(qū)別是波波特率機制不不同,方式3的波特特率=(2SMOD/32)T1的溢出出率。奇偶校驗:奇偶校驗是檢檢驗串行通信信雙方傳輸?shù)牡臄?shù)據(jù)正確與與否的一個措措施,并不能能保證通信數(shù)數(shù)據(jù)的傳輸一一定正確。即即如果奇偶校驗發(fā)生生錯誤,表明明數(shù)據(jù)傳輸一一定出錯了;;如果奇偶校校驗沒有出錯錯,絕不等于于數(shù)據(jù)傳輸完完全正確。奇校驗規(guī)定::8位有效數(shù)據(jù)據(jù)連同1位附附加位中,二二進制“1””的個數(shù)為奇奇數(shù)。偶校驗規(guī)定::8位有效數(shù)據(jù)據(jù)連同1位附附加位中,二二進制“1””的個數(shù)為偶偶數(shù)。約定發(fā)送采用用奇校驗:若發(fā)送的8位位有效數(shù)據(jù)中中“1”的個個數(shù)為偶數(shù),,則要人為在在附加位中添添加一個“1”一起發(fā)送送;若發(fā)送的的8位有效數(shù)數(shù)據(jù)中“1””的個數(shù)為奇奇數(shù),則要人人為在附加位位中添加一個個“0”一起起發(fā)送。約定接收采用用奇校驗:若接收到的9位數(shù)據(jù)中““1”的個數(shù)數(shù)為奇數(shù),則則表明接收正正確,取出8位有效數(shù)據(jù)據(jù)即可;若接接收到的9位位數(shù)據(jù)中“1”的個數(shù)為為偶數(shù),則表表明接收出錯錯!應當進行行出錯處理。。采用偶校驗時,處處理方法與奇奇校驗類似。。3.4.4串串行口的的通信波特率率串行口的通信信波特率恰到到好處地反映映了串行傳輸輸數(shù)據(jù)的速率率。在MCS-51串行行口的四種工工作方式中,,方式0和2的波特率是是固定的,而而方式1和3的波特率是是可變的,由由定時器T1的溢出率((T1溢出信信號的頻率))控制。各種種方式的通信信波特率如下下:方式0:波特率固定為為fosc/12。其中:fosc———系統(tǒng)主機晶晶振頻率方式2:波特率由PCON中的選選擇位SMOD來決定,,可由下式表表示:波特率=(2SMOD/64)×fosc方式1和方式
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023三年級語文下冊 第一單元 2 燕子配套說課稿 新人教版
- 2024-2025學年高中語文 名著導讀 莎士比亞戲劇說課稿 新人教版必修4
- 9古詩三首清明說課稿2023-2024學年統(tǒng)編版語文三年級下冊
- Unit 4 Natural Disasters Reading for Writing 說課稿-2024-2025學年高中英語人教版(2019)必修第一冊
- Unit 2 lconic Attractions Learning About Language (1)說課稿 2023-2024學年高中英語人教版選擇性第四冊
- 2025主體信用評級合同
- 2025吊頂勞務承包合同
- 19《夜宿山寺》(說課稿)2024-2025學年部編版語文二年級上冊
- 2024-2025學年高中生物 第一章 人體的內(nèi)環(huán)境與穩(wěn)態(tài) 專題1.2 內(nèi)環(huán)境穩(wěn)態(tài)的重要性說課稿(基礎版)新人教版必修3001
- 7《壓歲錢的使用與思考》(說課稿)-2023-2024學年四年級下冊綜合實踐活動長春版
- 北京市豐臺區(qū)2024-2025學年九年級上學期期末語文試題(含答案)
- 計劃供貨時間方案
- 2024年石柱土家族自治縣中醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 西藏事業(yè)單位c類歷年真題
- 2024人教新目標(Go for it)八年級英語下冊【第1-10單元】全冊 知識點總結(jié)
- 七年級英語下學期開學考試(深圳專用)-2022-2023學年七年級英語下冊單元重難點易錯題精練(牛津深圳版)
- 部編版語文小學二年級下冊第一單元集體備課(教材解讀)
- 新會中集:集裝箱ISO尺寸要求
- 化學品-泄露與擴散模型課件
- 漢語言文學論文6000字
- 樹立正確的世界觀人生觀價值觀課件
評論
0/150
提交評論