【大學(xué)課件】MCS51單片機(jī)的功能模塊P157_第1頁
【大學(xué)課件】MCS51單片機(jī)的功能模塊P157_第2頁
【大學(xué)課件】MCS51單片機(jī)的功能模塊P157_第3頁
【大學(xué)課件】MCS51單片機(jī)的功能模塊P157_第4頁
【大學(xué)課件】MCS51單片機(jī)的功能模塊P157_第5頁
已閱讀5頁,還剩152頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、5.1 mcs-51單片機(jī)并行單片機(jī)并行i/o口口5.2 mcs-51單片機(jī)中斷系統(tǒng)單片機(jī)中斷系統(tǒng)5.3 mcs-51單片機(jī)定時(shí)器單片機(jī)定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器5.4 mcs-51單片機(jī)串行接口單片機(jī)串行接口5.5 思考與練習(xí)題思考與練習(xí)題http:/ mcs-51單片機(jī)的功能模塊單片機(jī)的功能模塊主要內(nèi)容:主要內(nèi)容:介紹介紹5151系列單片機(jī)主要內(nèi)部功能模塊:系列單片機(jī)主要內(nèi)部功能模塊:有并行有并行i/oi/o口、中斷系統(tǒng)、定時(shí)口、中斷系統(tǒng)、定時(shí)/ /計(jì)數(shù)器和串行接口。計(jì)數(shù)器和串行接口。 要求:要求: 1 1、掌握、掌握5151系列單片機(jī)的各功能模塊的結(jié)構(gòu)和工作系列單片機(jī)的各功能模塊的結(jié)構(gòu)和工作原

2、理;原理; 2 2、各模塊應(yīng)用程序的編寫。、各模塊應(yīng)用程序的編寫。http:/ mcs-51單片機(jī)單片機(jī)并行并行i/o口口 i/oi/o口的作用:口的作用:v1 1 實(shí)現(xiàn)實(shí)現(xiàn)cpucpu與外設(shè)間的速度匹配;與外設(shè)間的速度匹配;v2 2 改變數(shù)據(jù)的傳送方式(并行、串行);改變數(shù)據(jù)的傳送方式(并行、串行);v3 3 改變信號(hào)的性質(zhì)(改變信號(hào)的性質(zhì)(a/da/d)和信號(hào)的電平()和信號(hào)的電平(ttlttl電平與電平與rs232rs232電平)電平)外設(shè)的編址:外設(shè)的編址:v獨(dú)立編址獨(dú)立編址 編址范圍編址范圍0000h0ffffh0000h0ffffh,有專有的傳送指,有專有的傳送指令;令;v與存儲(chǔ)器

3、統(tǒng)一編址與存儲(chǔ)器統(tǒng)一編址 編址范圍編址范圍0ff00h0ffffh0ff00h0ffffh,傳送指,傳送指令令 movx amovx a,dptr movx dptrdptr movx dptr,a ahttp:/ mcs-51單片機(jī)單片機(jī)并行并行i/o口口 i/o i/o 數(shù)據(jù)的四種傳送方式數(shù)據(jù)的四種傳送方式v無條件傳送(同步傳送)無條件傳送(同步傳送)v條件傳送(異步傳送)條件傳送(異步傳送)v中斷傳送中斷傳送vdmadma傳送傳送http:/ mcs-51單片機(jī)單片機(jī)并行并行i/o口口 vmcs-51mcs-51單片機(jī)具有單片機(jī)具有4 4個(gè)雙向的個(gè)雙向的8 8位位i/oi/o口口p0p3

4、p0p3,p0p0口為口為三態(tài)雙向口,負(fù)載能力為三態(tài)雙向口,負(fù)載能力為8 8個(gè)個(gè)ttlttl電路,電路,p1p3p1p3口為準(zhǔn)口為準(zhǔn)雙向口雙向口( (用作輸入時(shí),口線被拉成高電平,故稱為準(zhǔn)用作輸入時(shí),口線被拉成高電平,故稱為準(zhǔn)雙向口雙向口) ),負(fù)載能力為,負(fù)載能力為4 4個(gè)個(gè)ttlttl電路。電路。v各口中的每一位都是由鎖存器(稱特殊功能寄存器各口中的每一位都是由鎖存器(稱特殊功能寄存器sfrsfr)、輸出驅(qū)動(dòng)器和輸入緩沖器組成。這種結(jié)構(gòu),)、輸出驅(qū)動(dòng)器和輸入緩沖器組成。這種結(jié)構(gòu),在數(shù)據(jù)輸出時(shí)可鎖存,但對輸入信息是不鎖存的,所在數(shù)據(jù)輸出時(shí)可鎖存,但對輸入信息是不鎖存的,所以從外部輸入的信息必

5、須保持到取數(shù)指令執(zhí)行完為止。以從外部輸入的信息必須保持到取數(shù)指令執(zhí)行完為止。 http:/ p05.1.1 p0口口 p0p0口是一個(gè)三態(tài)雙向口,在系統(tǒng)擴(kuò)展時(shí),口是一個(gè)三態(tài)雙向口,在系統(tǒng)擴(kuò)展時(shí),可作為低可作為低8 8位地址線和數(shù)據(jù)總線的分時(shí)復(fù)用口,位地址線和數(shù)據(jù)總線的分時(shí)復(fù)用口,在其他狀態(tài)下可作為通用在其他狀態(tài)下可作為通用i/oi/o接口,其接口,其1 1位的結(jié)構(gòu)位的結(jié)構(gòu)原理如圖原理如圖5.15.1所示,所示,p0p0口由口由8 8個(gè)這樣的電路組成。個(gè)這樣的電路組成。 http:/ p05.1.1 p0口口 圖圖5.1http:/ p05.1.1 p0口口 p0p0口是一個(gè)多功能口是一個(gè)多功能

6、8 8位口,可以字節(jié)訪問,也可位口,可以字節(jié)訪問,也可位訪問,字節(jié)訪問地址為位訪問,字節(jié)訪問地址為80h80h,位訪問地址為,位訪問地址為80h87h80h87h。(1) p0(1) p0口用于口用于i/oi/o口是準(zhǔn)雙向口是準(zhǔn)雙向i/oi/o口。口。 作為作為i/oi/o口使用時(shí),控制信號(hào)應(yīng)為口使用時(shí),控制信號(hào)應(yīng)為“0 0”,多路,多路開關(guān)接通輸出鎖存器的開關(guān)接通輸出鎖存器的 端。同時(shí)與門關(guān)閉,上拉端。同時(shí)與門關(guān)閉,上拉fetfet截止,形成截止,形成p0p0口的輸出電路為漏極開路輸出。需口的輸出電路為漏極開路輸出。需要外接上拉電阻。要外接上拉電阻。a)a)作輸出口時(shí):作輸出口時(shí): 不需要條

7、件,可以正確的輸出不需要條件,可以正確的輸出b)b)作輸入口時(shí):作輸入口時(shí):當(dāng)當(dāng)cpucpu復(fù)位后進(jìn)行輸入操作時(shí),輸入信息是正確的。復(fù)位后進(jìn)行輸入操作時(shí),輸入信息是正確的。 當(dāng)當(dāng)p0p0口的某位(或整個(gè)口的某位(或整個(gè)p0p0口)先進(jìn)行了輸出操作,口)先進(jìn)行了輸出操作,而后要由輸出變成輸入操作方式時(shí),必須先用輸出而后要由輸出變成輸入操作方式時(shí),必須先用輸出指令將鎖存器置指令將鎖存器置“1 1”,才能保證輸入信息正確。,才能保證輸入信息正確。 (即是準(zhǔn)雙向的含義)(即是準(zhǔn)雙向的含義)qhttp:/ p05.1.1 p0口口(2 2)p0p0口用于地址口用于地址/ /數(shù)據(jù)分時(shí)復(fù)用時(shí)是真正雙向數(shù)據(jù)分

