單片定時(shí)與中斷講解ppt課件_第1頁
單片定時(shí)與中斷講解ppt課件_第2頁
單片定時(shí)與中斷講解ppt課件_第3頁
單片定時(shí)與中斷講解ppt課件_第4頁
單片定時(shí)與中斷講解ppt課件_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 本章內(nèi)容本章內(nèi)容p定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器 pc語言的函數(shù)語言的函數(shù) p中斷系統(tǒng)中斷系統(tǒng)第第4 4章章 定時(shí)與中斷系統(tǒng)定時(shí)與中斷系統(tǒng)定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器 8051單片機(jī)內(nèi)部有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,稱為t0(t0)和t1(t1) 定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器 8051定時(shí)器/計(jì)數(shù)器邏輯結(jié)構(gòu)定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器 設(shè)置定時(shí)/計(jì)數(shù)器工作方式p通過對方式寄存器tmod的設(shè)置,確定相應(yīng)的定時(shí)/計(jì)數(shù)器是定時(shí)功能還是計(jì)數(shù)功能,工作方式以及啟動(dòng)方法。p定時(shí)/計(jì)數(shù)器工作方式有四種:方式0、方式1、方式2和方式3。p定時(shí)/計(jì)數(shù)器啟動(dòng)方式有兩種:軟件啟動(dòng)和硬軟件共同啟動(dòng)。除了從控制寄存器tcon發(fā)

2、出的軟件啟動(dòng)信號外,還有外部啟動(dòng)信號引腳,這兩個(gè)引腳也是單片機(jī)的外部中斷輸入引腳。定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器 設(shè)置計(jì)數(shù)初值pt0、t1是16位加法計(jì)數(shù)器,分別由兩個(gè)8位專用寄存器組成,t0由th0和tl0組成,t1由th1和tl1組成。tl0、tl1、th0、th1的訪問地址依次為8ah8dh,每個(gè)寄存器均可被單獨(dú)訪問,因此可以被設(shè)置為8位、13位或16位計(jì)數(shù)器使用。p在計(jì)數(shù)器允許的計(jì)數(shù)范圍內(nèi),計(jì)數(shù)器可以從任何值開始計(jì)數(shù),對于加1計(jì)數(shù)器,當(dāng)計(jì)到最大值時(shí)(對于8位計(jì)數(shù)器,當(dāng)計(jì)數(shù)值從255再加1時(shí),計(jì)數(shù)值變?yōu)?),產(chǎn)生溢出。p定時(shí)/計(jì)數(shù)器允許用戶編程設(shè)定開始計(jì)數(shù)的數(shù)值,稱為賦初值。初值不同,則計(jì)數(shù)

3、器產(chǎn)生溢出時(shí),計(jì)數(shù)個(gè)數(shù)也不同。例如:對于8位計(jì)數(shù)器,當(dāng)初值設(shè)為100時(shí),再加1計(jì)數(shù)156個(gè),計(jì)數(shù)器就產(chǎn)生溢出;當(dāng)初值設(shè)為200時(shí),再加1計(jì)數(shù)56個(gè),計(jì)數(shù)器產(chǎn)生溢出。 定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器 啟動(dòng)定時(shí)/計(jì)數(shù)器根據(jù)設(shè)置的定時(shí)/計(jì)數(shù)器啟動(dòng)方式,啟動(dòng)定時(shí)/計(jì)數(shù)器。如果采用軟件啟動(dòng),則需要把控制寄存器中的tr0或tr1置1;如果采用硬軟共同啟動(dòng)方式,不僅需要把控制寄存器中的tr0或tr1置1,還需要相應(yīng)外部啟動(dòng)信號為高電平。定時(shí)器的方式寄存器定時(shí)器的方式寄存器tmodtmod作用:作用:tmod用來確定兩個(gè)定時(shí)器的工作方式。低半字節(jié)設(shè)置定時(shí)器t0,高半字節(jié)設(shè)置定時(shí)器t1。字節(jié)地址:字節(jié)地址:89h,

