Ⅰ 51單片機中斷的觸發方式問題。
電平觸發一般是指單片機中斷引腳當檢查到有個低電平(0V)或高電平(5v)就會產生中斷,從而進入中斷函數中處理這些中斷程序,直到中斷引腳電平改變。同理,邊沿觸發一般是指當中斷引腳由低電平突然變為高電平時(出現了上升沿)或高電平突然變為低電平(出現了下降沿)就會產生中斷,也就產生了中斷標志,當EA=1(打開總中斷)時,程序就會暫停main{}當初處理的數據,從而跑入到中斷之程序中去,直到中斷函數處理完畢,才恢復堆棧數據,返回到main{}繼續工作。呵呵 基本原理就是這樣。
Ⅱ 單片機編程時中斷程序如何使用
中斷程序不是使用的,是當單片機的中斷源有中斷請求時,以允許中斷的情況下,就是自動轉到中斷程序去執行了。所以,編程時,需要在中斷完成什麼任務,都要寫到中斷程序中就行了,會自己去執行的。而不需要你去使用的。
Ⅲ 51單片機串口中斷是怎麼觸發的
比如51單片機:
根據你設置的串口工作方式,當接收或者發送夠相應位的時候,,自動把TI和RI置1,就會進入串列中斷,並且TI和RI需要軟體清零。
當然,需要你總中斷和串口中斷打開的情況下。
Ⅳ 簡述單片機中斷相應過程
首先開中斷,包括各個中斷源和總中斷,並設置中斷觸發條件,如定時器初值, 低電平觸發還是下降沿觸發,然後運行主程序,中斷條件具備時,轉入中斷程序,中斷程序完成後,返回主程序,至於保護重要的寄存器內容,屬於中斷程序之中的內容,包括有些共用中斷判斷到底屬於哪 一個中斷和清除中斷標志,都是中斷程序的內容,有的必須有,有的就沒有。
Ⅳ 51單片機中斷方式
51單片機有兩種中斷觸發方式:低電平觸發和下降沿觸發;
低電平觸發:當檢測到外部引腳為低電平觸發中斷的低電平觸發;
下降沿觸發:當檢測到外部引腳由高電平變以低電平的瞬間時觸發中斷的為下降觸發的.
選擇低電平觸發中斷後,要撤去低電平信號,不然單片機不斷檢測引腳為低電平就會不斷發生中斷.而下降沿就不會。
Ⅵ 51單片機觸發中斷的條件
前提是各相應寄存器開啟了相應中斷
1、外部中斷口有低電平或者負跳變
2、定時器或者計數器溢出
3、串口有數據交互
Ⅶ 單片機硬體中斷如何觸發
單片機硬體中斷觸發方式有兩種,後沿觸發和低電平觸發。當ITn(n=0,1)為1時,後沿觸發;為0時,低電平觸發。
Ⅷ 51單片機在什麼情況下會產生串口中斷
首先,你要用軟體允許中斷,即
C語言中
EA = 1; //允許總中斷
ES = 1; //允許串口中斷
匯編中可用
SETB EA ;允許總中斷
SETB ES ;允許串口中斷
當單片機接收到一幀數據後,RI會置1,向CPU申請中斷,若之前有中斷允許,則產生了中斷,進入中斷服務程序。當然,單片機發送完一幀數據,TI也會置1,同樣會產生中斷!
一般我們在發送數據時要關中斷,因為一般你不用在發送時不用處理數據;接收數據時要開中斷,以便你在中斷服務程序中將接收到的數據進行存儲並處理。
補充:其實,不管你有沒有允許中斷,上位機(此時即給單片機發送信息的機器)只要給單片機發送數據,單片機就會自動接收數據,並把它放在數據緩沖器SBUF中,如果你之前有允許串列口中斷,RI就會置1,向單片機CPU申請中斷,並進入中斷服務程序,即你問題中的serial()函數,做完這個函數後就會自動返回斷點。如果你沒有允許中斷,便不會產生串列中斷。
其實,你的問題有個錯誤:別的中斷都是某個I/O口電平變化產生。這只是外部中斷產生條件,不過,你之前也需要用軟體允許外部中斷。另外,常見的51系列單片機有5個中斷源三種中斷5:1、外部中斷0和1;2、定時器/計數器溢出中斷0和1;3、串列口中斷。另外,STC51系列還有定時器/計數器T2中斷,A/D轉換中斷,PWM中斷,串列中斷2等等。你還有什麼不懂的可以自己多翻一翻書,學到後面去了你就明白了。
你的問題中那個serial()函數中 P1=SBUF; 是把接收的數據送到並行P1口,然後那條 RI=0;是不可少的,這是用軟體清零RI,准備再次接受一幀數據產生中斷,如果你沒有這條語句,就會進入死循環,出不來了。
有什麼問題還可以Q我(1445090023),希望能給我評個最佳答案。
Ⅸ 單片機外部中段和內部中斷
單片機外部中斷是指由外部信號(低電平或下降沿)觸發的中斷,有兩個即外部中斷0和外部中斷1,中斷向量分別是0003H,0013H。
單片機內部中斷是指定時器中斷等由內部時鍾計時到溢出產生的中斷,即定時器0和定時器1,中斷向量分別為000BH,001BH。
Ⅹ 51單片機 中斷 如何觸發
這個是屬於單片機的外部中斷,可以通過相關寄存器的配置,相應的引腳如果出現高電平或者低電平(有些單片機可以配置成四種觸發形式:高電平,低電平,上升沿,下降沿)就觸發一次外部中斷,至於如何檢測到這個就不重要了,對於單片機的開發來說這並不重要