8、時(shí)復(fù)用時(shí)是真正雙向i/oi/o口。口。當(dāng)控制當(dāng)控制=1=1時(shí),時(shí),muxmux接通地址接通地址/ /數(shù)據(jù)輸出端。數(shù)據(jù)輸出端。a)a)當(dāng)?shù)刂樊?dāng)?shù)刂? /數(shù)據(jù)輸出線置數(shù)據(jù)輸出線置1 1時(shí),時(shí),“與與”門輸出為門輸出為1 1,上拉,上拉fetfet導(dǎo)通,同時(shí)地址導(dǎo)通,同時(shí)地址/ /數(shù)據(jù)輸出通過反相器輸出數(shù)據(jù)輸出通過反相器輸出0 0,控,控制下拉制下拉fetfet截止,這樣截止,這樣a a點(diǎn)電位上拉,地址點(diǎn)電位上拉,地址/ /數(shù)據(jù)輸出數(shù)據(jù)輸出線為線為1 1。b)b)當(dāng)?shù)刂樊?dāng)?shù)刂? /數(shù)據(jù)輸出線置數(shù)據(jù)輸出線置0 0時(shí),時(shí),“與與”門輸出為門輸出為0 0,上拉,上拉fetfet截止,同時(shí)地址截止,同時(shí)地址

9、/ /數(shù)據(jù)輸出通過反相器輸出數(shù)據(jù)輸出通過反相器輸出1 1,控,控制下拉制下拉fetfet導(dǎo)通,這樣導(dǎo)通,這樣a a點(diǎn)電位下拉,地址點(diǎn)電位下拉,地址/ /數(shù)據(jù)輸出數(shù)據(jù)輸出線為線為0 0。輸入數(shù)據(jù),控制輸入數(shù)據(jù),控制=0=0,分析同(,分析同(1 1)中的輸入中的第一種)中的輸入中的第一種情況。情況。 通過上述分析可以看出,此時(shí)的輸出狀態(tài)隨地址通過上述分析可以看出,此時(shí)的輸出狀態(tài)隨地址/ /數(shù)據(jù)數(shù)據(jù)線而變。因此,線而變。因此,p0p0口可以作為地址口可以作為地址/ /數(shù)據(jù)復(fù)用總線使數(shù)據(jù)復(fù)用總線使用(需要加地址鎖存器)。此時(shí)的用(需要加地址鎖存器)。此時(shí)的p0p0口相當(dāng)一個(gè)雙口相當(dāng)一個(gè)雙向口。向口。

10、http:/ p15.1.2 p1口口vp1p1口是一個(gè)口是一個(gè)8 8位口,可以字節(jié)也可按位訪問,位口,可以字節(jié)也可按位訪問,其字節(jié)地址為其字節(jié)地址為90h90h,位訪問地址為,位訪問地址為90h97h90h97h。vp1p1口是一個(gè)準(zhǔn)雙向口是一個(gè)準(zhǔn)雙向i/oi/o口,其口,其1 1位的內(nèi)部結(jié)位的內(nèi)部結(jié)構(gòu)如圖構(gòu)如圖5.25.2所示。所示。http:/ p15.1.2 p1口口圖圖5.2http:/ p15.1.2 p1口口 它在結(jié)構(gòu)上與p0口的區(qū)別在于輸出驅(qū)動(dòng)部分,其輸出驅(qū)動(dòng)部分由場效應(yīng)管v1與內(nèi)部上拉電阻組成。當(dāng)其某位輸出為1時(shí),使輸出驅(qū)動(dòng)器中的場效應(yīng)管截止,該位的輸出由內(nèi)部等效的上拉電阻拉

11、成高電平,輸出1。當(dāng)輸出為0時(shí),輸出場效應(yīng)管導(dǎo)通則輸出引腳為低電平,輸出為0。不必像p0口那樣需要外接上拉電阻。http:/ p15.1.2 p1口口v在8051/80c51單片機(jī)中,p1口只有通用i/o接口一種功能,它的每一位可以分別定義為輸入或輸出,其輸入輸出原理特性與p0口作為通用i/o接口使用時(shí)一樣。p1口具有驅(qū)動(dòng)4個(gè)lsttl負(fù)載的能力。v在8052/80c52單片機(jī)中,p1口p1.0與p1.1除作為通用i/o接口線外,還具有第二功能,即p1.0可作為定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)脈沖輸入端t2,p1.1可作為定時(shí)器/計(jì)數(shù)器2的外部控制輸入端t2ex。http:/ p25.1.3 p2口

12、口 p2口也是一個(gè)準(zhǔn)雙向i/o口,其1位內(nèi)部結(jié)構(gòu)見圖5.3。在訪問外部存儲(chǔ)器時(shí),p2口作為高8位地址輸出口,在其他時(shí)候作為一般i/o接口使用。http:/ p25.1.3 p2口口圖圖5.3http:/ p25.1.3 p2口口v當(dāng)作為準(zhǔn)雙向通用i/o口使用時(shí),控制信號(hào)為低電平無效,多路轉(zhuǎn)換器mux接通鎖存器q端,鎖存器q端經(jīng)反相器3接控制場效應(yīng)管v1,其工作原理與p1相同,負(fù)載能力也與p1相同。v當(dāng)作為外部擴(kuò)展存儲(chǔ)器的高8位地址總線使用時(shí),控制信號(hào)應(yīng)為高電平“1”有效,多路轉(zhuǎn)換開關(guān)mux接通地址信號(hào),來自程序計(jì)數(shù)器pc的高8位地址pch,或數(shù)據(jù)指針dptr的高8位地址dph經(jīng)反相器3和v1反

13、相后復(fù)原在p2.x口的引腳上,輸出高8位地址a8a15。在上述情況下,口鎖存器的內(nèi)容不受影響,所以,取指或訪問外部存儲(chǔ)器結(jié)束后,由于轉(zhuǎn)換開關(guān)又接至左側(cè),使輸出驅(qū)動(dòng)器與鎖存器q端相連,引腳上將恢復(fù)原來的數(shù)據(jù)。http:/ p35.1.4 p3口口 p3口是一個(gè)多功能的8位口,可以字節(jié)訪問也可位訪問,其字節(jié)訪問地址為b0h,位訪問地址為b0hb7h。p3p3口的功能:口的功能: (1)可作i/o口使用,為準(zhǔn)雙向口。這方面的功能與p1口一樣。 (2)每一位均具有第2功能。 http:/ p35.1.4 p3口口圖圖5.4http:/ p35.1.4 p3口口v當(dāng)p3口作為通用i/o接口時(shí),要求第2功

14、能輸出線保持高電平,使與非門3的輸出取決于口鎖存器的狀態(tài)。在這種情況下,p3口仍是1個(gè)準(zhǔn)雙向口,它的工作方式、負(fù)載能力均與p1、p2口相同。 v當(dāng)p3口作為第2功能(各引腳功能見表5.1)使用時(shí)就不能再做通用輸出口使用,其鎖存器q端必須為高電平,以允許第2功能輸出,在做第2功能輸入時(shí),雖仍做通用輸入口,但已無實(shí)際意義。 http:/ 5.1.5 接口的使用原則接口的使用原則1. i/o1. i/o接口的讀、寫、修改接口的讀、寫、修改每個(gè)每個(gè)i/oi/o口均有兩種口均有兩種“讀讀”方式:讀引腳和讀鎖方式:讀引腳和讀鎖存器。存器。讀引腳:讀引腳:是讀外部接口的電平信號(hào),讀引腳信號(hào)是讀外部接口的電平

15、信號(hào),讀引腳信號(hào)有效。真正讀引腳的指令只有有效。真正讀引腳的指令只有 mov amov a,pxpx讀鎖存器讀鎖存器:是將接口鎖存器的:是將接口鎖存器的q q端信號(hào)讀回,寫端信號(hào)讀回,寫鎖存器信號(hào)有效。鎖存器信號(hào)有效。 讀鎖存器指令主要用于讀讀鎖存器指令主要用于讀修改修改寫指令。寫指令。如下列這些指令:如下列這些指令:如:如: orl orl 、xrl xrl 、jbc jbc 、cpl cpl 、inc inc 、dec dec 、djnz djnz 、mov px ,y mov px ,y 、 clr px.yclr px.y和和set px.yset px.y。http:/ 5.1.5

