色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)中斷學(xué)習(xí)

          51單片機(jī)中斷學(xué)習(xí)

          作者: 時(shí)間:2016-11-19 來(lái)源:網(wǎng)絡(luò) 收藏
          一、中斷的概念

          CPU在處理某一事件A時(shí),發(fā)生了另一事件B請(qǐng)求CPU迅速去處理(中斷發(fā)生);
          CPU暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)去處理事件B(中斷響應(yīng)和中斷服務(wù));
          待CPU將事件B處理完畢后,再回到原來(lái)事件A被中斷的地方繼續(xù)處理事件A(中斷返回),這一過(guò)程稱為中斷

          本文引用地址:http://cafeforensic.com/article/201611/318431.htm

          二、中斷源

          51單片機(jī)中有5個(gè)中斷源

          中斷號(hào)優(yōu)先級(jí)中斷源中斷入口地址

          01(最高)外部中斷00003H
          12定時(shí)器0000BH

          23外部中斷10013H

          34定時(shí)器10018H

          45串口總段0023H

          三、中斷寄存器

          單片機(jī)有10個(gè)寄存器主要與中斷程序的書(shū)寫(xiě)控制有關(guān)

          1.中斷允許控制寄存器IE

          2.定時(shí)器控制寄存器TCON

          3.串口控制寄存器SCON

          4.中斷優(yōu)先控制寄存器IP

          5.定時(shí)器工作方式控制寄存器TMOD

          6.定時(shí)器初值賦予寄存器(TH0/TH1,TL0/TL1)

          寄存器詳細(xì)說(shuō)明:http://blog.sina.com.cn/s/blog_a05b986d0101545c.html

          四、寄存器功能與賦值說(shuō)明

          注:在用到中斷時(shí),必須要開(kāi)總中斷EA,即EA=1。//開(kāi)總中斷

          1.中斷允許控制寄存器IE

          EX0(EX1):外部中斷允許控制位

          EX0=1外部中斷0開(kāi)關(guān)閉合//開(kāi)外部0中斷
          EX0=0 外部中斷0開(kāi)關(guān)斷開(kāi)

          ET0(ET1):定時(shí)中斷允許控制位

          ET0=1定時(shí)器中斷0開(kāi)關(guān)閉合//開(kāi)內(nèi)部中斷0

          ET0=0 定時(shí)器中斷0開(kāi)關(guān)斷開(kāi)
          ES:串口中斷允許控制位

          ES=1串口中斷開(kāi)關(guān)閉合//開(kāi)串口中斷

          ES=0 串口中斷開(kāi)關(guān)斷開(kāi)

          2.定時(shí)器控制寄存器TCON//控制外部中斷和定時(shí)器中斷

          外部中斷:

          IE0(IE1):外部中斷請(qǐng)求標(biāo)志位

          當(dāng)INT0(INT1)引腳出現(xiàn)有效的請(qǐng)求信號(hào),此位由單片機(jī)自動(dòng)置1,cpu開(kāi)始響應(yīng),處理終端,而當(dāng)入

          中斷程序后由單片機(jī)自動(dòng)置0.

          //外部中斷,即外部中斷相應(yīng)的引腳接入低電平或下降沿信號(hào)時(shí),中斷開(kāi)始響應(yīng)。

          IT0(IT1):外部中斷觸發(fā)方式控制位//選擇有效信號(hào)

          IT0(IT1)=1:脈沖觸發(fā)方式,下降沿有效。

          IT0(IT1)=0:電平觸發(fā)方式,低電平有效。

          內(nèi)部中斷:

          TF0(TF1):內(nèi)部定時(shí)器/計(jì)數(shù)器溢出中斷標(biāo)志位

          當(dāng)定時(shí)器、計(jì)數(shù)器計(jì)數(shù)溢出的時(shí)候,此位由單片機(jī)自動(dòng)置1,cup開(kāi)始響應(yīng),處理中斷,而當(dāng)進(jìn)入中

          斷程序后由單片機(jī)自動(dòng)置0.

          //內(nèi)部中斷實(shí)際上就是利用內(nèi)部的計(jì)數(shù)器,只不過(guò)提供計(jì)數(shù)的脈沖來(lái)自單片機(jī)自身。

          TRO(TR1):定時(shí)器/計(jì)數(shù)器啟動(dòng)位//啟動(dòng)定時(shí)器

          TRO(TR1)=1; 啟動(dòng)定時(shí)器/計(jì)數(shù)器0

          TR0(TR1)=0; 關(guān)閉定時(shí)器/計(jì)數(shù)器0

          3.串口控制寄存器SCON

          TI:串行口發(fā)送中斷標(biāo)志位

          當(dāng)單片機(jī)串口發(fā)送完一幀數(shù)據(jù)后,此位由單片機(jī)自動(dòng)置1,而當(dāng)進(jìn)入中斷服務(wù)程序后是不會(huì)自動(dòng)清0的,

          必須由用戶在中斷服務(wù)中用軟件清0.

          RI:串行口接收中斷標(biāo)志位

          當(dāng)單片機(jī)串口接收完一幀數(shù)據(jù)后,此位由單片機(jī)自動(dòng)置1,而當(dāng)進(jìn)入中斷服務(wù)程序后是不會(huì)自動(dòng)清0的,

          必須由用戶在中斷服務(wù)軟件中用軟件清0.

          (IP以后補(bǔ)上,TMOD,TL0/TH0 在定時(shí)器/計(jì)數(shù)器中講)

          五、中斷結(jié)構(gòu)圖:

          六、定時(shí)器/計(jì)數(shù)器

          1.計(jì)數(shù)的定義:

          計(jì)數(shù)是指對(duì)外部事件進(jìn)行計(jì)數(shù),外部事件的發(fā)生以輸入脈沖的形式表示,因此計(jì)數(shù)功能的實(shí)質(zhì)就是對(duì)外來(lái)

          的脈沖進(jìn)行計(jì)數(shù),在單片機(jī)中對(duì)應(yīng)引腳T0和T1,兩個(gè)脈沖輸入端。

          外部輸入的脈沖在負(fù)跳變時(shí)有效(即外部脈沖由1變化到0),計(jì)數(shù)器加1.

          2.定時(shí)器:

          定時(shí)器是通過(guò)計(jì)數(shù)器的計(jì)數(shù)來(lái)實(shí)現(xiàn)的,不過(guò)此時(shí)的計(jì)數(shù)脈沖來(lái)自單片機(jī)的內(nèi)部,因此定時(shí)器的實(shí)質(zhì)是對(duì)內(nèi)

          部脈沖的計(jì)數(shù),在單片機(jī)中,每個(gè)機(jī)器周期產(chǎn)生一次計(jì)數(shù)脈沖,計(jì)數(shù)器加1.

          3.工作方式控制寄存器TMOD:

          TMOD的低半字節(jié)(D0,D1,D2,D3)用來(lái)控制定時(shí)器/計(jì)數(shù)器0

          TMOD的高半字節(jié)(D4,D5,D6,D7)用來(lái)控制定時(shí)器/計(jì)數(shù)器1

          對(duì)TMOD中的內(nèi)容說(shuō)明:

          GATE——門(mén)控制。   
          GATE=1時(shí),由外部中斷引腳INT0、INT1來(lái)啟動(dòng)定時(shí)器T0、T1。   
          當(dāng)INT0引腳為高電平時(shí)TR0置位,啟動(dòng)定時(shí)器T0;   
          當(dāng)INT1引腳為高電平時(shí)TR1置位,啟動(dòng)定時(shí)器T1。   
          GATE=0時(shí),僅由TR0,TR1置位分別啟動(dòng)定時(shí)器T0、T1。

          C/T——功能選擇位   
          C/T=0時(shí)為定時(shí)功能,C/T=1時(shí)為計(jì)數(shù)功能。     
          M0、M1——方式選擇功能   
          由于有2位,因此有4種工作方式


          4.根據(jù)單片機(jī)晶振,所選TMOD的的工作方式,所要定的時(shí)間,來(lái)確定THO和TLO所要賦予的初值

          (以12M晶振,工作方式1,16位計(jì)數(shù)器為例,設(shè)所定時(shí)間為Xus(16為計(jì)數(shù)器最大數(shù)65536,即65536us,若所

          定時(shí)間大于65535,則要用if語(yǔ)句控制,現(xiàn)假設(shè)X<65535))

          1.時(shí)鐘周期的時(shí)間t=1/12M=1/12 us

          2.機(jī)器周期的時(shí)間T=12*1/12=1 us

          3.因?yàn)槊拷?jīng)過(guò)一個(gè)機(jī)器周期計(jì)數(shù)器+1,所以,計(jì)數(shù)器+1,經(jīng)過(guò)的時(shí)間為1 us。

          若所定時(shí)間為X,則要求經(jīng)過(guò)Xus,中斷響應(yīng),又因?yàn)?6為計(jì)數(shù)器要全部置1(即達(dá)到65535)+1后,中斷才會(huì)

          響應(yīng),所以,初值=(65536-X)

          4.將初值轉(zhuǎn)化為16進(jìn)制碼,分別付給THO和TLO

          eg:所定時(shí)間5ms

          初值=(65536-5000)=60536=EC78

          TH0=0XEC; TL0=0X78;

          (當(dāng)工作方式不同時(shí),TH0/TL0的賦值也不同,個(gè)人覺(jué)得有了16位計(jì)數(shù)器了,其余的沒(méi)什么用,不介紹了)

          5.寫(xiě)程序時(shí)另一種THO/TLO賦值方法

          TH0=(65536-20000)/256;
          TL0=(65536-20000)%6;

          這樣設(shè)置,每經(jīng)過(guò)20ms,發(fā)生一次中斷,中斷時(shí)間一般以秒為單位,所以經(jīng)過(guò)n次中斷即可。



          關(guān)鍵詞: 51單片機(jī)中斷學(xué)

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