色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

PIC系列單片機(jī)的中斷資源特點(diǎn)及其應(yīng)用方法詳解

MCU開發(fā)加油站 ? 2017-12-09 10:14 ? 次閱讀

1 PIC單片機(jī)簡(jiǎn)介

PIC系列單片機(jī)是美國(guó)Microchip技術(shù)公司推出的高性能價(jià)格比的8位嵌入式控制器(Embedded Controller),它采用了精簡(jiǎn)指令集計(jì)算機(jī)RISC(Reduced Instruction Set Computer)和哈佛(Harvard)雙總線以及兩級(jí)指令流水線結(jié)構(gòu)。具有高速度、低工作電壓、低功耗等特點(diǎn)和優(yōu)良的性能價(jià)格比,因而PIC系列單片機(jī)越來越受到單片機(jī)開發(fā)與應(yīng)用工程技術(shù)人員的青睞。該系列獨(dú)特的結(jié)構(gòu)和中斷資源使其在使用時(shí)與其它系列的單片機(jī)有許多不同之處。下面以PIC16CXX系列微控制器為例來介紹PIC系列單片機(jī)的中斷資源特點(diǎn)以及應(yīng)用方法。

2 中斷資源的開發(fā)與屏蔽

圖1是PIC16C64/64A/65/65A的中斷邏輯電路圖,其它型號(hào)芯睡的中斷資源也大致相同,只是資源多少不一而已,但它們的中斷入口只有一個(gè)(入口地址在004H)。PIC 單片機(jī) 的中斷大致可以分為兩類。

第一類是由中斷控制器INTCON直接控制的中斷,包括外部引腳中斷INT的RB口電平變化中斷以及定時(shí)器TMRO溢出中斷,它們的中斷允許位和中斷標(biāo)志都在INTCON寄存器中。引腳中斷INT和定時(shí)器TMRO溢出中斷與其它微處理器相同。RB口電平變化中斷是PIC 單片機(jī) 特有的中斷,當(dāng)把RB口高4位I/O口線設(shè)置為輸入時(shí),只要這4位I/O口線上的電平發(fā)生變化就會(huì)引起中斷。RB口的電平中斷特性對(duì)用戶是非常有用的。用戶可以直接利用這些口線的關(guān)鍵部位進(jìn)行電平檢測(cè),并可利用中斷進(jìn)行保護(hù)性控制等操作;另一方面,電平中斷特性還可以利用RB口的軟件控制弱上拉特性組成一個(gè)矩陣鍵盤,并用按鍵喚醒CPU,這對(duì)于那些以電池供電的系統(tǒng)特別有用。

另一類是外圍接口中斷,包括定時(shí)器TMR1溢出中斷、TMR溢出或匹配中斷、同步串行口中斷、異步串行口中斷、并行從動(dòng)口中斷和CCP(Capture/Compare/PWM)中斷等,而帶A/D功能的PIC16C7X系列微處理器還有A/D轉(zhuǎn)換完成中斷。這些中斷的允許位分別在PIE1和PIE2寄存器,而中斷標(biāo)志則分別在PIR1和PIR2中。

所有的中斷都有自己的中斷允許位和中斷標(biāo)志,外圍接口中斷不僅受各自的中斷允許位控制,同時(shí)還共同受外圍中斷控制允許位的控制。全局中斷允許位GID能夠控制所有的中斷。無論全局中斷允許位GIE和相應(yīng)的中斷允許位狀態(tài)如何,只要滿足中斷條件,各個(gè)中斷標(biāo)志位都會(huì)被置1。

與其它微處理器不同的是:當(dāng)CPU響應(yīng)中斷時(shí)全局中斷允許閏GIF會(huì)自動(dòng)被清零,中斷標(biāo)志位不能用硬件清零而只能用軟件清零;當(dāng)執(zhí)行中斷返回指令RETFIE時(shí),全局中斷允許位GIE會(huì)被自動(dòng)置1而重新開放中斷。因此,在重新開放中斷之前要用軟件清零有關(guān)的中斷標(biāo)志位,以避免產(chǎn)生不斷地中斷請(qǐng)求而反復(fù)進(jìn)入中斷。由于全局中斷允許位GIE會(huì)被中斷服務(wù)程序(RETFIE指令)自動(dòng)置1,因此用軟件清零GIE并不可靠,這一點(diǎn)要特別注意。用下面的程序可確保整個(gè)中斷被禁止。