16、接口的使用原則接口的使用原則2. 使用原則vmcs-51單片機(jī)中的4個(gè)i/o口在實(shí)際使用中,一般遵循以下用法:p0口一般做系統(tǒng)擴(kuò)展地址低8位/數(shù)據(jù)復(fù)用口,p1口一般做i/o擴(kuò)展口,p2口做系統(tǒng)擴(kuò)展地址高8位和i/o口擴(kuò)展的地址譯碼用,p3口做中斷輸入、串行通用口使用。v在各個(gè)口的帶負(fù)載能力和接口要求上,由于p0口的輸出級與p1p3口的輸出級在結(jié)構(gòu)上不同,所以,要求也不同。p0口的每一位可驅(qū)動(dòng)8個(gè)ttl輸入,在做通用i/o口使用時(shí),輸出級是開漏電路,故需外部加上拉電阻。在做地址/數(shù)據(jù)總線使用時(shí),不需要外接上拉電阻。p1p3的輸出級內(nèi)部有高效的上拉電阻,每一位輸出可驅(qū)動(dòng)4個(gè)ttl輸入。http:/

17、 接口的使用原則接口的使用原則http:/ mcs-515.2 mcs-51單片機(jī)中斷系統(tǒng)單片機(jī)中斷系統(tǒng) 5.2 mcs-515.2 mcs-51單片機(jī)中斷系統(tǒng)單片機(jī)中斷系統(tǒng)一、中斷的基本概念一、中斷的基本概念“中斷中斷”是處理事件的一個(gè)是處理事件的一個(gè)“過程過程”,這一,這一過程一般是由計(jì)算機(jī)內(nèi)部或外部某種緊急事件引過程一般是由計(jì)算機(jī)內(nèi)部或外部某種緊急事件引起并向主機(jī)發(fā)出請求處理的信號(hào),主機(jī)在允許情起并向主機(jī)發(fā)出請求處理的信號(hào),主機(jī)在允許情況下響應(yīng)請求,暫停正在執(zhí)行的程序,保存好況下響應(yīng)請求,暫停正在執(zhí)行的程序,保存好“斷點(diǎn)斷點(diǎn)”處的現(xiàn)場,轉(zhuǎn)去執(zhí)行中斷處理程序,處理處的現(xiàn)場,轉(zhuǎn)去執(zhí)行中斷處理

18、程序,處理完后恢復(fù)現(xiàn)場,自動(dòng)返回到原斷點(diǎn)處,繼續(xù)執(zhí)行完后恢復(fù)現(xiàn)場,自動(dòng)返回到原斷點(diǎn)處,繼續(xù)執(zhí)行原程序。這一處理過程就稱為原程序。這一處理過程就稱為“中斷中斷”。 http:/ mcs-515.2 mcs-51單片機(jī)中斷系統(tǒng)單片機(jī)中斷系統(tǒng)中斷程序與子程序的區(qū)別:中斷程序與子程序的區(qū)別:調(diào)用中斷服務(wù)程序的過程類似于調(diào)用子程序,調(diào)用中斷服務(wù)程序的過程類似于調(diào)用子程序,其區(qū)別在于調(diào)用子程序在程序中是事先安排其區(qū)別在于調(diào)用子程序在程序中是事先安排好的,而何時(shí)調(diào)用中斷服務(wù)程序事先卻無法好的,而何時(shí)調(diào)用中斷服務(wù)程序事先卻無法確定,因?yàn)榇_定,因?yàn)椤爸袛嘀袛唷钡陌l(fā)生是由外部因素決的發(fā)生是由外部因素決定的,程序中

19、無法事先安排調(diào)用指令,因此,定的,程序中無法事先安排調(diào)用指令,因此,調(diào)用中斷服務(wù)程序的過程是由硬件自動(dòng)完成調(diào)用中斷服務(wù)程序的過程是由硬件自動(dòng)完成的。的。http:/ 中斷的基本概念圖圖5.5 中斷執(zhí)行過程中斷執(zhí)行過程http:/ 1. 中斷源:中斷源就是中斷請求信號(hào)的來源。中斷源:中斷源就是中斷請求信號(hào)的來源。2. 2. 中斷響應(yīng)與返回中斷響應(yīng)與返回3. 3. 優(yōu)先級控制優(yōu)先級控制圖圖5.6 二級中斷嵌套的中斷過程二級中斷嵌套的中斷過程5.2.1 中斷的基本概念http:/ 中斷源和中斷請求標(biāo)志中斷源和中斷請求標(biāo)志 中斷源是指在計(jì)算機(jī)系統(tǒng)中向中斷源是指在計(jì)算機(jī)系統(tǒng)中向cpucpu發(fā)出中斷請發(fā)出

20、中斷請求的來源求的來源, , 中斷可以人為設(shè)定中斷可以人為設(shè)定, , 也可以是為響應(yīng)也可以是為響應(yīng)突發(fā)性隨機(jī)事件而設(shè)置。通常有突發(fā)性隨機(jī)事件而設(shè)置。通常有i/oi/o設(shè)備、實(shí)時(shí)設(shè)備、實(shí)時(shí)控制系統(tǒng)中的隨機(jī)參數(shù)和信息故障源等??煞譃榭刂葡到y(tǒng)中的隨機(jī)參數(shù)和信息故障源等??煞譃橥獠恐袛嗪蛢?nèi)部中斷。外部中斷和內(nèi)部中斷。5.2.2 中斷源和中斷請求標(biāo)志http:/ 中斷源和中斷請求標(biāo)志圖圖5.7 5.7 中斷系統(tǒng)結(jié)構(gòu)中斷系統(tǒng)結(jié)構(gòu)http:/ 1”或或“0 0”,進(jìn)而控制外,進(jìn)而控制外中斷請求信號(hào)方式。可以使用字節(jié)操指令,也可用位操作指令:中斷請求信號(hào)方式??梢允褂米止?jié)操指令,也可用位操作指令:clr it

21、0 clr it0 ; 定義外中斷定義外中斷0 0為電平觸發(fā)方式。為電平觸發(fā)方式。orl tcon orl tcon ,#05h#05h; 定義兩外中斷均為脈沖觸發(fā)方式定義兩外中斷均為脈沖觸發(fā)方式5.2.2 中斷源和中斷請求標(biāo)志1 1外部中斷外部中斷由由p3.2p3.2、 p3.3p3.3輸入中斷請求信號(hào),外部中斷請求有兩種觸發(fā)方式:輸入中斷請求信號(hào),外部中斷請求有兩種觸發(fā)方式:電平觸發(fā)及邊沿觸發(fā)電平觸發(fā)及邊沿觸發(fā)。用戶可以通過對特殊功能寄存器。用戶可以通過對特殊功能寄存器tcontcon中中it0it0和和it1it1位的編程來選擇。相應(yīng)位定義格式如下:位的編程來選擇。相應(yīng)位定義格式如下:

22、0int1inthttp:/ (硬件置硬件置位、硬件復(fù)位位、硬件復(fù)位) ) ie0(ie1)=1 ie0(ie1)=1,表示,表示 ( )( )檢測到有效檢測到有效的中斷請求信號(hào);的中斷請求信號(hào); ie0(ie1)=0ie0(ie1)=0,表示,表示 ( )( )上無有效的上無有效的中斷請求信號(hào)。中斷請求信號(hào)。0int1int0int1int5.2.2 中斷源和中斷請求標(biāo)志http:/ 2內(nèi)部中斷內(nèi)部中斷內(nèi)部中斷有:內(nèi)部中斷有:定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器t0/t1t0/t1的溢出中斷,的溢出中斷,串行口的發(fā)送串行口的發(fā)送/ /接收中斷。接收中斷。 t0/t1t0/t1的溢出中斷標(biāo)志位的溢出

23、中斷標(biāo)志位tf0tf0、 tf1tf1 :對外部脈沖計(jì):對外部脈沖計(jì)數(shù)由數(shù)由p3.4 p3.4 、p3.5p3.5輸入脈沖信號(hào)。當(dāng)輸入脈沖信號(hào)。當(dāng)t0/t1t0/t1計(jì)數(shù)到由全計(jì)數(shù)到由全1 1變變?yōu)槿珵槿? 0時(shí),由時(shí),由硬件自動(dòng)置位硬件自動(dòng)置位tcontcon的的tf0tf0或或tf1tf1,向,向cpucpu申請申請中斷。中斷。 cpucpu響應(yīng)中斷后能自動(dòng)撤除中斷請求信號(hào)響應(yīng)中斷后能自動(dòng)撤除中斷請求信號(hào)( (硬件復(fù)硬件復(fù)位位) )。 5.2.2 中斷源和中斷請求標(biāo)志http:/ 串行口的中斷標(biāo)志位串行口的中斷標(biāo)志位ti ti 、riri :當(dāng)串行口發(fā)送完或接:當(dāng)串行口發(fā)送完或接收完一幀信

24、息后,通過接口硬件收完一幀信息后,通過接口硬件自動(dòng)置位自動(dòng)置位sconscon的的titi或或riri位向位向cpucpu申請的。當(dāng)申請的。當(dāng)cpucpu響應(yīng)中斷后,需用戶采用響應(yīng)中斷后,需用戶采用軟件方軟件方法清零法清零,以便撤除中斷請求信號(hào)。,以便撤除中斷請求信號(hào)。5.2.2 中斷源和中斷請求標(biāo)志http:/ 0。riri:串行口接收中斷源。接收完一幀,由:串行口接收中斷源。接收完一幀,由硬件置位硬件置位。響應(yīng)。響應(yīng)中斷后,必須用中斷后,必須用軟件清軟件清0 0。5.2.2 中斷源和中斷請求標(biāo)志http:/ 中斷系統(tǒng)控制中斷系統(tǒng)控制1 1中斷允許控制寄存器中斷允許控制寄存器 mcs-51m

25、cs-51單片機(jī)對各中斷源的中斷開放單片機(jī)對各中斷源的中斷開放( (允許允許) )或關(guān)閉或關(guān)閉( (屏屏蔽蔽) )是由內(nèi)部的中斷允許寄存器是由內(nèi)部的中斷允許寄存器ieie的各位來進(jìn)行兩級控制的各位來進(jìn)行兩級控制的。所謂兩級控制是指各個(gè)中斷源的允許控制位與一個(gè)中的。所謂兩級控制是指各個(gè)中斷源的允許控制位與一個(gè)中斷允許總控位斷允許總控位eaea配合實(shí)現(xiàn)對中斷請求的控制。配合實(shí)現(xiàn)對中斷請求的控制。 eaea(ie.7ie.7):允許禁止全部中斷。當(dāng):允許禁止全部中斷。當(dāng)ea=0ea=0,則禁止所有,則禁止所有中斷的響應(yīng);當(dāng)中斷的響應(yīng);當(dāng)eaea1 1,則各中斷源的響應(yīng)與否取決于各,則各中斷源的響應(yīng)與

26、否取決于各自的中斷控制位的狀態(tài)。自的中斷控制位的狀態(tài)。5.2.3 中斷系統(tǒng)控制http:/ 中斷系統(tǒng)控制 x(ie.6x(ie.6):保留位,無意義。):保留位,無意義。et2(ie.5et2(ie.5):定時(shí)計(jì)數(shù)器:定時(shí)計(jì)數(shù)器2 2(80528052型單片機(jī))的溢出或捕型單片機(jī))的溢出或捕獲中斷響應(yīng)控制位。獲中斷響應(yīng)控制位。et2=0et2=0則禁止中斷響應(yīng)(關(guān)中斷);則禁止中斷響應(yīng)(關(guān)中斷);et2=1et2=1為允許中斷響應(yīng)(開中斷)。為允許中斷響應(yīng)(開中斷)。eses(ie.4ie.4):串行通信接收發(fā)送中斷響應(yīng)控制位。:串行通信接收發(fā)送中斷響應(yīng)控制位。eses0 0,禁止中斷響應(yīng)(關(guān)

27、中斷),禁止中斷響應(yīng)(關(guān)中斷) ; es=1es=1,允許中斷響應(yīng),允許中斷響應(yīng)(開中斷)(開中斷) 。etieti(ie.3, ie.1 ie.3, ie.1 ):定時(shí)器計(jì)數(shù)器:定時(shí)器計(jì)數(shù)器i(i=0i(i=0、1)1)的溢出的溢出中斷響應(yīng)控制位。中斷響應(yīng)控制位。eti=0eti=0,禁止中斷響應(yīng)(關(guān)中斷),禁止中斷響應(yīng)(關(guān)中斷) ;eti=1eti=1,則允許中斷響應(yīng)(開中斷),則允許中斷響應(yīng)(開中斷) 。exiexi(ie.2 ie.2 、ie.0 ie.0 ):外部中斷:外部中斷i i( )中斷響應(yīng)控制)中斷響應(yīng)控制位。位。 exi=0exi=0,禁止中斷響應(yīng)(關(guān)中斷),禁止中斷響應(yīng)(

28、關(guān)中斷) ; exi=1exi=1則允則允許中斷響應(yīng)(開中斷)許中斷響應(yīng)(開中斷) 。iinthttp:/ 中斷系統(tǒng)控制例如例如: :要使要使int0int0開中開中( (其余關(guān)中其余關(guān)中) ),可執(zhí)行下列指令:,可執(zhí)行下列指令: mov iemov ie,#1000000lb #1000000lb ; 或者:或者: setb ea setb ea ; setb ex0 setb ex0 ; http:/ 中斷系統(tǒng)控制 2 2中斷優(yōu)先級控制中斷優(yōu)先級控制 cpucpu同一時(shí)間只能響應(yīng)一個(gè)中斷請求。若同時(shí)來了兩同一時(shí)間只能響應(yīng)一個(gè)中斷請求。若同時(shí)來了兩個(gè)或兩個(gè)以上中斷請求,就必須有先有后。個(gè)或兩

29、個(gè)以上中斷請求,就必須有先有后。mcs-51mcs-51單片機(jī)單片機(jī)的中斷源有兩個(gè)用戶可控的中斷優(yōu)先級,即的中斷源有兩個(gè)用戶可控的中斷優(yōu)先級,即高、低中斷優(yōu)高、低中斷優(yōu)先級先級,從而實(shí)現(xiàn)中斷嵌套。,從而實(shí)現(xiàn)中斷嵌套。http:/ 中斷系統(tǒng)控制cpucpu響應(yīng)中斷的原則是:響應(yīng)中斷的原則是:1 1)先高后低)先高后低 如果多個(gè)中斷請求同時(shí)出現(xiàn),如果多個(gè)中斷請求同時(shí)出現(xiàn),cpucpu首先響應(yīng)優(yōu)先級別最首先響應(yīng)優(yōu)先級別最高的中斷請求;高的中斷請求;2 2)高可斷低)高可斷低 高優(yōu)先級的中斷請求可中斷正在執(zhí)行的低優(yōu)先級中斷服高優(yōu)先級的中斷請求可中斷正在執(zhí)行的低優(yōu)先級中斷服務(wù)程序,實(shí)現(xiàn)中斷嵌套;務(wù)程序,

30、實(shí)現(xiàn)中斷嵌套;3 3)同低不斷)同低不斷 同級或低優(yōu)先級的中斷請求不能中斷正在執(zhí)行的中斷服同級或低優(yōu)先級的中斷請求不能中斷正在執(zhí)行的中斷服務(wù)程序。如果有兩個(gè)或兩個(gè)以上的同一優(yōu)先級別的中斷源務(wù)程序。如果有兩個(gè)或兩個(gè)以上的同一優(yōu)先級別的中斷源同時(shí)向同時(shí)向cpucpu申請中斷,則這些同級中斷源的中斷優(yōu)先權(quán)按申請中斷,則這些同級中斷源的中斷優(yōu)先權(quán)按cpucpu對內(nèi)部硬件的查詢次序決定對內(nèi)部硬件的查詢次序決定 。http:/ 中斷系統(tǒng)控制ipip寄存器的格式如下:寄存器的格式如下: ( (可通過軟件設(shè)置,定義各中斷可通過軟件設(shè)置,定義各中斷源的中斷優(yōu)先級別源的中斷優(yōu)先級別) )、(ip.6ip.6、ip

31、.7ip.7):保留位,無定義。):保留位,無定義。pt2pt2(ip.5ip.5):t2t2的中斷優(yōu)先級設(shè)置位。通過編程設(shè)置的中斷優(yōu)先級設(shè)置位。通過編程設(shè)置 pt2=1pt2=1,則定義為高優(yōu)先級中斷;設(shè)置,則定義為高優(yōu)先級中斷;設(shè)置pt2=0pt2=0,則定,則定義為低優(yōu)先級中斷。義為低優(yōu)先級中斷。psps(ip.4ip.4):串行通信中斷優(yōu)先級設(shè)置位。軟件設(shè)置:串行通信中斷優(yōu)先級設(shè)置位。軟件設(shè)置 ps=1ps=1,則定義為高優(yōu)先級中斷;設(shè),則定義為高優(yōu)先級中斷;設(shè)ps=0ps=0,則定義為,則定義為低優(yōu)先級中斷。低優(yōu)先級中斷。http:/ 中斷系統(tǒng)控制ptipti(ip.3ip.3、ip

32、.1ip.1):titi中斷優(yōu)先級設(shè)置位。軟件設(shè)中斷優(yōu)先級設(shè)置位。軟件設(shè)置置pti=1pti=1,則定義為高優(yōu)先級中斷;設(shè)置,則定義為高優(yōu)先級中斷;設(shè)置pti=0pti=0,則定義為低優(yōu)先級中斷。則定義為低優(yōu)先級中斷。 pxipxi(ip.2ip.2、ip.0ip.0):外部中斷:外部中斷i i中斷優(yōu)先級設(shè)置位。中斷優(yōu)先級設(shè)置位。軟件設(shè)置軟件設(shè)置pxi=1pxi=1,則定義為高優(yōu)先級中斷;設(shè)置,則定義為高優(yōu)先級中斷;設(shè)置pxi=0pxi=0,則定義為低優(yōu)先級中斷。,則定義為低優(yōu)先級中斷。例如例如:若要將若要將int1int1、串行口設(shè)置為高優(yōu)先級,其余中斷、串行口設(shè)置為高優(yōu)先級,其余中斷源設(shè)置

