4412裸机程序之按键控制LED

这1节我们通过按键来控制led,按下按键K1,4个灯全亮,松开全灭。
看一下原理图




K1与XNI26/GPX3_2相连,我们把GPX3_2配置成输入接口,从原理图可以看出当按键断开时XNI26与1.8v电压相连,显示高电平,
当按键按下时XNI26与地相连,显示底电平。这样我们只有读XNI26/GPX3_2状态就可以判断按键是按下还是松开。
代码如下:

//led.c文件
#define GPM4CON (*(volatile unsigned int *)0x110002E0)
#define GPM4DAT (*(volatile unsigned int *)0x110002E4)

#define GPX3CON (*(volatile unsigned int *)0x11000C60)
#define GPX3DAT (*(volatile unsigned int *)0x11000C64)

int main(void)
{
    int val;
    int i;


/*
* 配置GPM4_0,GPM4_1,GPM4_2,GPM4_3为输出引脚
* 对应LED1/2/3/4
*/

 GPM4CON = 0x1111;

 /* 设置K1对应的GPIO(GPX3_2)为输入 */
 GPX3CON &= ~(0xf << 8);  //把[11:8]位清0

 while (1)
 {

     val = GPX3DAT;
     /* 读出按键引脚状态 */

     if (val & (1<<2)) /* 按键是松开状态 : 高电平 */
     {
         /* 熄灭对应LED : GPIO输出高电平 */
         GPM4DAT |= (15);
     }
     else
     {
         /* 否则点亮LED : GPIO输出低电平 */
         GPM4DAT &= ~(15);
     }

 }


    return 0;
}

代码位置:https://github.com/cyj1988jyc/luoji4412
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值