中斷服務子程序的編寫
發(fā)布時間:2016/7/15 21:07:10 訪問次數(shù):2395
當80C51單片機響應中斷請求,跳轉到相應的中斷處理子程序時,除了斷點保護由硬件自動完成外,保護現(xiàn)場、恢復現(xiàn)場、中斷返回都需要用戶自己編寫,E13005中斷處理服務子程序的具體內容要根據(jù)具體的應用目的來決定。除了以上這些外,還要考慮是否允許中斷嵌套,在中斷服務子程序中設置EA=l,則打開中斷,允許中斷嵌套,設置EA=0,則關閉中斷,不允許中斷嵌套。還需要注意的是,在保護現(xiàn)場和恢復現(xiàn)場指令的執(zhí)行過程中,如果出現(xiàn)中斷則會導致程序混亂,因此保護現(xiàn)場和恢復現(xiàn)場過程中需要關閉全局中斷。
在編寫中斷服務子程序的代碼時,要盡量減少任務量,讓中斷服務子程序能夠快速執(zhí)行完畢,保證實時性。例如,定時/計數(shù)器中斷時,為了保證定時時間的精確性,我們往往只在定時/計數(shù)器中斷服務子程序中編寫重載初值的代碼,而其他一些相關操作都放在主程序執(zhí)行,這樣能最大限度地保證定時時間的精確度。
中斷服務子程序的一般結構舉例如下:
當80C51單片機響應中斷請求,跳轉到相應的中斷處理子程序時,除了斷點保護由硬件自動完成外,保護現(xiàn)場、恢復現(xiàn)場、中斷返回都需要用戶自己編寫,E13005中斷處理服務子程序的具體內容要根據(jù)具體的應用目的來決定。除了以上這些外,還要考慮是否允許中斷嵌套,在中斷服務子程序中設置EA=l,則打開中斷,允許中斷嵌套,設置EA=0,則關閉中斷,不允許中斷嵌套。還需要注意的是,在保護現(xiàn)場和恢復現(xiàn)場指令的執(zhí)行過程中,如果出現(xiàn)中斷則會導致程序混亂,因此保護現(xiàn)場和恢復現(xiàn)場過程中需要關閉全局中斷。
在編寫中斷服務子程序的代碼時,要盡量減少任務量,讓中斷服務子程序能夠快速執(zhí)行完畢,保證實時性。例如,定時/計數(shù)器中斷時,為了保證定時時間的精確性,我們往往只在定時/計數(shù)器中斷服務子程序中編寫重載初值的代碼,而其他一些相關操作都放在主程序執(zhí)行,這樣能最大限度地保證定時時間的精確度。
中斷服務子程序的一般結構舉例如下: