您的位置:首页 > 其它

4412裸机程序之按键控制LED

2015-11-14 14:52 435 查看
这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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  4412裸机程序