www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 單片機 > 單片機
[導讀] 1 PIC 單片機 簡介PIC系列 單片機 是美國Microchip技術公司推出的高性能價格比的8位嵌入式控制器(Embedded Controller),它采用了精簡指令集計算機RISC(Reduced Instruction Set Computer)和哈佛(

1 PIC 單片機 簡介

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

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

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

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

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

所有的中斷都有自己的中斷允許位和中斷標志,外圍接口中斷不僅受各自的中斷允許位控制,同時還共同受外圍中斷控制允許位的控制。全局中斷允許位GID能夠控制所有的中斷。無論全局中斷允許位GIE和相應的中斷允許位狀態(tài)如何,只要滿足中斷條件,各個中斷標志位都會被置1。與其它微處理器不同的是:當CPU響應中斷時全局中斷允許閏GIF會自動被清零,中斷標志位不能用硬件清零而只能用軟件清零;當執(zhí)行中斷返回指令RETFIE時,全局中斷允許位GIE會被自動置1而重新開放中斷。因此,在重新開放中斷之前要用軟件清零有關的中斷標志位,以避免產(chǎn)生不斷地中斷請求而反復進入中斷。由于全局中斷允許位GIE會被中斷服務程序(RETFIE指令)自動置1,因此用軟件清零GIE并不可靠,這一點要特別注意。用下面的程序可確保整個中斷被禁止。

***************

LOOP BCF INTCON,GIE ;禁止整個中斷

BTFSC INTCON,GIE ;判斷全局中斷是否被禁止

GOTO LOOP ;否,重新清零

…… ;繼續(xù)

***************

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

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

PIC系列 單片機 只有一個中斷入口(004H),所有的中斷都通過該入口進入中斷服務子程序,至于是哪一個中斷源,只有在進入中斷服務子程序后查詢中斷標志才能確認。該單片機沒規(guī)定中斷的優(yōu)先級,也沒有用于設定中斷優(yōu)先級的寄存器,中斷的優(yōu)先級是由于中斷服務子程序中斷查詢中斷標志的順序確定的。CPU響應一個中斷并進入中斷服務程序后,全局中斷允許位GIE被自動清零,CPU在此期間不響應其它中斷,也不能形成中斷嵌套。因此,在使用中斷時要合理安排查詢中斷標志的順序,盡量縮短CPU在中斷服務程序中逗留的時間。在用PIC系列單片機構(gòu)成系統(tǒng)時應盡量減少中斷源的個數(shù),對于那些執(zhí)行時間較長且不需采用中斷方式來處理的事件,應盡量采和查詢標志的方式進行處理;對于那些必須采用中斷方式處理的事件,在中斷服務程序中要盡量先查詢對系統(tǒng)至關重要的事件的中斷標志。另外,在退出中斷服務程序時,只清除處理過的中斷標志即可,而不需要將所有的中斷標志清除。對于RB口電平變化中斷,一方面要保存RB口每次變化后的狀態(tài),以便在下次中斷時判斷是哪根口線上的電平發(fā)生了變化;另一方面可以設置產(chǎn)生中斷的口線標志,并將由于該中斷而未執(zhí)行的程序在中斷服務程序外通過查詢口線標志來執(zhí)行,以減少CPU在中斷服務程序中逗留的時間。

4 程序跨頁時的中斷處理

PIC系列 單片機 的程序存儲空間是分頁處理的,每頁空間的大小為512字節(jié)到4k字節(jié)不等。頁程序計數(shù)器PC是一個13位寬的增量寄存器,其低8位PCL是一個可讀/寫寄存器,其高字節(jié)PCH(有效位為5位)不能直接進行讀/寫操作,它通過一個8位保護寄存器PCLATH把高5位地址傳遞給程序計數(shù)器的高字節(jié)。當一個中斷被響應時,PC中的斷點地址自動被壓棧(PUSH)保護;而當執(zhí)行RETFIE指令時,堆棧中的斷點地址回彈到(POP)程序存儲器PC中。無論是壓棧操作還是出棧操作,它們都不影響PCLATH寄存器的內(nèi)容。同時,CPU響應中斷并跳轉(zhuǎn)到中斷入口地址時,都只能在本頁內(nèi)跳轉(zhuǎn)而不影響PLCATH寄存器的內(nèi)容。另外,在中斷入口安排的是GOTO語句,而GOTO語句也只能在本頁跳轉(zhuǎn)。當中斷服務程序存放在程序存儲器的第一頁且CPU在執(zhí)行非第一頁內(nèi)程序時,響應中斷將導致中斷入口地址和中斷返回地址錯誤而引起程序混亂。下面以PIC16C65A來說明這個問題的解決辦法。

PIC16C65A的片內(nèi)程序存儲器為4k,分為兩頁,每頁2k。假設中斷服務程序存放在第一頁(0000H-07FFH),通常這樣做是因為中斷入口地址在第一頁,因而可以減少程序量)。那么,具體程序如下:

***************

ORG 0000H

0000H GOTO START

ORG 0004H

***************

0004H GOTO PRO-INT

ORG 0005H

0005H START ……

……

0234H PRO-INT……

……

RETFIE

***************

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

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

******************

ORG 0A34H

BSF RAM,b ;設置在程序執(zhí)行到第二頁時CPU響應中斷的標志

BCF PCLATH,3 ;將PC切換到第一頁

GOTO PRO-INT ;程序跳轉(zhuǎn)到中斷服務程序

*******************

在指令RETFIE前應增加的程序如下:

******************

BTFSC RAM,b ;判斷CPU響應中斷前程序所在位置

BSF PCLATH,3 ;設置頁選擇位

RETFIE

******************

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

5 利用中斷喚醒CPU

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

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

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


本站聲明: 本文章由作者或相關機構(gòu)授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

8位單片機在嵌入式設計領域已經(jīng)成為半個多世紀以來的主流選擇。盡管嵌入式系統(tǒng)市場日益復雜,8位單片機依然不斷發(fā)展,積極應對新的挑戰(zhàn)和系統(tǒng)需求。如今,Microchip推出的8位PIC?和AVR?單片機系列,配備了先進的獨立...

關鍵字: 單片機 嵌入式 CPU

在嵌入式系統(tǒng)開發(fā)中,程序燒錄是連接軟件設計與硬件實現(xiàn)的關鍵環(huán)節(jié)。當前主流的單片機燒錄技術已形成ICP(在電路編程)、ISP(在系統(tǒng)編程)、IAP(在應用編程)三大技術體系,分別對應開發(fā)調(diào)試、量產(chǎn)燒錄、遠程升級等不同場景。...

關鍵字: 單片機 ISP ICP IAP 嵌入式系統(tǒng)開發(fā)

在嵌入式系統(tǒng)開發(fā)中,看門狗(Watchdog Timer, WDT)是保障系統(tǒng)可靠性的核心組件,其初始化時機的選擇直接影響系統(tǒng)抗干擾能力和穩(wěn)定性。本文從硬件架構(gòu)、軟件流程、安全規(guī)范三個維度,系統(tǒng)分析看門狗初始化的最佳實踐...

關鍵字: 單片機 看門狗 嵌入式系統(tǒng)

本文中,小編將對單片機予以介紹,如果你想對它的詳細情況有所認識,或者想要增進對它的了解程度,不妨請看以下內(nèi)容哦。

關鍵字: 單片機 開發(fā)板 Keil

隨著單片機系統(tǒng)越來越廣泛地應用于消費類電子、醫(yī)療、工業(yè)自動化、智能化儀器儀表、航空航天等各領域,單片機系統(tǒng)面臨著電磁干擾(EMI)日益嚴重的威脅。電磁兼容性(EMC)包含系統(tǒng)的發(fā)射和敏感度兩方面的問題。

關鍵字: 單片機 電磁兼容

以下內(nèi)容中,小編將對單片機的相關內(nèi)容進行著重介紹和闡述,希望本文能幫您增進對單片機的了解,和小編一起來看看吧。

關鍵字: 單片機 復位電路

在這篇文章中,小編將為大家?guī)韱纹瑱C的相關報道。如果你對本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。

關鍵字: 單片機 異常復位

今天,小編將在這篇文章中為大家?guī)韱纹瑱C的有關報道,通過閱讀這篇文章,大家可以對它具備清晰的認識,主要內(nèi)容如下。

關鍵字: 單片機 仿真器

單片機將是下述內(nèi)容的主要介紹對象,通過這篇文章,小編希望大家可以對它的相關情況以及信息有所認識和了解,詳細內(nèi)容如下。

關鍵字: 單片機 中斷 boot

一直以來,單片機都是大家的關注焦點之一。因此針對大家的興趣點所在,小編將為大家?guī)韱纹瑱C的相關介紹,詳細內(nèi)容請看下文。

關鍵字: 單片機 數(shù)字信號 模擬信號
關閉