新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)的中斷函數(shù)

51單片機(jī)的中斷函數(shù)

作者: 時(shí)間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
中斷使用interrupt 關(guān)鍵字和終端編號0-4來實(shí)現(xiàn):
返回值 函數(shù)名 interrupt n
n對應(yīng)中斷源的編號,中斷編號告訴中斷器中斷程序的入口地址,它對應(yīng)著IE寄存器中的使能位,即IE寄存器中的0位對應(yīng)著外部中斷0。
8051單片機(jī)的中斷源以及終端編號如下:

中斷編號中斷源入口地址
0外部中斷00003H
1定時(shí)器/計(jì)數(shù)器0 溢出000BH
2外部中斷10013H
3定時(shí)器/計(jì)數(shù)器1 溢出001BH
4串行口中斷0023H

在51系列單片機(jī)中,有的單片機(jī)多達(dá)32哥中斷源,所以終端編號是0-31.
當(dāng)正在執(zhí)行一個特定的任務(wù)時(shí),可能有更緊急的事情需要CPU處理,這就涉及到了中斷優(yōu)先級。高優(yōu)先級中斷可以中斷正在處理的低優(yōu)先級中斷程序,因而最好給每種優(yōu)先級程序分配不同的寄存器組。在C51中可使用using指定寄存器組,using后的變量為0-3的常整數(shù),分別表示51單片機(jī)內(nèi)的4哥寄存器組。中斷函數(shù)的完整語法如下:
返回值 函數(shù)名([參數(shù)])[模式][重入]interrupt n[usingn]
unsigned int interruptcnt;
unsigned char second;
void timer0(void) interrupt 1 using 2
if(++interruptcnt==4000) // 計(jì)數(shù)到4000
second++; //另一個計(jì)數(shù)器
interruptcnt=0; //計(jì)數(shù)器清零


關(guān)鍵詞: 51單片機(jī)中斷函

評論


技術(shù)專區(qū)

關(guān)閉