首页 > 代码库 > TI CC2530基础实验(普通GPIO操作——按一下按键亮一下灯)
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/O P1DIR |= 0x01; //方向:输出 LED1 = 1; //使其属于灭状态 } /*********************************** * 函数描述:初始化按键S1 **********************************/ void KEY1Init(void) { P0SEL &= ~0x10; //功能:普通I/O P0DIR &= ~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操作——按一下按键亮一下灯)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。