4、不可以位尋址。格式:格式: d7 d6 d5 d4 d3 d2 d1 d0 gate c/t m1 m0 gate c/t m1 m0 定時(shí)器1 定時(shí)器0各位的含義:各位的含義:c/tc/t:功能選擇位。0為定時(shí)器方式;1為計(jì)數(shù)器方式。m1m1,m0m0:方式選擇位??梢赃x擇為四種工作方式0、1、2、3之1。 四種工作方式的區(qū)別后面講解。 gategate:門控位。0:只要軟件控制位tr0或tr1置1即可啟動(dòng)定時(shí)器開始工作;1:只有int0或int1引腳為高電平,且tr0或tr1置1時(shí),才能啟動(dòng)相應(yīng)的定時(shí)器開始工作。tf0 th0 tl0 12分頻osc中斷高8位 低5位控制+t0(p3.4)

5、tr0gateint0(p3.2)c/t=0c/t=1例如:設(shè)定時(shí)器例如:設(shè)定時(shí)器t0為定時(shí)工作方式,要求用軟件啟動(dòng)為定時(shí)工作方式,要求用軟件啟動(dòng) 定時(shí)器定時(shí)器t0工作,按方式工作,按方式1工作;定時(shí)器工作;定時(shí)器t1為計(jì)數(shù)為計(jì)數(shù) 工作方式,要求軟件啟動(dòng),工作方式為方式工作方式,要求軟件啟動(dòng),工作方式為方式2。 則根據(jù)則根據(jù)tmod各位的定義可知,其控制字為:各位的定義可知,其控制字為: 即控制字為61h,其指令形式為: mov tmod,#61h格式: d7 d6 d5 d4 d3 d2 d1 d0 gate c/t m1 m0 gate c/t m1 m0 0 1 1 0 0 0 0 1定

6、時(shí)器的控制寄存器定時(shí)器的控制寄存器tcontcon作用:作用:tmod用來控制兩個(gè)定時(shí)器的啟動(dòng)、停止,表明定時(shí)器的溢出、中斷情況。字節(jié)地址:字節(jié)地址:88h,可以位尋址。系統(tǒng)復(fù)位時(shí),所有位均清零。格式:格式: d7 d6 d5 d4 d3 d2 d1 d0 tf1 tr1 tf0 tr0 ie1 it1 ie0 it0各位的含義:各位的含義:tcon中的低4位與中斷有關(guān),在中斷章節(jié)中討論。tf1 (8fh)tf1 (8fh):定時(shí)器1溢出標(biāo)志。計(jì)滿后自動(dòng)置1。tr1 (8eh)tr1 (8eh):定時(shí)器1運(yùn)行控制位。由軟件清零關(guān)閉定時(shí)器1。當(dāng)gate=0時(shí),tr1 軟件置1即啟動(dòng)定時(shí)器1 。(

7、setb tr1)當(dāng)gate=1時(shí),且int1為高電平時(shí),tr1置1啟動(dòng)定時(shí)器1 ; 定時(shí)器的四種工作方式定時(shí)器的四種工作方式方式的選擇:根據(jù)方式的選擇:根據(jù)m1,m0來選擇。來選擇。 00:方式0 01:方式1 10: 方式2 11: 方式3定時(shí)器的方式定時(shí)器的方式0 0、1 1示意圖示意圖返回tf0 th0 tl0 12分頻osc中斷高8位8位或低5位控制+t0(p3.4)tr0gateint0(p3.2)c/t=0c/t=1定時(shí)器的方式定時(shí)器的方式2 2示意圖示意圖 th08位8位 tl0 12分頻osc控制+t0(p3.4)tr0gateint0(p3.2)c/t=0c/t=1 1中斷

8、tf0 0溢出定時(shí)器的初始值的計(jì)算定時(shí)器的初始值的計(jì)算對于不同的工作方式,計(jì)數(shù)器位數(shù)不同,故最大計(jì)數(shù)值m也不同: 方式0:m=213=8192 方式1:m=216=65536 方式2:m=28=256 方式3:定時(shí)器0分為2個(gè)8位計(jì)數(shù)器,每個(gè)m均為256。因?yàn)槎〞r(shí)/計(jì)數(shù)器是作加1計(jì)數(shù),并在計(jì)滿溢出時(shí)產(chǎn)生中斷,因此初值x的計(jì)算如下: x = m 計(jì)數(shù)值 計(jì)算出來的結(jié)果x轉(zhuǎn)換為16進(jìn)制數(shù)后分別寫入tl0(tl1)、th0(th1)。注意!方式0時(shí)初始值寫入時(shí),對于tl不用的高3位應(yīng)填入0!用用t1t1、工作方式、工作方式0 0實(shí)現(xiàn)實(shí)現(xiàn)1 1秒延時(shí)函數(shù),晶振頻率為秒延時(shí)函數(shù),晶振頻率為12mhz12

