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