使用GPIO输出控制Led亮灭(CC2530)

您所在的位置:网站首页 控制led灯组合亮的芯片 使用GPIO输出控制Led亮灭(CC2530)

使用GPIO输出控制Led亮灭(CC2530)

2023-10-30 04:23| 来源: 网络整理| 查看: 265

1.实验目的: a.通过实验掌握CC2530芯片GOIP的配置方法 b.掌握Led驱动电路以及开光Led的原理 c.查看cc2530-datasheet.pdf手册查找各个寄存器的意思。 二、实验相关原理图 在这里插入图片描述 在这里插入图片描述 CC2530核心板: CC2530有3个端口,分别是P0、P1、P2,我们通过控制IO操作来完成实验。

第一个LED灯连接的是P1_0 在这里插入图片描述

 由于发光二极管是单向导电特性,只有给正向电压才能够导通,也就是P1_0得输出低电平,D1就会发亮,如果P1_0输出3.3V,D1就会灭。 代码中 我们用宏定义来控制P1_0 在这里插入图片描述 延迟函数(1ms)中535这个值是通过示波器测量出来的,也可以修改这个值判断波形 得到延时函数延时的时间。

在这里插入图片描述

三、配置寄存器

初始化:设置LED灯相应的IO口LED讲P1_0定义为输出口 死循环给LED一个低电平,LED被点亮延时1s后 给LED一个高电平,熄灭LED灯,延时1s 再不断循环。 在这里插入图片描述 搜索P1DIR表示的是端口P1的方向寄存器:用来分别控制P1_0~P1_7,这8个IO口是输入还是输出状态。 比如输出0V或3.3V就可以用来开关LED灯的亮和灭,如果是接在继电器上就可以控制继电器的开和关。 在这里插入图片描述 操作P1.0还需要掌握相关寄存器的作用和配置方法: 在这里插入图片描述

P1SEL: 在这里插入图片描述

在这里插入图片描述 在这里插入图片描述 从芯片手册中查找到P1SEL是P1端口的功能选择也就是P1SEL的第零位到第七位决定着P1端口P1_0到P1_7的功能选择. 当P1SEL相应的位配置为0时,是通用的IO功能; 当P1SEL相应的位配置为1时,是外设功能。

P1SEL &=~0x01;配置P1.0为通用IO口就是P1_0可以输出0V也可以输出3.3V;从而来控制LED灯的亮和灭。

由于CC2530寄存器初始化有默认值: P1SEL = 0x00; P1DIR = 0x00; P1INP = 0x00; 我们可以将命令进行简化,P1DIR I=0x01;就可以把P1_0配置为输出. 四 :相关代码

#include

typedef unsigned char uchar; typedef unsigned int uint;

#define LED1 P1_0 //定义P1.0口为LED1控制端

/****************************************************************************

名 称: DelayMS()

功 能: 以毫秒为单位延时,系统时钟不配置时默认为16M(用示波器测量相当精确)

入口参数: msec 延时参数,值越大,延时越久

出口参数: 无 ****************************************************************************/ void DelayMS(uint msec) { uint i,j;

for (i=0; i InitLed(); //设置LED灯相应的IO口

while(1) //死循环 { LED1 = 0; //点亮LED1 DelayMS(1000); //延时1秒

LED1 = 1; //LED1熄灭 DelayMS(1000); //延时1秒

} }

五、实验现象 在这里插入图片描述

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3