9、mhz。方式方式0 0采用采用1313位計(jì)數(shù)器,其最大定時(shí)時(shí)間為:位計(jì)數(shù)器,其最大定時(shí)時(shí)間為:819281921 1 s = s = 8.192ms8.192ms,因此,定時(shí)時(shí)間不可能象任務(wù),因此,定時(shí)時(shí)間不可能象任務(wù)7 7中一樣選擇中一樣選擇50ms50ms,可選擇定時(shí)時(shí)間為可選擇定時(shí)時(shí)間為5ms5ms,再循環(huán),再循環(huán)200200次。次。定時(shí)時(shí)間為定時(shí)時(shí)間為5ms5ms,則計(jì)數(shù)值為,則計(jì)數(shù)值為5ms/15ms/1 s =5000s =5000,t1t1的初值為:的初值為: x = m x = m 計(jì)數(shù)值計(jì)數(shù)值= 8192 = 8192 5000 = 3192 = c78h = 5000 =

10、3192 = c78h = 0110001111000b0110001111000b1313位計(jì)數(shù)器中位計(jì)數(shù)器中tl1tl1的高的高3 3位未用,填寫位未用,填寫0 0,th1th1占高占高8 8位,所位,所以,以,x x的實(shí)際填寫值應(yīng)為:的實(shí)際填寫值應(yīng)為:x = 01100011x = 0110001100000011000b = 6318h11000b = 6318h舉 例1用用t1t1方式方式0 0實(shí)現(xiàn)任務(wù)實(shí)現(xiàn)任務(wù)7 7中中1 1秒延時(shí)函數(shù)如下:秒延時(shí)函數(shù)如下: void delay1s()void delay1s() unsigned char i; unsigned char i;

11、tmod=0 x00; tmod=0 x00; / / 置置t1t1為工作方式為工作方式0 0 for(i for(i=0;i0 xc8;i+) =0;i0 xc8;i+) / / 設(shè)置設(shè)置200200次循環(huán)次數(shù)次循環(huán)次數(shù) th1=0 x63;th1=0 x63;/ / 設(shè)置定時(shí)器初值設(shè)置定時(shí)器初值 tl1=0 x18;tl1=0 x18; tr1=1; tr1=1; / / 啟動(dòng)啟動(dòng)t1t1 while(!tf1); / while(!tf1); / 查詢計(jì)數(shù)是否溢出,即定時(shí)查詢計(jì)數(shù)是否溢出,即定時(shí)5ms5ms時(shí)時(shí)間到,間到,tf1=1tf1=1 tf1=0; tf1=0; / 5ms/ 5

12、ms定時(shí)時(shí)間到,定時(shí)時(shí)間到,將定時(shí)器溢出標(biāo)志位將定時(shí)器溢出標(biāo)志位tf1tf1清零清零 舉 例1用用t1t1、工作方式、工作方式2 2實(shí)現(xiàn)實(shí)現(xiàn)1 1秒延時(shí),晶振頻率為秒延時(shí),晶振頻率為12mhz12mhz。因工作方式因工作方式2 2是是8 8位計(jì)數(shù)器,其最大定時(shí)時(shí)間為:位計(jì)數(shù)器,其最大定時(shí)時(shí)間為:2562561 1 s s = 256= 256 s s,為實(shí)現(xiàn),為實(shí)現(xiàn)1 1秒延時(shí),可選擇定時(shí)時(shí)間為秒延時(shí),可選擇定時(shí)時(shí)間為250250 s s,再,再循環(huán)循環(huán)40004000次。定時(shí)時(shí)間選定后,可確定計(jì)數(shù)值為次。定時(shí)時(shí)間選定后,可確定計(jì)數(shù)值為250250,則,則t1t1的初值為:的初值為:x = m