33、為低優(yōu)先級,可執(zhí)行下列指令:源設(shè)置為低優(yōu)先級,可執(zhí)行下列指令: mov ipmov ip,#00010100b#00010100b;http:/ 中斷系統(tǒng)控制 當(dāng)同時(shí)有兩個(gè)或兩個(gè)以上優(yōu)先級相同的中斷請求時(shí),當(dāng)同時(shí)有兩個(gè)或兩個(gè)以上優(yōu)先級相同的中斷請求時(shí),則由內(nèi)部按查詢優(yōu)先順序來確定該響應(yīng)的中斷請求,其優(yōu)則由內(nèi)部按查詢優(yōu)先順序來確定該響應(yīng)的中斷請求,其優(yōu)先順序由高向低順序排列。優(yōu)先順序排列如下:先順序由高向低順序排列。優(yōu)先順序排列如下: 中斷優(yōu)先原則:中斷優(yōu)先原則:1 1、低級不打斷高級、低級不打斷高級2 2、高級不睬低級、高級不睬低級3 3、同級不能打斷、同級不能打斷4 4、同級、同時(shí)中斷,、同

34、級、同時(shí)中斷,事先約定。事先約定。 http:/ 中斷處理過程四、四、 中斷處理過程中斷處理過程中斷處理過程大致可分為四步:中斷請求、中斷響中斷處理過程大致可分為四步:中斷請求、中斷響應(yīng)、中斷服務(wù)、中斷返回。應(yīng)、中斷服務(wù)、中斷返回。1. 1. 中斷請求中斷請求 中斷源發(fā)出中斷請求信號(hào),相應(yīng)的中斷請求標(biāo)志位中斷源發(fā)出中斷請求信號(hào),相應(yīng)的中斷請求標(biāo)志位( (在中在中斷允許控制寄存器斷允許控制寄存器ieie中中) )置置“1 1”。http:/ 中斷處理過程2 2中斷響應(yīng)中斷響應(yīng)1)1)響應(yīng)的條件響應(yīng)的條件 cpucpu在每個(gè)機(jī)器周期的在每個(gè)機(jī)器周期的s6s6按照優(yōu)先級查詢按照優(yōu)先級查詢中斷標(biāo)志位,

35、當(dāng)相應(yīng)中斷源有中斷請求且滿足如下條件之中斷標(biāo)志位,當(dāng)相應(yīng)中斷源有中斷請求且滿足如下條件之一時(shí),一時(shí),msc-51msc-51單片機(jī)響應(yīng)中斷。單片機(jī)響應(yīng)中斷。(1)(1)無同級或高級中斷正在處理或無同級或高級中斷正在處理或cpucpu處在非中斷響應(yīng)狀態(tài),處在非中斷響應(yīng)狀態(tài),cpucpu處于開中斷處于開中斷( (即即ea=1)ea=1)狀態(tài)且相應(yīng)中斷是開放的狀態(tài)且相應(yīng)中斷是開放的( (中斷允中斷允許寄存器許寄存器ieie相應(yīng)位置相應(yīng)位置1)1)。(2)(2)若若cpucpu正在響應(yīng)某一中斷請求時(shí)又來了新的中斷請求,正在響應(yīng)某一中斷請求時(shí)又來了新的中斷請求,則應(yīng)滿足高級中斷可以中斷低級中斷,實(shí)現(xiàn)中斷

36、嵌套;低則應(yīng)滿足高級中斷可以中斷低級中斷,實(shí)現(xiàn)中斷嵌套;低級中斷只能等待現(xiàn)有中斷服務(wù)完成后再被響應(yīng)的原則。級中斷只能等待現(xiàn)有中斷服務(wù)完成后再被響應(yīng)的原則。(3)(3)若若cpucpu現(xiàn)行執(zhí)行的指令為現(xiàn)行執(zhí)行的指令為retireti或任何訪問或任何訪問ieie、ip(ip(如如setb ea)setb ea)的指令時(shí),則執(zhí)行完該指令且緊隨其后的另一的指令時(shí),則執(zhí)行完該指令且緊隨其后的另一條指令也已執(zhí)行完畢后才響應(yīng)該中斷請求。條指令也已執(zhí)行完畢后才響應(yīng)該中斷請求。http:/ 中斷處理過程2)2)中斷響應(yīng)過程中斷響應(yīng)過程 首先首先,根據(jù)中斷源的優(yōu)先級高低,對相應(yīng)的優(yōu)先級狀,根據(jù)中斷源的優(yōu)先級高低,

37、對相應(yīng)的優(yōu)先級狀態(tài)觸發(fā)器置態(tài)觸發(fā)器置1 1; 然后然后,保護(hù)斷點(diǎn),把當(dāng)前程序計(jì)數(shù)器,保護(hù)斷點(diǎn),把當(dāng)前程序計(jì)數(shù)器pcpc的內(nèi)容壓入堆的內(nèi)容壓入堆棧。棧。 其次其次,封鎖同級和低級中斷,以防在響應(yīng)中斷期間受其,封鎖同級和低級中斷,以防在響應(yīng)中斷期間受其他中斷的干擾,清除相應(yīng)的中斷請求標(biāo)志位(串行口中斷他中斷的干擾,清除相應(yīng)的中斷請求標(biāo)志位(串行口中斷請求標(biāo)志請求標(biāo)志riri和和titi除外)除外) ; 最后最后,根據(jù)中斷源入口地址,轉(zhuǎn)入執(zhí)行相應(yīng)中斷服務(wù)程,根據(jù)中斷源入口地址,轉(zhuǎn)入執(zhí)行相應(yīng)中斷服務(wù)程序,各中斷服務(wù)程序的入口地址見表序,各中斷服務(wù)程序的入口地址見表5.15.1。 http:/ 中斷處理

38、過程中斷源入口地址int00003ht0000bhint10013ht1001bhri/ti0023h表表5.1 5.1 中斷源入口地址中斷源入口地址http:/ 中斷處理過程3)3)中斷響應(yīng)時(shí)間中斷響應(yīng)時(shí)間 所謂中斷響應(yīng)時(shí)間是指所謂中斷響應(yīng)時(shí)間是指cpucpu檢測到中斷請求信號(hào)到轉(zhuǎn)檢測到中斷請求信號(hào)到轉(zhuǎn)入中斷服務(wù)程序入口所需要的機(jī)器周期數(shù)。入中斷服務(wù)程序入口所需要的機(jī)器周期數(shù)。 mcs-51mcs-51單片機(jī)響應(yīng)中斷的最短時(shí)間為單片機(jī)響應(yīng)中斷的最短時(shí)間為3 3個(gè)機(jī)器周期,個(gè)機(jī)器周期,時(shí)間最長需要時(shí)間最長需要8 8個(gè)機(jī)器周期。個(gè)機(jī)器周期。 http:/ 中斷處理過程3 3 執(zhí)行中斷服務(wù)程序執(zhí)行

