-
1 # 天貓眼鏡
-
2 # 大白
中斷的函式名師自己定義的,但是必須在後面加入關鍵字“interrupt x”,其中“x”是中斷向量的編號(中斷向量號對應的中斷檢視任何一本講解51的書),主函式中不需要寫什麼語句來跳轉到中斷函式,因為你定義好中斷向量號時,就是定義好了中斷的入口地址,因為微控制器響應中斷是在執行程式的過程中,每個週期都會掃描中斷標誌位,來判斷執行什麼中斷,比如定時器的定時到了,那麼硬體就會自動將對應定時中斷標誌置為1,此時CPU掃描到這個中斷標誌為1時,就會自動跳到你定義好的中斷函式執行。
-
3 # 使用者1020816771263261
using1 表示用暫存器工作組1.。其實不加也可以,在c語言中,是自動分配暫存器的,所以可以不加。。 interrupt 1 後面數字是中斷源 ,表示啟用中斷源1(定時器0).(51微控制器裡有5箇中斷源)
-
4 # 使用者18058961748638
void functionName() interrupt 1 //using 2 型別固定為void即無返回值 中斷函式名functionName只要是合法標識,不與已有的函式重名即可,且函式固定無引數 interrupt為關鍵字,表明當前是一箇中斷函式,不需要被主函式直接或間接呼叫,也會編譯連線程序序中,一般的非中斷函式如果未被主函式直接或間接呼叫,也不被中斷函式直接或間接呼叫,則不會連結程序序最終程式碼interrupt後的數字表明是中斷號幾,微控制器中 51系列的有0 1 2 3 4 等幾個中斷, 52系列的中斷可能到了7或8 中斷號與中斷事件是繫結的,不能隨便設定,對應的中斷向量會指向這個函式入口地址 可選的using N 表示中斷中使用第幾個暫存器組
-
5 # 大白
C51 的保留字,
指示當前中斷程式使用哪一暫存器組,數值為0~3
MCS-51微控制器,最低地址的32個位元組,由PSW中的RS1,RS0確定R0~R7對應於哪一組地址
當RS1=0,RS0=0,R0~R7對應於地址0~7
當RS1=0,RS0=1,R0~R7對應於地址8~15
以下類推
使用using的好處就是,可以減少暫存器入棧時間
不好的是,必須有8個獨立的RAM來專門為中斷服務程式儲存暫存器,為了節省這8個位元組,可視具體應用來確定是否使用using,如果中斷服務程式很簡單,可以不加該關鍵字。
回覆列表
51微控制器有5箇中斷源,在硬體上的排列順序是INT0,T0,INT1,T1,TI/RI,也就是中斷允許暫存器中5箇中斷允許標誌位的排列順序,則這5箇中斷源的中斷順序號依次就是interrupt 後面的0,1,2,3,4。 這是由硬體決定的,就是中斷服務子程式的入口地址的排列順序。