一.前言
今天,我来教大家如何点亮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口做为输出口,然后通过延时函数,实现灯闪烁的效果。
zigbee学习之路(二)点亮LED的更多相关文章
-
zigbee学习之路(四):按键控制(中断方式)
一.前言 通过上次的学习,我们学习了如何用按键控制led,但是在实际应用中,这种查询方式占用了cpu的时间,如果通过中断控制就可以解决这个问题,我们今天就来学习按键控制的中断方式. 二.原理分析 传统 ...
-
Redis——学习之路二(初识redis服务器命令)
上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息 s ...
-
学习笔记——单片机简介 &; 点亮LED &; 流水灯 &; 电路基础【更新Ing】
视频地址:https://www.bilibili.com/video/av10765766 超详细!!!!!! 单片机内部三大资源 [资源:单片机可提供使用的东西] FLASH 可以重复擦写 断电后 ...
-
zigbee学习之路(十二):zigbee协议原理介绍
一.前言 从今天开始,我们要正式开始进行zigbee相关的通信实验了,我所使用的协议栈是ZStack 是TI ZStack-CC2530-2.3.0-1.4.0版本,大家也可以从TI的官网上直接下载T ...
-
zigbee学习之路(十五):基于协议栈的按键实验
一.前言 经过上次的学习,相信大家已经初步学会使用zigbee协议进行发送和接受数据了.今天,我们要进行的实验是按键的实验,学会如何在协议栈里实现按键中断. 二.实验功能 在协议栈上实现按键中断,BU ...
-
zigbee学习之路(十一):看门狗
一.前言 今天,我们要通过实验学习和认识一下看门狗的使用,看门狗是为了防止防止程序跑飞的,通过不断的喂狗,使看门狗能持续监管程序的运行状态,当程序跑飞时,能及时把程序拽回来. 二.原理与分析 在CPU ...
-
zigbee学习之路(十):串口(接收)
一.前言 上次我们学习了串口的发送,今天我们要学习串口的接收,要实现的功能是接收电脑发来的数据,控制LED 灯闪烁,而且将收到的数据发回给电脑显示出来.而且要采用不占用cpu资源的中断. 二原理与分析 ...
-
zigbee学习之路(十三):基于协议栈的Usart 实验
一.前言 这次实验我们来学习基于zigbee的串口通信实验,揭开zigbee神秘的面纱,让大家可以用zigbee协议编制属于自己的程序,这次实验只是串口发送数据,并没有进行无线的数据传输,为的是使大家 ...
-
zigbee学习之路(八):定时器1(中断)
一.前言 通过上次的实验,我们已经学会了定时器3的中断方式,这次,我们来看看定时器1通过中断怎么控制. 二.原理分析 定时器1的初始化跟前面提到的一样,也是要配置寄存器T1CTL,还要进行开中断的操作 ...
随机推荐
-
在GridView隐藏字段
在GridView中隐藏一字段,方便这条记录的处理,同时隐藏一个Button实现点击这条记录时的处理 1.绑定 <asp:TemplateField> ...
-
js的执行机制
遇到一个问题,因为自己本身就是菜鸟的原因,弄懂了还是很高兴的. console.log(a) function a() { return "this is function" } ...
-
【C语言】编写一个函数实现n^k,使用递归实现
#include <stdio.h> int fuc(int x,int n) { if(n!=1) return x*fuc(x,n-1); return 1; } int main() ...
-
iOS opencv
1.在iPhone上使用 OpenCV http://blog.csdn.net/kmyhy/article/details/7560472 2. OpenCV iOS Hello¶ http://d ...
-
CSS3/jQuery自定义弹出窗口
简单演示一下,精简了演示效果和css样式文件,更利于在项目中的实际应用 引入style.css index.js <!DOCTYPE HTML PUBLIC "-//W3C//DT ...
-
Git安装配置,和使用的简介
方案1:安装Git和TortoiseGit,使用TortoiseGit的图形化界面管理项目代码 材料准备: Git安装包 TortoiseGit安装包 注:包资源,可疑百度搜索,在Git官网下载 安装 ...
-
Java笔记(十四) 并发基础知识
并发基础知识 一.线程的基本概念 线程表示一条单独的执行流,它有自己的程序计数器,有自己的栈. 1.创建线程 1)继承Thread Java中java.lang.Thread这个类表示线程,一个类可以 ...
-
php include 绝对路径 dirname(__FILE__)
include(dirname(__FILE__)."/PHPMailer/function.php");
-
计算机意外地重新启动或遇到错误。windows安装无法继续。若要安装windows 请单击 确定 重新启动计算机
快安装完系统时遇到提示:计算机意外地重新启动或遇到错误.Windows 安装无法继续.若要安装Windows,请单击“确定”重新启动计算机,然后重新启动安装”.如下图所示: 解决办法: 当出现如上提示 ...
-
orace学习操作(4)
Orace游标: 一.游标简介: 使用游标,我们可以对具体操作数据,比如查询的结果,对行,列数据进行更加细致的处理.以及对其他DML操作进行判断等操作: 二.显示游标: 1.静态的指定变量类型: SQ ...