***************LOOP BCF INTCON,GIE ;禁止整個(gè)中斷BTFSC INTCON,GIE ;判斷全局中斷是否被禁止GOTO LOOP ;否,重新清零…… ;繼續(xù)***************

對(duì)于外部中斷事件,例如:INT引腳中斷和RB口引腳電平變化中斷等為邊沿觸發(fā),因此,CPU在響應(yīng)中斷時(shí)對(duì)外部信號(hào)的要求并不苛刻。一般情況下,中斷花費(fèi)的時(shí)間需要3或4個(gè)指令周期,確切時(shí)間取決于中斷事件發(fā)生的時(shí)刻而與指令本身的周期數(shù)無關(guān)。

3 中斷的優(yōu)先級(jí)

PIC系列單片機(jī)只有一個(gè)中斷入口(004H),所有的中斷都通過該入口進(jìn)入中斷服務(wù)子程序,至于是哪一個(gè)中斷源,只有在進(jìn)入中斷服務(wù)子程序后查詢中斷標(biāo)志才能確認(rèn)。該單片機(jī)沒規(guī)定中斷的優(yōu)先級(jí),也沒有用于設(shè)定中斷優(yōu)先級(jí)的寄存器,中斷的優(yōu)先級(jí)是由于中斷服務(wù)子程序中斷查詢中斷標(biāo)志的順序確定的。CPU響應(yīng)一個(gè)中斷并進(jìn)入中斷服務(wù)程序后,全局中斷允許位GIE被自動(dòng)清零,CPU在此期間不響應(yīng)其它中斷,也不能形成中斷嵌套。

因此,在使用中斷時(shí)要合理安排查詢中斷標(biāo)志的順序,盡量縮短CPU在中斷服務(wù)程序中逗留的時(shí)間。在用PIC系列單片機(jī)構(gòu)成系統(tǒng)時(shí)應(yīng)盡量減少中斷源的個(gè)數(shù),對(duì)于那些執(zhí)行時(shí)間較長(zhǎng)且不需采用中斷方式來處理的事件,應(yīng)盡量采和查詢標(biāo)志的方式進(jìn)行處理;對(duì)于那些必須采用中斷方式處理的事件,在中斷服務(wù)程序中要盡量先查詢對(duì)系統(tǒng)至關(guān)重要的事件的中斷標(biāo)志。

另外,在退出中斷服務(wù)程序時(shí),只清除處理過的中斷標(biāo)志即可,而不需要將所有的中斷標(biāo)志清除。

對(duì)于RB口電平變化中斷,一方面要保存RB口每次變化后的狀態(tài),以便在下次中斷時(shí)判斷是哪根口線上的電平發(fā)生了變化;另一方面可以設(shè)置產(chǎn)生中斷的口線標(biāo)志,并將由于該中斷而未執(zhí)行的程序在中斷服務(wù)程序外通過查詢口線標(biāo)志來執(zhí)行,以減少CPU在中斷服務(wù)程序中逗留的時(shí)間。

4 程序跨頁時(shí)的中斷處理

PIC系列單片機(jī)的程序存儲(chǔ)空間是分頁處理的,每頁空間的大小為512字節(jié)到4k字節(jié)不等。頁程序計(jì)數(shù)器PC是一個(gè)13位寬的增量寄存器,其低8位PCL是一個(gè)可讀/寫寄存器,其高字節(jié)PCH(有效位為5位)不能直接進(jìn)行讀/寫操作,它通過一個(gè)8位保護(hù)寄存器PCLATH把高5位地址傳遞給程序計(jì)數(shù)器的高字節(jié)。當(dāng)一個(gè)中斷被響應(yīng)時(shí),PC中的斷點(diǎn)地址自動(dòng)被壓棧(PUSH)保護(hù);而當(dāng)執(zhí)行RETFIE指令時(shí),堆棧中的斷點(diǎn)地址回彈到(POP)程序存儲(chǔ)器PC中。

