AVR32单片机 矩阵按键 按键键值函数解析

本文介绍了AVR32单片机如何使用矩阵按键,并详细解析了`key_scan`函数的工作原理。该函数通过读取行线列线电平来确定按键位置,返回按键对应的十六进制数字。在按键扫描过程中,通过do...while循环逐次改变行线电平,观察列线电平变化,从而识别被按下的按键。
摘要由CSDN通过智能技术生成

矩阵按键电路图

函数名:key_scan
功能:读行线列线电平,根据按键键值定位
返回值:按键代表的十六进制数字

uchar是定义了unsigned char类型

key_scan函数

    uchar key_scan()
    {
    //定义几个变量
    uchar key;
    uchar  i=0x7f;
    uchar  j;
    delay(10);//消抖
    if(key_press())
    {

重点这个do…while

    do
	{
	 i=(i<<1|i>>7);//左移1位|右移7位 每一次只输出一个低电平1111 1110

1.一开始定义i等于0x7f,为了先让P0输出为低电平。
2.当按键按下M1,M5,M9,M13,高四位(P7P6P5P4)其中有一位会因为按键导通拉低电平,输出低电平。
3.j不等于0xf0,退出do…while循环,数码管输出0,1,2,3
4.若按下不是P0对应的按键,.j等于0xf0,继续do…while循环
5.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值