zigbee學習之路(二)點亮LED


一.前言

      今天,我來教大家如何點亮led,這也是學習開發板最基礎的步驟了。

二.原理分析

    cc2530芯片跟雖然是51的內核,但是它跟51單片機還是有區別的,51單片機不需要對IO口進行配置,而cc2530芯片卻需要對IO口進行配置,才能對它進行賦值,需要配置的寄存器有PXSEL,PXDIR,PXINP,x可以代表任意IO口,如P1SEL。

下面介紹PXSEL的功能:

下面介紹PXDIR的功能:

下面介紹PXINP的功能:

通過配置以上寄存器的,就可以控制IO口德輸入輸出狀態,是否做為普通IO口。

三.程序

#include <ioCC2530.h>

#define uint unsigned int #define uchar unsigned char

#define LED1 P1_0    //定義P1_0口為LED1控制端 #define LED2 P1_1    //定義P1_1口為LED2控制端

#define LED3 P1_4    //定義P1_4口為LED3控制端

/* 函 數 名  : IO_Init  功能描述  : LED_IO初始化函數  輸入參數  :

NONE   輸出參數  : NONE  返 回 值  : NONE */

void IO_Init(void)

{     P1DIR |= 0xff;       //P1端口定義為輸出    

LED1 = 0;            //點亮LED1    

LED2 = 0;            //點亮LED2    

LED3 = 0;            //點亮LED3 }

/* 函 數 名  : Delayms  功能描述  : 毫秒延時  輸入參數  : xms:延時時間,如 i=xms 即延時i毫秒  輸出參數  : none  返 回 值  : none */

void Delayms(uint xms) {    

uint i,j;    

for(i=xms;i>0;i--)      

for(j=587;j>0;j--); }

/* 函 數 名  : main  功能描述  : LED測試(通用IO的輸出使用)  輸入參數  : NONE   輸出參數  : NONE  返 回 值  : NONE */

void main ( void )

{   IO_Init ();       //調用初始化程序  

Delayms ( 2000 );   //延時2s      

while ( 1 )   {    

LED1 = ~ LED1;    

LED2 = ~ LED2;    

LED3 = ~ LED3;

    Delayms ( 500 );   //延時0.5s           }   }

四.總結與分析

     主函數中先執行初始化程序,配置IO口相關的寄存器,其他兩個寄存器的默認值滿足我們的要求,我們只要配置P0DIR即可,是P1口做為輸出口,然后通過延時函數,實現燈閃爍的效果。

 

 

 

    


免責聲明!

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



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