無論是壓棧操作還是出棧操作,它們都不影響PCLATH寄存器的內(nèi)容。同時(shí),CPU響應(yīng)中斷并跳轉(zhuǎn)到中斷入口地址時(shí),都只能在本頁內(nèi)跳轉(zhuǎn)而不影響PLCATH寄存器的內(nèi)容。另外,在中斷入口安排的是GOTO語句,而GOTO語句也只能在本頁跳轉(zhuǎn)。當(dāng)中斷服務(wù)程序存放在程序存儲(chǔ)器的第一頁且CPU在執(zhí)行非第一頁內(nèi)程序時(shí),響應(yīng)中斷將導(dǎo)致中斷入口地址和中斷返回地址錯(cuò)誤而引起程序混亂。下面以PIC16C65A來說明這個(gè)問題的解決辦法。

PIC16C65A的片內(nèi)程序存儲(chǔ)器為4k,分為兩頁,每頁2k。假設(shè)中斷服務(wù)程序存放在第一頁(0000H-07FFH),通常這樣做是因?yàn)橹袛嗳肟诘刂吩诘谝豁摚蚨梢詼p少程序量)。那么,具體程序如下:

***************ORG 0000H0000H GOTO STARTORG 0004H***************0004H GOTO PRO-INTORG 0005H0005H START …………0234H PRO-INT…………RETFIE***************

通過匯編程序編譯可知,在程序存儲(chǔ)器0004H單元存放的代碼是2A34H,當(dāng)CPU在程序存儲(chǔ)器第一頁響應(yīng)中斷時(shí),程序先跳到0004H,然后跳到0234H執(zhí)行,正常進(jìn)入中斷,執(zhí)行完后能正常返回。當(dāng)CPU在程序存儲(chǔ)器第二頁響應(yīng)中斷時(shí),由于PCLATH的D4D3(頁選擇位)為01,CPU4執(zhí)行“GOTO PRO-INT”時(shí)的代碼雖然是2A34H,但程序不是跳到0234H執(zhí)行,而是跳至0A34H執(zhí)行。顯然,程序執(zhí)行錯(cuò)誤。

解決這一問題的方面是在程序存儲(chǔ)器0A34H處安排一段程序,在中斷程序結(jié)束時(shí)判斷CPU響應(yīng)中斷時(shí)程序所處的位置,從而使程序根據(jù)該信息合理設(shè)置頁選擇位,然后再返回中斷。

******************ORG 0A34HBSF RAM,b ;設(shè)置在程序執(zhí)行到第二頁時(shí)CPU響應(yīng)中斷的標(biāo)志BCF PCLATH,3 ;將PC切換到第一頁GOTO PRO-INT ;程序跳轉(zhuǎn)到中斷服務(wù)程序*******************在指令RETFIE前應(yīng)增加的程序如下:******************BTFSC RAM,b ;判斷CPU響應(yīng)中斷前程序所在位置BSF PCLATH,3 ;設(shè)置頁選擇位RETFIE******************

以上程序中的RAM是一個(gè)內(nèi)存單元,b是該單元的某一位,該位在程序初始化時(shí)清零,CPU在執(zhí)行程序存儲(chǔ)器第二頁的程序并響應(yīng)中斷時(shí)該位置“1”。經(jīng)過上述處理,CPU不管在程序存儲(chǔ)器第一頁還是第二頁響應(yīng)中斷,都能正確進(jìn)入中斷服務(wù)程序并能正確返回中斷前的地址。

5 利用中斷喚醒CPU

PIC系列單片機(jī)具有休眠(SLEEP)省電工作模式,當(dāng)執(zhí)行一條SLEEP指令后,芯片就進(jìn)入低功耗休眠模式。進(jìn)入休眠狀態(tài)后,主振蕩器停止工作,此時(shí)芯片消耗的電流極低(在3V工作電壓,32kHz時(shí)鐘時(shí)典型值約1μA),這一特點(diǎn)對(duì)于電池供電的系統(tǒng)非常有利。利用中斷可以將CPU從休眠狀態(tài)喚醒。這些中斷源包括外部INT引腳中斷、RB口引腳電平改變中斷和部分外圍接口中斷。用于喚醒休眠狀態(tài)的CPU外圍接口中斷有:工作在異步計(jì)數(shù)器方式下的TMR1中斷、SSP起始/停止位檢測(cè)中斷、CCP捕捉方式中斷和從動(dòng)并行口讀寫中斷。其它外圍接口中斷因需要片內(nèi)Q時(shí)鐘而無法產(chǎn)生中斷。

