本文主要是介绍TI CC2530基础实验(普通GPIO操作——按一下按键亮一下灯),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
有关CC2530的GPIO基本知识、普通GPIO操作有关寄存器的介绍、IAR Embedded Workbench IDE软件使用:TI CC2530基础实验(普通GPIO操作——点亮led灯)
电路原理图:
分析:需要按一下按键亮一下灯,并且不采用中断方式,即我们需要实时去监测按下是否被按下(P0_4为低电平表示按下,高电平表示松开)。
设置:
- 灯LED1对应的P1_0引脚为普通I/O、方向为输出
- 按键S1对应的P0_4引脚为普通I/O、方向为输入
/************************************** * 基础实验只需要添加以下这个头文件即可 *************************************/
#include <ioCC2530.h>/*********************************** * 程序描述:按一下按键亮一下灯**********************************/ #define LED1 P1_0
#define KEY1 P0_4/*********************************** * 函数描述:初始化LED1**********************************/
void LED1Init(void)
{P1SEL &= ~0x01; //功能:普通I/OP1DIR |= 0x01; //方向:输出LED1 = 1; //使其属于灭状态
}/*********************************** * 函数描述:初始化按键S1**********************************/
void KEY1Init(void)
{P0SEL &= ~0x10; //功能:普通I/OP0DIR &= ~0x10; //方向:输入
}/*********************************** * 函数描述:毫秒级延迟函数**********************************/
void Delayms(unsigned int ms)
{unsigned int i,j;for (i = ms; i > 0; i--){for (j = 587; j > 0; j--);}
}/*********************************** * 函数描述:扫描KEY1的状态并修过LED1**********************************/
void KEY1Scan(void)
{if (0 == KEY1)//表示按下{LED1 = 0; //给低电平使其LED1亮Delayms(10);//去抖for (;1 == KEY1;) //判断是否松开{LED1 = 1; //给高电平使其LED1亮}}
}void main()
{LED1Init();KEY1Init();for (;;){KEY1Scan();}
}
这篇关于TI CC2530基础实验(普通GPIO操作——按一下按键亮一下灯)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!