CC2530單片機用定時器產生LED漸亮漸滅_第1頁
CC2530單片機用定時器產生LED漸亮漸滅_第2頁
CC2530單片機用定時器產生LED漸亮漸滅_第3頁
CC2530單片機用定時器產生LED漸亮漸滅_第4頁
CC2530單片機用定時器產生LED漸亮漸滅_第5頁
已閱讀5頁,還剩17頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、呼吸燈呼吸燈原理:脈沖寬度調制改變燈泡亮滅的時間條件:燈亮時間+燈滅時間=常量燈亮時間+燈滅時間20ms方法:呼吸燈方法一:延時亮延時滅滅延時(周期減亮延時)亮判斷:改變亮度的時間到了嗎?增加亮時間/減少亮時間NY#include #define uint unsigned int #define uchar unsigned char #define LED1 P1_0 /定義LED1為P1.0口控制 /* /初始化程序 */ void InitLed(void)/初始化函數 P1DIR |= 0 x01; /P1_0定義為輸出 LED1 = 1; /LED1燈初 始化熄滅 void ys(

2、uchar h)/延時 uchar i,j; for(i=0;ih;i+) for(j=0;j0)/不是最暗時(最暗時不亮) LED1=0;/亮 ys(h);/占空比為ys(h)/ys(254); if(h=4)/改變占空比的時間(感覺漸亮漸滅太快可以改大) js=0; if(zt=1)/漸亮狀態 h=h+1; else/漸暗狀態 h=h-1; if(h=0)/最暗時 zt=1;/設置狀態為漸亮 if(h=254)/最亮時 zt=2;/設置狀態為漸滅方法二:定時器+通道輸出比較方法:T1CC0T1CCn向上比較輸出1,向下比較輸出0。0 x0000T1CC0是周期T1CCnT1CC0是滅時間啟

3、動啟動定時器基本要求:1.選擇定時器。2.定時器工作方式。3.定時器的溢出值(T1CC0)。4.啟動定時器。T1自由運行自由運行0 xFFFF設置定時器設置T1CTL-定時器1的控制和狀態 P1050000 0001T1CTL=0 x01;周期周期=65536*1/16Mhz 4ms 了解T1STAT-定時器1狀態P105OVFIF:定時器T1溢出中斷標志(T1STAT&0 x200時,定時器T1溢出)CHnIF:定時器T1通道n中斷標志(定時器通道在T1CCn時),假如T1CC0T1CCn是通道2,T1STAT&0 x040時,燈就滅了。輸出比較模式1.輸出的引腳,P1.0設

4、置為輸出。P1的8個引腳對應8個設置位,最高位為P1.7設置位,最低位為P1.0設置位。P1DIR=0 x01;為了避免直接賦值會沖掉P1的其它輸出口,所以用“按位或”比較好。P1DIR=P1DIR | 0 x01; P1DIR |= 0 x01;輸出比較模式2.外設I/o引腳。定時器定時器T1備用位置備用位置2P1.0通道通道2信息:信息:P1.0、定時器、定時器T1、備用位置、備用位置2、通道、通道2、外設功能、外設功能輸出比較模式PERCFG=0100 0000B;=0 x40;3.外設控制。輸出比較模式4.輸出的引腳,P1.0設置為外設功能P1的8個引腳對應8個設置為最高位為P1.7設

5、置位,最低位為P1.0設置位。P1SEL=0 x01;為了避免直接賦值會沖掉P1的其它外設功能口,所以用“按位或”比較好。P1SEL=P1SEL | 0 x01;P1SEL |= 0 x01;輸出比較模式5.設置T1CCTL2-定時器1通道2捕獲/比較控制10 10 0100T1CCTL2=0 x64;T1CC0T1CC2輸出比較模式6.設置T1CC2-定時器1通道2捕獲/比較值。先寫低位,再寫高位先寫低位,再寫高位T1CC2L=0 xFF;T1CC2H=h;程序初始 P1DIR |= 0 x01; /P1.0設置為輸出 LED1 = 1;/滅 T1CTL = 0 x01; /定時器1的控制和

6、狀態 PERCFG=0X40;/外設控制 P1SEL|=0 x01;/P1.0設置為外設功能 T1CCTL2=0 x64;/定時器1通道2比較控制 T1CC2L=0 xFF;/定時器通道2比較值 T1CC2H=h;程序初始化判斷:通道2有沒有中斷(1周期一次)清除中斷標志,js+;判斷:改變亮度的時間到沒判斷:狀態是不是漸亮h=h+1;h=h-1;通道2比較值重裝判斷:是不是最亮狀態改為漸滅判斷:是不是最暗狀態改為漸亮YNNNNNYYNYY#include #define uint unsigned int #define uchar unsigned char /定義控制LED燈的端口 #d

7、efine LED1 P1_0 /定義LED1為P10口控制 uchar h=0 x00;/h越大越亮/函數聲明void InitLed(void); /初始化P1口 void InitT1(); /初始化定時器T1/* /初始化程序 */ void chushiLed(void) P1DIR |= 0 x01; /P1_0定義為輸出 LED1 = 1; /LED1燈初 始化熄滅 /定時器初始化 void chushiT1() /系統不配置工作時鐘時默認是2分頻,即16MHz T1CTL = 0 x01; /1分頻,自動重裝 0X0000-0XFFFF P105 PERCFG=0X40;/定時器T1選擇外設位置2 P77 P1SEL|=0 x01;/P1.0選擇外設功能 T1CCTL2=0 x64;/定時器T1通道2向上比較置1,比較模式 P107 T1CC2L=0 xFF; T1CC2H=h; void main(void) uchar js=0; uchar a=1;/a=1為漸亮,a=2為漸滅。 chushiLed(); /調用初始化函數 chushiT1(); while(1) if(T1STAT&0 x04)0)/滅 T1STAT=T1STAT&0 xfb;/清除中斷標志 js+; if(js=1)/改變亮

溫馨提示

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

評論

0/150

提交評論