利用中斷事件喚醒CPU與全局中斷允許位GIE無關(guān),任意一個(gè)中斷允許位置1的中斷源,只要產(chǎn)生中斷就會(huì)將相應(yīng)的中斷標(biāo)志置1,芯片將立入中斷服務(wù)程序與全局中斷允許位GIE的狀態(tài)和緊接SLEEP指令后的那條指令有關(guān)。由于PIC系列 單片機(jī) 采用了兩級(jí)指令流水線結(jié)構(gòu),在執(zhí)行SLEEP指令時(shí),下一條指令已預(yù)先取出,因此在GIE位為0時(shí),芯片被喚醒后首先執(zhí)行預(yù)先取出的那條指令;如果GIE位為1,則芯片被喚醒后執(zhí)行預(yù)先取出的那條指令后緊接著轉(zhuǎn)入中斷入口地址再執(zhí)行中斷服務(wù)程序。在這種情況下,應(yīng)在SLEEP指令后安排一條空操作指令NOP,以便CPU被喚醒后能立即進(jìn)入中斷服務(wù)程序。

總之,PIC系列單片機(jī)是一種性能價(jià)格比很高的微控制器,正確、合理地使用其中斷資源可以使系統(tǒng)更加完善,工作更加穩(wěn)定。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6037

    文章

    44561

    瀏覽量

    635584
  • microchip
    +關(guān)注

    關(guān)注

    52

    文章

    1506

    瀏覽量

    117586
  • PIC
    PIC
    +關(guān)注

    關(guān)注

    8

    文章

    507

    瀏覽量

    87587

原文標(biāo)題:PIC單片機(jī)的中斷資源及應(yīng)用

