CC2530定時(shí)器1的原理與編程_第1頁
CC2530定時(shí)器1的原理與編程_第2頁
CC2530定時(shí)器1的原理與編程_第3頁
CC2530定時(shí)器1的原理與編程_第4頁
CC2530定時(shí)器1的原理與編程_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、1單片機(jī)原理與應(yīng)用2l 大課大課(1)CC2530定時(shí)器:定時(shí)器:定時(shí)器定時(shí)器1、定時(shí)器定時(shí)器2、定時(shí)器定時(shí)器3、定時(shí)器定時(shí)器4、睡眠定時(shí)器睡眠定時(shí)器(2)定時(shí)器)定時(shí)器1的三種工作模式:的三種工作模式:自由運(yùn)行自由運(yùn)行、模模模式、模式、正計(jì)數(shù)正計(jì)數(shù)/倒計(jì)數(shù)倒計(jì)數(shù)模式模式l 小課小課(1)CC2530外部中斷外部中斷 外部中斷初始化:外部中斷初始化:輸入方式、清除中斷標(biāo)志位、合上開關(guān);輸入方式、清除中斷標(biāo)志位、合上開關(guān); 中斷響應(yīng)程序:中斷響應(yīng)程序:(2)串口通過標(biāo)志位發(fā)送接收)串口通過標(biāo)志位發(fā)送接收 串口初始化:時(shí)鐘、位置、方式、波特率、合開關(guān)等;串口初始化:時(shí)鐘、位置、方式、波特率、合開關(guān)

2、等; 串口發(fā)送:等待、清標(biāo)志位、發(fā)送;串口發(fā)送:等待、清標(biāo)志位、發(fā)送; 串口接收:等待、接收(硬件自動(dòng)清標(biāo)志位)串口接收:等待、接收(硬件自動(dòng)清標(biāo)志位)#pragma vector = 中斷中斷向量地址向量地址_interrupt void 中斷函數(shù)名中斷函數(shù)名 ( void) 中斷處理;中斷處理;中斷中斷清除清除; 3 1.定時(shí)器定時(shí)器1原理(難點(diǎn))原理(難點(diǎn)); 2.定時(shí)器定時(shí)器1編程(重點(diǎn))編程(重點(diǎn)); 3. PWMPWM原理原理本周教學(xué)主要內(nèi)容4教學(xué)目標(biāo) 理解理解CC2530 CC2530 定時(shí)器定時(shí)器1 1的原理;的原理; 掌握掌握CC2530 CC2530 定時(shí)器定時(shí)器1 1的編

3、程方法的編程方法; ; 熟悉熟悉CC2530 CC2530 PWMPWM調(diào)節(jié)原理調(diào)節(jié)原理5一、一、定時(shí)器定時(shí)器1 自由運(yùn)行模式自由運(yùn)行模式 模計(jì)數(shù)器模式模計(jì)數(shù)器模式 正計(jì)數(shù)正計(jì)數(shù)/倒計(jì)數(shù)模式倒計(jì)數(shù)模式 6 +65535一、一、定時(shí)器定時(shí)器1自由運(yùn)行模式自由運(yùn)行模式0 0 0 0 0 0 0 0T1CNTH0 0 0 0 0 0 0 0T1CNTL1 1 1 1 1 1 1 1T1CNTH1 1 1 1 1 1 1 1T1CNTL經(jīng)歷了經(jīng)歷了65535個(gè)時(shí)鐘脈沖個(gè)時(shí)鐘脈沖后變成后變成16個(gè)個(gè)1,如下:,如下:每經(jīng)歷一個(gè)時(shí)鐘每經(jīng)歷一個(gè)時(shí)鐘脈沖,數(shù)值加脈沖,數(shù)值加10 0 0 0 0 0 0 0T1

4、CNTH0 0 0 0 0 0 0 0T1CNTL同時(shí)產(chǎn)生同時(shí)產(chǎn)生中斷溢出標(biāo)志位:中斷溢出標(biāo)志位:IRCON.T1IF和和T1STAT.OVFIF +1初始值:為初始值:為0T1CNTH和和T1CNTL里的值從里的值從16個(gè)個(gè)0逐漸增加再回到逐漸增加再回到16個(gè)個(gè)0,需要經(jīng)過,需要經(jīng)過65536個(gè)時(shí)鐘脈沖個(gè)時(shí)鐘脈沖7一、一、定時(shí)器定時(shí)器1當(dāng)時(shí)鐘脈沖設(shè)置當(dāng)時(shí)鐘脈沖設(shè)置為為32M,不分頻不分頻不分頻不分頻自由運(yùn)行模式自由運(yùn)行模式每次溢出時(shí)間間隔為:每次溢出時(shí)間間隔為:6111 1 65536655360.0020483232 10SMHz 系統(tǒng)時(shí)鐘源系統(tǒng)時(shí)鐘源(32M或或16M)CLKCONCMD

