cc2530基本實驗1_第1頁
cc2530基本實驗1_第2頁
cc2530基本實驗1_第3頁
cc2530基本實驗1_第4頁
cc2530基本實驗1_第5頁
已閱讀5頁,還剩32頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第一步:安裝第一步:安裝IAR 8.10方法:方法:打開安裝文件,選擇IAR安裝,官方推薦默認安裝在系統盤:相關軟件安裝相關軟件安裝提示要求輸入License,由IAR 8.10注冊機生成,選項正確后生成License,復制到License#處:輸入注冊碼后按提示一步步進行安裝,直至完成程序安裝。程序安裝完成后默認路徑為: 安裝完成軟件界面如下:第第二二步:步: CC DEBUGGER 驅動安裝方法驅動安裝方法 我們將網蜂的CC DEBUGGER插進電腦,提示找到新硬件,選擇列表安裝。驅動的路徑如下圖,前提是已經安裝IAR 8.1 0。安裝完成后,重新拔插仿真器,在設備管理器里找到Chipco

2、n SRF04EB,說明驅動安裝完成,如下圖所示。工程文件的快速建立工程文件的快速建立第一步:第一步:打開IAR軟件,新建一個Project-Create New Project,選擇默認選項可以了,點擊OK。保存在自己希望的路徑。第二步:第二步:新建文件,輸入#include,我們基礎實驗需要用到的也只有這個頭文件。然后保存為.c格式到工程文件路徑下。第三步:第三步:輸入程序然后保存。在左邊工程里單擊右鍵-add-剛保存的C文件,添加文件到工程。第四步:第四步:在IAR里配置一下幾個選項。打開(右點擊工程名字)Project-Options,General Options配置如圖 Gener

3、al Options參數,參數,單擊圓圈所示按鈕,先向上返回上一級目錄,然后打開Texas Instruments文件夾,選擇CC2530F256芯片。 選擇LinkerConfigLinker command file選項。單擊LinkerConfig配置配置所示按鈕,導出配置文件,先向上返回上一級目錄,然后打開Texas Instruments文件夾,選擇lnk51ew_cc2530F256.xcl。第五步:第五步:然后在Debugger選項的Driver里選擇Texas Instruments(使用編程器仿真),下面選擇io8051.ddf文件,如圖所示。至此,基本配置已經完成。第六步:

4、第六步:Project-Make 編譯后顯示0錯誤和0警告。將網蜂CC DEBUGGER 和開發板連接好,然后點擊:Project-Download and Debug (下載與仿真)。快捷鍵所示:程序在下載中:下載完成,進入仿真調試界面,常用按鈕如所示。點擊GO(全速運行),程序執行。使 CC DEBUGGER可以直接在IAR中下載程序并調試。結束后程序仍然保留在芯片flash內,相當于燒寫工具。實驗實驗一:一:點亮點亮LED1GEC電池板的LED部分原理圖:CC2530的IO口配置我們需要配置三個寄存器P1SEL P1SEL 、P1DIR P1DIR 、P1INPP1INP。IOIO口口功

5、能如下表所示:* * P1SEL P1SEL (0:普通IO口 1:第二功能)* * P1DIR P1DIR (0:輸入 1:輸出 )* * P1INP P1INP (0:上拉/下拉 1:三態 ) 按照表格寄存器內容,我們對LED1,也就是P1_0口進行配置,當P1_0輸出低電平時LED1被點亮。所以配置如下: P1SELP1SEL &=0 x01; /作為普通IO口P1DIRP1DIR |= 0 x01; /P1_0定義為輸出P1INPP1INP &=0X01; /打開上拉 由于CC2530寄存器初始化時默認是:P1SELP1SEL =0 x00; P1DIRP1DIR =

6、0 x00; P1INP P1INP =0X00; 所以IO口初始化我們可以簡化初始化指令:P1DIR P1DIR |= 0 x01; /P1_0定義為輸出/*程序描述:點亮LED1*/#include #include #define LED1 P1_0 /#define LED1 P1_0 /定義定義P10P10口為口為LED1LED1控制端控制端void IO_Init(void)void IO_Init(void) P1DIR |= 0 x01; /P1_0 P1DIR |= 0 x01; /P1_0定義為輸出定義為輸出 void main(void)void main(void) I

7、O_Init(); /IO_Init(); /調用初始化程序調用初始化程序LED1=1; /LED1=1; /點亮點亮LED1LED1while(1); while(1); 實驗二:按鍵實驗要求要求:依次按下按鍵:依次按下按鍵S3控制控制LED1的亮和滅的亮和滅GEC電池底板的KEY和LED原理圖:LED1初始化:P1SEL &=0 x01; /作為普通IO口P1DIR |= 0 x01; /P1_0定義為輸出P1INP &=0X01; /打開上拉 按鍵S3初始化:P1SEL &= 0X04; /設置P1.2為普通IO口 P1DIR &= 0X04; /按鍵在P

8、1.2口,設置為輸入模式 P1INP &= 0 x04; /打開P1.2上拉電阻,不影響由于CC2530寄存器初始化時默認是: P1SEL = 0 x00; P1DIR = 0 x00; P1INP = 0X00; 所以IO口初始化我們可以簡化初始化指令:P1DIR |= 0 x01; /P1_0定義為輸出P1DIR &= 0X04; /按鍵在P1.2 口,設置為輸入模式 /*程序描述:依次按下按鍵S3控制LED1的亮和滅*/#include #define uint unsigned int#define uchar unsigned char /定義控制定義控制LED燈的端