文章出處:【微信號(hào):mcugeek,微信公眾號(hào):MCU開發(fā)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    PIC單片機(jī)基礎(chǔ)知識(shí)

    PIC系列單片機(jī)簡(jiǎn)介 ◆ PIC系列單片機(jī)程序設(shè)計(jì)基礎(chǔ) ◆
    發(fā)表于 01-18 13:30 ?112次下載

    單片機(jī)中斷處理技術(shù)的應(yīng)用與研究

    PIC 系列單片機(jī),其硬件結(jié)構(gòu)和指令系統(tǒng)采用了與眾不同的設(shè)計(jì)手法。與51 或者其他系列單片機(jī)相比,PI
    發(fā)表于 06-16 09:35 ?27次下載

    單片機(jī)中斷處理技術(shù)的應(yīng)用與研究

    PIC 系列單片機(jī),其硬件結(jié)構(gòu)和指令系統(tǒng)采用了與眾不同的設(shè)計(jì)手法。與51 或者其他系列單片機(jī)相比,PI
    發(fā)表于 06-16 09:35 ?5次下載

    PIC 8位單片機(jī)特點(diǎn)

    PIC 8位單片機(jī)具有指令少、執(zhí)行速度快等優(yōu)點(diǎn),其主要原因是PIC系列單片機(jī)在結(jié)構(gòu)上與其它單片機(jī)
    發(fā)表于 09-23 22:14 ?34次下載

    PIC單片機(jī)引腳中斷程序的設(shè)計(jì)技巧

    PIC單片機(jī)引腳中斷程序的設(shè)計(jì)技巧   所有的中檔系列PIC單片機(jī),PORTB端口最
    發(fā)表于 10-30 08:07 ?1523次閱讀

    PIC單片機(jī)中斷總結(jié)

    PIC單片機(jī)中斷總結(jié) 與51或者其他系列單片機(jī)相比,PIC
    發(fā)表于 10-30 08:15 ?2813次閱讀

    PIC 8位單片機(jī)的分類和特點(diǎn)

    PIC 8位單片機(jī)的分類和特點(diǎn) PIC單片機(jī)教程 -PIC 8位
    發(fā)表于 03-27 17:07 ?2102次閱讀

    PIC單片機(jī)教程-內(nèi)部硬件資源

    PIC單片機(jī)教程-內(nèi)部硬件資源   數(shù)據(jù)存儲(chǔ)器在單片機(jī)PIC16F84中,除了有存放程序的程序存儲(chǔ)器外,還有數(shù)據(jù)存儲(chǔ)器。
    發(fā)表于 03-27 17:11 ?1915次閱讀

    PIC單片機(jī)中斷模塊介紹

    PIC16F87X系列單片機(jī)可以接收多達(dá)14個(gè)中斷源。中斷控制器寄存器INTCON標(biāo)記著各個(gè)中斷
    發(fā)表于 06-23 11:08 ?2292次閱讀

    PIC系列單片機(jī)的開發(fā)應(yīng)用技術(shù)

    本書旨在將3個(gè)層次不同型號(hào)的PIC系列單片機(jī)特點(diǎn)、結(jié)構(gòu)、指令系統(tǒng)及設(shè)計(jì)應(yīng)用技術(shù)加以歸納整理,并提供豐富的應(yīng)用實(shí)例,為讀者建立PIC
    發(fā)表于 10-29 16:23 ?65次下載
    <b class='flag-5'>PIC</b><b class='flag-5'>系列</b><b class='flag-5'>單片機(jī)</b>的開發(fā)應(yīng)用技術(shù)

    51單片機(jī)中斷編程實(shí)例詳解

    51單片機(jī)中斷編程實(shí)例詳解.pdf
    發(fā)表于 12-16 15:42 ?17次下載

    PIC單片機(jī)有什么特點(diǎn)和優(yōu)勢(shì)_pic方法介紹

    PIC最大的特點(diǎn)是不搞單純的功能堆積,而是從實(shí)際出發(fā),重視產(chǎn)品的性能與價(jià)格比,靠發(fā)展多種型號(hào)來滿足不同層次的應(yīng)用要求。就實(shí)際而言,不同的應(yīng)用對(duì)單片機(jī)功能和資源的需求也是不同的。
    發(fā)表于 11-16 08:55 ?5670次閱讀

    PIC16F87x單片機(jī)存儲(chǔ)器特點(diǎn)及數(shù)據(jù)存儲(chǔ)器使用規(guī)劃

    帶來很多不便。本文介紹在PIC1687x系列單片機(jī)中,根據(jù)數(shù)據(jù)變量的訪問特性安排其在數(shù)據(jù)存儲(chǔ)器中的位置的方法及其中斷編程,從一方面說明內(nèi)存的
    發(fā)表于 04-08 08:00 ?4344次閱讀
    <b class='flag-5'>PIC</b>16F87x<b class='flag-5'>單片機(jī)</b>存儲(chǔ)器<b class='flag-5'>特點(diǎn)</b>及數(shù)據(jù)存儲(chǔ)器使用規(guī)劃

    基于MIPS的PIC32MM系列32位單片機(jī)介紹

    本文主要詳解基于MIPS的PIC32MM系列32位單片機(jī),首先介紹了MIPS32位架構(gòu),其次介紹了PIC32MM
    發(fā)表于 05-17 15:24 ?4679次閱讀

    PIC系列單片機(jī)

    PIC系列單片機(jī)由美國(guó)Microchip公司推出的PIC單片機(jī)系列產(chǎn)品,首先采用了RISC結(jié)構(gòu)的
    發(fā)表于 11-16 12:36 ?9次下載
    <b class='flag-5'>PIC</b><b class='flag-5'>系列</b><b class='flag-5'>單片機(jī)</b>
    主站蜘蛛池模板: 手机在线国产视频| 久久精品av| 久久综合色视频| 午夜婷婷精品午夜无码A片影院| 擦擦擦在线视频观看| 女性性纵欲派对| 中文字幕精品无码一区二区| 精品久久久久久久久免费影院| 亚洲 欧美 日韩 卡通 另类| 国产精品99久久久久久WWW| 十八禁啪啦啪漫画| 国产69精品久久久久乱码免费| 日本全彩黄漫无遮挡| 爱穿丝袜的麻麻3d漫画免费| 欧美 国产 日产 韩国 在线| 99久久e免费热视频百度| 毛片大片免费看| av在线色| 色悠悠电影网| 国产日韩在线欧美视频| 亚洲三级视频| 麻豆精品无码久久久久久久久| 2021精品高清卡1卡2卡3麻豆| 男女啪啪久久精品亚洲A| ai换脸女明星被躁在线观看免费| 欧美性猛交XXXX乱大交极品| free性欧美xxx狂欢| 日本人奶水中文影片| 国产精品成人影院| 亚洲色图p| 女女破视频在线观看| 高H黄暴NP辣H一女多男| 亚洲第一成年人网站| 久久夜色精品国产亚州AV卜| japanese幼儿videos| 偷窥欧美wc经典tv| 久久国产高清视频| gv手机在线观看| 亚洲aaaa级特黄毛片| 久久香蕉国产线看观看首页| adc高清在线观看|