CC2530的中斷系統和定時器原理_第1頁
CC2530的中斷系統和定時器原理_第2頁
CC2530的中斷系統和定時器原理_第3頁
CC2530的中斷系統和定時器原理_第4頁
CC2530的中斷系統和定時器原理_第5頁
已閱讀5頁,還剩19頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、CC2530的中斷系統和定時器原理 CC2530及STC89C51芯片比照 STC89C51定時器個數:2工作模式: 計數器工作模式 定時器工作模式工作方式:4種工作方式(方式0-方式3)CC2530定時器個數:4工作模式: 自由運行模式 模模式 正計數/倒計數模式 通道模式控制 輸入捕獲模式 輸出比較模式 STC89C51工作方式的設置: CC2530工作方式的設置:STC89C51CC2530STC89C51計算定時/計數初值89C51定時/計數初值計算公式:CC2530其中: N與工作方式有關: 方式0時,N=13; 方式1時,N=16; 方式2、3時,N=8。 機周時間與主振頻率有關:

2、機周時間=12/fosc fosc=12MHZ時,1機周=1S; fosc=6MHZ 時,1機周=2S。初始化STC89C51啟動重新賦值:清零 你正在專心看書,突然 鈴響,于是你記下正在看的書的頁數,去接 ,接完 后再回來接著看書。日常生活中中斷的例子:中斷系統計算機中的中斷概念:CPU正在執行程序時,單片機外部或內部發生的某一事件,請求CPU迅速去處理。CPU暫時中止當前的工作,轉到中斷效勞處理程序處理所發生的事件。處理完該事件后,再回到原來被中止的地方,繼續原來的工作,這稱為中斷。 CPU處理事件的過程,稱為CPU的中斷響應過程。對事件的整個處理過程,稱為中斷處理或中斷效勞。CPU處理事

3、件的過程,稱為CPU的中斷響應過程。對事件的整個處理過程,稱為中斷處理或中斷效勞。將能引起中斷的事件稱為中斷源。CPU現行運行的程序稱為主程序。處理隨機事件的程序稱為中斷效勞子程序。 STC89C51中斷源個數:5個外部輸入中斷源INT0(P3.2)外部輸入中斷源INT1(P3.3)片內定時器T0的溢出片內定時器T1的溢出片內串行口發送或接收中斷源CC2530CPU 有18個中斷源。每個中斷源都有它自己的位于一系列 SFR 存放器中的中斷請求標志。相應標志位請求的每個中斷可以分別使能或禁用。每個中斷請求可以通過設置中斷使能 SFR 存放器的中斷使能位 IEN0 , IEN1 或者 IEN2 使

4、能或制止。注意某些外部設備有假設干事件,可以產生與外設相關的中斷請求。這些中斷請求可以作用在端口 0 、端口 1 、端口 2 、定時器 1 、定時器 2 、定時器 3 、定時器 4 和無線電上。對于每個內部中斷源對應的 SFR 存放器,這些外部設備都有中斷屏蔽位。使能中斷步驟:1 去除中斷標志。2 如果有,那么設置 SFR 存放器中對應的各中斷使能位為 13 設置存放器 IEN0 、 IEN1 和 IEN2 中對應的中斷使能位為14 設置 IEN0 中的 EA 位為 1 使能全局中斷。5 在該中斷對應的向量地址上,運行該中斷的效勞程序。中斷使能存放器0中斷使能存放器1中斷使能存放器2中斷處理當

5、中斷發生時,CPU 就指向中斷向量地址。一旦中斷效勞開場,就只能夠被更高優先級的中斷打斷。中斷效勞程序由中斷指令 RETI終止,當 RETI 執行時,CPU 將返回到中斷發生時的下一條指令。當中斷發生時,不管該中斷使能或制止,CPU 都會在中斷標志存放器中設置中斷標志位。如果當設置中斷標志時中斷使能,那么在下一個指令周期,由硬件強行產生一個 LCALL 到對應的向量地址,運行中斷效勞程序。中斷的響應需要不同的時間,取決于該中斷發生時 CPU 的狀態。中斷響應時間中斷的響應需要不同的時間,取決于該中斷發生時 CPU 的狀態。當 CPU 正在運行的中斷效勞程序,其優先級大于或等于新的中斷時,新的中

6、斷暫不運行,直至新的中斷的優先級高于正在運行的中斷效勞程序。在其他情況下,中斷響應的時間取決于當前的指令,最快響應一個中斷的時間是 7 個機器指令周期,其中 1 個機器指令周期用于探測中斷,其余 6 個用來執行 LCALL。中斷標志存放器4中斷標志存放器5中斷優先級中斷組合成為 6 個中斷優先組,每組的優先級通過設置存放器 IP0 和 IP1 實現。為了給中斷也就是它所在的中斷優先組賦值優先級,需要設置 IP0 和 IP1 的對應位,如表 2-6 所示。中斷優先級及其賦值的中斷源顯示在表 2-7 中。每組賦值為 4 個中斷優先級之一。當進展中斷效勞請求時 ,不允許被較低級別或同級的中斷打斷。當

7、同時收到幾個一樣優先級的中斷請求時, 采取如同表 2-8 所列的輪流探測順序來判定哪個中斷優先響應 。CC2530定時中斷代碼例程#include #define uint unsigned int#define uchar unsigned char#define LED1 P1_0 #define LED2 P1_1#define LED3 P0_4 uint counter=0;/統計溢出次數uint LEDFlag;/標志是否要閃爍void InitialT1test(void); /初始化函數聲明void InitialT1test(void)/初始化LED控制端口P1P1DIR = 0 x03; /P10 P11 為輸出 P0DIR = 0 x10; /P04為輸出LED1 = 1;LED2 = 1; LED3 = 1;/初始化計數器1T1CTL = 0 x05; T1STAT= 0 x21; /通道0,中斷有效,8分頻;自動重裝模式(0 x0000-0 xffff) void main() InitialT1test(); /調用初始化函數 while(1) /查詢溢出 if(IRCON 0) IRCON = 0; /清溢出標志 counter+; counter

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論