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

    EEPW首頁 > 嵌入式系統 > 設計應用 > PIC16F87X單片機中斷系統應用須關注的問題

    PIC16F87X單片機中斷系統應用須關注的問題

    作者: 時間:2012-04-10 來源:網絡 收藏

    目前在世界一些著名的產品系列中,系列是芯片內部包含有外圍設備模塊數量最多的品種之一。PIC16F874和PIC16F877單片機的芯片內部集成了15個外圍設備模塊;PIC16F873和PIC16F876單片機的芯片內部集成了12個外圍設備模塊。在最近推出的該系列的新型號中, PIC16F870單片機的芯片內部集成了10個外圍設備模塊;PIC16F871單片機的芯片內部集成了13個外圍設備模塊;PIC16F872單片機的芯片內部也集成了10個外圍設備模塊(比PIC16F870多了1個USART模塊,少了1個SSP模塊)。

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

    這些外圍設備模塊在啟用時以及在工作過程中,都或多或少地需要CPU參與控制、協調或交換數據等各種服務工作。由于CPU的運行速度非常高,而各個外圍設備模塊的工作速度卻非常低,況且這些外圍設備模塊也不是頻繁地要求CPU對其服務。因此,通常采取一種讓眾多外圍設備模塊共享1個CPU,并且能夠及時得到CPU服務的調度方法 ——

    一、

    PIC系列單片機是當今世界上很有影響力的精簡指令集(RISC)微控制器,具有豐富的功能。其中功能強大的中、高擋型號的中斷源有18種之多。在PIC單片機家族中,排位屬于中上水平的子系列單片機具備的中斷源多達14種。其中,單片機的型號不同,中斷源的種類、個數也不同,如表1所列。其不足之處是:中斷矢量只有1個,并且各個中斷源之間也沒有優先級別之分,不具備非屏蔽中斷。

    31.jpg

    從表1中可以看出,各中斷源基本上都是與各個外圍設備模塊相對應的。其中,多數外圍設備模塊對應著1個中斷源(比如定時器/計數器TMR0模塊),有的外圍設備模塊對應著2個中斷源(比如通用同步/接收/發送器SCI模塊),也有的外圍設備模塊沒有中斷源與之對應(比如輸入/輸出端口RA和RC模塊),還有的中斷源沒有外圍設備模塊與之對應(比如外部觸發中斷源INT)。

    二、 PIC16F87X的中斷硬件邏輯

    在PIC16F87X的子系列中,具體型號不同,中斷邏輯電路也存在著差異,中斷源的種類和個數也不同:最多的具備 14種中斷源;最少的具備10種中斷源(詳見表1)。其中并行端口模塊和并行端口中斷源,只有40腳封裝的型號(PIC16F871、PIC16F874 和PIC16F877)才會具備;而對于28腳封裝的型號(PIC16F870、PIC16F872、PIC16F873和PIC16F876)則不具備。

    PIC16F87X系列單片機中斷的邏輯電路如圖1所示。每一種中斷源對應著1個中斷標志位(記為XXXF,F是Flag的第1 個英文字母)和1個中斷屏蔽位或者叫中斷使能位(記為XXXE,E是Enable的第1個英文字母)。中斷源產生的中斷標志信號是否得以向前傳遞,將受控于對應的中斷屏蔽位。每一個中斷標志位都對應著1個觸發器。當中斷源申請CPU中斷時,與之對應的觸發器就由硬件自動置位,而該觸發器的清零是由用戶安排程序來實現的;每一個中斷屏蔽位也對應著1個觸發器。該觸發器的置位和清零均是由用戶程序完成的。

    圖1描繪的邏輯電路是1個由簡單的門電路構成的組合邏輯電路。將全部14個中斷源按2個梯隊并列排開,第1梯隊中只安排了3個中斷源,其余的中斷源全部安排到第2梯隊中。這樣做是為了與早期的 PIC系列單片機型號相兼容(前些年研制出的單片機型號片內配置的外圍設備模塊數量較少,相應的中斷源的數量自然也就少,比如PIC16C61只有第1梯隊中的3個中斷源)。近期研制的一些PIC單片機新型號是在原有的單片機芯片基礎之上進行一些功能擴展而得來的。

    所有的中斷源都受全局中斷屏蔽位(也可以稱為總屏蔽位)GIE的控制。第1梯隊的中斷源不僅受全局中斷屏蔽位的控制,還要受各自中斷屏蔽位的控制;第2梯隊的中斷源不僅受到全局中斷屏蔽位和各自中斷屏蔽位的控制,還要額外受到1個外設中斷屏蔽位PEIE的控制。

    32.jpg


    上一頁 1 2 3 4 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 北安市| 凤庆县| 和林格尔县| 阜新市| 观塘区| 合川市| 清水县| 金门县| 淮南市| 剑阁县| 名山县| 高青县| 濮阳县| 萝北县| 牡丹江市| 镇坪县| 体育| 珠海市| 洪雅县| 金秀| 乌海市| 化德县| 鄯善县| 山丹县| 台北市| 措美县| 长葛市| 托克托县| 本溪市| 甘泉县| 黑水县| 如皋市| 梅州市| 白沙| 赣州市| 始兴县| 阿图什市| 乌恰县| 康乐县| 宁明县| 海安县|