導航:首頁 > 操作系統 > 單片機中斷控制

單片機中斷控制

發布時間:2023-04-22 02:40:36

⑴ 什麼是單片機的中斷

不同的計算機其硬體結構和軟體指令是不完全相同的,因此,中斷系統也是不相同的。

計算機的中斷系統能夠加強CPU對多任務事件的處理能力。中斷機制是現代計算機系統中的基礎設施之一,它在系統中起著通信網路作用,以協調系統對各種外部事件的響應和處理。中斷是實現多道程序設計的必要條件。 中斷是CPU對系統發生的某個事件作出的一種反應。

引起中斷的事件稱為中斷源。中斷源向CPU提出處理的請求稱為中斷請求。發生中斷時被打斷程序的暫停點稱為斷點。

CPU暫停現行程序而轉為響應中斷請求的過程稱為中斷響應。處理中斷源的程序稱為中斷處理程序。

CPU執行有關的中斷處理程序稱為中斷處理。而返回斷點的過程稱為中斷返回。中斷的實現實行軟體和硬體綜合完成,硬體部分叫做硬體裝置,軟體部分稱為軟體處理程序。

響應處理

大多數中斷系統都具有如下幾方面的操作,這些操作是按照中斷的執行先後次序排列的。

1、 接收中斷請求。

2、 查看本級中斷屏蔽位,若該位為1則本級中斷源參加優先權排隊。

3、 中斷優先權選擇。

4、 處理機執行完一條指令後或者這條指令已無法執行完,則立即中止現行程序。接著,中斷部件根據中斷級去指定相應的主存單元,並把被中斷的指令地址和處理機當前的主要狀態信息存放在此單元中。

5、 中斷部件根據中斷級又指定另外的主存單元,從這些單元中取出處理機新的狀態信息和該級中斷控製程序的起始地址。

6、 執行中斷控製程序和相應的中斷服務程序。

7、 執行完中斷服務程序後,利用專用指令使處理機返回被中斷的程序或轉向其他程序。

沖突

在一些罕見的情況下,兩個ISA設備可以共享相同的 IRQ,只要它們不同時使用即可。為了解決這個問題,後來的PCI 匯流排允許 IRQ 共享。PCI Express沒有物理中斷線,並使用消息信號中斷(MSI) 到操作系統(如果可用)。

在早期的 IBM 兼容個人計算機中,中斷曾經是一種常見的硬體錯誤,當兩個設備嘗試使用相同的中斷請求(或 中斷)向可編程中斷控制器(PIC)發出中斷信號時會收到該錯誤。

PIC 期望每條線路僅來自一個設備的中斷請求,因此沿同一條線路發送中斷信號的多個設備通常會導致 中斷 沖突,從而導致計算機死機。

例如,如果在系統中添加數據機擴展卡並分配給中斷4,傳統上分配給串列埠1,則可能會導致中斷沖突。最初,中斷 7 是使用音效卡的常見選擇,但後來發現 中斷 7 會干擾列印機埠(LPT1)時使用了中斷5。該串列埠經常禁用可以用於其他設備的中斷線。

中斷 2/9 是 MPU-401 MIDI 埠的傳統中斷線,但這與ACPI系統控制中斷(SCI 在 Intel 晶元組上硬連線到 中斷9)沖突;

這意味著 ISAMPU-401帶有硬連線中斷2/9 的卡和帶有硬編碼 中斷 2/9 的 MPU-401 設備驅動程序不能在啟用 ACPI 的系統上以中斷驅動模式使用。

以上內容參考網路-中斷

⑵ 單片機中斷控制里(IT,IE,TF,EX, ET,PX,PT)他們各自的英文全稱是什麼

1、IT:interrupt type control

2、IE: interrupt enable

3、TF: Timer overflow flag

4、螞畢辯EX: external interrupt enable

5、ET: timer interrupt enable

6、PX: external interrupt priority

7、悶缺數殲PT: Timer interrupt priority

⑶ 單片機中斷概念

單片機的中斷概念是指單片機在執行程序時,遇到事先設定的優先等級高於當前正在執行程序的控制信號時,暫時停止當前程序的執行,轉而先執行優先等級高的程序,等待所有優先等級較高的程序都執行完後,再返回繼續原來暫停執行的程序的操作,這樣的程序操作就稱為執行中斷操作。
為了保證中斷執行後能夠繼續執行原來的程序且不產生錯誤,中斷操作時,首先要保存中斷前的程序的地址、工作寄存器的內容等。直到中斷程序執行完成後再將暫時保存的工作寄存器的內容和地址取出,才能保證不回出現錯誤。

⑷ 51單片機中斷原理

中斷意思是打斷,即允許單片機的正常工作被一些特殊的任務所打斷,從而保證單片機能夠專心工作又不錯過重要事務。中斷系統包括中斷源和中斷控制系統,單片機每執行完一條指令,就會檢測中斷源,當有中斷發生且中斷未被屏蔽,就會轉向中斷程序入口地址,執行中斷程序,執行完中斷程序,又返回主程序。