5、.OSC全局定時(shí)全局定時(shí)器分頻器分頻CLKCONCMD.TICKSPDT1再分頻再分頻T1CTL.DIV16位計(jì)數(shù)器位計(jì)數(shù)器T1CNTH、1CNTL定時(shí)器定時(shí)器溢出溢出不分頻不分頻定時(shí)器溢出定時(shí)器溢出500次,就讓燈狀態(tài)取反:次,就讓燈狀態(tài)取反:0.002048 500=1.024S燈每隔燈每隔1.024S亮一次,隔亮一次,隔1.024S滅一次滅一次每次溢出時(shí)間間隔為:每次溢出時(shí)間間隔為:6111 1 65536655360.0020483232 10SMHz 8一、一、定時(shí)器定時(shí)器1自由運(yùn)行模式自由運(yùn)行模式當(dāng)時(shí)鐘脈沖設(shè)置當(dāng)時(shí)鐘脈沖設(shè)置為為32M不分頻不分頻自由運(yùn)行模式自由運(yùn)行模式每次溢出時(shí)間

6、間隔為:每次溢出時(shí)間間隔為:6111 8 655368 655360.0163843232 10SMHz 系統(tǒng)時(shí)鐘源系統(tǒng)時(shí)鐘源(32M或或16M)CLKCONCMD.OSC全局定時(shí)全局定時(shí)器分頻器分頻CLKCONCMD.TICKSPDT1再分頻再分頻T1CTL.DIV16位計(jì)數(shù)器位計(jì)數(shù)器T1CNTH、T1CNTL定時(shí)器定時(shí)器溢出溢出8分頻分頻定時(shí)器溢出定時(shí)器溢出300次,就讓燈狀態(tài)取反:次,就讓燈狀態(tài)取反:0.016384 300=4.9152S燈每隔燈每隔4.9152S亮一次,隔亮一次,隔4.9152S滅一次滅一次 改變上面的時(shí)鐘頻率、全局定時(shí)分頻、改變上面的時(shí)鐘頻率、全局定時(shí)分頻、T1分頻

7、,就可以改變定時(shí)器溢出時(shí)間,分頻,就可以改變定時(shí)器溢出時(shí)間,配合溢出次數(shù),就可以隨心所欲定時(shí)!配合溢出次數(shù),就可以隨心所欲定時(shí)!9帶陰影的標(biāo)志位帶陰影的標(biāo)志位會(huì)有硬件清除會(huì)有硬件清除T1T1溢出中斷屏溢出中斷屏蔽,復(fù)位為蔽,復(fù)位為1 1T1T1溢出溢出標(biāo)志位標(biāo)志位T1T1中斷標(biāo)志中斷標(biāo)志允許允許/ /禁止禁止T1T1中斷中斷EAEA中斷優(yōu)先級(jí)中斷優(yōu)先級(jí)T1T1的的5 5個(gè)通道個(gè)通道中斷標(biāo)志中斷標(biāo)志T1T1的的5 5個(gè)通道個(gè)通道中斷屏蔽中斷屏蔽#pragma vector = T1_VECTOR_interrupt void 中斷函數(shù)名中斷函數(shù)名 ( void) 中斷處理;中斷處理; 中斷初始化

8、:中斷初始化:設(shè)置時(shí)鐘、定時(shí)器分頻、設(shè)置時(shí)鐘、定時(shí)器分頻、運(yùn)行方式、運(yùn)行方式、EA、T1IE一、一、定時(shí)器定時(shí)器110位位名稱名稱復(fù)位復(fù)位R/W描述描述7:4-00000R0保留保留3:2DIV1:0R/W 分頻器劃分值。產(chǎn)生主動(dòng)的時(shí)鐘邊緣用來更分頻器劃分值。產(chǎn)生主動(dòng)的時(shí)鐘邊緣用來更新計(jì)數(shù)器,如下:新計(jì)數(shù)器,如下:00:標(biāo)記頻率:標(biāo)記頻率/1 01:標(biāo)記頻率:標(biāo)記頻率/810:標(biāo)記頻率:標(biāo)記頻率/32 11:標(biāo)記頻率:標(biāo)記頻率/1281:0MODE1:0R/W 選擇定時(shí)器選擇定時(shí)器1模式。定時(shí)器操作模式通過下列模式。定時(shí)器操作模式通過下列方式選擇:方式選擇:00:暫停運(yùn)行:暫停運(yùn)行01:自由運(yùn)

9、行,從:自由運(yùn)行,從0 x0000到到0 xFFFF反復(fù)計(jì)數(shù)反復(fù)計(jì)數(shù)10:模,從:模,從0 x0000到到T1CC0反復(fù)計(jì)數(shù)。反復(fù)計(jì)數(shù)。11:正計(jì)數(shù):正計(jì)數(shù)/倒計(jì)數(shù),從倒計(jì)數(shù),從0 x0000到到T1CC0反復(fù)反復(fù)計(jì)數(shù)且從計(jì)數(shù)且從T1CC0倒計(jì)數(shù)到倒計(jì)數(shù)到0 x0000/用用T1來做實(shí)驗(yàn)來做實(shí)驗(yàn)128分頻分頻;自由運(yùn)行模式自由運(yùn)行模式T1CTL=(0 x32)|(0 x10 xffff);T1CTL = 0 x0d;void InitClock(void)CLKCONCMD &= (16); /*選擇32MHz晶振*/while(!(SLEEPSTA & (16); /*等待晶

10、振穩(wěn)定*/ CLKCONCMD &= 0 x07; /* CLKSPD不分頻*/ 2.時(shí)鐘時(shí)鐘初始化初始化 16- 16 -定時(shí)器定時(shí)器1實(shí)例分析實(shí)例分析3.LED初始化初始化 void Initled(void)/初始化初始化LED燈燈P1SEL&= (10);/ 定義定義P1_0為為普通普通IO P1DIR|= (10); / 定義定義P1_0為輸出為輸出 LED1 = 1; #include #define uint unsigned int#define uchar unsigned char#define LED1 P1_0uint counter=0;/統(tǒng)計(jì)溢出次數(shù)

11、統(tǒng)計(jì)溢出次數(shù)4.頭文件、宏定義頭文件、宏定義17- 17 -定時(shí)器定時(shí)器1void main() /調(diào)用初始化函數(shù)調(diào)用初始化函數(shù)void Initial(void);void InitClock(void);void Initled(void); while(1) ; #pragma vector=T1_VECTOR/指定中斷向量指定中斷向量_interrupt void T1_ISR(void)IRCON=0X00;/清除中斷標(biāo)志,也可由硬清除中斷標(biāo)志,也可由硬/件自動(dòng)完成件自動(dòng)完成if(counter300) counter+;else counter=0; LED1 =!LED1 ; 5

12、.主函數(shù)、中斷服務(wù)程序主函數(shù)、中斷服務(wù)程序18二、二、定時(shí)器定時(shí)器3、定時(shí)器、定時(shí)器4編程編程系統(tǒng)時(shí)鐘源系統(tǒng)時(shí)鐘源(32M或或16M)CLKCONCMD.OSC全局定時(shí)全局定時(shí)器分頻器分頻CLKCONCMD.TICKSPDT3再分頻再分頻T3CTL.DIV8位計(jì)數(shù)器位計(jì)數(shù)器T3CNTT3溢出溢出當(dāng)時(shí)鐘脈沖設(shè)置當(dāng)時(shí)鐘脈沖設(shè)置為為32M,不分頻不分頻不分頻不分頻自由運(yùn)行自由運(yùn)行模式:模式:2568分頻分頻定時(shí)器溢出定時(shí)器溢出500次,就讓燈狀態(tài)取反:次,就讓燈狀態(tài)取反:0.002048 500=0.032S每次溢出時(shí)間間隔為:每次溢出時(shí)間間隔為:6111 8 2568 2560.000064323

13、2 10SMHz 191三、三、PWM數(shù)字調(diào)光的原理數(shù)字調(diào)光的原理在在P1_1上的信號(hào)如果按下面幾種情況,上的信號(hào)如果按下面幾種情況,D2亮度有什么不同呢?亮度有什么不同呢?10010(1)(2)(3)(4)上面上面4中情況,由暗到亮的順序?yàn)椋海ㄖ星闆r,由暗到亮的順序?yàn)椋海?)()(2)()(3)()(4)當(dāng)加在)當(dāng)加在P1_1管腳上的管腳上的信號(hào)的一個(gè)周期中,低電平所持續(xù)的時(shí)間占整個(gè)周期的時(shí)間越長,則發(fā)光二極管信號(hào)的一個(gè)周期中,低電平所持續(xù)的時(shí)間占整個(gè)周期的時(shí)間越長,則發(fā)光二極管越亮。由此可見,我們只需要改變占空比就可以調(diào)節(jié)越亮。由此可見,我們只需要改變占空比就可以調(diào)節(jié)D2亮度。我們一般把這

