第六节 独立按键之查询方式

第六节  独立按键之查询方式

在MT254xboard上有一个独立按键KEY1,如图 ,独立按键和复位键在整个班子的左上角。按键通过P0.0口和CPU连接,在没有按键时为高电平,按下后为低电平。下面我们通过LCD来显示独立按键的状态。


其对应的原理图如下:


我们先用查询的方式读取按键的状态。因为按键接入在P0.0口,所以我们读取P0.0口的电平即可知道按键的状态。

uint8 KeyValue(void)            // 读取按键状态
{
    if((P0&0X01) == 0X00 )      // 按下为低电平
    {
        return KEY_DOWN;
    }
    else
    {
        return KEY_UP;
    }
}
这里我们在while循环中不断的读取按键状态,并且判断是否改变,如果改变则改变LCD的显示。

int main(void)
{
    uint8 OldKeyValue = 0;                
    uint8 NewKeyValue = 0;
    SysStartXOSC();
    LCD12864_Init();
    LCD12864_DisStr(1, "    Key Test");
        // 按键初始化
    P0SEL &= ~0X01;        // 设置为 IO功能
    P0DIR &= ~0X01;        // 设置为输入功能

    while(1)
    {
        NewKeyValue = KeyValue();   // 读取按键状态
        if(OldKeyValue != NewKeyValue)  // 按键状态改变
        {
            OldKeyValue = NewKeyValue;  // 保存当前按键状态
            if(OldKeyValue == KEY_DOWN)
            {
                LCD12864_DisStr(3, "    Key Down ");
            }
            else
            {
                LCD12864_DisStr(3, "    Key Up ");
            }
        }
    }
    return 0;
}

运行程序,效果如图所示:




本文章转载自
http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/t/69222.aspx
请勿用于商业

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本书所用程序如下:(按章节排列) 第三章 3.1.6节 3_1_6.s43 第三章 3.3.1节 3_3_1.s43 第三章 3.3.2节 3_3_2.s43 第三章 3.5节 例一 3_5_1.c 第三章 3.5节 例二 3_5_2.c 第三章 3.5节 例三 3_5_3.s43 第三章 3.6节 例五(其他举例略) 3_6_5.c 第三章 3.7节 3_7.c 第三章 3.8.1节 例一 3_8_1_1.s43 第三章 3.8.2节 例一 3_8_2_1.c 第三章 3.8.2节 例二 3_8_2_2.c 第三章 3.8.2节 例三 3_8_2_3.c 第三章 3.8.2节 例四 3_8_2_4.c 第三章 3.8.3节 3_8_3.s43 第三章 3.9节 3_9.c 第五章 5.1.4节 例一 5_1_4_1.s43 第五章 5.1.4节 例二 5_1_4_2.s43 第五章 5.1.4节 例三 5_1_4_3.s43 第五章 5.1.4节 例四 5_1_4_4.s43 第五章 5.1.5节 例一 5_1_5_1.s43 第五章 5.1.5节 例二 5_1_5_1.c 第五章 5.1.5节 例三 5_1_5_2.s43 第五章 5.1.5节 例四 5_1_5_2.c 第五章 5.1.6节 独立按键 5_1_6_1.s43 第五章 5.1.6节 独立按键(C) 5_1_6_1.c 第五章 5.1.6节 扫描按键 key.s43 第五章 5.1.6节 扫描按键(C) key.c 第五章 5.1.8节 ADC 5_1_8.s43 第五章 5.1.9节 5_1_9_1.s43 第五章 5.2.1节 IIC器件 test24C256.S43 第五章 5.2.2节 键盘与显示 keyDIP.S43 第五章 5.2.3节 键盘与显示以及低功耗 keydLPM.S43 第五章 5.2.4节 电子琴 keyQing.S43 第五章 5.2.4节 温度报警系统 keyDLAS_ALARM.S43 第五章 5.2.4节 固体录音机 4004_KEY.s43 第五章 5.3.1节 时间控制器 time_cont.c 第五章 5.3.2节 交通灯 tr_led.s43 第五章 5.3.2节 12864液晶程序 lcd12864.c

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值