• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > PIC單片機中斷模塊介紹

    PIC單片機中斷模塊介紹

    作者: 時間:2011-06-28 來源:網絡 收藏

    :

    本文引用地址:http://www.czjhyjcfj.com/article/172656.htm

    16F87X系列可以接收多達14個源。控制器寄存器INTCON標記著各個中斷源的請求,對各個中斷設置屏蔽位,對全部中斷設置全局屏蔽位。

      16F87X系列的中斷包含:TMR0溢出中斷(TOIF)、外部中斷(INTF)、端口B變化中斷(RBIF)、并行從動端口中斷(PSPIF)、A/D變換中斷、USART異步接收中斷(RCIF)和異步發送中斷(TXIF)、同步串行端口中斷(SSPIF)、CCP1中斷(CCPIIF)、TMR2中斷(TMR2IF)、TMR1中斷、CCP1中斷(CCP2)、E2PROM寫中斷(EEIF)、總線碰撞中斷(BCLIF)。

      各個中斷采用查詢方式進行,即當CPU口向應中斷時,事先要通過查詢中斷標志位去判斷是哪個中斷產生中斷請求,然后執行相應的中斷服務程序。

      RB0/INT外中斷仍遵守PIC16F87X的中斷原則,當有中斷時產生中斷標志位,由CPU查詢識別中斷。根據這一原則,可以擴展多個外中斷源,CPU響應中斷后查詢中斷標志位識別中斷。

      RB0/INT引腳上的外部中斷由邊沿觸發,既可以是上升沿,也可以是下降沿,這由選擇寄存器OPTION_REG的INTEDG位(D6)決定。當INTEDG=1時,選擇上升沿觸發;當INTEDG=0時,選擇下降沿觸發。一旦檢測到引腳上出現有效邊沿,就把INTF位(INTCON的D1)置1。這個中斷由中斷控制位INTE設置允許或禁止。

      為了防止錯誤的死循環執行同一個中斷,在重新開放這個中斷之前必須在中斷服務程序中用軟件對INTF位清0。如果INTE位在進入休眠狀態之前已被置1,INT中斷可以喚醒在休眠狀態下的CPU。GIE位的狀態決定處理器是否在被喚醒后轉至中斷矢量。

      當定時器TIMER0的計數器TMR0計滿溢出(即由FFH變成00H)時,硬件將自動把TGIF位置1。其中斷可以通過對TOIE位進行設置來控制該中斷是否開放。

      當CPU響應RB7、RB4中斷時,就有兩種情況產生:第一種稱為“短脈沖”,即在CPU響應中斷期間引腳電平恢復到原始狀態,對這種情況CPU不會產生虛假中斷現象。第二種稱為“寬脈沖”,即在CPU響應中斷后引腳電平才恢復到原始狀態,恢復到原始狀態的過程也產生中斷請求,這種情況就是虛假中斷現象。

      在端口B的D7~D4引腳上一旦有電平變化就把RBIF位置1,這個中斷可以通過對RBIE位進行設置來控制該中斷是否開放。

    以上就是PIC單片機中斷的詳細內容。



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 资溪县| 墨玉县| 左权县| 诸城市| 阜宁县| 海原县| 都安| 湖北省| 会泽县| 云林县| 水城县| 沂水县| 穆棱市| 东乌珠穆沁旗| 蕲春县| 鄢陵县| 靖宇县| 德昌县| 肥乡县| 绿春县| 游戏| 定州市| 黄骅市| 江山市| 集安市| 大名县| 衡阳县| 长沙县| 双鸭山市| 纳雍县| 澳门| 麻栗坡县| 长沙市| 东阳市| 象州县| 遂川县| 马山县| 大竹县| 双鸭山市| 密云县| 马山县|