您的位置:首页 > 编程语言

cc2530裸机编程系列笔记4--GPIO口的使用

2015-12-06 22:45 267 查看
CC2530的GPIO口的使用与普通51单片机略有不同,主要体现在IO口在使用之前需要进行功能及方向的设定。功能的设置指的是把IO口设置为普通IO口还是当作特殊功能来使用。方向的设定指的是将IO口设为输入或输出。进行这两个设置使用的寄存器分别为PxSEL和PxDIR。

CC2530 的SFR 中有三类寄存器可用于配置这些IO 口:

①PxSEL(x 为0/1/2):P0/P1/P2 口功能选择

0:通用数字IO,1:外设IO,缺省默认为0

②PxDIR(x 为0/1/2):P0/P1/P2 口方向

0:输入,1:输出,缺省默认为0

③PxINP(x 为0/1):P0/P1 口输入模式

0:上拉/下拉,1:三态,缺省默认为0

在使用IO 口时需配置,若缺省,则取系统默认值。设置代码如下:

P1SEL = 0x00; //设置P1 为普通 I/O 口
P1DIR |= 0x0F; //设置P1_0、P1_1 为输出
对开发板上的LED进行闪灯的操作,具体程序为:

//引入头文件
#include <ioCC2530.h> //引入CC2530 所对应的头文件(包含各SFR 的定义)
//定义LED 引脚
#define led1 P1_0 //定义LED1 为P1_0 口控制
#define led2 P1_1 //定义LED2 为P1_1 口控制
void Delay(unsigned char n)
{
unsigned char i;
unsigned int j;
for(i = 0; i < n; i++)
for(j = 1; j; j++)
;
}
void main(void)
{
P1SEL = 0x00; //设置P1 为普通 I/O 口
P1DIR |= 0x03; //设置P1_1,P1_1 为输出
led1 = 1; //初始化,4 个led 灯全熄
led2 = 1;
while(1) //开始循环
{
led1 = 0; //led1 闪烁
Delay(10);
led1 = 1;
Delay(10);
led2 = 0; //led2 闪烁
Delay(10);
led2 = 1;
Delay(10);
}
}


By:霜月孤鸟

2015.12.6
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cc2530 GPIO口 LED闪灯