13、 x = m 計(jì)數(shù)值計(jì)數(shù)值=256 =256 250 = 6 = 6h 250 = 6 = 6h。采用。采用t1t1方式方式2 2工作,因此,工作,因此,tmod =0 x20tmod =0 x20。舉 例2用定時(shí)器工作方式用定時(shí)器工作方式2 2實(shí)現(xiàn)的實(shí)現(xiàn)的1 1秒延時(shí)函數(shù)如下:秒延時(shí)函數(shù)如下:void delay1s()void delay1s() unsigned int unsigned int i; i;/ i/ i取值范圍為取值范圍為0 040004000,因,因此不能定義成此不能定義成unsigned charunsigned char tmod=0 x20; tmod=0 x20

14、; / / 設(shè)置設(shè)置t1t1為方式為方式2 2 th1=6; th1=6;/ / 設(shè)置定時(shí)器初值,設(shè)置定時(shí)器初值,放在放在forfor循環(huán)之外循環(huán)之外 tl1=6;tl1=6; for(i for(i=0;i4000;i+) =0;i4000;i+) / / 設(shè)置設(shè)置40004000次循環(huán)次數(shù)次循環(huán)次數(shù) tr1=1;tr1=1; / / 啟動(dòng)啟動(dòng)t1t1 while(!tf1); / while(!tf1); / 查詢計(jì)數(shù)是否溢出,即定時(shí)查詢計(jì)數(shù)是否溢出,即定時(shí)250250 s s時(shí)間到,時(shí)間到,tf1=1tf1=1 tf1=0; tf1=0; / 250/ 250 s s定時(shí)時(shí)間到,定時(shí)時(shí)間

15、到,將定時(shí)器溢出標(biāo)志位將定時(shí)器溢出標(biāo)志位tf1tf1清零清零 舉 例2p在在c c語言程序中,子程序的作用是由函數(shù)來實(shí)現(xiàn)的,函數(shù)是語言程序中,子程序的作用是由函數(shù)來實(shí)現(xiàn)的,函數(shù)是c c語言的語言的基本組成模塊,一個(gè)基本組成模塊,一個(gè)c c語言程序就是由若干個(gè)模塊化的函數(shù)組成的。語言程序就是由若干個(gè)模塊化的函數(shù)組成的。pc c程序都是由一個(gè)主函數(shù)程序都是由一個(gè)主函數(shù)main( )main( )和若干個(gè)子函數(shù)構(gòu)成,有且只有一和若干個(gè)子函數(shù)構(gòu)成,有且只有一個(gè)主函數(shù),程序由主函數(shù)開始執(zhí)行,主函數(shù)根據(jù)需要來調(diào)用其他函數(shù),個(gè)主函數(shù),程序由主函數(shù)開始執(zhí)行,主函數(shù)根據(jù)需要來調(diào)用其他函數(shù),其它函數(shù)可以有多個(gè)。其

16、它函數(shù)可以有多個(gè)。c語言的函數(shù) 1.1.標(biāo)準(zhǔn)庫函數(shù)標(biāo)準(zhǔn)庫函數(shù) 標(biāo)準(zhǔn)庫函數(shù)是由標(biāo)準(zhǔn)庫函數(shù)是由c51c51的編譯器提供的,用戶不必定義這的編譯器提供的,用戶不必定義這些函數(shù),可以直接調(diào)用。些函數(shù),可以直接調(diào)用。keil c51keil c51編譯器提供了編譯器提供了100100多個(gè)多個(gè)庫函數(shù)供我們使用。常用的庫函數(shù)供我們使用。常用的c51c51庫函數(shù)包括一般庫函數(shù)包括一般i/oi/o口函數(shù)、口函數(shù)、訪問訪問sfrsfr地址函數(shù)等,在地址函數(shù)等,在c51c51編譯環(huán)境中,以頭文件的形式編譯環(huán)境中,以頭文件的形式給出。給出。2.2.用戶自定義函數(shù)用戶自定義函數(shù) 用戶自定義函數(shù)是用戶根據(jù)需要自行編寫的函

