溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

zigbee學習之路(二):點亮LED

發(fā)布時間:2020-07-16 19:55:36 來源:網絡 閱讀:627 作者:非你7我 欄目:開發(fā)技術

一.前言

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

二.原理分析

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

下面介紹PXSEL的功能:

zigbee學習之路(二):點亮LED

下面介紹PXDIR的功能:

zigbee學習之路(二):點亮LED

下面介紹PXINP的功能:

zigbee學習之路(二):點亮LED

通過配置以上寄存器的,就可以控制IO口德輸入輸出狀態(tài),是否做為普通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           }   }

四.總結與分析

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


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI