cc2530單片機的第一次實驗,流水燈


第一個實驗:控制流水燈

電路圖

P1_0,P1_1,P0_4都連接在發光二極管的負極,所以,當這三個引腳為低電平,也就是0的時候,相應的發光二極管才會亮。

實驗相關寄存器

其實這里可以稍微的關注一下寄存器的地址,然后,編程的時候可以嘗試操作一下!

控制發光二極管的步驟

graph TD id1[設置相應的引腳為通用口也就是設置PnSEL寄存器] id2[設置相應的引腳為輸出也就是設置PnDIR寄存器] id4[設置相應引腳的值也就是設置P1_0 P1_1 P0_4的值] id1-->id2 id2-->id4

初始化



//置零用&=,置一用|=
P1SEL&=~0x03;                 //設置P1_1和P1_0為通用接口  1111 1100
P0SEL&=~0x10;                 //設置P0_4為通用接口  1110 1111
P1DIR|=0x03;                  //設置P1_0與P1_1為輸出  0000 0011
P0DIR|=0x10;                   //設置P0_4為輸出        0001 0000

//設置123燈全為滅
P1_0=1;
P1_1=1;
P0_4=1;



延時函數




void Delay(uint n) 
{ 
uint i; 
for(i = 0;i<n;i++); 
for(i = 0;i<n;i++); 
for(i = 0;i<n;i++); 
for(i = 0;i<n;i++); 
for(i = 0;i<n;i++);
}

全部代碼

#include <ioCC2530.h> 
#define uint unsigned int 
#define uchar unsigned char //定義控制燈的端口 
#define LED1 P1_0 //定義LED1 為P10 口控制 
#define LED2 P1_1 //定義LED2 為P11 口控制 
#define LED3 P0_4 //定義LED3 為P04 口控制 

//延時 *****************************/ 
void Delay(uint n) 
{ 
uint i; 
for(i = 0;i<n;i++); 
for(i = 0;i<n;i++); 
for(i = 0;i<n;i++); 
for(i = 0;i<n;i++); 
for(i = 0;i<n;i++);
}


//初始化IO 口程序 *****************************/ 
void InitIO(void) 
{ 
     
    //置零用&=,置一用|=
     P1SEL&=~0x03;                 //設置P1_1和P1_0為通用接口  1111 1100
     P0SEL&=~0x10;                 //設置P0_4為通用接口  1110 1111
     P1DIR|=0x03;                  //設置P1_0與P1_1為輸出  0000 0011
     P0DIR|=0x10;                   //設置P0_4為輸出        0001 0000
     //設置123燈全為滅
     P1_0=1;
     P1_1=1;   
     P0_4=1;    

}


//主函數 ***************************/ 

void main(void)
{
  InitIO();
  while(1)
  {
    LED1=!LED1;
    Delay(10000);
    LED2=!LED2;
    Delay(10000);
    LED3=!LED3;
    Delay(10000);
  }

}

心得

通過這個實驗,應該記住初始化的流程,以及那幾個寄存器的用途


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM