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

第一個實驗:控制流水燈

電路圖

P1_0,P1_1,P0_4都鏈接在發光二極管的負極,因此,當這三個引腳爲低電平,也就是0的時候,相應的發光二極管纔會亮。編程

實驗相關寄存器

其實這裏能夠稍微的關注一下寄存器的地址,而後,編程的時候能夠嘗試操做一下!函數

控制發光二極管的步驟ui

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);
  }

}

心得

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

相關文章
相關標籤/搜索