2011年11月19日 星期六

DIY - PIC: PIC18F4550 Port B 中斷功能 (一百一十七)

DIY - PIC: PIC18F4550 Port B 中斷功能 (一百一十七)

Microchip PIC18F4550 器件內會提供多個中斷源及一個中斷優先順序功能,可以給大多數中斷源分配高優先級或者低優先順序。高優先順序中斷向量位址為 000008h,低優先順序中斷向量位址為 000018h。高優先順序中斷事件將中斷所有可能正在進行的低優先順序中斷。

10 個寄存器用於控制中斷的操作。它們是:
  • RCON
  • INTCON
  • INTCON2
  • INTCON3
  • PIR1 和 PIR2
  • PIE1 和 PIE2
  • IPR1 和 IPR2
 

由於是需要使用按鍵作中斷,選擇了 18F4550 的 PORTB 中斷功能,PORTB 是 8 位寬的雙向埠,對應的資料方向寄存器是 TRISB。 將 TRISB 位置1 (= 1)可以將對應的 PORTB 引腳配置為輸入引腳(即,將對應的輸出驅動器置於高阻態)。 將 TRISB 位清零(= 0)將把對應的 PORTB 引腳配置為輸出引腳(即,將輸出鎖存器的內容從選定引腳輸出)。資料鎖存器(LATB)也是記憶體映射的。 對 LATB 寄存器進行讀—修改—寫操作將讀寫 PORTB 的輸出鎖存值。PORTB 的每個引腳都有內部弱上拉電路。 單個控制位可以啟用所有上拉電路。 可以通過將 RBPU 位(INTCON2<7>)清零來啟用上拉電路。 當 PORTB 埠的引腳配置為輸出時,其弱上拉電路會自動切斷。 弱上拉電路在上電重定時被禁止。



4 個 PORTB 引腳(RB7:RB4)具有電平變化中斷功能。只有配置為輸入的引腳會導致此類中斷發生。 當 RB7:RB4 中的任何一個引腳被配置為輸出時,該引腳不再具有電平變化中斷功能。當前 RB7:RB4 輸入引腳上的電平與上次讀 PORTB 時鎖存的值進行比較。 RB7:RB4 引腳中與鎖存值不匹配的值將一起作邏輯或運算,將標誌位 RBIF(INTCON<0>)置1,產生 RB 埠電平變化中斷。電平變化中斷可用於喚醒休眠下的器件。 用戶可用以下方式在中斷服務程式中清除該中斷:

a) 讀或寫 PORTB (除了使用 MOVFF (ANY),PORTB 指令)。 這將結束不匹配狀態。
b) 將標誌位元 RBIF 清零。電平不匹配的狀態會持續地將 RBIF 標誌位置1。 而讀 PORTB 將結束不匹配狀態,並且允許將 RBIF
標誌位元清零。


建議使用電平變化中斷功能實現按鍵喚醒以及其他僅使用 PORTB 的電平變化中斷功能的操作。 在使用電平變化中斷功能時,建議不要查詢 PORTB 的狀態。RB2 和 RB3 引腳同 USB 外設複用,作為外部 USB 收發器的差分信號輸出線(由 TRIS 設置)。RB4 同 CSSPP 複用,作為並行通信埠(SSP)的片選信號線(由 TRIS 設置)。

2011   11 19 天氣報告 
氣溫:27.4 @ 16:00 
相對濕度:百分之77% 
天氣:間有陽光

沒有留言:

張貼留言