涉及寄存器如下涉及寄存器如下涉及寄存器如下GPIO输出控制实验------控制LED灯亮灭
涉及寄存器如下:
PXINP---------端口输入模式(0:上拉/下拉 1:三态)
PXDIR--------端口方向寄存器(0:输 入
PXSEL-------端口功能选择(0:通用I/O口 1:外设)
P1:端口1
程序
/****************************************************************************
* 文 件 名: main.c
* 描 述: GPIO输出控制实验1 操作IO口控制LED灯的亮和灭
****************************************************************************/
#include <ioCC2530.h>
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<msec; i++)
for (j=0; j<535; j++);
}
/****************************************************************************
* 名 称: InitLed()
* 功 能: 设置LED灯相应的IO口
* 入口参数: 无
* 出口参数: 无
****************************************************************************/
void InitLed(void)
{
P1DIR |= 0x01; //P1.0定义为输出口 0000 0001 “|=”只影响当前位,直接赋值会改变之前的值
}
/****************************************************************************
* 程序入口函数
****************************************************************************/
void main(void)
{
InitLed(); //设置LED灯相应的IO口
while(1) //死循环
{
LED1 = 0; //点亮LED1
DelayMS(1000); //延时1秒
LED1 = 1; //LED1熄灭
DelayMS(1000); //延时1秒
}
}