當前位置:編程學習大全網 - 編程軟體 - 在編寫串行口中斷服務程序時,修飾符interrupt m中m的取值應為多少

在編寫串行口中斷服務程序時,修飾符interrupt m中m的取值應為多少

interrupt m修飾符

C51中斷函數必須通過該修飾符進行修飾。在C51程序設計中,當函數定義時用了interrupt m修飾符,系統編譯時把對應函數轉化為中斷函數,自動加上程序頭段和尾段,並按51系統中斷的處理方式自動把它安排在程序存儲器中的相應位置。

在該修飾符中,m的取值為0~31,對應的中斷情況如下:

0——外部中斷0

1——定時/計數器T0

2——外部中斷1

3——定時/計數器T1

4——串行口中斷

5——定時/計數器T2

其它值預留。

C51編譯器從絕對地址8m+3處產生壹個中斷向量,其中m為中斷號,也即interrupt後面的數字。該向量包含壹個到中斷函數入口地址的絕對跳轉。

例編寫壹個用於統計外中斷0的中斷次數的中斷服務程序

1 int x=0;2 void int0() interrupt 0 using 13 {4 x++;5 }

using n修飾符

修飾符using n用於指定本函數內部使用的工作寄存器組,其中n的取值為0~3,表示寄存器組號。該修飾符可以省略,省略後系統自動選擇

中斷函數註意如下:

(1)中斷函數不能進行參數傳遞,如果中斷函數中包含任何參數聲明都將導致編譯出錯。

(2)中斷函數沒有返回值,如果企圖定義壹個返回值將得不到正確的結果,建議在定義中斷函數時將其定義為void類型,以明確說明沒有返回值。

  • 上一篇:單片機查表指令movc什麽意思
  • 下一篇:如何自學計算機編程?
  • copyright 2024編程學習大全網