ARM按键控制LED

#define     GPACON     (*(volatile unsigned long*)0x56000000)
#define     GPADAT      (*(volatile unsigned long *)0x56000004)
#define     GPBCON      (*(volatile unsigned long *)0x56000010)
#define     GPBDAT      (*(volatile unsigned long *)0x56000014)
#define     GPFCON      (*(volatile unsigned long *)0x56000050)
#define     GPFDAT      (*(volatile unsigned long *)0x56000054)
#define     GPBSEL      (*(volatile unsigned long *)0x5600001c)

void main(void)
{
    int dat = 0;

    //
所有LED熄灭
    GPACON = 0x0;  
    GPBCON = ( 0x5<<(2*5) );   
    GPADAT = (0x3<<25);
    GPBDAT = (0x3<<5);
    GPBSEL = 0x0;
   
    //
配置GPF引脚为输入功能
    GPFCON = 0;
   
    //
轮询的方式查询按键事件
    while(1)
    {
        dat = GPFDAT;

        if(dat & (1<<0))                // KEY1
被按下,则LED1亮,否则LED1
            GPBDAT |= 1<<5;
        else
            GPBDAT &=~(1<<5);

        if(dat & (1<<1))                // KEY2
被按下,则LED2亮,否则LED2
            GPBDAT |= 1<<6;
        else
            GPBDAT &=~(1<<6);

        if(dat & (1<<2))                // KEY3
被按下,则LED3亮,否则LED3
            GPADAT |= (1<<25);
        else
            GPADAT &=~(1<<25);

        if(dat & (1<<3))                // KEY4
被按下,则LED4亮,否则LED4
            GPADAT |= 1<<26;
        else
            GPADAT &=~(1<<26);

    }
}

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值