PIC單片機之16C84單片機介紹(二)
RB5
RB6
RB7
RB0
RB1
RB2
BR3
Rf
圖4-7利用端口B的鍵盤接口圖。
5-3 I/O編程的考慮
任何對端口的寫操作,在內部都是讀-修改-寫。例如BCF,BSF 指令,先將寄存器讀入CPU,執行位操作,將結果寫回寄存器。例如對 PORTB執行BSF操作,首先將PORTB的8位讀入CPU,在Bit5上進行BSF操 作,將這一位置1,將PORTB寫回輸出鎖存器,如果這個時候PORTB的bit0用作輸入引腳,則先將PORTB讀入CPU,然后進行有關操作,結果寫回PORTB的鎖存器,并復蓋了先前的內容,如果bit0一直保持在輸入方式,這一操作是沒有問題,但如果bit0在銷后又改變成輸出方式,數據鎖存器的內容是未知的。
實際寫I/O端口發生在一個指令周期的結束,而讀一個I/O端口,其有效的數據必須在指令周期的開始就出現。因此,對一個I/O通道相斷執行讀,寫操作,要考慮數據的可靠性。為此,應在這兩條指令之間加入一條NOP指令就可以保證數據的可靠性。
六、計時器。
(TMRO)模式 TMRO計時/計數器模式具有如下特點:
·8位計時計數器
·可讀,可寫
·8位軟件可編程的預分配器
·從FFH到00H產生溢出中斷
·具有外部時鐘的邊沿選擇
TMRO模式的簡單框圖與PIC16C6X系列相同。它可以經過清0 TOCs 位(即TION5>)來選擇計時器方式。在計時器方式,TMRO模式對每個指令周期加1(沒有預分頻器),如果對TMRO寫操作,則計時器為加 (操作后兩個周期被禁止。)

評論