39、中斷服務(wù)程序 中斷服務(wù)程序應(yīng)包含以下幾部分:中斷服務(wù)程序應(yīng)包含以下幾部分: 保護(hù)現(xiàn)場:保護(hù)現(xiàn)場: 中斷時(shí)刻單片機(jī)存儲(chǔ)單元中的數(shù)據(jù)或狀態(tài)中斷時(shí)刻單片機(jī)存儲(chǔ)單元中的數(shù)據(jù)或狀態(tài). . (2)(2)允許中斷和禁止中斷允許中斷和禁止中斷 在在cpucpu執(zhí)行當(dāng)前中斷服務(wù)程序的過程中,往往又會(huì)執(zhí)行當(dāng)前中斷服務(wù)程序的過程中,往往又會(huì) 有其它中斷源的中斷請求出現(xiàn)。有其它中斷源的中斷請求出現(xiàn)。 (3)(3)執(zhí)行中斷服務(wù)程序主體,完成相應(yīng)操作執(zhí)行中斷服務(wù)程序主體,完成相應(yīng)操作 (4)(4)恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場http:/ 中斷處理過程4 4 中斷返回中斷返回 在中斷服務(wù)程序最后,必須安排一條中斷返回指令在中斷服務(wù)程序

40、最后,必須安排一條中斷返回指令retireti,當(dāng),當(dāng)cpucpu執(zhí)行執(zhí)行retireti指令后,自動(dòng)完成下列操作:指令后,自動(dòng)完成下列操作: 恢復(fù)斷點(diǎn)地址。恢復(fù)斷點(diǎn)地址。 開放同級中斷,以便允許同級中斷源請求中斷。開放同級中斷,以便允許同級中斷源請求中斷。http:/ 中斷請求的撤除五、中斷請求的撤除五、中斷請求的撤除 中斷源發(fā)出中斷請求,相應(yīng)中斷請求標(biāo)志置中斷源發(fā)出中斷請求,相應(yīng)中斷請求標(biāo)志置“1 1”。 cpucpu響應(yīng)中斷后,響應(yīng)中斷后,必須必須清除中斷請求清除中斷請求“1 1”標(biāo)志。否則中斷標(biāo)志。否則中斷響應(yīng)返回后,將再次進(jìn)入該中斷,引起死循環(huán)出錯(cuò)。響應(yīng)返回后,將再次進(jìn)入該中斷,引起

41、死循環(huán)出錯(cuò)。 對定時(shí)對定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器t0t0、t1t1中斷,外中斷邊沿觸發(fā)方式,中斷,外中斷邊沿觸發(fā)方式,cpucpu響應(yīng)中斷時(shí)就用響應(yīng)中斷時(shí)就用硬件自動(dòng)清除硬件自動(dòng)清除了相應(yīng)的中斷請求標(biāo)志。了相應(yīng)的中斷請求標(biāo)志。 對外中斷電平觸發(fā)方式,需要采取對外中斷電平觸發(fā)方式,需要采取軟硬結(jié)合軟硬結(jié)合的方法消除的方法消除后果。后果。 對串行口中斷,用戶應(yīng)在串行中斷服務(wù)程序中用對串行口中斷,用戶應(yīng)在串行中斷服務(wù)程序中用軟件清軟件清除除titi或或riri。http:/ 中斷的應(yīng)用及編程六、中斷的應(yīng)用及編程六、中斷的應(yīng)用及編程 中斷初始化中斷初始化 設(shè)置堆棧指針設(shè)置堆棧指針spsp 定義中斷優(yōu)先級定

42、義中斷優(yōu)先級 定義外中斷觸發(fā)方式定義外中斷觸發(fā)方式 開放中斷開放中斷 安排好等待中斷或中斷發(fā)生前主程序應(yīng)完安排好等待中斷或中斷發(fā)生前主程序應(yīng)完成的操作內(nèi)容。成的操作內(nèi)容。http:/ 中斷的應(yīng)用及編程 中斷服務(wù)主程序中斷服務(wù)主程序 在中斷服務(wù)入口地址設(shè)置一條跳轉(zhuǎn)指令,轉(zhuǎn)在中斷服務(wù)入口地址設(shè)置一條跳轉(zhuǎn)指令,轉(zhuǎn)移到中斷服務(wù)程序的實(shí)際入口處。移到中斷服務(wù)程序的實(shí)際入口處。 根據(jù)需要保護(hù)現(xiàn)場。根據(jù)需要保護(hù)現(xiàn)場。 中斷源請求中斷服務(wù)要求的操作。中斷源請求中斷服務(wù)要求的操作。 恢復(fù)現(xiàn)場。與保護(hù)現(xiàn)場相對應(yīng),注意先進(jìn)后恢復(fù)現(xiàn)場。與保護(hù)現(xiàn)場相對應(yīng),注意先進(jìn)后出、后進(jìn)先出操作原則。出、后進(jìn)先出操作原則。 中斷返回

43、,最后一條指令必須是中斷返回,最后一條指令必須是retireti。http:/ 中斷的應(yīng)用及編程例例5-15-1 若要求外部中斷若要求外部中斷 引腳為邊沿觸發(fā)方式,以及處引腳為邊沿觸發(fā)方式,以及處于高中斷優(yōu)先級,編寫中斷系統(tǒng)初始化程序。于高中斷優(yōu)先級,編寫中斷系統(tǒng)初始化程序。解:解:程序的編制有兩種方法,一種是采用位操作指令進(jìn)行程序的編制有兩種方法,一種是采用位操作指令進(jìn)行編制,另一種是字節(jié)型指令編制。程序分別如下。編制,另一種是字節(jié)型指令編制。程序分別如下。方法一:方法一:setb easetb easetbsetbex1ex1; ;開開int1int1中斷中斷setb px1setb px

44、1; ;令令int1int1為高優(yōu)先級為高優(yōu)先級setbsetbit1it1; ;令令int1int1為邊沿觸發(fā)方式為邊沿觸發(fā)方式方法二:方法二:movmovie,ie,#84h#84h; ;開開int1int1中斷中斷orlorlip,ip,#04h#04h; ;令令int1int1為高優(yōu)先級為高優(yōu)先級orl tcon, #04horl tcon, #04h; ;令令int1int1為邊沿觸發(fā)方式為邊沿觸發(fā)方式1inthttp:/ 中斷的應(yīng)用及編程例例5-25-2: 單片機(jī)單片機(jī)通過通過p1p1口以中斷方式向外設(shè)輸出數(shù)據(jù),當(dāng)外設(shè)準(zhǔn)口以中斷方式向外設(shè)輸出數(shù)據(jù),當(dāng)外設(shè)準(zhǔn)備好接收數(shù)據(jù)時(shí),就發(fā)出選通

45、信號(hào),經(jīng)觸發(fā)器和非門至備好接收數(shù)據(jù)時(shí),就發(fā)出選通信號(hào),經(jīng)觸發(fā)器和非門至int0int0,如下圖所示。請編制相應(yīng)程序。如下圖所示。請編制相應(yīng)程序。p1口p3.0qdcp sd外設(shè)選通信號(hào)接地int0數(shù)據(jù)至外設(shè)8031http:/ 中斷的應(yīng)用及編程解解:當(dāng)外設(shè)準(zhǔn)備好接收一個(gè)數(shù)據(jù)后,發(fā)出選通信號(hào),使觸:當(dāng)外設(shè)準(zhǔn)備好接收一個(gè)數(shù)據(jù)后,發(fā)出選通信號(hào),使觸發(fā)器輸出高電平后經(jīng)非門至發(fā)器輸出高電平后經(jīng)非門至int0int0引腳,向引腳,向cpucpu發(fā)出中斷請發(fā)出中斷請求,求,cpucpu響應(yīng)這個(gè)中斷請求后,在中斷處理程序中先撤除響應(yīng)這個(gè)中斷請求后,在中斷處理程序中先撤除中斷請求信號(hào),中斷請求信號(hào),( (通過通

46、過p3.0=1p3.0=1,使,使int0=1)int0=1)再由再由p1p1口將單片口將單片機(jī)內(nèi)部的數(shù)據(jù)輸出到外設(shè)。機(jī)內(nèi)部的數(shù)據(jù)輸出到外設(shè)。 org 0000horg 0000hstart: ljmp mainstart: ljmp main org 0003h org 0003h ljmp iint0 ljmp iint0 org 0030h ; org 0030h ;主程序主程序main: clr it0 ;main: clr it0 ;低電平觸發(fā)低電平觸發(fā) setb easetb ea setb ex0 ; setb ex0 ;開中斷開中斷 setb px0setb px0 ;優(yōu)先級設(shè)

