找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1911|回复: 1
收起左侧

利用单片机的红外传感器制作一个感应人穿梭的项目

[复制链接]
ID:412100 发表于 2018-10-19 09:17 | 显示全部楼层 |阅读模式
此部分为网上找到的代码。。逻辑关系没搞懂,希望有大神帮解释

void key()
{
        static uchar key_new = 0,key_old = 0,key_value = 0;
        if(key_new == 0)                 //按键松开        ,key=0时,按键是没有按下去的
        {
                if((key_io & 0x07) == 0x07)
                        key_value ++;
                else
                        key_value = 0;
                if(key_value >= 5)         //按键松开松手检测
                {
                        key_value = 0;
                        key_new = 1;        //按键松开后进入等待按键状态
                }
        }
        else
        {
                if((key_io & 0x07) != 0x07)         //按键按下
                        key_value ++;
                else
                        key_value =0;
                if(key_value >= 5)        //按键按下消抖
                {
                        key_value = 0;
                        key_new = 0;           //按键松开后进入等待松开按键状态
                }
        }
        key_can = 20;
        if((key_new == 0) && (key_old == 1))
        {
                switch(key_io & 0x07)
                {
                        case 0x06: key_can = 1; break;          //得到按键值
                        case 0x05: key_can = 2; break;          //得到按键值
                        case 0x03: key_can = 3; break;          //得到按键值
                }
        }                        
        key_old = key_new;         
}


回复

使用道具 举报

ID:461090 发表于 2019-3-19 16:16 | 显示全部楼层
楼主解决了吗?我也想问一下这个问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表