17、數(shù),它必用戶自定義函數(shù)是用戶根據(jù)需要自行編寫的函數(shù),它必須先定義之后才能被調(diào)用。須先定義之后才能被調(diào)用。函數(shù)分類和定義 函數(shù)定義的一般形式是:函數(shù)定義的一般形式是:函數(shù)類型函數(shù)類型 函數(shù)名(形式參數(shù)表)函數(shù)名(形式參數(shù)表) 形式參數(shù)說明形式參數(shù)說明 局部變量定義局部變量定義函數(shù)體語句函數(shù)體語句 其中,其中,“函數(shù)類型函數(shù)類型”說明了自定義函數(shù)返回值的類型。說明了自定義函數(shù)返回值的類型。 “ “函數(shù)名函數(shù)名”是自定義函數(shù)的名字。是自定義函數(shù)的名字。 “ “形式參數(shù)表形式參數(shù)表”給出函數(shù)被調(diào)用時(shí)傳遞數(shù)據(jù)的形式參數(shù),形式參數(shù)給出函數(shù)被調(diào)用時(shí)傳遞數(shù)據(jù)的形式參數(shù),形式參數(shù)的類型必須要加以說明。的類型必須

18、要加以說明。ansi cansi c標(biāo)準(zhǔn)允許在形式參數(shù)表中對形式參數(shù)標(biāo)準(zhǔn)允許在形式參數(shù)表中對形式參數(shù)的類型進(jìn)行說明。如果定義的是無參數(shù)函數(shù),可以沒有形式參數(shù)表,的類型進(jìn)行說明。如果定義的是無參數(shù)函數(shù),可以沒有形式參數(shù)表,但是圓括號不能省略。但是圓括號不能省略。 “ “局部變量定義局部變量定義”是對在函數(shù)內(nèi)部使用的局部變量進(jìn)行定義。是對在函數(shù)內(nèi)部使用的局部變量進(jìn)行定義。 “ “函數(shù)體語句函數(shù)體語句”是為完成函數(shù)的特定功能而設(shè)置的語句。是為完成函數(shù)的特定功能而設(shè)置的語句。函數(shù)分類和定義 函數(shù)調(diào)用就是在一個(gè)函數(shù)體中引用另外一個(gè)已經(jīng)定義函數(shù)調(diào)用就是在一個(gè)函數(shù)體中引用另外一個(gè)已經(jīng)定義的函數(shù),前者稱為主調(diào)

19、用函數(shù),后者稱為被調(diào)用函數(shù),函的函數(shù),前者稱為主調(diào)用函數(shù),后者稱為被調(diào)用函數(shù),函數(shù)調(diào)用的一般格式為:數(shù)調(diào)用的一般格式為:函數(shù)名(實(shí)際參數(shù)列表);函數(shù)名(實(shí)際參數(shù)列表); 對于有參數(shù)類型的函數(shù),若實(shí)際參數(shù)列表中有多個(gè)實(shí)對于有參數(shù)類型的函數(shù),若實(shí)際參數(shù)列表中有多個(gè)實(shí)參,則各參數(shù)之間用逗號隔開。實(shí)參與形參順序?qū)?yīng),個(gè)參,則各參數(shù)之間用逗號隔開。實(shí)參與形參順序?qū)?yīng),個(gè)數(shù)應(yīng)相等,類型應(yīng)一致。數(shù)應(yīng)相等,類型應(yīng)一致。函數(shù)調(diào)用 在一個(gè)函數(shù)中調(diào)用另一個(gè)函數(shù)需要具備如下條件:在一個(gè)函數(shù)中調(diào)用另一個(gè)函數(shù)需要具備如下條件: (1 1)被調(diào)用函數(shù)必須是已經(jīng)存在的函數(shù)(庫函數(shù)或)被調(diào)用函數(shù)必須是已經(jīng)存在的函數(shù)(庫函數(shù)或者

20、用戶自己已經(jīng)定義的函數(shù)。者用戶自己已經(jīng)定義的函數(shù)。 如果函數(shù)定義在調(diào)用之后,那么必須在調(diào)用之前如果函數(shù)定義在調(diào)用之后,那么必須在調(diào)用之前(一般在程序頭部)對函數(shù)進(jìn)行聲明。(一般在程序頭部)對函數(shù)進(jìn)行聲明。 (2 2)如果程序使用了庫函數(shù),則要在程序的開頭用)如果程序使用了庫函數(shù),則要在程序的開頭用includeinclude預(yù)處理命令將調(diào)用函數(shù)所需要的信息包含在本預(yù)處理命令將調(diào)用函數(shù)所需要的信息包含在本文件中。如果不是在本文件中定義的函數(shù),那么在程序文件中。如果不是在本文件中定義的函數(shù),那么在程序開始要用開始要用externextern修飾符進(jìn)行函數(shù)原型說明。修飾符進(jìn)行函數(shù)原型說明。函數(shù)調(diào)用

