PIC單片機(jī)之16C84單片機(jī)介紹(二)
3.PORTB中斷
在端口B的7~4位的輸入改變,就置1 RBIF(INTCON0>)位。 這個(gè)中斷可以對RBIE(INTCON3>)位置1或清0而開放或關(guān)閉。
注意 :當(dāng)正在對RB端口進(jìn)行讀操作時(shí),RB7~RB4發(fā)生改變,RBIF標(biāo)志位可 能不被置1。
4.中斷時(shí)如何保存W和STATUS寄存器。
中斷時(shí),硬件自動將PC的值壓入堆棧,這叫保存斷點(diǎn),用戶經(jīng)常希望保存關(guān)鍵的寄存器的內(nèi)容,(如W和STATUS寄存器)。為此,執(zhí)行如下一段程序。
MOVWF W-TEMP ;將W寄存拷貝到W-TEMP寄存器,W-TEMP寄存器 可在1塊或0塊
SWAPF STATUS,W;狀態(tài)寄存器內(nèi)容送入W
BCF STATUS,RPO;選0塊
MOVWF STATUS-TEMP;將狀態(tài)寄存器的內(nèi)容(現(xiàn)在在W中的STATUS-TEMP寄存器中斷服務(wù)程序
SWAPF STATUS-TEMP,W;將STATUS-TEMP送入W(設(shè)置塊到原來 的狀態(tài))
MOVWF STATUS ;W送入STA?TUS(恢復(fù)STATUS)
SWAPF W-TEMP,0;W-TEMP送W(恢復(fù)W的內(nèi)容)
在上面這段程序中,W-TEMP寄存器,必須定義在兩個(gè)塊中,且要在定在同樣的塊基地址。例如將W-TEMP定義在0塊的20H,同時(shí)它也應(yīng)定義在1塊的A0H。寄存器STATUS-TEMP必須定義在0塊。
5.看門狗計(jì)時(shí)器(WDT)
看門狗計(jì)時(shí)器實(shí)際使用的是在芯片上的RC振蕩器,這不要求任何外部元件。這個(gè)RC振蕩器與OSC1/CLKIN引腳上接的RC振蕩器(主振時(shí)鐘)是分開的。這樣即使OSC1/CLKIN和OSC2/CLKOUT引腳停振,(例在執(zhí)行SLEEP指令后)WDT仍然能夠工作。在正常工作時(shí),WDT計(jì)時(shí)器的輸出產(chǎn)生器件的RESET信號。如果器件處于SLEEP狀態(tài)下,WDT計(jì)時(shí)器的輸出將喚醒器件,使器件繼續(xù)正常的工作。WDT也可以通過編程的配置來關(guān)閉。其內(nèi)容的框圖與PIC16C6X系列相同。
九、PIC16C84單片機(jī)的指令系統(tǒng)共有35條指令。與PIC16C6X系列的指令完全相同。
評論