14、種占亮度。我們一般把這種占空比可以改變的數(shù)字信號(hào)叫做空比可以改變的數(shù)字信號(hào)叫做PWM(Pulse Width Modulation)波。)波。2、通過合適的配置,、通過合適的配置,CC2530的定時(shí)器的定時(shí)器1除了產(chǎn)生定時(shí)中斷外,還可以在輸出除了產(chǎn)生定時(shí)中斷外,還可以在輸出pwm波。定時(shí)器波。定時(shí)器1共有共有5路路pwm輸出通道,具體如下:輸出通道,具體如下:20三、三、PWM數(shù)字調(diào)光的原理數(shù)字調(diào)光的原理2、通過合適的配置,、通過合適的配置,CC2530的定時(shí)器的定時(shí)器1除了產(chǎn)生定時(shí)中斷外,還除了產(chǎn)生定時(shí)中斷外,還可以在輸出可以在輸出pwm波。定時(shí)器波。定時(shí)器1共有共有5路路pwm輸出通道,具

15、體如下:輸出通道,具體如下:21三、三、PWM數(shù)字調(diào)光的原理數(shù)字調(diào)光的原理由上圖可知,定時(shí)器由上圖可知,定時(shí)器1的的PWM波的輸出通道有兩個(gè)位置:波的輸出通道有兩個(gè)位置:位置位置1:通道通道0、1、2、3、4的輸出管腳為的輸出管腳為P0_2,P0_3,P0_4,P0_5,P0_6;位置位置2:通道通道0、1、2、3、4的輸出管腳為的輸出管腳為P1_2,P1_1,P1_0,P0_7,P0_6; 發(fā)光二極管發(fā)光二極管D2所連接的所連接的IO口:口: P1_1,如果我們希望通過,如果我們希望通過P1_1對(duì)對(duì)D2進(jìn)行數(shù)字調(diào)光,就必須讓定時(shí)器進(jìn)行數(shù)字調(diào)光,就必須讓定時(shí)器1的某個(gè)通道的的某個(gè)通道的PWM輸

16、出位于輸出位于P1_1,做到這一點(diǎn),須進(jìn)行如下設(shè)置:,做到這一點(diǎn),須進(jìn)行如下設(shè)置:(1)定時(shí)器)定時(shí)器1的的PWM輸出位與輸出位與LED燈是同一個(gè)引腳是燈是同一個(gè)引腳是P1_1,選擇位置,選擇位置2: PERCFG|=16;(2)IO口沖突時(shí)定時(shí)器口沖突時(shí)定時(shí)器1優(yōu)先:優(yōu)先:P2SEL|=13;(3)P1_1為外部設(shè)備模式:為外部設(shè)備模式:P1SEL|=11;22三、三、PWM數(shù)字調(diào)光的原理數(shù)字調(diào)光的原理上圖為定時(shí)器上圖為定時(shí)器1運(yùn)行在正運(yùn)行在正/倒計(jì)數(shù)模式下倒計(jì)數(shù)模式下PWM,在此種模式下,在此種模式下T1CC0(T1CC0H:T1CC0L)用做了定時(shí)計(jì)數(shù)值,所以通道用做了定時(shí)計(jì)數(shù)值,所以通道0不用做不用做PWM輸出。輸出。PWM的周期的周期=(T1CC0+1)*2*1/計(jì)數(shù)脈沖的頻率計(jì)數(shù)脈沖的頻率PWM的占空比的占空比=(T1CC0-T1C

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論