版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第四章第四章 中斷系統(tǒng)及串行口中斷系統(tǒng)及串行口4.1 中斷系統(tǒng)中斷系統(tǒng) 一、中斷系統(tǒng)的基本概念一、中斷系統(tǒng)的基本概念中斷系統(tǒng)又叫作中斷管理系統(tǒng)或中斷服務(wù)系統(tǒng)中斷系統(tǒng)又叫作中斷管理系統(tǒng)或中斷服務(wù)系統(tǒng)功能功能: 是使是使CPU對外界突發(fā)事件具有應(yīng)急處理能力。對外界突發(fā)事件具有應(yīng)急處理能力。 主要用于系統(tǒng)實(shí)時(shí)控制,實(shí)時(shí)處理,故障自動處理,數(shù)據(jù)傳輸,人機(jī)交換等方面。中斷涉及主要內(nèi)容:中斷源,中斷的嵌套,中斷的開放與屏蔽,中斷優(yōu)先級,中斷響應(yīng)過程,中斷響應(yīng)條件,中斷入口地址,中斷的響應(yīng)時(shí)間等內(nèi)容。中斷舉例中斷舉例某某位位先先生生正正在在看看報(bào)報(bào)電電話話鈴鈴響響了了去去接接電電話話與與朋朋友友聊聊天天某某
2、位位先先生生繼繼續(xù)續(xù)看看報(bào)報(bào) 在這個(gè)過程中,看報(bào)紙相當(dāng)于正常運(yùn)行的程序,電話響是中斷標(biāo)志,中斷源是電話,接電話相當(dāng)于響應(yīng)中斷,與朋友聊天相當(dāng)于中斷服務(wù)程序,返回看報(bào)相當(dāng)于中斷返回,繼續(xù)執(zhí)行被中斷的程序。中斷:指中斷:指CPUCPU對系統(tǒng)中或系統(tǒng)外發(fā)生的某個(gè)事件的一種對系統(tǒng)中或系統(tǒng)外發(fā)生的某個(gè)事件的一種響應(yīng)過程,即響應(yīng)過程,即CPUCPU暫時(shí)停止現(xiàn)行程序的執(zhí)行,而自動轉(zhuǎn)暫時(shí)停止現(xiàn)行程序的執(zhí)行,而自動轉(zhuǎn)去執(zhí)行安排好的處理該事件的服務(wù)子程序,當(dāng)處理結(jié)束去執(zhí)行安排好的處理該事件的服務(wù)子程序,當(dāng)處理結(jié)束后,再返回到被暫停程序的斷點(diǎn)處,繼續(xù)執(zhí)行原來的程后,再返回到被暫停程序的斷點(diǎn)處,繼續(xù)執(zhí)行原來的程序,實(shí)
3、現(xiàn)這種中斷功能的硬件系統(tǒng)和軟件系統(tǒng)稱為中斷序,實(shí)現(xiàn)這種中斷功能的硬件系統(tǒng)和軟件系統(tǒng)稱為中斷系統(tǒng)。系統(tǒng)。引起突發(fā)事件的來源,稱為中斷源引起突發(fā)事件的來源,稱為中斷源 在中斷系統(tǒng)中,存在著多個(gè)中斷源,在中斷系統(tǒng)中,存在著多個(gè)中斷源,如果幾個(gè)中斷同時(shí)被觸發(fā)的時(shí)候,如果幾個(gè)中斷同時(shí)被觸發(fā)的時(shí)候,CPU先執(zhí)行誰呢?先執(zhí)行誰呢?中斷嵌套:中斷嵌套:當(dāng)當(dāng)CPU正在處理一個(gè)中斷源請求的時(shí)候,又發(fā)生了正在處理一個(gè)中斷源請求的時(shí)候,又發(fā)生了另一個(gè)優(yōu)先級比它高的中斷源請求,如果另一個(gè)優(yōu)先級比它高的中斷源請求,如果CPU能夠暫時(shí)中止對能夠暫時(shí)中止對原來中斷處理程序的執(zhí)行,轉(zhuǎn)而去處理優(yōu)先級更高的中斷源請?jiān)瓉碇袛嗵幚沓绦?/p>
4、的執(zhí)行,轉(zhuǎn)而去處理優(yōu)先級更高的中斷源請求,待處理完以后,再繼續(xù)執(zhí)行原來的低級中斷處理程序,這求,待處理完以后,再繼續(xù)執(zhí)行原來的低級中斷處理程序,這樣的過程稱為中斷嵌套。樣的過程稱為中斷嵌套。 主主程程序序低低級級中中斷斷請請求求低低級級中中斷斷服服務(wù)務(wù)程程序序主主程程序序高高級級中中斷斷服服務(wù)務(wù)程程序序高高級級中中斷斷請請求求二二級級中中斷斷嵌嵌套套中中斷斷過過程程返返回回低低級級中中斷斷程程序序返返回回主主程程序序低低級級中中斷斷服服務(wù)務(wù)程程序序調(diào)調(diào)用用低低級級中中斷斷服服務(wù)務(wù)程程序序調(diào)調(diào)用用高高級級中中斷斷服服務(wù)務(wù)程程序序中斷源和中斷標(biāo)志中斷源和中斷標(biāo)志8051單片機(jī)有單片機(jī)有5個(gè)中斷源,
5、個(gè)中斷源,2個(gè)外部中斷,個(gè)外部中斷,2個(gè)定時(shí)計(jì)個(gè)定時(shí)計(jì)數(shù)器中斷,數(shù)器中斷,1個(gè)串行口中斷個(gè)串行口中斷ESRI,TI接收或發(fā)送完一個(gè)字符串行口ET1TF1溢出 T1EX1IE1低電平或下降沿ET0TF0溢出 T0EX0IE0低電平或下降沿中斷允許控制位中斷標(biāo)志中斷原因中斷源中斷源中斷請求中斷源中斷請求1外部中斷外部中斷ITx=0,電平觸發(fā)。電平觸發(fā)。 每個(gè)每個(gè)T采樣采樣INTx的狀態(tài),為低電平則直接觸發(fā)外中斷。此的狀態(tài),為低電平則直接觸發(fā)外中斷。此方式下,中斷源須持續(xù)請求,直到中斷實(shí)際產(chǎn)生為止,且在中方式下,中斷源須持續(xù)請求,直到中斷實(shí)際產(chǎn)生為止,且在中斷返回前,須撤除中斷請求信號,否則發(fā)生另一
6、次斷返回前,須撤除中斷請求信號,否則發(fā)生另一次中斷(誤中斷)。中斷(誤中斷)。中斷響應(yīng)中斷響應(yīng)服務(wù)服務(wù) 結(jié)束結(jié)束撤除撤除適用于外部中斷輸入為低電平,且中斷服務(wù)程序中能夠清除該中斷適用于外部中斷輸入為低電平,且中斷服務(wù)程序中能夠清除該中斷源申請信號的情況。源申請信號的情況。 ITx=1,邊沿觸發(fā)。在邊沿觸發(fā)。在INTx端連續(xù)采樣到一個(gè)端連續(xù)采樣到一個(gè)T的高電平和緊接著一個(gè)的高電平和緊接著一個(gè)T的低電平則的低電平則IEx=1,由該位由該位申請中斷,既使申請中斷,既使CPU不能立即響應(yīng),中斷標(biāo)志仍保留不能立即響應(yīng),中斷標(biāo)志仍保留等待響應(yīng),一旦進(jìn)入中斷程序,等待響應(yīng),一旦進(jìn)入中斷程序, IEx被被CP
7、U自動清除。自動清除。此情況適用于以負(fù)脈沖形式輸入的外部中斷請求。此情況適用于以負(fù)脈沖形式輸入的外部中斷請求。2、定時(shí)器中斷、定時(shí)器中斷8051內(nèi)部有兩個(gè)內(nèi)部有兩個(gè)16位的定時(shí)器位的定時(shí)器/計(jì)數(shù)器,對內(nèi)部定時(shí)脈沖(主計(jì)數(shù)器,對內(nèi)部定時(shí)脈沖(主脈沖經(jīng)脈沖經(jīng)12分頻后)或分頻后)或T0/T1引腳上輸入的外部脈沖進(jìn)行計(jì)數(shù)。引腳上輸入的外部脈沖進(jìn)行計(jì)數(shù)。定時(shí)器定時(shí)器T0/T1在計(jì)數(shù)脈沖作用下從全在計(jì)數(shù)脈沖作用下從全“1”變?yōu)槿優(yōu)槿?”時(shí)自動時(shí)自動向向CPU提出溢出中斷請求,以表明定時(shí)器提出溢出中斷請求,以表明定時(shí)器T0或或T1的定時(shí)時(shí)間已的定時(shí)時(shí)間已到或計(jì)數(shù)器已溢出。當(dāng)?shù)交蛴?jì)數(shù)器已溢出。當(dāng)CPU響
8、應(yīng)定時(shí)器中斷并轉(zhuǎn)入中斷服務(wù)程響應(yīng)定時(shí)器中斷并轉(zhuǎn)入中斷服務(wù)程序時(shí)由硬件清序時(shí)由硬件清0中斷標(biāo)志。不使用中斷方式時(shí)可由軟件清中斷標(biāo)志。不使用中斷方式時(shí)可由軟件清0中斷中斷標(biāo)志。標(biāo)志??乜刂浦菩判盘柼栒裾袷幨幤髌? 12 2二二進(jìn)進(jìn)制制加加1 1T TF Fx x中中斷斷T Tx x端端( (引引腳腳) )C C/ /T T= =0 0C C/ /T T= =1 1溢溢出出標(biāo)標(biāo)志志已已知知寬寬度度脈脈沖沖未未知知寬寬度度脈脈沖沖計(jì)計(jì)數(shù)數(shù)器器中斷控制中斷控制1中斷的開放與屏蔽中斷的開放與屏蔽中斷允許寄存器中斷允許寄存器IE外部中斷外部中斷0 0允許控制位允許控制位0 0:禁止;:禁止;1 1:允許:允
9、許定時(shí)器定時(shí)器0 0中斷允許控制位中斷允許控制位0 0:禁止;:禁止;1 1:允許:允許EAEA- -ET2ET2ESESET1ET1EX1EX1ET0ET0EX0EX0外部中斷外部中斷1 1允許控制位允許控制位0 0:禁止;:禁止;1 1:允許:允許定時(shí)器定時(shí)器1 1中斷允許控制位中斷允許控制位0 0:禁止;:禁止;1 1:允許:允許串行口中斷允許控制位串行口中斷允許控制位0 0:禁止;:禁止;1 1:允許:允許定時(shí)器定時(shí)器2 2中斷允許控制位中斷允許控制位0 0:禁止;:禁止;1 1:允許:允許(80528052特有)特有)允許中斷總控制位允許中斷總控制位0 0:禁止;:禁止;1 1:允許
10、:允許IED0D7中斷允許寄存器TF1中斷開放(總開關(guān))EAEX0ET0EX1ET1ESIE0IT0=1IT0=0INT0IE1IT1=1IT1=0INT1TF0RITI(引腳)(引腳)串行口中斷允許(分開關(guān))T1中斷允許(分開關(guān))外部中斷1中斷允許(分開關(guān))外部中斷0中斷允許(分開關(guān))T0中斷允許(分開關(guān))+向CPU申請中斷中斷優(yōu)先級別的設(shè)定中斷優(yōu)先級別的設(shè)定MCS51系列單片機(jī)具有兩個(gè)中斷優(yōu)先級。對于所系列單片機(jī)具有兩個(gè)中斷優(yōu)先級。對于所有的中斷源,均可由軟件設(shè)置為高優(yōu)先級中斷或低有的中斷源,均可由軟件設(shè)置為高優(yōu)先級中斷或低優(yōu)先級中斷,并可實(shí)現(xiàn)兩級中斷嵌套。一個(gè)正在執(zhí)優(yōu)先級中斷,并可實(shí)現(xiàn)兩
11、級中斷嵌套。一個(gè)正在執(zhí)行的低優(yōu)先級中斷服務(wù)程序,能被高優(yōu)先級中斷源行的低優(yōu)先級中斷服務(wù)程序,能被高優(yōu)先級中斷源所中斷。同級或低優(yōu)先級中斷源不能中斷正在執(zhí)行所中斷。同級或低優(yōu)先級中斷源不能中斷正在執(zhí)行的中斷服務(wù)程序。每個(gè)中斷源的中斷優(yōu)先級都可以的中斷服務(wù)程序。每個(gè)中斷源的中斷優(yōu)先級都可以通過程序來設(shè)定,由中斷優(yōu)先級寄存器通過程序來設(shè)定,由中斷優(yōu)先級寄存器IP統(tǒng)一管理。統(tǒng)一管理。 PX0:外部中斷0中斷優(yōu)先級控制位。PT0:定時(shí)計(jì)數(shù)器T0的中斷優(yōu)先級控制位。PX1:外部中斷1中斷優(yōu)先級控制位。PT1:定時(shí)計(jì)數(shù)器T1的中斷優(yōu)先級控制位。PS :串行口中斷優(yōu)先級控制位PT2:定時(shí)計(jì)數(shù)器T2的中斷優(yōu)先級
12、控制位。各個(gè)中斷優(yōu)先級控制位設(shè)置為1,表示設(shè)置為高優(yōu)先級;設(shè)置為0,表示設(shè)置為低優(yōu)先級。8051單片機(jī)有單片機(jī)有2個(gè)中斷優(yōu)先級,具有個(gè)中斷優(yōu)先級,具有5個(gè)中斷源,那個(gè)中斷源,那么,當(dāng)多個(gè)中斷源同時(shí)產(chǎn)生中斷時(shí),么,當(dāng)多個(gè)中斷源同時(shí)產(chǎn)生中斷時(shí),首先響應(yīng)中斷優(yōu)首先響應(yīng)中斷優(yōu)先級高的中斷源中斷請求,然后再響應(yīng)中斷優(yōu)先級低先級高的中斷源中斷請求,然后再響應(yīng)中斷優(yōu)先級低的中斷源中斷請求。的中斷源中斷請求。然而,多個(gè)中斷源有可能處在同一優(yōu)先級,當(dāng)處于同然而,多個(gè)中斷源有可能處在同一優(yōu)先級,當(dāng)處于同一優(yōu)先級的多個(gè)中斷源同時(shí)產(chǎn)生中斷時(shí),一優(yōu)先級的多個(gè)中斷源同時(shí)產(chǎn)生中斷時(shí),CPU應(yīng)響應(yīng)應(yīng)響應(yīng)那個(gè)中斷源?那個(gè)中斷源
13、?各中斷源在同一優(yōu)先級時(shí)從高到低的排列順序?yàn)椋焊髦袛嘣丛谕粌?yōu)先級時(shí)從高到低的排列順序?yàn)椋和獠恐袛嗤獠恐袛?定時(shí)器定時(shí)器0中斷中斷外部中斷外部中斷1 定時(shí)器定時(shí)器1中斷中斷串行口中斷串行口中斷(定時(shí)器定時(shí)器2中斷中斷)。 低優(yōu)先級中斷請求INT0T0T2串行口T1INT1查詢順序INT0T0T2串行口T1INT1中斷允許寄存器TF1中斷優(yōu)先級寄存器高優(yōu)先級中斷請求中斷開放(總開關(guān))EAEX0PX010ET0PT010EX1PX110ET1PT110ESPS10ET2PT210IE0IT0=1IT0=0INT0IE1IT1=1IT1=0INT1TF0(8052)TF2EXF2RITI(引腳)(引
14、腳)T2中斷允許(分開關(guān))串行口中斷允許(分開關(guān))T1中斷允許(分開關(guān))外部中斷1中斷允許(分開關(guān))外部中斷0中斷允許(分開關(guān))T0中斷允許(分開關(guān))中斷響應(yīng)過程中斷響應(yīng)過程1中斷響應(yīng)條件中斷響應(yīng)條件開放中斷。開放中斷。無同級或高級中斷服務(wù)程序正在執(zhí)行。無同級或高級中斷服務(wù)程序正在執(zhí)行?,F(xiàn)行指令執(zhí)行到最后一個(gè)機(jī)器周期且已結(jié)束。現(xiàn)行指令執(zhí)行到最后一個(gè)機(jī)器周期且已結(jié)束。若現(xiàn)行指令為若現(xiàn)行指令為RETI 或訪問或訪問IP,IE指令時(shí),執(zhí)行指令時(shí),執(zhí)行完該指令且緊隨其后的另一條指令也已執(zhí)行完完該指令且緊隨其后的另一條指令也已執(zhí)行完畢。畢。 中斷響應(yīng)過程CPU在每個(gè)機(jī)器周期中采樣中斷標(biāo)志,在下一個(gè)機(jī)器周
15、期中按先后順序查詢中斷標(biāo)志。在查詢到某一中斷標(biāo)志為1時(shí),則在下一個(gè)機(jī)器周期S1期間按優(yōu)先級別進(jìn)行中斷處理。中斷系統(tǒng)通過硬件生成長調(diào)用指令LCALL,將程序轉(zhuǎn)移到中斷入口地址單元,執(zhí)行相應(yīng)的中斷服務(wù)程序 響應(yīng)中斷時(shí),CPU先置位優(yōu)先級狀態(tài)觸發(fā)器,接著再執(zhí)行由硬件產(chǎn)生的長調(diào)用指令LCALL。該指令將程序計(jì)數(shù)器PC的內(nèi)容壓入堆棧保護(hù)起來。中斷入口地址中斷入口地址 中斷源中斷入口地址外部中斷00003H定時(shí)計(jì)數(shù)器T0中斷 000BH外部中斷10013H定時(shí)計(jì)數(shù)器T1中斷 001BH串行口中斷0023H定時(shí)計(jì)數(shù)器T2中斷 002BH中斷響應(yīng)時(shí)間中斷響應(yīng)時(shí)間中斷響應(yīng)時(shí)間:指中斷響應(yīng)時(shí)間:指CPU檢測到中斷
16、請求信號到檢測到中斷請求信號到轉(zhuǎn)入中斷服務(wù)程序入口所需要的機(jī)器周期數(shù)。轉(zhuǎn)入中斷服務(wù)程序入口所需要的機(jī)器周期數(shù)。51單片機(jī)響應(yīng)中斷的最短時(shí)間為單片機(jī)響應(yīng)中斷的最短時(shí)間為3個(gè)機(jī)器周期。個(gè)機(jī)器周期。若若CPU檢測到中斷請求信號時(shí)間正好時(shí)一條指檢測到中斷請求信號時(shí)間正好時(shí)一條指令的最后一個(gè)機(jī)器周期,則不需等待,就可以令的最后一個(gè)機(jī)器周期,則不需等待,就可以立即響應(yīng)。立即響應(yīng)。這時(shí)響應(yīng)時(shí)間包含這時(shí)響應(yīng)時(shí)間包含1個(gè)檢測的機(jī)器周期和內(nèi)部硬個(gè)檢測的機(jī)器周期和內(nèi)部硬件執(zhí)行一條長調(diào)用指令,件執(zhí)行一條長調(diào)用指令,2個(gè)機(jī)器周期。個(gè)機(jī)器周期。中斷響應(yīng)時(shí)間一般為中斷響應(yīng)時(shí)間一般為38個(gè)機(jī)器周期個(gè)機(jī)器周期例例1:由:由P1
17、.0引腳輸出一個(gè)引腳輸出一個(gè)1KHz的方波信號。設(shè)的方波信號。設(shè)fosc=12MHz。 分析分析8051P1.05 50 00 0S5 50 00 0S1 1 m mS SP P1 1. .0 0t t2、算法:采用定時(shí)中斷,每隔、算法:采用定時(shí)中斷,每隔500S將將P1.0取反。取反。 定時(shí)器方式選擇及初值計(jì)算:定時(shí)器方式選擇及初值計(jì)算: 計(jì)數(shù)脈沖頻率計(jì)數(shù)脈沖頻率fp= (振蕩器振蕩器12分頻)分頻)計(jì)數(shù)脈沖周期計(jì)數(shù)脈沖周期Tp= =1S如果如果N為計(jì)數(shù)器的初值,為計(jì)數(shù)器的初值,n為計(jì)數(shù)器的長度,則:為計(jì)數(shù)器的長度,則:定時(shí)時(shí)間定時(shí)時(shí)間T(2nN)Tp 12fosc計(jì)數(shù)脈沖頻率1oscf12
18、N0時(shí)定時(shí)時(shí)間最長,故當(dāng)時(shí)定時(shí)時(shí)間最長,故當(dāng)n(計(jì)數(shù)器長度)為確定計(jì)數(shù)器長度)為確定值時(shí),最長定時(shí)時(shí)間值時(shí),最長定時(shí)時(shí)間Tmax與與n和和Tp的關(guān)系如下:的關(guān)系如下:Tmax2n Tp當(dāng)當(dāng)n13(方式方式0),),Tp1S時(shí):時(shí):Tmax8192S當(dāng)當(dāng)n16(方式方式1),),Tp1S時(shí):時(shí):Tmax65536S當(dāng)當(dāng)n8 (方式方式2),),Tp1S時(shí):時(shí):Tmax256S 在本例中選用定時(shí)器在本例中選用定時(shí)器0方式方式1 計(jì)數(shù)器初值計(jì)數(shù)器初值N216 65536 65036(FE0C)16 TpTusus1500流程圖流程圖將將T T0 0設(shè)設(shè)置置為為方方式式1 1給給T TH H0 0、T
19、 TL L0 0賦賦初初值值啟啟動動計(jì)計(jì)數(shù)數(shù)器器0 0開開定定時(shí)時(shí)器器0 0中中斷斷等等待待中中斷斷主主程程序序重重新新給給T TH H0 0、T TL L0 0賦賦初初值值取取反反P P1 1. .0 0中中斷斷返返回回中中斷斷服服務(wù)務(wù)子子程程序序程序程序 ORG 0000H LJMP MAIN ORG 000BH LJMP T0I ORG 0030H MAIN: MOV TMOD,#01H MOV TH0,#0FEH MOV TL0,#0CH SETB TR0 MOV IE,#82H MAIN1:SJMP MAIN1 T0I: MOV TH0,#0FEH;中斷服務(wù)子程序中斷服務(wù)子程序 MO
20、V TL0,#0CH CPL P1.0 RETI ;中斷返回中斷返回 END例例2:外部中斷:外部中斷 通過外部中斷通過外部中斷0,使使P1口的發(fā)光口的發(fā)光二極管全亮二極管全亮,保持保持2秒秒,全滅全滅,再保持再保持2秒秒, 全亮全亮,如此循環(huán)往復(fù)如此循環(huán)往復(fù) 8 80 05 51 1+ +5 5V V+ +5 5V VINT0INT112MHz30P30PK K0 0K K1 1ORG0000HSTART:LJMPMAIN;轉(zhuǎn)主程序轉(zhuǎn)主程序ORG0003HLJMPINT0ORG0013HLJMPINT1ORG1000HMAIN: MOVIE,#85HS E T BP X 1S E T BI
21、T 0SETBIT1LOOP: MOVP1,#0FFHSJMPLOOPORG2000HINT0: MOVR3,#0AHD1:MOVP1,#0FHLCALL DELAYDJNZR3,D1 RETIORG2100HINT1:MOVA,R3PUSHAMOVR3,#02HMOVP1,#0F0HD2:LCALL DELAY;調(diào)用延時(shí)程序調(diào)用延時(shí)程序DJNZR3,D2;循環(huán)循環(huán)2次,延時(shí)次,延時(shí) POP AMOVR3,ARETI延時(shí)子程序:延時(shí)子程序:DELAY: MOV R7,#64HDL0: MOV R6,#0FFHDL1: DJNZ R6,DL1 DJNZ R7,DL0 RET END例例3: 設(shè)設(shè)
22、T0工作于方式工作于方式2,TL0為為8位計(jì)數(shù)器,位計(jì)數(shù)器,TH0作數(shù)據(jù)緩沖器,作數(shù)據(jù)緩沖器, 可自動裝入時(shí)間常數(shù),產(chǎn)生可自動裝入時(shí)間常數(shù),產(chǎn)生500 s定時(shí)中斷,在中斷服務(wù)程序定時(shí)中斷,在中斷服務(wù)程序中把中把A的內(nèi)容減的內(nèi)容減1,送,送P1口顯示。晶振為口顯示。晶振為6MHz。ORG 000BH DEC A MOV P1, A RETIORG 1000HMOV TMOD ,#02H;方式方式2,定時(shí),定時(shí)MOV TL0, #06HMOV TH0,#06HSETB TR0SETB ET0SETB EASJMP $例例4: 當(dāng)當(dāng)GATE=1, TRx=1,只有只有INTx引腳輸入高電平引腳輸入高
23、電平,Tx才被允才被允許許 計(jì)數(shù),利用計(jì)數(shù),利用GATE此功能,可測試此功能,可測試INTx引腳上正脈沖寬引腳上正脈沖寬度。度。方法:方法:T0從從0計(jì)數(shù)計(jì)數(shù)對對T0初始化初始化GATE=1T0停止計(jì)數(shù)停止計(jì)數(shù)讀讀T0數(shù)值數(shù)值 ORG 1000H MOV TMOD,#09H; MOV TL0,#00H MOV TH0,#00HL1:JB P3.2,L1 ; SETB TR0L2:JNB P3.2,L2L3:JB P3.2,L3 CLR TR0 MOV R0,TL0 MOV R1,TH0等待等待INT0腳為低電平腳為低電平;等待;等待INT0腳升高腳升高;等待;等待INT0腳下降腳下降例例5:
24、設(shè)設(shè)T0工作于方式工作于方式3,TL0 ,TH0為兩個(gè)獨(dú)立的為兩個(gè)獨(dú)立的8位計(jì)數(shù)器,位計(jì)數(shù)器,分別產(chǎn)生分別產(chǎn)生250 s和和500 s定時(shí)中斷,使定時(shí)中斷,使P1.1和和P1.2產(chǎn)生產(chǎn)生500 s和和1000 s的方波,晶振為的方波,晶振為12MHz。(兩種方法)(兩種方法)ORG 000BHMOV TL0,#83HCPL P1.1RETIORG 001BHMOV TH0,#06HCPL P1.2RETI256-125=83HTL0256-250=06HTH0ORG 1000HMOV TMOD,#03HMOV TL0,#83HMOV TH0,#06HSETB TR0SETB TR1SETB E
25、T0SETB ET1SETB EASJMP $串行口串行口一、串行通信的基本概念通信:CPU與外界的信息交換。通信的基本方式通信的基本方式: :串行通信和并行通信串行通信和并行通信并行通信并行通信: :數(shù)據(jù)的各位同時(shí)傳送數(shù)據(jù)的各位同時(shí)傳送. .特點(diǎn)特點(diǎn): :傳送速度快傳送速度快, ,但若距離遠(yuǎn)但若距離遠(yuǎn), ,位數(shù)又多時(shí)位數(shù)又多時(shí), ,會導(dǎo)致通會導(dǎo)致通信線路復(fù)雜且成本高信線路復(fù)雜且成本高, ,不適宜遠(yuǎn)距離傳送不適宜遠(yuǎn)距離傳送. .串行通信串行通信: :數(shù)據(jù)一位接一位的順序傳送數(shù)據(jù)一位接一位的順序傳送. .特點(diǎn)特點(diǎn): :通信線路簡單通信線路簡單, ,只要一根傳輸線就可實(shí)現(xiàn)通信只要一根傳輸線就可實(shí)現(xiàn)
26、通信, ,成成本低本低, ,特別適用于遠(yuǎn)距離通信特別適用于遠(yuǎn)距離通信, ,傳輸速度慢傳輸速度慢. .串行通信與并行通信串行通信與并行通信串行通信串行通信串行通信分為異步傳送和同步傳送串行通信分為異步傳送和同步傳送.1、異步傳送、異步傳送:數(shù)據(jù)在線路上的傳送不連續(xù)數(shù)據(jù)在線路上的傳送不連續(xù).傳送時(shí)傳送時(shí),數(shù)據(jù)以一個(gè)字符為單位進(jìn)行傳送數(shù)據(jù)以一個(gè)字符為單位進(jìn)行傳送.在異步傳送時(shí),在異步傳送時(shí),對字符必須規(guī)定一定的格式,以利于接收方判別對字符必須規(guī)定一定的格式,以利于接收方判別何時(shí)有字符送來及何時(shí)是一個(gè)新的字符的開始。何時(shí)有字符送來及何時(shí)是一個(gè)新的字符的開始。一個(gè)字符又稱為一幀信息一個(gè)字符又稱為一幀信息
27、. .一幀信息由起始位一幀信息由起始位, ,數(shù)數(shù)據(jù)位據(jù)位, ,奇偶校驗(yàn)位和停止位奇偶校驗(yàn)位和停止位4 4個(gè)部分組成個(gè)部分組成. .起始位為低電平起始位為低電平(0),(0),占一位占一位. .D D0 0D D1 1D D2 2D D3 3D D4 4D D5 5D D6 6D D7 7起始位數(shù)據(jù)位停止位0111 起始位后面為起始位后面為58個(gè)信息位,數(shù)據(jù)發(fā)送時(shí)總是個(gè)信息位,數(shù)據(jù)發(fā)送時(shí)總是低位在前,高位在后。低位在前,高位在后。 數(shù)據(jù)位后的數(shù)據(jù)位后的1位為奇偶校驗(yàn)位位為奇偶校驗(yàn)位(選配選配).最后是停止位最后是停止位,它用高電平它用高電平(信號信號1)來表示一幀來表示一幀信息的結(jié)束信息的結(jié)束,
28、可以是可以是1位位, 1.5位位, 2位位.異步傳送中異步傳送中,字符間隔不固定字符間隔不固定,在停止位后可以在停止位后可以加空閑位加空閑位,空閑位用高電平表示空閑位用高電平表示,用于等待傳送用于等待傳送.波特率波特率:數(shù)據(jù)的傳送速率數(shù)據(jù)的傳送速率,即每秒傳送的二進(jìn)制數(shù)的位數(shù)即每秒傳送的二進(jìn)制數(shù)的位數(shù).其單位為其單位為bps(bits per second)。)。它是衡量串行數(shù)它是衡量串行數(shù)據(jù)速度快慢的重要指標(biāo)據(jù)速度快慢的重要指標(biāo) 。波特率一個(gè)字符的二進(jìn)制編碼位數(shù)波特率一個(gè)字符的二進(jìn)制編碼位數(shù) 字符字符/秒秒例:在異步串行通信中,傳送一個(gè)字符包括例:在異步串行通信中,傳送一個(gè)字符包括12位(一
29、位(一個(gè)起始位,個(gè)起始位,8個(gè)數(shù)據(jù)位,個(gè)數(shù)據(jù)位,2個(gè)停止位,一個(gè)校驗(yàn)位),個(gè)停止位,一個(gè)校驗(yàn)位),其傳輸速率是其傳輸速率是1200b/s,每秒鐘所能傳送的字符數(shù)是:每秒鐘所能傳送的字符數(shù)是:1200/(1+8+2+1)=100個(gè),即字符速率是個(gè),即字符速率是100字符字符/秒秒.標(biāo)準(zhǔn)波特率:標(biāo)準(zhǔn)波特率: 110、300、600、1200、1800、2400、4800、9600、14.4Kbps、19.2Kbps、28.8Kbps、33.6Kbps、56Kbps 異步串行通信注意事項(xiàng)異步串行通信注意事項(xiàng)1、字符格式、字符格式:通信雙方要事先約定字符通信雙方要事先約定字符的編碼格式的編碼格式,奇偶
30、校驗(yàn)格式及起始位和停奇偶校驗(yàn)格式及起始位和停止位的規(guī)定止位的規(guī)定.2、波特率、波特率:接收方和發(fā)送方的波特率接收方和發(fā)送方的波特率保持一致保持一致.同步傳送同步傳送同步傳送時(shí)是按數(shù)據(jù)塊傳送的,把傳送的字符順同步傳送時(shí)是按數(shù)據(jù)塊傳送的,把傳送的字符順序地連接起來,組成數(shù)據(jù)塊。在數(shù)據(jù)塊前面加上序地連接起來,組成數(shù)據(jù)塊。在數(shù)據(jù)塊前面加上特殊的同步字符,作為數(shù)據(jù)塊的起始符號,在數(shù)特殊的同步字符,作為數(shù)據(jù)塊的起始符號,在數(shù)據(jù)塊的后面加上校驗(yàn)字符用于校驗(yàn)通信中的錯(cuò)誤。據(jù)塊的后面加上校驗(yàn)字符用于校驗(yàn)通信中的錯(cuò)誤。在同步通信中字符之間沒有空閑位,通信效率比在同步通信中字符之間沒有空閑位,通信效率比較高。較高。
31、若數(shù)據(jù)塊之間有時(shí)間間隔若數(shù)據(jù)塊之間有時(shí)間間隔, ,則發(fā)送同步字符填充則發(fā)送同步字符填充. . 串行通信的數(shù)據(jù)傳送方向串行通信的數(shù)據(jù)傳送方向1、單工方式、單工方式2、半雙工方式:采用一條數(shù)據(jù)線。、半雙工方式:采用一條數(shù)據(jù)線。3、全雙工方式:采用兩條數(shù)據(jù)線。、全雙工方式:采用兩條數(shù)據(jù)線。MCS-51單片機(jī)串行口單片機(jī)串行口51單片機(jī)內(nèi)部有一個(gè)功能很強(qiáng)的全雙工串單片機(jī)內(nèi)部有一個(gè)功能很強(qiáng)的全雙工串行口行口,可同時(shí)接受和發(fā)送數(shù)據(jù)可同時(shí)接受和發(fā)送數(shù)據(jù),接收和發(fā)送數(shù)接收和發(fā)送數(shù)據(jù)均可工作在查詢方式或中斷方式據(jù)均可工作在查詢方式或中斷方式.8051串行口的內(nèi)部有數(shù)據(jù)接收緩沖器和數(shù)串行口的內(nèi)部有數(shù)據(jù)接收緩沖器和
32、數(shù)據(jù)發(fā)送緩沖器。數(shù)據(jù)接收緩沖器只能讀出不據(jù)發(fā)送緩沖器。數(shù)據(jù)接收緩沖器只能讀出不能寫入,數(shù)據(jù)發(fā)送緩沖器只能寫入不能讀出,能寫入,數(shù)據(jù)發(fā)送緩沖器只能寫入不能讀出,這兩個(gè)數(shù)據(jù)緩沖器都用符號這兩個(gè)數(shù)據(jù)緩沖器都用符號SBUF來表示,來表示,地址都是地址都是99H。MCS-51串行口結(jié)構(gòu)串行口結(jié)構(gòu)一、串行口控制寄存器一、串行口控制寄存器SCON特殊功能寄存器特殊功能寄存器SCON存放串行口的控制和狀存放串行口的控制和狀態(tài)信息,地址為態(tài)信息,地址為98H,具有位尋址功能。串行具有位尋址功能。串行口用定時(shí)器作為波特率發(fā)生器??谟枚〞r(shí)器作為波特率發(fā)生器。 D7D6D5D4D3D2D1D0SM0SM1SM2REN
33、TB8RB8TIRI特殊功能寄存器SCONSM0 SM1SM0 ,SM1為串行口工作方式選擇位。為串行口工作方式選擇位。SM0SM1方式功能000移位寄存器輸入/輸出方式(波特率為fosc/12 )0118位UART方式,波特率可變(T1溢出率/n)1029位UART方式,波特率fosc/64或fosc/321139位UART方式,波特率可變(T1溢出率/n)注:UART為通用的異步接收/發(fā)送器特殊功能寄存器特殊功能寄存器PCON PCON主要是為主要是為CHMOS型單片機(jī)的電源控制型單片機(jī)的電源控制設(shè)置的專用寄存器,單元地址為設(shè)置的專用寄存器,單元地址為87H,不能位不能位尋址。尋址。 SM
34、OD:波特率選擇位。在方式波特率選擇位。在方式1、方式、方式2和和方式方式3時(shí),串行通信的波特率和時(shí),串行通信的波特率和SMOD有關(guān)。有關(guān)。當(dāng)當(dāng)SMOD=1時(shí),通信波特率乘以時(shí),通信波特率乘以2;否則波特;否則波特率不變。率不變。SMODIDLPDGF0GF1PCOND7D6D5D4D3D2D1D0字節(jié)地址97H波特率計(jì)算波特率計(jì)算串行通信波特率的計(jì)算:串行通信波特率的計(jì)算:方式方式 0:移位寄存器方式。:移位寄存器方式。波特率波特率= fosc/12方式方式 2:9位位UART。波特率波特率= 2SMOD fosc/64方式方式 1、3:8、9位位UART。都是由定時(shí)器都是由定時(shí)器1作為串行
35、口波特率發(fā)生器,作為串行口波特率發(fā)生器,由其溢出率決定。由其溢出率決定。波特率波特率=( 2SMOD /32)()(定時(shí)器定時(shí)器1溢出率)溢出率))初值21(12322波特率的波特率綜合公式為:3和1對于串行口方式8,2定時(shí)器方式16,1定時(shí)器方式13,0定時(shí)器方式的位數(shù):1為定時(shí)器式中)初值21(12定時(shí)器溢出率modkoscskoscfkkkkf當(dāng)定時(shí)器1工作于方式2時(shí):波特率波特率= ( 2SMOD /32) (fosc/12)/(256TH1)串行口工作方式串行口工作方式一、方式一、方式0 方式方式0為同步移位寄存器方式,其波特為同步移位寄存器方式,其波特率固定,為率固定,為fosc/
36、12,數(shù)據(jù)由,數(shù)據(jù)由RXD(P3.0腳)腳)端出入,同步移位脈沖由端出入,同步移位脈沖由TXD(P3.1腳)端腳)端輸出,發(fā)送、接收的是輸出,發(fā)送、接收的是8位數(shù)據(jù),低位在先位數(shù)據(jù),低位在先, ,高位在后高位在后。1 1、發(fā)送。執(zhí)行任何一條將、發(fā)送。執(zhí)行任何一條將SBUFSBUF作為目的寄存作為目的寄存器的指令時(shí),數(shù)據(jù)開始從器的指令時(shí),數(shù)據(jù)開始從RXDRXD端串行發(fā)送,其端串行發(fā)送,其波特率為振蕩頻率的波特率為振蕩頻率的1/121/12。方式。方式0 0發(fā)送時(shí)的如發(fā)送時(shí)的如圖圖4 41313所示。所示。在寫信號有效后,相隔一個(gè)機(jī)器周期,發(fā)送控制端在寫信號有效后,相隔一個(gè)機(jī)器周期,發(fā)送控制端SE
37、NDSEND有效有效(高電平),允許(高電平),允許RXDRXD發(fā)送數(shù)據(jù),同時(shí),允許從發(fā)送數(shù)據(jù),同時(shí),允許從TXDTXD端輸出移端輸出移位脈沖,位脈沖,1 1幀(即幀(即8 8位)數(shù)據(jù)發(fā)送完畢時(shí),各控制端均恢復(fù)原位)數(shù)據(jù)發(fā)送完畢時(shí),各控制端均恢復(fù)原狀態(tài),只有狀態(tài),只有TITI保持高電平,呈中斷申請狀態(tài)。保持高電平,呈中斷申請狀態(tài)。要再次發(fā)送數(shù)要再次發(fā)送數(shù)據(jù)時(shí),必須用軟件將據(jù)時(shí),必須用軟件將TITI清零。清零。寫寫入入S SB BU UF FS SE EN ND D(發(fā)發(fā)送送開開始始)R RX XD D(數(shù)數(shù)據(jù)據(jù)輸輸出出)T TX XD D(移移位位脈脈沖沖)T TI I(中中斷斷標(biāo)標(biāo)志志)D
38、D0 0D D1 1D D2 2D D3 3D D4 4D D5 5D D6 6D D7 7(a a)圖413方式0同步移位寄存器發(fā)送2 2、接收。在滿足、接收。在滿足REN=1REN=1和和RI=0RI=0的條件下,就會啟動一次接收過的條件下,就會啟動一次接收過程。此時(shí),程。此時(shí),RXDRXD為串行輸入端,為串行輸入端,TXDTXD為同步脈沖輸出端。串行接為同步脈沖輸出端。串行接收的波特率也為振蕩頻率的收的波特率也為振蕩頻率的1/121/12。其時(shí)序如圖。其時(shí)序如圖4 41414所示。所示。同樣,當(dāng)接收完一幀數(shù)據(jù)后,控制信號復(fù)位,只有同樣,當(dāng)接收完一幀數(shù)據(jù)后,控制信號復(fù)位,只有RIRI仍保持
39、高仍保持高電平,呈中斷申請狀態(tài)。再次接收時(shí),必須通過軟件清零。電平,呈中斷申請狀態(tài)。再次接收時(shí),必須通過軟件清零。R RE EC CE EI IV VE E(接接收收開開始始)R RX XD D(數(shù)數(shù)據(jù)據(jù)輸輸出出)T TX XD D(移移位位脈脈沖沖)(b b)D D0 0D D1 1D D2 2D D3 3D D4 4D D5 5D D6 6D D7 7寫寫S SC CO ON N( (清清R RI I) )R RI I( (中中斷斷標(biāo)標(biāo)志志) )圖414方式0同步移位寄存器接收二、方式二、方式1 1在方式在方式1 1狀態(tài)下,串行口為狀態(tài)下,串行口為8 8位異步通信接口。一幀信息為位異步通信
40、接口。一幀信息為1010位,包括位,包括1 1位起始位(位起始位(0 0),),8 8位數(shù)據(jù)位(低位在先)和位數(shù)據(jù)位(低位在先)和1 1位停位停止位(止位(1 1)。)。TXDTXD為發(fā)送端,為發(fā)送端,RXDRXD為接收端。波特率不變。為接收端。波特率不變。1 1、發(fā)送。串行口以方式、發(fā)送。串行口以方式1 1發(fā)送時(shí),數(shù)據(jù)由發(fā)送時(shí),數(shù)據(jù)由TXDTXD端輸出,端輸出,CPUCPU執(zhí)執(zhí)行一條寫入行一條寫入SBUFSBUF的指令后,便啟動串行口發(fā)送,發(fā)送完一幀的指令后,便啟動串行口發(fā)送,發(fā)送完一幀信息時(shí),發(fā)送中斷標(biāo)志置信息時(shí),發(fā)送中斷標(biāo)志置1 1,其時(shí)序如圖,其時(shí)序如圖4 41515所示。所示。寫入S
41、BUF寫入SBUFSEND(發(fā)送開始)SEND(發(fā)送開始)TXD(數(shù)據(jù)輸出)TXD(數(shù)據(jù)輸出)D0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D70 01 1TI(中斷標(biāo)志)TI(中斷標(biāo)志)(a)(a)起始位起始位停止位停止位圖415方式1發(fā)送2 2、接收。方式、接收。方式1 1的接收時(shí)序如圖的接收時(shí)序如圖4 41616所示。所示。 數(shù)據(jù)從數(shù)據(jù)從RXD端輸入。當(dāng)允許輸入位端輸入。當(dāng)允許輸入位REN置置1后,接收后,接收器便以波特率的器便以波特率的16倍速率采樣倍速率采樣RXD端電平,當(dāng)采樣到端電平,當(dāng)采樣到1至至0的跳變時(shí),啟動接收器接收,并復(fù)位內(nèi)部的的跳變時(shí),啟動接收器接收,并復(fù)
42、位內(nèi)部的16分頻計(jì)數(shù)分頻計(jì)數(shù)器,以實(shí)現(xiàn)同步。計(jì)數(shù)器的器,以實(shí)現(xiàn)同步。計(jì)數(shù)器的16個(gè)狀態(tài)把個(gè)狀態(tài)把1位時(shí)間等分成位時(shí)間等分成16份,并在第份,并在第7、8、9個(gè)計(jì)數(shù)狀態(tài)時(shí),采樣個(gè)計(jì)數(shù)狀態(tài)時(shí),采樣RXD電平。電平。因此,每一位的數(shù)值采樣三次,至少兩次相同的因此,每一位的數(shù)值采樣三次,至少兩次相同的值才被確認(rèn)。在起始位,如果接收到的值不是值才被確認(rèn)。在起始位,如果接收到的值不是0 0,則起始位無效,復(fù)位接收電路。在檢測到一個(gè)則起始位無效,復(fù)位接收電路。在檢測到一個(gè)1 1到到0 0的跳變時(shí),再重新啟動接收器,如果接收值的跳變時(shí),再重新啟動接收器,如果接收值為為0 0,起始位有效,則開始接收本幀的其余信息。,起始位有效,則開始接收本幀的其余信息。在在RI=0RI=0的情況下,接收到停止位為的情況下,接收到停止位為1 1(或(或SM2=0SM2=0)時(shí),將停止位送入時(shí),將停止位送入RB8RB8,8 8位數(shù)據(jù)進(jìn)入接收緩沖器位數(shù)據(jù)進(jìn)入接收緩沖器SBUFSBUF,并置并置RI=1RI=1中斷標(biāo)志。中斷標(biāo)志。4.2.4 串行口應(yīng)用舉例串行口應(yīng)用舉例例例3 3:下圖為單片機(jī)與:下圖為單片機(jī)與PCPC機(jī)原理示意圖。本例主要機(jī)原理示意圖。本例主要完成以下幾個(gè)通信功能:完成以下幾個(gè)通信功能:a.a.通信波特率設(shè)為通信波特率設(shè)為48004800(1 1個(gè)起始位、個(gè)起始位、1 1個(gè)停止位個(gè)停止位及無校驗(yàn)位)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度水性涂料生產(chǎn)與銷售合作協(xié)議3篇
- 2025年度知識產(chǎn)權(quán)許可合同的執(zhí)行細(xì)則6篇
- 家庭廚房裝修設(shè)計(jì)與健康生活理念結(jié)合
- 2025年度茶葉大宗購銷合作合同(仙毫茶專供)
- 多學(xué)科混合型實(shí)驗(yàn)樓的建設(shè)策略及前期工作指導(dǎo)
- 二零二五年度室內(nèi)籃球場恒溫恒濕施工與體育設(shè)備配套合同3篇
- 二零二五年度跨境電商貨物保險(xiǎn)合同規(guī)范范本3篇
- 實(shí)驗(yàn)室數(shù)據(jù)安全與隱私保護(hù)的信息化管理
- 個(gè)人短期租車協(xié)議范例2024年版版B版
- 2024高效軟件銷售協(xié)議模板匯編版B版
- 2025年湖北黃石市大冶市中小企業(yè)融資擔(dān)保有限責(zé)任公司招聘筆試參考題庫附帶答案詳解
- 2025年包鋼(集團(tuán))公司新員工招聘【941人】高頻重點(diǎn)提升(共500題)附帶答案詳解
- 《義務(wù)教育法解讀》課件
- 山東省濟(jì)南市2023-2024學(xué)年高一上學(xué)期期末考試生物試題(解析版)
- 鋼結(jié)構(gòu)施工管理培訓(xùn)課件
- 2025年工程春節(jié)停工期間安全措施
- 【頭頸】頸動脈CTA及MRA評價(jià)課件
- 寒假安全教育
- 2024年度工程建設(shè)項(xiàng)目安全評價(jià)合同2篇
- 《飛機(jī)操縱面》課件
- 電力行業(yè)安全風(fēng)險(xiǎn)管理措施
評論
0/150
提交評論