A. 51單片機中斷 C語言請教!
格式是:函數類型 函數名(形式參數表) [interrupt n][using n]
interrupt是中斷函數類型關鍵字,其後面的n是中斷號,范圍是0-31
51單片機內可以在片內RAM中使用4個不同的工作寄存器組,每個寄存器組中包含8個工作寄存器(R0-R7)。而using就是用來選擇不同的工作寄存器組的,其後面的n是一個0-3的正整數,分別選中4個不同的工作寄存器組。using是一個選項,如果不用則由編譯器自動選擇一個寄存器組作為絕對寄存器組訪問。
注意:關鍵字using和interrupt的後面都不允許跟帶運算符的表達式,只能是一個在一定范圍內的常數!
這個我就不太清楚了,可能是為了擴展使用,一般51單片機的介面多
B. 求助51單片機 定時器中斷子程序的問題
因為呀,你在寫中斷處理函數的時候,已經用了特殊的關鍵字來告訴編譯器,這個函數是中斷函數,所以就特殊處理了~必須用特殊關鍵字 指定這個函數,這樣編譯器才會在你不知道的背後,做些額外處理,比如壓棧,出棧,如果你用匯編來寫,這些都要你自己做,但既然用C語言了,這些操作又是比較通用的,所以編譯器就會自動給你做了。同時,編譯器會自動建立起中斷向量的聯系,讓中斷發生時能跳轉到你的中斷處理函數執行。這種方式在51,arm7,430都有使用 ,不同開發軟體使用的關鍵字可能不同,語法也可能不同,但目的和作用基本相同。但在m3,m0中,中斷向量在啟動文件中定義了,不需要什麼關鍵字申明函數。只要編寫一個相同的函數名函數覆蓋啟動文件中對應硬體中斷的函數即可,有一種稱為弱定義的 匯編關鍵字,啟動文件中定義的向量入口都是弱定義的,也就是說:只要外面你再定義了一個同名的函數,就會使用你定義的函數,而不是使用原來默認的函數。