新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機的中斷函數

        51單片機的中斷函數

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

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

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


        關鍵詞: 51單片機中斷函

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 奈曼旗| 东港市| 南安市| 昌黎县| 尚志市| 灵丘县| 彰化市| 芜湖县| 于田县| 九江市| 柘城县| 浠水县| 平山县| 土默特右旗| 抚顺市| 衡南县| 册亨县| 吉水县| 汕尾市| 九龙坡区| 屏山县| 绥棱县| 保德县| 临泽县| 玉门市| 刚察县| 沛县| 松潘县| 合肥市| 泸水县| 永吉县| 刚察县| 虎林市| 云浮市| 灵台县| 平泉县| 富锦市| 沙坪坝区| 定结县| 满城县| 乐亭县|