新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > PIC單片機之16C84單片機介紹(二)

PIC單片機之16C84單片機介紹(二)

作者: 時間:2012-11-14 來源:網(wǎng)絡(luò) 收藏
55,255); orphans: 2; widows: 2; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">  CP是代碼保護的選擇,此位為1代碼保護取消,這一位為0,所有程序存儲器的代碼被保護。其余位是不執(zhí)行的。讀作1。

  有關(guān)振蕩器的配置,振蕩器的選擇與連接電路與PIC16C6X系列相同。

  8-2中斷

  PIC16C84具有4個中斷源。即外部中斷RBO/INT引腳上的中斷,TMR0溢出中斷;PORTB改變中斷(RB7:RB4);EEPRDM寫完成中斷。

  中斷控制寄存器(INTCON在其標(biāo)志位,記錄了每一個中斷請求。它也包括了每個中斷的允許/禁止位。所有中斷的允許/禁止位(IN TCON7>),它就開放所有中斷或禁止所有中斷。從中斷返回指令RETFLE返回時,退出中斷,并置GIE=1,重新開放所有中斷。 RBO/INT引腳中斷,RB端口改變中斷和TMRO溢出中斷,這些中斷的中斷標(biāo)志在INTCON寄存器中。

  當(dāng)中斷的響應(yīng)時,GIE位被清0,關(guān)閉任何新的中斷,返回地址被壓入堆棧,用0004H裝入PC。對于外部中斷文件,如RBO/INT引腳或PORTB改變中斷,這類中斷需3到4個指令周期。嚴(yán)格的時間,取決于中 斷事件的發(fā)生。一旦在中斷的中斷服務(wù)程序中可以通過查詢中斷標(biāo)志 位來確定中斷源。中斷的標(biāo)志位應(yīng)在重新開發(fā)這個中斷之前,經(jīng)軟件 將其清0。

  注意:

  ①每一個中斷的標(biāo)志位被置位,而與它相應(yīng)的屏蔽位或GIE無關(guān)。

  ②如果中斷發(fā)生,而全部中的允許位GIE假設(shè)本是清0的,GIE可能被用戶中斷服務(wù)程序的RETFIE指令無意之間連成1。這種事情可能發(fā)生在

  a、在中斷被響應(yīng)時,指令清0GIE位。

  b、程序分支到中斷向量并執(zhí)行中斷服務(wù)程序。

  c、中斷服務(wù)程序執(zhí)行RETFIE指令而完成。這會引起GIE位被置1(允許中斷)。同時程序返回中斷關(guān)閉后的指令(實 際上由于上述原因引起中斷未能關(guān)閉)。為確保GIE清0,應(yīng)有如下一段程序。

  l00p BGF INT CON,GIE:關(guān)閉全部中斷

  BTFSC INTCON,GIE;全部中斷允許位被關(guān)閉了嗎?

  GOTO l00P;沒有返回到l00p,再清0GIE,否則程序繼續(xù)。

  1.INT中斷

  在RBO/INT上的外部中斷是邊沿觸發(fā)。如果INT?EDG位(OPTION 6>)是置1,則上升沿有效,如果INTEDG位被清0,則下降沿有效。當(dāng)有效跳變出現(xiàn)在RBO/INT引腳上時,INTF位(INTCON1>)被置1。清0INTE控制位(INTCON4>),關(guān)閉這個中斷。INTF在重新允許這個中斷之前應(yīng)由中斷服務(wù)程序中的軟件來清0這一位。在芯片進(jìn)入SLEEP之前,如果INTE位被置1,則INT中斷發(fā)生后可喚醒芯片。GIE位的狀態(tài)決定了處理器被喚醒后是否分支到中斷向量。

  2.TMRO中斷

  TMRO溢出(由FFH~00H)將置1 TOIF位(INTCON2>)。這一位 的中斷可以



關(guān)鍵詞: PIC單片機 16C84單片

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