21、中斷是指通過硬件來改變中斷是指通過硬件來改變cpucpu的運(yùn)行方向。計(jì)算機(jī)在執(zhí)行的運(yùn)行方向。計(jì)算機(jī)在執(zhí)行程序的過程中,外部設(shè)備向程序的過程中,外部設(shè)備向cpucpu發(fā)出中斷請求信號,要求發(fā)出中斷請求信號,要求cpucpu暫時(shí)中斷當(dāng)前程序的執(zhí)行而轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,暫時(shí)中斷當(dāng)前程序的執(zhí)行而轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,待處理程序執(zhí)行完畢后,再繼續(xù)執(zhí)行原來被中斷的程序。待處理程序執(zhí)行完畢后,再繼續(xù)執(zhí)行原來被中斷的程序。這種程序在執(zhí)行過程中由于外界的原因而被中間打斷的這種程序在執(zhí)行過程中由于外界的原因而被中間打斷的情況稱為情況稱為“中斷中斷”。 什么是中斷 (1)中斷服務(wù)程序:cpu響應(yīng)中斷后,轉(zhuǎn)去執(zhí)

22、行相應(yīng)的處理程序,該處理程序通常稱之為中斷服務(wù)程序。(2)主程序:原來正常運(yùn)行的程序稱為主程序。(3)斷點(diǎn):主程序被斷開的位置(或地址)稱為斷點(diǎn)。(4)中斷源:引起中斷的原因,或能發(fā)出中斷申請的來源,稱為中斷源。(5)中斷請求:中斷源要求服務(wù)的請求稱為中斷請求(或中斷申請。 中斷基本概念 同步工作異常處理實(shí)時(shí)處理中斷特點(diǎn) 中斷系統(tǒng)的結(jié)構(gòu) +it0=0it0=1_int0t0it1=0it1=1_int1t1txrxtconieie0tf0ie1tf1tiriex0et0ex1et1eseaippx01111100000pspt1px1pt0scon中斷標(biāo)志源允許總允許優(yōu)先級硬件查詢低級中斷請求

23、pc高級中斷請求pc矢量地址矢量地址自然優(yōu)先級自然優(yōu)先級mcs-51中斷系統(tǒng)內(nèi)部結(jié)構(gòu)示意圖mcs-51系列單片機(jī)中斷源序號中斷源說 明1外部中斷0請求由p3.2引腳輸入,通過it0位(tcon.0)來決定是低電平有效還是下降沿有效。一旦輸入信號有效,即向cpu申請中斷,并建立ie0(tcon.1)中斷標(biāo)志。任務(wù)9中采用下降沿有效,由按鍵產(chǎn)生下降沿。2外部中斷1請求由p3.3引腳輸入,通過it1位(tcon.2)來決定是低電平有效還是下降沿有效。一旦輸入信號有效,即向cpu申請中斷,并建立ie1(tcon.3)中斷標(biāo)志。3tf0t0溢出中斷請求當(dāng)t0產(chǎn)生溢出時(shí),t0溢出中斷標(biāo)志位tf0(tcon

24、.5)置位(由硬件自動(dòng)執(zhí)行),請求中斷處理。4tf1t1溢出中斷請求當(dāng)t1產(chǎn)生溢出時(shí),t1溢出中斷標(biāo)志位tf1(tcon.7)置位(由硬件自動(dòng)執(zhí)行),請求中斷處理。5ri或ti串行口中斷請求當(dāng)接收或發(fā)送完一個(gè)串行幀時(shí),內(nèi)部串行口中斷請求標(biāo)志位ri(scon.0)或ti(scon.1)置位(由硬件自動(dòng)執(zhí)行),請求中斷。中斷標(biāo)志 中斷標(biāo)志位位名稱說 明tf1t1溢出中斷標(biāo)志tcon.7t1被啟動(dòng)計(jì)數(shù)后,從初值開始加1計(jì)數(shù),計(jì)滿溢出后由硬件置位tf1,同時(shí)向cpu發(fā)出中斷請求,此標(biāo)志一直保持到cpu響應(yīng)中斷后才由硬件自動(dòng)清0。也可由軟件查詢該標(biāo)志,并由軟件清0。前述的定時(shí)器編程都是采用查詢方式實(shí)現(xiàn)。

25、tf0t0溢出中斷標(biāo)志tcon.5t0被啟動(dòng)計(jì)數(shù)后,從初值開始加1計(jì)數(shù),計(jì)滿溢出后由硬件置位tf0,同時(shí)向cpu發(fā)出中斷請求,此標(biāo)志一直保持到cpu響應(yīng)中斷后才由硬件自動(dòng)清0。也可由軟件查詢該標(biāo)志,并由軟件清0。ie1中斷標(biāo)志tcon.3ie1 = 1,外部中斷1向cpu申請中斷。it1中斷觸發(fā)方式控制位tcon.2當(dāng)it1 = 0,外部中斷1控制為電平觸發(fā)方式;當(dāng)it1 = 1,外部中斷1控制為邊沿(下降沿)觸發(fā)方式。ie0中斷標(biāo)志tcon.1ie0= 1,外部中斷0向cpu申請中斷。it0中斷觸發(fā)方式控制位tcon.0當(dāng)it0= 0,外部中斷0控制為電平觸發(fā)方式;當(dāng)it0 = 1,外部中斷

26、0控制為邊沿(下降沿)觸發(fā)方式。ti串行發(fā)送中斷標(biāo)志scon.1cpu將數(shù)據(jù)寫入發(fā)送緩沖器sbuf時(shí),啟動(dòng)發(fā)送,每發(fā)送完一個(gè)串行幀,硬件都使ti置位;但cpu響應(yīng)中斷時(shí)并不自動(dòng)清除ti,必須由軟件清除。ri串行接收中斷標(biāo)志scon.0當(dāng)串行口允許接收時(shí),每接收完一個(gè)串行幀,硬件都使ri置位;同樣,cpu在響應(yīng)中斷時(shí)不會(huì)自動(dòng)清除ri,必須由軟件清除。中斷的開放和禁止 mcs-51系列單片機(jī)的5個(gè)中斷源都是可屏蔽中斷,中斷系統(tǒng)內(nèi)部設(shè)有一個(gè)專用寄存器ie,用于控制cpu對各中斷源的開放或屏蔽。ie寄存器格式如下:eaeset1ex1et0ex0d7d6d5d4d3d2d1d0ie(a8h)中斷的開放

27、和禁止 中斷允許位位名稱說明ea總中斷允許控制位ie.7ea = 1,開放所有中斷,各中斷源的允許和禁止可通過相應(yīng)的中斷允許位單獨(dú)加以控制;ea = 0,禁止所有中斷。es串行口中斷允許位ie.4es = 1,允許串行口中斷;es = 0禁止串行口中斷。et1t1中斷允許位ie.3et1 = 1,允許t1中斷;et1 = 0,禁止t1中斷。ex1)中斷允許位ie.2ex1 = 1,允許外部中斷1中斷;ex1 = 0,禁止外部中斷1中斷。et0t0中斷允許位ie.1et0 = 1,允許t0中斷;et0 = 0,禁止t0中斷。ex0)中斷允許位ie.0ex0 = 1,允許外部中斷0中斷;ex0 = 0,禁止外部中斷0中斷。中斷優(yōu)先級 pmcs-51系列單片機(jī)有兩個(gè)中斷優(yōu)先級:高優(yōu)先級和低優(yōu)先級。p每個(gè)中斷源都可以通過設(shè)置中斷優(yōu)先級寄存器ip確定為高優(yōu)先級中斷或低優(yōu)先級中斷,實(shí)現(xiàn)二級嵌套。同一優(yōu)先級別的中斷源可能不止一個(gè),因此,也需要進(jìn)行優(yōu)先權(quán)排隊(duì)。同一優(yōu)先級別的中斷源采用自然優(yōu)先級。p中斷優(yōu)先級寄存器ip,用于鎖存各中斷源優(yōu)先級控制位。ip中的每一位均可由軟件來置1或清0,1表示高優(yōu)先級,0表示低優(yōu)先級。中斷優(yōu)先級 中斷優(yōu)先級控制位位名稱說明ps串行口中斷優(yōu)先控制位ip.4ps = 1,設(shè)定串行口為高優(yōu)先級中斷;ps =

溫馨提示

  • 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)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論