47、置;優(yōu)先級設(shè)置 mov dptr, #1000h mov dptr, #1000h ;外設(shè)首地址;外設(shè)首地址 .http:/ 中斷的應(yīng)用及編程 org 0100horg 0100hiint0: iint0: push psw ; push psw ;中斷處理程序中斷處理程序 push accpush acc clr p3.0 clr p3.0 nop nop nop nop setb p3.0 ; setb p3.0 ;撤除撤除int0int0 mov a, p1 ; mov a, p1 ;輸入數(shù)據(jù)輸入數(shù)據(jù) movx dptr, a ;movx dptr, a ;保存數(shù)據(jù)保存數(shù)據(jù) inc dp

48、trinc dptr . . pop acc ; pop acc ;恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場 pop pswpop psw reti ; reti ;返回主程序返回主程序http:/ mcs-515.3 mcs-51單片機(jī)定時(shí)器單片機(jī)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器5.3 mcs-515.3 mcs-51單片機(jī)定時(shí)器單片機(jī)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器軟件定時(shí):循環(huán)程序,定時(shí)準(zhǔn)確,無需硬件電軟件定時(shí):循環(huán)程序,定時(shí)準(zhǔn)確,無需硬件電路,但增加路,但增加cpucpu開銷開銷硬件定時(shí):硬件電路實(shí)現(xiàn),不占用硬件定時(shí):硬件電路實(shí)現(xiàn),不占用cpucpu時(shí)間,時(shí)間,使用不夠方便使用不夠方便可編程定時(shí)可編程定時(shí)/ /計(jì)數(shù)器:對系統(tǒng)

49、計(jì)數(shù)器:對系統(tǒng)時(shí)鐘脈沖時(shí)鐘脈沖的計(jì)數(shù)的計(jì)數(shù)定時(shí),計(jì)數(shù)值通過程序設(shè)定,定時(shí)準(zhǔn)確,使用定時(shí),計(jì)數(shù)值通過程序設(shè)定,定時(shí)準(zhǔn)確,使用靈活方便靈活方便http:/ mcs-515.3 mcs-51單片機(jī)定時(shí)器單片機(jī)定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器 定時(shí)器定時(shí)器/ /計(jì)數(shù)器可以是獨(dú)立的集成芯片,也計(jì)數(shù)器可以是獨(dú)立的集成芯片,也可以構(gòu)成于單片機(jī)內(nèi)部,但無論何種形式都具可以構(gòu)成于單片機(jī)內(nèi)部,但無論何種形式都具有以下共性:有以下共性:1 1、定時(shí)、計(jì)數(shù)器的核心部件是一個(gè)、定時(shí)、計(jì)數(shù)器的核心部件是一個(gè)加加1 1計(jì)數(shù)器計(jì)數(shù)器。兩種工作方式的區(qū)別在于計(jì)數(shù)脈沖來。兩種工作方式的區(qū)別在于計(jì)數(shù)脈沖來源源, ,定時(shí)器定時(shí)器/ /計(jì)數(shù)器

50、可以工作于計(jì)數(shù)方式也可以計(jì)數(shù)器可以工作于計(jì)數(shù)方式也可以工作于定時(shí)方式。書工作于定時(shí)方式。書p81p812 2、定時(shí)器、定時(shí)器/ /計(jì)數(shù)器的計(jì)數(shù)值在范圍內(nèi)是計(jì)數(shù)器的計(jì)數(shù)值在范圍內(nèi)是可變的,這取決于可變的,這取決于計(jì)數(shù)器的位數(shù)計(jì)數(shù)器的位數(shù)。計(jì)數(shù)的最大。計(jì)數(shù)的最大值也就限定了定時(shí)的最大值。書值也就限定了定時(shí)的最大值。書p85p853 3、在到達(dá)設(shè)定的定時(shí)或計(jì)數(shù)值時(shí)發(fā)出、在到達(dá)設(shè)定的定時(shí)或計(jì)數(shù)值時(shí)發(fā)出溢溢出中斷申請出中斷申請,實(shí)現(xiàn)定時(shí)控制。,實(shí)現(xiàn)定時(shí)控制。ppt 5.2ppt 5.2節(jié)節(jié)http:/ mcs-51單片機(jī)定時(shí)器單片機(jī)定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 在在mcs-51mcs-51單片機(jī)內(nèi)部有兩個(gè)單片機(jī)

51、內(nèi)部有兩個(gè)1616位定時(shí)器位定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器t0t0和和t1t1,它們均可作為定時(shí)器或計(jì)數(shù),它們均可作為定時(shí)器或計(jì)數(shù)器使用,均具有器使用,均具有4 4種不同的工作方式,用戶可種不同的工作方式,用戶可通過對特殊功能寄存器的編程,方便地選擇通過對特殊功能寄存器的編程,方便地選擇適當(dāng)?shù)墓ぷ鞣绞郊霸O(shè)定適當(dāng)?shù)墓ぷ鞣绞郊霸O(shè)定t0t0或或t1t1工作于定時(shí)器工作于定時(shí)器還是計(jì)數(shù)器。還是計(jì)數(shù)器。(1 1):何時(shí)控制啟動(dòng)計(jì)數(shù)器?):何時(shí)控制啟動(dòng)計(jì)數(shù)器? 問題:問題: (2 2):如何控制是定時(shí)還是計(jì)數(shù)?):如何控制是定時(shí)還是計(jì)數(shù)?(3 3):如何控制定時(shí)):如何控制定時(shí)/ /計(jì)數(shù)的長短?計(jì)數(shù)的長短?ht

52、tp:/ t0、t1的結(jié)構(gòu)的結(jié)構(gòu)一、t0、t1的結(jié)構(gòu)1 1內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)外部輸入脈沖圖圖5.85.8http:/ 1 1 加法計(jì)數(shù)器的初值可以由程序設(shè)定,設(shè)置的初加法計(jì)數(shù)器的初值可以由程序設(shè)定,設(shè)置的初值不同,加法器達(dá)到溢出所需的計(jì)數(shù)值或定時(shí)值不同,加法器達(dá)到溢出所需的計(jì)數(shù)值或定時(shí)時(shí)間就不同。時(shí)間就不同。 2 2 對定時(shí)器對定時(shí)器/ /計(jì)數(shù)器工作模式、工作方式的設(shè)定計(jì)數(shù)器工作模式、工作方式的設(shè)定及控制是通過方式選擇寄存器及控制是通過方式選擇寄存器tmodtmod和控制寄存和控制寄存器器tcontcon這兩個(gè)特殊功能寄存器來完成的。這兩個(gè)特殊功能寄存器來完成的。 5.3.1 t0、t1的結(jié)構(gòu)的

53、結(jié)構(gòu)http:/ 2定時(shí)器定時(shí)器/ /計(jì)數(shù)器方式選擇寄存器計(jì)數(shù)器方式選擇寄存器tmodtmod 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器t0t0、t1t1都有都有4 4種工作方式,可通過種工作方式,可通過程序?qū)Τ绦驅(qū)modtmod的編程來設(shè)置。其位定義如下:的編程來設(shè)置。其位定義如下:5.3.1 t0、t1的結(jié)構(gòu)的結(jié)構(gòu)http:/ :定時(shí)或計(jì)數(shù)功能選擇位,:定時(shí)或計(jì)數(shù)功能選擇位,“1 1”時(shí)為計(jì)數(shù)方式;時(shí)為計(jì)數(shù)方式;“0 0”時(shí)為定時(shí)方式。時(shí)為定時(shí)方式。m1、m0:定時(shí)器:定時(shí)器/ /計(jì)數(shù)器工作方式選擇位,計(jì)數(shù)器工作方式選擇位,t5.3.1 t0、t1的結(jié)構(gòu)的結(jié)構(gòu)http:/ t0、t1的結(jié)構(gòu)的結(jié)構(gòu)g

