CC2530学习笔记
CC2530有21个数字I/O,其中P0和P1是8位端口,P2仅有5位可以使用。实际开发可用I/O端口只有17个。可配置为通用I/O端口,或外部设备I/O。输入端口都可以配置成外围中断源的输入引脚。P-0和p-1没有上拉和下拉能力。p-0和p-1有20ma高驱动输出,其余I/O引脚是4ma的驱动能力。
特殊功能寄存器(SFR),对特殊功能寄存器进行读写操作,某些特殊寄存器可以位寻址。每个特殊功能寄存器都会起一个名字,设计时要引入头文件“ioCC2530.h”,才能直接使用名字。
通用寄存器相关的常用寄存器有4个:
1,PxSEL:端口功能选择,设置端口是通过I/O还是外设功能端口。
2,PxDIR:作为通用I/O时,用来设置数据的传输方向。
3,PxINP:作为通用输入端口时,选择输入模式还是上拉或者下拉,三态。
4,Px:数据端口,用来控制端口的输入或者获取端口的输入。
PxSEL寄存器与PxDIE寄存器
P0INP寄存器与P1INP寄存器配置状态要结合P2INP一起配置。
P2INP寄存器
实现代码如下:
#include "ioCC2530.h" //引用“ioCC2530”
#define D1 P1_1 //宏定义P_1
void delay(unsigned int t) //不精确的延时函数
{
while (t--);
}
void Pin_init() //配置寄存器
{
P1SEL &= ~0x02; //选择端口这里选择的P1_1。配置0000 0010转换0x02
P1DIR |= 0x02; //将P1_1配置成为输出。配置0000 0010转换0x02
}
void main()
{
Pin_init(); //初始化引脚
while (1)
{
D1 = 1; //点亮D1
delay(30000); //延时
D1 = 0; //关闭D1
delay(30000); //延时
}
}