9、口燈的端口#define LED1 P1_0 /LED1為為P1.0口控制口控制#define KEY3 P1_2 /KEY1為為P1.2口控制口控制 /函數聲明函數聲明void Delayms(uint);/延時函數延時函數void InitLed(void);/初始化初始化LED1void KeyInit(); /按鍵初始化按鍵初始化uchar KeyScan(); /按鍵掃描程序按鍵掃描程序 /*延時函數延時函數*/void Delayms(uint xms) /i=xms 即延時即延時i毫秒毫秒 uint I,j; for(i=xms;i0;i-) for(j=587;j0;j-);/

10、* LED初始化函數初始化函數*/void InitLed(void)P1DIR |= 0 x01; /P1_0定義為輸出定義為輸出 LED1 = 1; /LED1燈熄滅燈熄滅 /* 按鍵初始化函數按鍵初始化函數*/void InitKey() P1SEL &= 0X04; /設置設置P1.2為普通為普通IO口口 P1DIR &= 0X04; /按鍵在按鍵在P1.2口,設置為輸入模式口,設置為輸入模式 P1INP &= 0 x04; /打開打開P1.2上拉電阻上拉電阻,不影響不影響/* 按鍵檢測函數按鍵檢測函數*/uchar KeyScan(void) if(KEY3=

11、0) Delayms(10); if(KEY3=0) while(!KEY3); /松手檢測松手檢測 return 1; /有按鍵按下有按鍵按下 return 0; /無按鍵按下無按鍵按下/* 主函數主函數*/void main(void)InitLed();/調用初始化函數調用初始化函數InitKey(); while(1) if(KeyScan() /按鍵改變按鍵改變LED狀態狀態 LED1=LED1; 實驗三:外部中斷要求要求:依次按下按鍵:依次按下按鍵S3控制控制LED1的亮和滅的亮和滅,通過中斷通過中斷方式。方式。GEC的KEY和LED部分原理圖,如下圖所示:CC2530的外部中斷我

12、們需要配置三個寄存器P0IEN P0IEN 、PICTL PICTL 、P0IFGP0IFG、IEN1IEN1。各寄存器功能如下表所示:按照表格寄存器內容,我們對LED1和按鍵S1,也就是P1.0和P1.2口進行配置,當P1.2輸出低電平時LED1被點亮,S3按下時P1.2產生外部中斷從而控制LED1的亮滅。所以配置如下:LED1簡化初始化:P1DIR |= 0 x01; /P1_0定義為輸出外部中斷初始化: P0IEN |= 0X10; /P04 設置為中斷方式 PICTL |= 0X01; / 下降沿觸發 IEN1 |= 0X20; / 允許P0口中斷; P0IFG = 0 x00; /

13、初始化中斷標志位/ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *程序描述:按鍵程序描述:按鍵S3S3外部中斷方式改變外部中斷方式改變LED1LED1狀態狀態* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /#include #include #define uint unsigned int#define uint unsigned int

14、#define uchar unsigned char#define uchar unsigned char/定義控制定義控制LEDLED燈的端口燈的端口#define LED1 P1_0#define LED1 P1_0/定義定義LED1LED1為為P1.0P1.0口控制口控制#define KEY3 P1_2 /#define KEY3 P1_2 /中斷口中斷口/函數聲明函數聲明void Delayms(uint);void Delayms(uint);/延時函數延時函數void InitLed(void);void InitLed(void);/初始化初始化P1P1口口void KeyI

15、nit(); /void KeyInit(); /按鍵初始化按鍵初始化uchar KeyValue=0;uchar KeyValue=0;/ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * */延時函數延時函數* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /void Delayms(uint xms) /i=xms void Delayms(uint xms) /i=xms 即延時即延時i i毫秒毫秒 uint i,j; uint i,j; for(i=

16、xms;i0;i-) for(i=xms;i0;i-) for(j=587;j0;j-); for(j=587;j0;j-); / /* * * * * * * * * * * * * * * * * * * * * * * * * * * * *LEDLED初始化程序初始化程序* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /void InitLed(void)void InitLed(void) P1DIR |= 0 x01; /P1_0P1DIR |= 0 x01; /P1_0、P1_1P1_1定義為輸出定義為輸出

17、 LED1 = 1; /LED1 LED1 = 1; /LED1燈熄滅燈熄滅 / /* * * * * * * * * * * * * * * * * * * * * * * * * * * * *KEYKEY初始化程序初始化程序-外部中斷方式外部中斷方式* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /void InitKey()void InitKey() P1IEN |= 0X04; /P1.2 P1IEN |= 0X04; /P1.2 設置為中斷方式設置為中斷方式 PICTL |= 0X02; / PICTL |

18、= 0X02; / 下降沿觸發下降沿觸發 IEN2 |= 0X10; / IEN2 |= 0X10; / 允許允許P1P1口中斷口中斷; ; P1IFG &= 0 x04; / P1IFG &= 0 x04; / 初始化中斷標志位初始化中斷標志位 EA = 1; EA = 1; / /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * 中斷處理函數中斷處理函數 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ / #pragma vector = P1INT_VECTOR /#p

溫馨提示

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

評論

0/150

提交評論