⑸ 80C51單片機,12mhz.利用中斷程序控制8個燈依次亮滅,定時時間為1秒。

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char tab[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0xff};

void delay(uint e) //延時函數,延時為0.5s
{
uint i,j;
while(e--)
{
for(i=0;i<500;i++)
for(j=0;j<110;j++);
}
}

void Timer0Init()
{
TMOD|=0x01;//選擇為定時器0模式,工作方式1,僅用TR0打開啟動。
TH0=0xfe; //給定時器賦初值,定時1ms
TL0=0xfc;
ET0=1;//打開定時器0中斷允許
EA=1;//打開總中斷
TR0=1;//打開定時器
}

void main()
{
Timer0Init();
while(1);
}

void timer0() interrupt 1
{
uchar i;
for(i=0;i<8;i++)
{
P2=tab[i];
delay(1);
}
for(i=0;i<8;i++)
{
P2=~tab[i];
delay(1);
}

⑹ 51單片機定時中斷控制燈亮度怎麼調

51單片機怎坦唯樣控制LED的光亮度

pwm,用定時器T1溢出做pwm周期,在每次T1開始計數時觸發輸出,軟體邊增1計數邊檢查溢出標志。如果軟體計數滿則清輸出,否則直到溢出清輸出、清軟體計數滿值。改變軟體計數滿值就能改變亮度。

51單片機輸出pwm波控制led燈亮度

頻率50HZ,周期是20ms

看你調節的精度 如定時器定時1ms,高電平寬度一次變化是5%

如果想要調節精度脊旁高,定時器定時時間小,就要頻繁地發生中斷,會影響主程序的運行

如 要求占空比每步調節為1%,則定時器就要定時200us,對於CpU的影響就比較大了

這時自動重裝模式可以縮短中斷程序佔用時間,但如果再提高PWM的頻率,自動重裝模式也十分吃力,因此許多增強型51單片機有硬體PWM功能

單片機控制led亮度

LED是電流控制器件, 而不能說成電壓控制,調節電壓的大小也能控制啊(電壓越大亮度超高),

1、PWM是脈沖寬度調制信號,注意其中的「寬度」,就是脈沖的高電平的時間。PWM信號調節LED亮度時,信號頻率是不變的,改變的是脈沖的高電平的時間,即LED的導通時間。這種信號調節亮度相當於調節LED的平均電流,所以電流會變化。

2、從LED的V-I特性可知,其曲線是非線性的,0.1V的電壓可造成100~200mA的If的變化,不易控制;另外,LED具有負溫度系數特性,所以,一般將LED說成是電流控制型器件。至於你將讓野培LED串接在電源模塊上,當輸出電壓恆定時,是恆壓源驅動LED吧,這樣調節LED亮度時,需要對輸出電壓進行分壓,以降低LED的壓降才能改變其亮度,恆壓源的電流是有一個最大輸出值的,不能調節的,不知你用什麼方法調節其輸出電流的?

3、用MCU比較方便,成本是稍高,也可以用模擬電子線路產生相應的PWM信號。

⑺ 單片機中斷控制原理

CPU是計算機的指揮中心,它與外圍設備(如:按鍵,顯示器等)通訊的方法有查詢和中斷2種

1:查詢:無論外圍i/o是否需要服務,CPU每隔一段時間都要依次查詢一遍,這種查詢的方法,CPU需要花費一些時間在做查詢的服務工作

2:中斷:在外圍設備需要通訊服務時主動告訴CPU,CPU停下當前工作去處理中斷程序,從而提高了CPU的工作效率。

(2):可以實現實時處理

外設任何時候都可能發出請求中斷的信號,CPU接到請求後及時處理,以滿足實時系統的需要

(3):可以及時處理故障

計算機系統運行過程中難免會出現故障,eg:電源中斷,存儲器出錯,外圍設備工作不正常等,這時可以通過中斷系統向中斷源的CPU發出請求,以便解決故障。
定時器和中斷都屬於單片機的內部資源,在開發板上是沒有晶元的,同時定時器的初始化程序一旦溢出,會自動去執行定時器中斷子程序,而不需要我們自己去調用,這些都是由硬體直接控制的。

2:定時器計算的是固定脈沖,其定時時間是可以計算出來的。它比延時函數有更好的作用,能提高CPU 的效率,因為延時函數是需要耗費CPU去執行的,在此期間,CPU是不能執行其它功能的,而定時器是需要用到 的時候,CPU自動調用

⑻ [電子百科] 單片機怎樣管理中斷怎樣開放和禁止中斷怎樣設置優先順序

(1)由中斷源提出中斷,再用中斷控制端決定是否中斷,再用設置好的中斷優先順序的順序響應中斷。同一優先順序的中斷按:外部中斷0,定時中斷0,外部中斷1,定時中斷1,串列中斷昀順序響應行運中斷。中斷後的結果是:脈沖觸發,IEl(0)被清0。電平觸發,IEl(0)不被清0,要用軟體清0。(2)它由中斷允許寄存器IE控制,如開放中斷EA必須為1,再使要求中斷的中斷源的中斷允許位為1,要禁止中斷,EA-O即可。(3)由IP控制,1為高級,0為低級,PS為串列中斷優先順序,PTl(0)為定時中斷1(0)優先順序,PXl(0)外部中斷檔沒梁1(0)優先順序,想使哪個察搜中斷源為優先順序,就置哪個優先設定位為1。

⑼ MCS-51 單片機的中斷允許控制寄存器IE各個控制位的功能及作用

回答樓主的追問。希望給分~
EA:全局中斷允許位,要想打開任何中斷,EA都必須為1.然後再允許某個特定的中斷。
ES:串列口中斷允許。ES=1時,串口接收或者發送完成數據以後會引起中斷(TI=1,或者RI=1)
ET1:定時
計數器
1中斷允許。ET1=1時,當定時計數器1計數滿,溢出後引起中斷,可在中斷
函數
中處理
定時器

EX1:外部中斷1允許位。EX=1時,外部條邊沿(或者電平)中斷信號來後,會引起外部中斷,可在外部中斷函數中處理事件。
ET0/EX0功能跟上面一樣,只是換了個定時器或者外部中斷。

⑽ 單片機為什麼要控制中斷

中斷保護現場,是為了你中斷子程序執行完以後能夠返回到你程序中中斷點,即產生指基中斷的地方,使程序能夠繼續向下執行!!!!
如過你說的不用保護現場的話,那麼程序執行完以後就不能夠回到現場,那麼隱槐你的程序將不知道要跳轉到那裡去了,也就是飛鳥,呵呵……
你說的中斷嵌套,也是一樣的,兩者都要保護現場,不然你也不能夠回到現場,程序也會飛的!!!!
而我們保護現場的數據都是放在堆棧中的,因此,你的中斷次數也不能夠超過堆棧的級數,那樣數據也會丟失!!!!
說白了,中斷它不同於子程序,子程序是固定好了的,返回的位置也固定了;而中斷我們不能夠預知它在那裡發生中斷,因此要保護現場,使中斷子程序執行完後返回到中斷的地方!!!
呵呵……說的太多了!!!
我知道你說的意思了,但是你要知道,中斷現場保護是在中斷子程序中進行的,因此當你高一級的中斷發生的時候(他們不可能共用一個中斷子程序,如果是同一中斷,那也不可能,因為51中斷中你進入中斷子程序後要將禁止該中斷再次中斷,好象似的,嘿嘿……你可以試試),在高一級的中斷子程序中也有現場保護,你的問題就是沒有把現場保護放對地方!!!!!
============================================================
它們是把現場保護在同一堆棧中,我跟你打個比方吧,假如說堆棧的地址是80H,低一級的中斷要保護的是1,2,3;高一級要保護的現場是4,5,6,那麼在低一級的中斷發生的時候,現場保護1,2,3將壓如堆棧,(順序書上應該有,這里是個比喻),那我先壓入1,堆棧地址加1,壓入2,堆棧地址再加1,如果這個時候高一級的中斷發生,那麼現在就應該跳到高一級中斷的子程序,堆棧地址就是82H了,在將4,5,6分別壓入堆棧,這樣堆棧的地址就是85H,當高一級的中斷子程序結束後,返回現場,堆棧的數據要從85H開始彈出,這樣現場返回的就是6,5,4,這個時候程序就會跳到中斷之前的地方,即底一級的中斷那裡,將要繼續將3保護到堆棧中,在執行低一級的中斷子程序.(其中,你要在中斷唯攜謹保護現場完了後將中斷標志清0啊,不然它始終會中斷的,不可能去執行程序去了...)

閱讀全文

與單片機中斷控制相關的資料

熱點內容
安卓如何傳輸圖片給蘋果 瀏覽:829
可編程式控制制器原理應用網路 瀏覽:587
社畜解壓是什麼意思 瀏覽:434
吉利博越用哪個app啊 瀏覽:511
西安單片機晶振電容 瀏覽:187
分地面積的演算法 瀏覽:179
安卓手機升級包後怎麼安裝 瀏覽:262
濟南壓縮餅干哪有賣 瀏覽:524
怎麼用rar解壓百度網盤 瀏覽:660
手機哪款解壓縮軟體好用 瀏覽:80
失控的演算法代碼 瀏覽:297
程序員說有人愛你怎麼回答 瀏覽:106
騰訊游戲安卓怎麼用ios登錄 瀏覽:759
石獅雲存儲伺服器 瀏覽:180
python滲透入門到精通 瀏覽:272
如何真機調試安卓進程 瀏覽:739
農行app怎麼交公共維修基金 瀏覽:667
python中字典增加元素 瀏覽:240
伺服器端渲染的數據怎麼爬 瀏覽:163
壓縮空氣噴射器 瀏覽:490