54、ate:門控位,用于控制定時(shí)器:門控位,用于控制定時(shí)器/ /計(jì)數(shù)器的啟動(dòng)計(jì)數(shù)器的啟動(dòng)是否受外部引腳中斷請求信號(hào)的影響。是否受外部引腳中斷請求信號(hào)的影響。當(dāng)當(dāng)gate=0gate=0時(shí),時(shí),trx=1trx=1,啟動(dòng),啟動(dòng)txtx計(jì)數(shù);計(jì)數(shù);trx=0trx=0,停止,停止txtx計(jì)數(shù)。計(jì)數(shù)。當(dāng)當(dāng)gate=1gate=1時(shí),僅當(dāng)時(shí),僅當(dāng)trx=1trx=1且且 =1=1時(shí),才允許時(shí),才允許txtx計(jì)數(shù),該位由軟件進(jìn)行設(shè)置。計(jì)數(shù),該位由軟件進(jìn)行設(shè)置。 gate=0 trx=1gate=0 trx=1 一般情況下,選用該方法一般情況下,選用該方法 xinthttp:/ 3定時(shí)器定時(shí)器/ /計(jì)數(shù)器控制

55、寄存器計(jì)數(shù)器控制寄存器tcontcontf0(tf1):t0(t1)t0(t1)溢出中斷標(biāo)志位。當(dāng)溢出中斷標(biāo)志位。當(dāng)t0/t1t0/t1啟動(dòng)計(jì)數(shù)啟動(dòng)計(jì)數(shù)后,從初值開始加后,從初值開始加1 1計(jì)數(shù),當(dāng)計(jì)數(shù),當(dāng)t0(t1)t0(t1)計(jì)數(shù)溢出時(shí),由硬件計(jì)數(shù)溢出時(shí),由硬件將該位置位,并在允許中斷的情況下,向?qū)⒃撐恢梦?,并在允許中斷的情況下,向cpucpu發(fā)出中斷請發(fā)出中斷請求信號(hào),求信號(hào),cpucpu響應(yīng)中斷轉(zhuǎn)向中斷服務(wù)程序時(shí),由硬件自動(dòng)響應(yīng)中斷轉(zhuǎn)向中斷服務(wù)程序時(shí),由硬件自動(dòng)將該位清零,將該位清零,tf0(tf1)tf0(tf1)也可以由程序查詢或清零。也可以由程序查詢或清零。5.3.1 t0、t1

56、的結(jié)構(gòu)的結(jié)構(gòu)http:/ t0、t1的結(jié)構(gòu)的結(jié)構(gòu)tr0(tr1)tr0(tr1):t0(t1)t0(t1)運(yùn)行控制位。運(yùn)行控制位。當(dāng)當(dāng)gate=0gate=0時(shí),時(shí),trx=1trx=1,啟動(dòng),啟動(dòng)txtx計(jì)數(shù);計(jì)數(shù);trx=0trx=0,停,停止計(jì)數(shù)。止計(jì)數(shù)。當(dāng)當(dāng)gate=1gate=1時(shí),僅當(dāng)時(shí),僅當(dāng)trx=1trx=1且且 =1=1時(shí),才允許時(shí),才允許txtx計(jì)數(shù),該位由軟件進(jìn)行設(shè)置。計(jì)數(shù),該位由軟件進(jìn)行設(shè)置??刂谱种衅溆嘤糜诳刂谱种衅溆嘤糜?中斷控制。中斷控制。xintxinthttp:/ t0、t1的的4種工作方式種工作方式 二、二、t0t0、t1t1的的4 4種工作方式種工作方式

57、t0t0和和t1t1都具有都具有4 4種工作方式,當(dāng)工作于方式種工作方式,當(dāng)工作于方式0 0、1 1、2 2時(shí),時(shí),t0t0和和t1t1功能相同,但工作在功能相同,但工作在3 3時(shí),時(shí),其功能不同。下面分別介紹這其功能不同。下面分別介紹這4 4種工作方式。種工作方式。1 1工作方式工作方式0 0(m1m0=00m1m0=00) 定時(shí)定時(shí)/ /計(jì)數(shù)方式計(jì)數(shù)方式0 0是是1313位計(jì)數(shù)器,即位計(jì)數(shù)器,即thxthx高高8 8位位( (作計(jì)數(shù)器作計(jì)數(shù)器) )和和tlxtlx的低的低5 5位位(32(32分頻的定標(biāo)器分頻的定標(biāo)器) )構(gòu)成,構(gòu)成, tlxtlx的高的高3 3位未用。位未用。(x=0(x

58、=0或或1)1) 計(jì)數(shù)時(shí),計(jì)數(shù)時(shí),tlxtlx的低的低5 5位溢出后向位溢出后向thxthx進(jìn)位,進(jìn)位, thxthx溢出后將溢出后將tfxtfx置位,并向置位,并向cpucpu申請中斷。申請中斷。http:/ 5.9 定時(shí)定時(shí)/ /計(jì)數(shù)方式計(jì)數(shù)方式0 0:1313位計(jì)數(shù)器示意圖位計(jì)數(shù)器示意圖5.3.2 t0、t1的的4種工作方式種工作方式http:/ 2工作方式工作方式1 (m1m0=01)1 (m1m0=01) 由由thxthx和和tlxtlx組成組成1616位計(jì)數(shù)器。其組成結(jié)構(gòu)與定位計(jì)數(shù)器。其組成結(jié)構(gòu)與定時(shí)計(jì)數(shù)方式時(shí)計(jì)數(shù)方式0 0完全相同,但計(jì)數(shù)范圍比定時(shí)計(jì)完全相同,但計(jì)數(shù)范圍比定時(shí)計(jì)數(shù)

59、方式數(shù)方式0 0擴(kuò)大了很多。擴(kuò)大了很多。 計(jì)數(shù)信號(hào)從計(jì)數(shù)信號(hào)從tlxtlx的低位輸入,計(jì)數(shù)每溢出一次,的低位輸入,計(jì)數(shù)每溢出一次,thxthx計(jì)數(shù)器加計(jì)數(shù)器加1 1。當(dāng)。當(dāng)1616位由全位由全“1 1”變成全變成全“0 0”時(shí),最時(shí),最高位產(chǎn)生溢出,置位高位產(chǎn)生溢出,置位tfxtfx,向主機(jī)請求中斷,向主機(jī)請求中斷。圖圖5.10 5.10 定時(shí)計(jì)數(shù)方式定時(shí)計(jì)數(shù)方式1 1:1616位計(jì)數(shù)器示意圖位計(jì)數(shù)器示意圖5.3.2 t0、t1的的4種工作方式種工作方式http:/ t0、t1的的4種工作方式種工作方式模式模式0 0、1 1的特點(diǎn):的特點(diǎn):v1313位和位和1616位的計(jì)數(shù)器模式。位的計(jì)數(shù)器模

60、式。v啟動(dòng)后,從某一個(gè)初值的基礎(chǔ)上進(jìn)行啟動(dòng)后,從某一個(gè)初值的基礎(chǔ)上進(jìn)行“加一加一”計(jì)數(shù)。當(dāng)計(jì)到計(jì)數(shù)。當(dāng)計(jì)到“全全”時(shí)再來時(shí)再來一個(gè)計(jì)數(shù)脈沖,計(jì)數(shù)器就會(huì)產(chǎn)生一個(gè)一個(gè)計(jì)數(shù)脈沖,計(jì)數(shù)器就會(huì)產(chǎn)生一個(gè)“溢出溢出”即即tfx=1tfx=1,此時(shí)計(jì)數(shù)器本身為,此時(shí)計(jì)數(shù)器本身為“全零全零”。v如果需要重復(fù)性的完成某一值的定時(shí)或如果需要重復(fù)性的完成某一值的定時(shí)或計(jì)數(shù),需要在每一次計(jì)數(shù)前不斷的重新計(jì)數(shù),需要在每一次計(jì)數(shù)前不斷的重新預(yù)裝初值,稱之為預(yù)裝初值,稱之為“軟件重裝初值軟件重裝初值”。http:/ t0、t1的4種工作方式3 3工作方式工作方式2 (m1m0=10)2 (m1m0=10) tlx tlx自動(dòng)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論