版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、單片機原理與應(yīng)用單片機原理與應(yīng)用2高速時鐘的設(shè)置:高速時鐘的設(shè)置:如設(shè)置成如設(shè)置成32M時鐘步驟:時鐘步驟:1.選擇外部32MHz晶振作為主時鐘源;2.等待32MHz晶振穩(wěn)定 3.當(dāng)前系統(tǒng)時鐘不分頻如設(shè)置成如設(shè)置成8M時鐘步驟:時鐘步驟:將上述第3步中修改成:當(dāng)前系統(tǒng)時鐘4分頻串口控制器初始化編程:串口控制器初始化編程:1.設(shè)置為設(shè)置為32M時鐘;時鐘;2.選擇串口外設(shè)備用位置(位置選擇串口外設(shè)備用位置(位置1或者位置或者位置2););3.初始化初始化I/O口為外部設(shè)備;口為外部設(shè)備;4.設(shè)置中斷優(yōu)先級;設(shè)置中斷優(yōu)先級;5.選擇同步異步通信方式:選擇同步異步通信方式:UART方式方式6.設(shè)置波
2、特率(查表)設(shè)置波特率(查表) 串口發(fā)送:串口發(fā)送:查詢狀態(tài)位;或者通過中斷標(biāo)志位查詢狀態(tài)位;或者通過中斷標(biāo)志位 串口接收:串口接收:查詢狀態(tài)位;或者通過中斷標(biāo)志位查詢狀態(tài)位;或者通過中斷標(biāo)志位3本周教學(xué)主要內(nèi)容本周教學(xué)主要內(nèi)容 中斷概述 CC2530中斷原理(難點) CC2530中斷編程(重點)4教學(xué)目標(biāo)教學(xué)目標(biāo) 理解中斷的概念、一般處理步驟;理解中斷的概念、一般處理步驟; 掌握掌握CC2530CC2530中斷原理中斷原理; ; 掌握掌握CC2530CC2530中斷編程步驟。中斷編程步驟。5CPU與外部設(shè)備之間數(shù)據(jù)傳送方式主要有以下幾種:(1)無條件傳送(適用設(shè)備類型有限):適用于總是準(zhǔn)備好
3、的外設(shè))無條件傳送(適用設(shè)備類型有限):適用于總是準(zhǔn)備好的外設(shè),如我如我們已經(jīng)們已經(jīng)通過實驗使用了無條件傳送方式點亮發(fā)光二極管通過實驗使用了無條件傳送方式點亮發(fā)光二極管;(2)查詢方式(浪費)查詢方式(浪費cpu資源):傳送數(shù)據(jù)之前需要先查詢設(shè)備的狀態(tài)資源):傳送數(shù)據(jù)之前需要先查詢設(shè)備的狀態(tài),狀態(tài)滿足要求則傳送,否則等待,如我們用查詢方式使用串口;,狀態(tài)滿足要求則傳送,否則等待,如我們用查詢方式使用串口;(3)中斷方式:當(dāng)外設(shè)滿足傳送數(shù)據(jù)狀態(tài)時(如串口控制器的發(fā)送緩沖)中斷方式:當(dāng)外設(shè)滿足傳送數(shù)據(jù)狀態(tài)時(如串口控制器的發(fā)送緩沖區(qū)空或接收緩沖區(qū)慢)會向區(qū)空或接收緩沖區(qū)慢)會向cpu發(fā)出請求信號,
4、強迫發(fā)出請求信號,強迫cpu暫停暫?!笆诸^的工作手頭的工作”,轉(zhuǎn)去處理該外設(shè),完畢后再繼續(xù)原來的,轉(zhuǎn)去處理該外設(shè),完畢后再繼續(xù)原來的“工作工作”;(4)直接存儲器()直接存儲器(DMA)存?。ㄓ信d趣的可以自己可查閱相關(guān)資料)存?。ㄓ信d趣的可以自己可查閱相關(guān)資料)已經(jīng)實現(xiàn)已經(jīng)實現(xiàn)已經(jīng)實現(xiàn)已經(jīng)實現(xiàn)6 CPU在硬件上對中斷的支持:在硬件上對中斷的支持:(1)具有中斷請求輸入信號管腳;)具有中斷請求輸入信號管腳;(2)每執(zhí)行完一條指令都會檢測是否有中斷請求信號;)每執(zhí)行完一條指令都會檢測是否有中斷請求信號;主主程程序序斷點斷點繼繼續(xù)續(xù)執(zhí)執(zhí)行行主主程程序序響應(yīng)中斷請求響應(yīng)中斷請求返回主程序返回主程序中中
5、斷斷服服務(wù)務(wù)程程序序(1 1)中斷服務(wù)程序:中斷服務(wù)程序:CPUCPU響應(yīng)中斷后,轉(zhuǎn)去執(zhí)行相應(yīng)響應(yīng)中斷后,轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,該處理程序通常稱之為中斷服務(wù)程序。的處理程序,該處理程序通常稱之為中斷服務(wù)程序。(2 2)主程序:主程序:原來正常運行的程序稱為主程序。原來正常運行的程序稱為主程序。(3 3)斷點:斷點:主程序被斷開的位置(或地址)稱為斷點。主程序被斷開的位置(或地址)稱為斷點。(4 4)中斷源:中斷源:引起中斷的原因,或能發(fā)出中斷申請的引起中斷的原因,或能發(fā)出中斷申請的來源,稱為中斷源。來源,稱為中斷源。(5 5)中斷請求:中斷請求:中斷源要求服務(wù)的請求稱為中斷請求中斷源要求服務(wù)
6、的請求稱為中斷請求(或中斷申請)。(或中斷申請)。 7中斷響應(yīng)的一般過程中斷響應(yīng)的一般過程(1)中斷請求)中斷請求 當(dāng)外部設(shè)備就緒時會產(chǎn)生一個中斷請求信號加到當(dāng)外部設(shè)備就緒時會產(chǎn)生一個中斷請求信號加到CPU的中斷請求輸入端的中斷請求輸入端,即對,即對CPU提出中斷請求。對于中斷請求信號,需注意兩個問題:提出中斷請求。對于中斷請求信號,需注意兩個問題:有效的中斷請求電平保持到被有效的中斷請求電平保持到被cpu發(fā)現(xiàn);發(fā)現(xiàn);當(dāng)當(dāng)cpu響應(yīng)請求后應(yīng)當(dāng)有效的請求電平去掉;響應(yīng)請求后應(yīng)當(dāng)有效的請求電平去掉;在使用中斷控制器時(大多數(shù)如此),在使用中斷控制器時(大多數(shù)如此),cpu的中斷響應(yīng)信號就能做到這的
7、中斷響應(yīng)信號就能做到這一點,若自己構(gòu)成中斷請求硬件時,需要注意以上兩個問題;一點,若自己構(gòu)成中斷請求硬件時,需要注意以上兩個問題;(2)中斷響應(yīng))中斷響應(yīng)CPU在每條指令執(zhí)行的最后一個時鐘周期監(jiān)測中斷請求輸入管在每條指令執(zhí)行的最后一個時鐘周期監(jiān)測中斷請求輸入管腳有無請求發(fā)生,腳有無請求發(fā)生, 而后決定是否對它做出響應(yīng)。而后決定是否對它做出響應(yīng)。(3)斷點保護)斷點保護為了中斷處理完畢后為了能接著處理被中斷的事情,為了中斷處理完畢后為了能接著處理被中斷的事情,CPU硬件硬件需要對硬件現(xiàn)場進行保護。需要對硬件現(xiàn)場進行保護。8(4)中斷源識別)中斷源識別 當(dāng)有多個中斷源時,一旦中斷請求發(fā)生,當(dāng)有多個
8、中斷源時,一旦中斷請求發(fā)生,cpu須判斷是哪須判斷是哪一個中斷源提出請求。一般有兩種確定中斷源的方法:一個中斷源提出請求。一般有兩種確定中斷源的方法:a:軟件查詢;軟件查詢;b:中斷向量法;中斷向量法;(大多數(shù)如此)(大多數(shù)如此) 利用不同的中斷向量,從而確定是來自不同的中斷源。利用不同的中斷向量,從而確定是來自不同的中斷源。(5)中斷服務(wù))中斷服務(wù) 程序員所編寫的中斷處理程序統(tǒng)稱中斷服務(wù)程序,這也是程序員所編寫的中斷處理程序統(tǒng)稱中斷服務(wù)程序,這也是中斷處理需要程序員所做的主要工作;中斷處理需要程序員所做的主要工作;(6)斷點恢復(fù))斷點恢復(fù)(7)中斷返回)中斷返回9 中斷由中斷源引起,中斷源由
9、相應(yīng)的寄存器來控制。中斷由中斷源引起,中斷源由相應(yīng)的寄存器來控制。當(dāng)需要使用中斷時,需配置相應(yīng)的中斷寄存器來開啟當(dāng)需要使用中斷時,需配置相應(yīng)的中斷寄存器來開啟中斷,當(dāng)中斷發(fā)生時將跳入中斷服務(wù)函數(shù)中執(zhí)行此中中斷,當(dāng)中斷發(fā)生時將跳入中斷服務(wù)函數(shù)中執(zhí)行此中斷所需要處理的事件斷所需要處理的事件 。中斷源與中斷向量中斷源與中斷向量 l CC2530片內(nèi)具有一個中斷控制器,能夠同時對片內(nèi)具有一個中斷控制器,能夠同時對1818路中斷源路中斷源進行管理進行管理,每個中斷源都可以產(chǎn)生中斷請求,中斷請求可以,每個中斷源都可以產(chǎn)生中斷請求,中斷請求可以通過設(shè)置中斷使能通過設(shè)置中斷使能SFR寄存器的中斷使能位寄存器的
10、中斷使能位IEN0、IEN1或或IEN2使能或禁止中斷。使能或禁止中斷。10(1 1)當(dāng)調(diào)用中斷處理程序時會由硬件清除中斷;)當(dāng)調(diào)用中斷處理程序時會由硬件清除中斷;(2 2)表示還存在子級中斷)表示還存在子級中斷11我們已經(jīng)大致指導(dǎo)如何編寫中斷處理程序了,但要保證讓中斷處理程序真正得到調(diào)我們已經(jīng)大致指導(dǎo)如何編寫中斷處理程序了,但要保證讓中斷處理程序真正得到調(diào)用前,我們還得對中斷控制器進行初始化,如何初始化?還得理解中斷信號從源頭用前,我們還得對中斷控制器進行初始化,如何初始化?還得理解中斷信號從源頭如何一步步傳到如何一步步傳到CPUCPU的。的。1818路中斷總開關(guān)路中斷總開關(guān) 優(yōu)先級排隊,優(yōu)
11、先級排隊,得到第一名的將得到第一名的將會得到響應(yīng),多會得到響應(yīng),多個第一名則按順個第一名則按順序輪詢序輪詢 18 18路中斷分開關(guān)路中斷分開關(guān)帶陰影的標(biāo)志位帶陰影的標(biāo)志位會有硬件清除會有硬件清除12我們可以這樣認(rèn)為,當(dāng)發(fā)生了某個中斷:我們可以這樣認(rèn)為,當(dāng)發(fā)生了某個中斷:PC(PC(指令計數(shù)器指令計數(shù)器) )對應(yīng)的斷向量,對應(yīng)的斷向量,也就是說,也就是說,cpucpu將會執(zhí)行對應(yīng)的中斷向量處的指令。將會執(zhí)行對應(yīng)的中斷向量處的指令。- - 1212 - -1.中斷源與中斷向量中斷源與中斷向量 l 當(dāng)相應(yīng)的中斷源使能并發(fā)生時,中斷標(biāo)志位將自動置當(dāng)相應(yīng)的中斷源使能并發(fā)生時,中斷標(biāo)志位將自動置1,然后程
12、序跳往中斷服務(wù)程序的入口地址執(zhí)行中斷服務(wù)程序。然后程序跳往中斷服務(wù)程序的入口地址執(zhí)行中斷服務(wù)程序。待中斷服務(wù)程序處理完畢后,由硬件清除中斷標(biāo)志位待中斷服務(wù)程序處理完畢后,由硬件清除中斷標(biāo)志位 l 中斷服務(wù)程序的入口地址即中斷向量,中斷服務(wù)程序的入口地址即中斷向量,CC2530的的18個中個中斷源對應(yīng)了斷源對應(yīng)了18個中斷向量,中斷向量定義在頭文件個中斷向量,中斷向量定義在頭文件“ioCC2530.h”中中 13- - 1313 - -2.中斷優(yōu)先級中斷優(yōu)先級 l 中斷優(yōu)先級將決定中斷響應(yīng)的先后順序,在中斷優(yōu)先級將決定中斷響應(yīng)的先后順序,在CC2530中分為六中分為六個中斷優(yōu)先組,即個中斷優(yōu)先組
13、,即IPG0IPG5,每一組中斷優(yōu)先組中有三個,每一組中斷優(yōu)先組中有三個中斷源中斷源 142.中斷優(yōu)先級中斷優(yōu)先級 中斷優(yōu)先組的優(yōu)先級設(shè)定由寄存器中斷優(yōu)先組的優(yōu)先級設(shè)定由寄存器IP0和和IP1來設(shè)置。來設(shè)置。CC2530的優(yōu)的優(yōu)先級有先級有4級,即級,即03級,其中級,其中0級的優(yōu)先級最低,級的優(yōu)先級最低,3級的優(yōu)先級最高。級的優(yōu)先級最高。 l 其中其中X為六個中斷優(yōu)先組為六個中斷優(yōu)先組IPG0IPG5中的任何一個中的任何一個 。 設(shè)置設(shè)置IPG0優(yōu)先級最高優(yōu)先級最高IP1_IPG0 = 1;IP0_IPG0 = 1;15- - 1515 - -2.中斷優(yōu)先級中斷優(yōu)先級 l 如果同時收到相同優(yōu)
14、先級或同一優(yōu)先級組中的中如果同時收到相同優(yōu)先級或同一優(yōu)先級組中的中斷請求時,將采用輪流檢測順序來判斷中斷優(yōu)先斷請求時,將采用輪流檢測順序來判斷中斷優(yōu)先級別的響應(yīng)級別的響應(yīng) 162.中斷優(yōu)先級中斷優(yōu)先級 例如:在中斷優(yōu)先級組例如:在中斷優(yōu)先級組IPG0中的中斷中的中斷RFERR、RF和和DMA的中斷優(yōu)先級是相的中斷優(yōu)先級是相同的,如果同時使用這三個同的,如果同時使用這三個中斷,就需要使用輪流探測中斷,就需要使用輪流探測順序來判斷哪一優(yōu)先級最高。順序來判斷哪一優(yōu)先級最高。由輪流探測順序表查得由輪流探測順序表查得RFERR中斷優(yōu)先級最高,中斷優(yōu)先級最高,RF中斷次之,中斷次之,DMA中斷與中斷與其他
15、兩個中斷相比中斷優(yōu)先其他兩個中斷相比中斷優(yōu)先級最低級最低 173.中斷處理過程中斷處理過程 l 中斷發(fā)生時,中斷發(fā)生時,CC2530硬件自動完成以下處理:硬件自動完成以下處理: u 中斷申請:中斷源向中斷申請:中斷源向CPU發(fā)出中斷請求信號(中斷申請一般需要在程發(fā)出中斷請求信號(中斷申請一般需要在程序初始化中配置相應(yīng)的中斷寄存器開啟中斷)序初始化中配置相應(yīng)的中斷寄存器開啟中斷) u 中斷響應(yīng):中斷響應(yīng):CPU檢測中斷申請,把主程序中斷的地址保存到堆棧,轉(zhuǎn)檢測中斷申請,把主程序中斷的地址保存到堆棧,轉(zhuǎn)入中斷向量入口地址入中斷向量入口地址 u 中斷處理:按照中斷向量中設(shè)定好的地址,轉(zhuǎn)入相應(yīng)的中斷服
16、務(wù)程序中斷處理:按照中斷向量中設(shè)定好的地址,轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序 u 中斷返回:中斷服務(wù)程序執(zhí)行完畢后,中斷返回:中斷服務(wù)程序執(zhí)行完畢后,CPU執(zhí)行中斷返回指令,把堆執(zhí)行中斷返回指令,把堆棧中保存的數(shù)據(jù)從堆棧彈出,返回原來程序棧中保存的數(shù)據(jù)從堆棧彈出,返回原來程序 184.中斷編程中斷編程 l 中斷編程的一般過程如下中斷編程的一般過程如下 :l 中斷設(shè)置:根據(jù)外設(shè)的不同,具體的設(shè)置是不同的,一般中斷設(shè)置:根據(jù)外設(shè)的不同,具體的設(shè)置是不同的,一般至少包含啟用中斷至少包含啟用中斷 l 中斷函數(shù)編寫;這是中斷編程的主要工作,需要注意的是,中斷函數(shù)編寫;這是中斷編程的主要工作,需要注意的是,中斷函數(shù)
17、盡可能的減少耗時或不進行耗時操作中斷函數(shù)盡可能的減少耗時或不進行耗時操作 以以CC2530的外部中斷為例:的外部中斷為例: P0IFG = 0 x00;/P0中斷標(biāo)志清中斷標(biāo)志清0 P0INP &= 0X30; /P0.4有上拉、下拉能力有上拉、下拉能力 P0IEN |= 0 x30; /P0.4和和P0.5中斷使能中斷使能 PICTL|= 0X01; /P0.4和和P0.5,下降沿觸發(fā),下降沿觸發(fā) EA = 1; /開中斷開中斷 IEN1 |= 0X20; /端口端口0中斷使能中斷使能19- - 1919 - -4.中斷編程中斷編程 l 中斷編程的一般過程如下中斷編程的一般過程如下
18、:l CC2530所使用的編譯器為所使用的編譯器為IAR,在,在IAR編譯器中用關(guān)鍵字編譯器中用關(guān)鍵字_interrupt來定義一個中斷函數(shù)。使用來定義一個中斷函數(shù)。使用#progma vector來提供來提供中斷函數(shù)的入口地址,并且中斷函數(shù)沒有返回值,沒有函數(shù)參數(shù)中斷函數(shù)的入口地址,并且中斷函數(shù)沒有返回值,沒有函數(shù)參數(shù) #pragma vector = P0INT_VECTOR_interrupt void P0_ISR ( void) /中斷程序代碼中斷程序代碼204.中斷編程中斷編程 l 在中斷函數(shù)編寫中,當(dāng)程序進入中斷服務(wù)程序之后,需要執(zhí)行在中斷函數(shù)編寫中,當(dāng)程序進入中斷服務(wù)程序之后,
19、需要執(zhí)行以下幾個步驟以下幾個步驟 :u 將對應(yīng)的中斷關(guān)掉(不是必須的,需要根據(jù)具體情況來處理);將對應(yīng)的中斷關(guān)掉(不是必須的,需要根據(jù)具體情況來處理);u 如果需要判斷具體的中斷源,則根據(jù)中斷標(biāo)志位進行判斷(例如所有如果需要判斷具體的中斷源,則根據(jù)中斷標(biāo)志位進行判斷(例如所有I/O中中斷共用斷共用1個中斷向量,需要通過中斷標(biāo)志區(qū)分是哪個引腳引起的中斷)個中斷向量,需要通過中斷標(biāo)志區(qū)分是哪個引腳引起的中斷)u 清中斷標(biāo)志(不是必須的,清中斷標(biāo)志(不是必須的,CC2530中中斷發(fā)生后由硬件自動清中斷標(biāo)志中中斷發(fā)生后由硬件自動清中斷標(biāo)志位)位)u 處理中斷事件,此過程要盡可能的少耗時處理中斷事件,此
20、過程要盡可能的少耗時u 最后如果在第一步中關(guān)閉了相應(yīng)的中斷源,需要在退出中斷服務(wù)程序之前最后如果在第一步中關(guān)閉了相應(yīng)的中斷源,需要在退出中斷服務(wù)程序之前打開對應(yīng)的中斷打開對應(yīng)的中斷#pragma vector = P0INT_VECTOR/中斷函數(shù)入口地址中斷函數(shù)入口地址 _interrupt void P0_ISR(void)/定義一個中斷函數(shù)定義一個中斷函數(shù) P0IEN &= 0 x30;/關(guān)端口關(guān)端口P0.4、P0.5中斷中斷 if(P0IFG0)/判斷中斷發(fā)生判斷中斷發(fā)生 P0IFG = 0;/清中斷標(biāo)志清中斷標(biāo)志 /*中斷事件的處理中斷事件的處理*/ . . . . . .
21、. . . P0IEN |= 0 x30; /開中斷開中斷 21在設(shè)置在設(shè)置I/O口的中斷時必須要將其設(shè)置為輸入狀態(tài),通過外部信號的上升或下降口的中斷時必須要將其設(shè)置為輸入狀態(tài),通過外部信號的上升或下降沿觸發(fā)中斷。通用沿觸發(fā)中斷。通用I/O的所有的外部中斷共用一個中斷向量,根據(jù)中斷標(biāo)志的所有的外部中斷共用一個中斷向量,根據(jù)中斷標(biāo)志位來判斷是哪個引腳發(fā)生中斷位來判斷是哪個引腳發(fā)生中斷 通用通用I/O中斷寄存器有三類:中斷使能寄存器、中斷狀態(tài)標(biāo)志寄存器和中斷中斷寄存器有三類:中斷使能寄存器、中斷狀態(tài)標(biāo)志寄存器和中斷控制寄存器控制寄存器 中斷使能寄存器包括中斷使能寄存器包括IENx和和PxIEN(其
22、中(其中x代表代表0、1、2),其功能是使),其功能是使I/O口進行中斷使能:口進行中斷使能: 中斷狀態(tài)標(biāo)志寄存器包括中斷狀態(tài)標(biāo)志寄存器包括PxIFG,其功能是當(dāng)發(fā)生中斷時,其功能是當(dāng)發(fā)生中斷時,I/O口所對應(yīng)的中斷狀口所對應(yīng)的中斷狀態(tài)標(biāo)志將自動置態(tài)標(biāo)志將自動置1。 中斷控制寄存器為中斷控制寄存器為PICTL,其功能是控制,其功能是控制I/O口的中斷觸發(fā)方式??诘闹袛嘤|發(fā)方式。221.中斷使能寄存器中斷使能寄存器IENx(其中(其中x為為0,1,2) IENx寄存器包括三個八位寄存器:寄存器包括三個八位寄存器:IEN0、IEN1和和IEN2。23IEN1寄存器的第寄存器的第5位控制位控制P0口
23、的中斷,當(dāng)設(shè)置口的中斷,當(dāng)設(shè)置IEN1.P0IE時,將設(shè)時,將設(shè)置置P0端口所有引腳的中斷使能,即端口所有引腳的中斷使能,即P0.0P0.7引腳全部中斷使能引腳全部中斷使能/端口端口0中斷使能中斷使能IEN1 |= 0 x20;24IEN2寄存器的第寄存器的第4位和第位和第1位分別控制位分別控制P1端口和端口和P2端口的中斷,當(dāng)設(shè)置端口的中斷,當(dāng)設(shè)置IEN2.P1IE和和IEN2.P2IE時,將設(shè)置時,將設(shè)置P1端口和端口和P2端口所有引腳的中斷使能,即端口所有引腳的中斷使能,即P1.0P1.7引腳和引腳和P2.0P2.4引腳全部中斷使能引腳全部中斷使能 /端口端口1中斷使能中斷使能IEN2
24、|= 0 x10;/端口端口0中斷使能中斷使能IEN2 |= 0 x02;254.4.2 通用通用I/O中斷中斷中斷使能寄存器中斷使能寄存器PxIEN(其中(其中x為為0,1,2)PxIEN寄存器是設(shè)置端口的某一個引腳中斷使能寄存器是設(shè)置端口的某一個引腳中斷使能 以以P0IEN為例講解為例講解:/P0.4、P0.5中斷使能中斷使能P0IEN |= 0 x30;264.4.2 通用通用I/O中斷中斷 中斷狀態(tài)標(biāo)志寄存器中斷狀態(tài)標(biāo)志寄存器PxIFG (其中(其中x為為0,1,2)PxIFG寄存器是中斷狀態(tài)標(biāo)志寄存器,由于寄存器是中斷狀態(tài)標(biāo)志寄存器,由于CC2530的外部中斷共用一個的外部中斷共用一
25、個中斷向量,因此需要判斷是哪個引腳發(fā)生中斷,通過判斷中斷向量,因此需要判斷是哪個引腳發(fā)生中斷,通過判斷PxIFG寄存寄存中的中斷狀態(tài)標(biāo)志位可以判斷哪個引腳發(fā)生中斷。中的中斷狀態(tài)標(biāo)志位可以判斷哪個引腳發(fā)生中斷。PxIFG寄存器有三寄存器有三個,分別是個,分別是P0IFG、P1IFG和和P2IFG 以以P0IFG為例講解為例講解:/判斷端口判斷端口0是否有中斷標(biāo)志發(fā)生是否有中斷標(biāo)志發(fā)生if(P0IFG0) .274.4.2 通用通用I/O中斷中斷 中斷狀態(tài)標(biāo)志寄存器中斷狀態(tài)標(biāo)志寄存器IRCONP0IF=1;/標(biāo)志位為標(biāo)志位為1,端口,端口P0有中有中斷,具體是斷,具體是P0的哪個引腳引起的的哪個引
26、腳引起的還需要通過還需要通過P0IFG來判斷來判斷284.4.2 通用通用I/O中斷中斷 中斷狀態(tài)標(biāo)志寄存器中斷狀態(tài)標(biāo)志寄存器IRCON2P1IF=1;/標(biāo)志位為標(biāo)志位為1,端口,端口P1有中有中斷,具體是斷,具體是P1的哪個引腳引起的的哪個引腳引起的還需要通過還需要通過P1IFG來判斷來判斷P2IF=1;/標(biāo)志位為標(biāo)志位為1,端口,端口P2有中有中斷,具體是斷,具體是P2的哪個引腳引起的的哪個引腳引起的還需要通過還需要通過P2IFG來判斷來判斷294.4.2 通用通用I/O中斷中斷 中斷控制寄存器中斷控制寄存器PICTL (其中(其中x為為0,1,2)設(shè)置設(shè)置中斷觸發(fā)方式:分為輸入的上升沿觸
27、發(fā)和輸入的下降沿觸發(fā)。中斷觸發(fā)方式:分為輸入的上升沿觸發(fā)和輸入的下降沿觸發(fā)。/P0.4和和P0.5為下降沿觸發(fā)中斷為下降沿觸發(fā)中斷PICTL |= 0 x01;30- - 3030 - -4.4.2 通用通用I/O中斷中斷 中斷配置中斷配置 為了使能任一中斷,應(yīng)該采取以下步驟:為了使能任一中斷,應(yīng)該采取以下步驟:l設(shè)置需要發(fā)生中斷的設(shè)置需要發(fā)生中斷的I/O口為輸入方式??跒檩斎敕绞?。l清除中斷標(biāo)志,即將需要設(shè)置中斷的引腳所對應(yīng)的寄存器清除中斷標(biāo)志,即將需要設(shè)置中斷的引腳所對應(yīng)的寄存器PxIFG狀態(tài)標(biāo)志位置狀態(tài)標(biāo)志位置0。l設(shè)置具體的設(shè)置具體的I/O引腳中斷使能,即設(shè)置中斷的引腳所對應(yīng)的寄存器引
28、腳中斷使能,即設(shè)置中斷的引腳所對應(yīng)的寄存器PxIEN的中斷使能位的中斷使能位為為1。l設(shè)置設(shè)置I/O口的中斷觸發(fā)方式??诘闹袛嘤|發(fā)方式。l設(shè)置寄存器設(shè)置寄存器IEN1和和IEN2中對應(yīng)引腳的端口的中斷使能位為中對應(yīng)引腳的端口的中斷使能位為1。l設(shè)置設(shè)置IEN0中的中的EA位為位為1使能全局中斷。使能全局中斷。l編寫中斷服務(wù)程序。編寫中斷服務(wù)程序。31 通過按鍵觸發(fā)外部中斷的編程。 要求:要求: 當(dāng)當(dāng)S1鍵按下時,點亮鍵按下時,點亮P1_0上的燈上的燈(1)占用系統(tǒng)硬件資源:)占用系統(tǒng)硬件資源:P0_4; (2) 當(dāng)當(dāng)S1斷開時斷開時P0_4為高電平,接通時為高電平,接通時P0_4為低電平;為低電平; (3) 當(dāng)當(dāng)S1鍵按下,鍵按下,P0_4管腳上出現(xiàn)一個高電平轉(zhuǎn)變?yōu)榈碗娖焦苣_上出現(xiàn)一個高電平轉(zhuǎn)變?yōu)榈碗娖剑ㄏ陆笛兀┑男盘?,(下降沿)的信號,?dāng)當(dāng)S1鍵
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 校園文化建設(shè)與學(xué)校發(fā)展戰(zhàn)略
- 行為習(xí)慣與孩子未來家庭教育的長遠(yuǎn)影響
- DB6103T 80-2025獼猴桃園覆土栽培香菇技術(shù)規(guī)范
- 不可撤銷物業(yè)服務(wù)合同范例
- 中保人壽幸福家園保險合同范本(A)
- 臨街旺鋪租賃合同樣本
- 二手車買賣合同(權(quán)威版)
- 業(yè)務(wù)拓展與培訓(xùn)合作合同
- 上海市物流運輸合同范本
- 個人信用擔(dān)保貸款合同范文
- 美容衛(wèi)生管理制度
- 銅陵2025年安徽銅陵郊區(qū)周潭鎮(zhèn)招聘鄉(xiāng)村振興專干和村級后備干部5人筆試歷年參考題庫附帶答案詳解
- 2025年紀(jì)檢辦公室工作計劃范文
- 起重機械安裝吊裝危險源辨識、風(fēng)險評價表
- 華北理工兒童口腔醫(yī)學(xué)教案06兒童咬合誘導(dǎo)
- 中國建筑項目管理表格
- 高一3班第一次月考總結(jié)班會課件
- 公共政策分析導(dǎo)論教學(xué)課件匯總完整版電子教案
- 我國油菜生產(chǎn)機械化技術(shù)(-119)
- 大跨度斜拉橋上部結(jié)構(gòu)施工技術(shù)(圖文并茂)
- 論人口模型論文計劃生育政策調(diào)整對人口數(shù)量結(jié)構(gòu)及其影響
評論
0/150
提交評論