㈠ 單片機中斷概念
單片機的中斷概念是指單片機在執行程序時,遇到事先設定的優先等級高於當前正在執行程序的控制信號時,暫時停止當前程序的執行,轉而先執行優先等級高的程序,等待所有優先等級較高的程序都執行完後,再返回繼續原來暫停執行的程序的操作,這樣的程序操作就稱為執行中斷操作。
為了保證中斷執行後能夠繼續執行原來的程序且不產生錯誤,中斷操作時,首先要保存中斷前的程序的地址、工作寄存器的內容等。直到中斷程序執行完成後再將暫時保存的工作寄存器的內容和地址取出,才能保證不回出現錯誤。
㈡ 單片機採用中斷控制進行數據傳送,有什麼優點
實時性好點,說白了就是數據傳輸及時。中斷傳輸時,數據或設備准備好信號有效時馬上產生個中斷,此時馬上進入中斷處理程序可以進行數據傳輸要是查詢方式的話需要主循環查詢,從數據准備好到開始傳輸的時間不確定。實時性不好。
㈢ 什麼是單片機的中斷,中斷有什麼特點
中斷是」打斷「的意思,即允許正常運行的程序被一些緊急的事務所打斷 ,前提是你允許中斷發生,並且中斷條件已經具備,如定時器定時時間到或外部引腳來了低電平。
有了中斷,單片機不用頻繁地去查詢這些條件是否具備,從而專心地進行工作,但中斷發生時,又可以隨時作出響應
CPU好象一個大領導,如不讓下級部門有事敲門或打電話向你反映問題,你還想了解情況,過一會兒不管有事無事你就得一個部門一個部門問一問,主動權全在你手裡,可累不累呀
不如開放渠道(中斷允許),告訴部下有事隨時向我匯報,沒事我該喝茶喝茶,該看報看報,這樣既減輕了負擔,又不會錯過緊急事務
中斷系統一般包括中斷源 中斷控制寄存器 中斷優先順序寄存器等部分,一般高檔單片機中斷源比較多,且中斷優先順序也比較多
㈣ 單片機中斷有什麼作用
51單片機中的外部中斷有什麼作用?
可以打個比方,每天上班你都隨時需要知道你同事的工作進度情況,你是希望你不停地打個電話去問「你做完了嗎」,還是希望他做完了主動打個電話給你講「我做完了,我們談談吧」。這就是中斷的意義,在不需要的時候不影響處理 器做其它的事情,提高效率,增強程序的實時性。
51單片機中什麼是中斷?其作用是什麼?怎麼用?用自己的理解回答把
中斷就是中途打斷。
通俗解釋:
你在看影碟,有人敲門(中斷源),中斷了你看影碟,觀看暫停。處理敲門的事宜(中斷目的),處理完成(中斷結束),繼續看影碟(繼續執行原來的任務)。
再比如:你在看電視,水開了(中斷源),把水灌到暖瓶里(中斷目的),再燒上一壺(繼續開中斷),回去看電視。水又開了。。。。。。。。(循環中斷)
以51單片機16位定時計數器0(T0)來講,
計數是T1是一個能盛65536(十六位時)滴水的水盆,在水龍頭下水一滴滴地滴入盆中。如果盆是空的那水在滴完65536滴水時盆子的水就滿了再滴一滴的時候就溢出了。這時就會產生中斷。
如果盆裡面已經裝入65500滴水(即初裝值),那麼只需要36滴水後就溢出了。
每一個水滴計數時即一個脈沖(高低電平變換一次)。
定時時每一個水滴即一個機器周期,水滴的速度即機器周期,等於12個振盪周期(晶振的振盪頻率除以12),直接影響到溢出的時間。
51單片機中斷系統的作用?
如果沒有中斷系統,就只能由 CPU 按照程序編寫的先後次序,對各個外設,進行巡迴檢查與處理。
這就是查詢式工作方式。
貌似公平,實際效率卻不高。
如果有了中斷系統,整個計算機系統,就具有了應付突發事件的處理能力。
這就是中斷式工作方式。
單片機的中斷標志位是有什麼作用?
四個問號分為四點一一解答:
1、一般來說單片機的中斷發生有兩個條件,一是中斷標志位置位,二是中斷允許,如果這兩個條件都滿足則進入中斷,因為正常情況下中斷一直是允許的,那麼只能通過標志位來區分是否有中斷掛起,
2、如果進入中斷不清除標志位,那麼這一中斷服務程序結束後由於標志位還是置位的並且中斷是允許的,那麼還會再次進入該中斷,就會發生一直在執行中斷程序的情況
3、周期性中斷是由定時器輔助完成的,只要定時時間到,硬體就會自動置位標志位,這時中斷發生,定時器還在運行,與中斷處理是並行的沒有沖突,因此周期性的中斷不是從中斷標志位清零開始的。
4、如果中斷程序沒有執行完並且一下個中斷又來了,那麼硬體還是會自動置位標志位的,如果在這之前已經清零標志位那麼中斷結束後會再進入一次該中斷,如果這時還沒有清除中斷標志位,則第二個1毫秒中斷無效。
單片機全局中斷有什麼用
本人覺得是因為現在有中斷正在執行,為了不讓高優先順序的中斷使現在的中斷發生中斷,而採取的保護程序
51單片機中斷有什麼作用
打個比方,你在房間看書,看書這個事是持久性的,拖延幾分鍾也沒事。突然淘寶買的衣服送到了,鏢局的人敲門,你用書簽做好標記去開門。拿回衣服,回去繼續看書。這個事的發生過程很正常。
同樣的,看書就像單片機的一般事務處理,收快遞就像中斷。主要是應對緊急的,有時效要求的事件的發生。書簽就是進出中斷相關的現場保護。
具體點,主程序中有LED不停的閃爍,由於外部按鍵的觸發,告訴你該發個位元組出去。這時,可以產生個按鍵相關的中斷(引腳電平中斷),去中斷發個位元組,然後趕緊回來繼續閃爍LED。
重要總結:就這么回事!
單片機程序什麼作用啊 尤其是X++作用 定時器中斷作用是什麼呢?
x應該是一個全局變數,每次中斷函數都會將x加1,程序的其餘函數會掃描x的值來做出相應的動作,
interrupt 1 是計時器中斷,這里應該是用一個全局變數計時,main函數或者其他中斷函數檢查x的數值做到定時的響應,如閃燈或者屏幕刷新又或者PWM輸出 ,
定時器中斷的作用是在CPU運行期間 ,定時器在不幹擾CPU正常運行的情況下不停地將自身寄存器(從你的函數初始化看是TH0和TL0並起來的一個16位值)減一,當寄存器值為0時候發起中斷(從1減去1開始到寄存器值為0之間發起的),這樣可以做到CPU不用一直等待一個時間的到來而空轉,或者運行一個程序的過程中計算運行的時間並定時插入一個額外的工作,
C51的計時器有4個工作模式(對於At89S51或者STC89C52及以上型號來說)不同的模式有不同的功能,這個網路文庫能看到的,另外TMOD寄存器和其他寄存器還設定了計時器是外部的跳變信號或者單片機內部時鍾來引起計時器的一次減1動作(計時動作)。
另外計時器可以設置為外部輸入模式,這樣就能作為計數器,比如說一個外接的按鍵,按10次後才觸發中斷,如果用外中斷處理,那麼整個主函數會被中斷九次做無效中斷才能等到第十次按鍵執行需要的中斷處理動作。
這一點在操作系統中也用到了,比如我們的PC的多任務操作系統,就是用時鍾中斷來把一個程序中斷執行另一個程序(比如操作系統和應用程序間)實現了時間片輪轉,不過PC的操作系統把所有的中斷處理函數都包含進去了,所以我們基本不用去管硬體中斷就能編程。 反觀單片機,因為資源有限,想要做到多任務(主函數與各個中斷函數及其子函數)必須用定時器(也可以通過外部信號做計數器)以及外中斷作為契機來切換多個任務。
如果需要解答整個中斷函數的功能,最好把全部的程序都帖出來,因為x這個全局變數的作用沒有在中斷函數中體現
有問題可以繼續跟我交流,我現在是大學本科生,學過C51單片機,正在學STM32
單片機中斷寄存器的作用是什麼?
中斷寄存器就是用於存貯中斷狀態的 包含是否啟用中斷 或者是 是否發生中斷
#include void InitUART(void){ TMOD = 0x20; 計時器類型 SCON = 0x50; TH1 = 0xFD; TL1 = TH1; PCON = 0x00; EA = 1; 中斷寄存器的操作 ES = 1; TR1 = 1; 計時器1的中斷}void SendOneByte(unsigned char c){ SBUF = c; while(!TI); TI = 0;}void main(void){ InitUART();}void UARTInterrupt(void) interrupt 4{ if(RI) { RI = 0; add your code here! } else TI = 0;}
單片機中斷 的interrupt 0 using 1中的using有什麼作用
看到樓上二位說的有誤,特糾正。
void INT0()interrupt 0 using 1
{....
棱....
}
interrupt 0 指明是外部中斷0;
interrupt 1 指明是定時器中斷0;
interrupt 2 指明是外部中斷1;
interrupt 3 指明是定時器中斷1;
interrupt 4 指明是串列口中斷;
using 0 是第0組寄存器;
using 1 是第1組寄存器;
using 2 是第2組寄存器;
using 3 是第3組寄存器;
51單片機內的寄存器是R0--R7(不是R0-R3)
R0-R7在數據存儲器里的實際地址是由特殊功能寄存器PSW里的RS1、RS0位決定的。
using 0時設置 RS1=0,RS0 =0,用第0組寄存器,R0--R7的在數據存儲區里的實際地址是00H-07H。R0(00H)....R7(07H)
using 1時設置 RS1=0,RS0 =1,用第1組寄存器,R0--R7的在數據存儲區里的實際地址是00H-07H。R0(08H)....R7(0FH)
using 2時設置 RS1=1,RS0 =0,用第2組寄存器,R0--R7的在數據存儲區里的實際地址是08H-0FH。R0(10H)....R7(17H)
using 3時設置 RS1=1,RS0 =1,用第3組寄存器,R0--R7的在數據存儲區里的實際地址是00H-07H。R0(18H)....R7(1FH)
單片機為什麼使用中斷
中斷保護現場,是為了你中斷子程序執行完以後能夠返回到你程序中中斷點,即產生中斷的地方,使程序能夠繼續向下執行!!!!
如過你說的不用保護現場的話,那麼程序執行完以後就不能夠回到現場,那麼你的程序將不知道要跳轉到那裡去了,也就是飛鳥,呵呵……
你說的中斷嵌套,也是一樣的,兩者都要保護現場,不然你也不能夠回到現場,程序也會飛的!!!!
而我們保護現場的數據都是放在堆棧中的,因此,你的中斷次數也不能夠超過堆棧的級數,那樣數據也會丟失!!!!
說白了,中斷它不同於子程序,子程序是固定好了的,返回的位置也固定了;而中斷我們不能夠預知它在那裡發生中斷,因此要保護現場,使中斷子程序執行完後返回到中斷的地方!!!
呵呵……說的太多了!!!
我知道你說的意思了,但是你要知道,中斷現場保護是在中斷子程序中進行的,因此當你高一級的中斷發生的時候(他們不可能共用一個中斷子程序,如果是同一中斷,那也不可能,因為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啊,不然它始終會中斷的,不可能去執行程序去了...)
㈤ C51單片機中斷的優點缺點和特點分別都是什麼
特點快准時
優點就是特點
缺點 如果處理不當 程序容易跑飛 變數被莫名修改
㈥ mcs51單片機五個中斷源各自的矢量入口,這樣設計的優點是
MCS51 單片機有五個中斷源,每個中斷源都有一緩遲個對應的矢量入口。
這樣設計的優點是:
方便維護:使用矢量入口可以方便地維護中斷服務程序,不需要手動維護中斷向量表。
方便編寫中斷服務程序:使用矢量入口可以方便地編寫中斷服務程序,不需要考慮中斷向量的跳轉。
方便調虛哪螞差埋試:使用矢量入口可以方便地調試中斷服務程序,可以直接查看矢量入口地址,輕松定位中斷服務程序的位置。