zigbee学习之路(二):点亮LED

发布时间:2020-07-16 19:55:36 作者:非你7我
来源:网络 阅读:629

一.前言

      今天,我来教大家如何点亮led,这也是学习开发板最基础的步骤了。

二.原理分析

    cc2530芯片跟虽然是51的内核,但是它跟51单片机还是有区别的,51单片机不需要对IO口进行配置,而cc2530芯片却需要对IO口进行配置,才能对它进行赋值,需要配置的寄存器有PXSEL,PXDIR,PXINP,x可以代表任意IO口,如P1SEL。

下面介绍PXSEL的功能:

zigbee学习之路(二):点亮LED

下面介绍PXDIR的功能:

zigbee学习之路(二):点亮LED

下面介绍PXINP的功能:

zigbee学习之路(二):点亮LED

通过配置以上寄存器的,就可以控制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口做为输出口,然后通过延时函数,实现灯闪烁的效果。


推荐阅读:
  1. 计算机基础,CPU和内存
  2. Android——volatile

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

寄存器 单片机 zigbee

上一篇:Scala笔记整理(七):模式匹配和样例类

下一篇:elasticsearch6.5.0安装搭建以及kibana,cerebro,head,beat

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》