最简单的4X4矩阵键盘

2020-01-13 18:24发布

/*
P2口是4X4矩阵键盘
P0口是8个发光二极管,用来显示按键
*/
#include<reg52.h>
unsigned char Trg;
unsigned char Cont;
void KeyRead( void )
{
    unsigned char ReadData;
    P2=0x0f;
    ReadData=P2;
    P2=0xf0;
    ReadData=(ReadData | P2)^0xff;
    Trg  = ReadData & (ReadData ^ Cont);
    Cont = ReadData;
}
void KeyProc(void)
{
    if (Trg  )  // 如果有按下
    {
         P0=Trg^0xff;// 执行的代码
    }
     
    if (Cont)  // 如果按键被按着不放
    {
           
    }  
    if (Trg ==0 & Cont==0)  //按键放开  
    {
         P0=0xff;

    }
}

void main()
{

    Trg=0;
    Cont=0;
    while(1)
    {
        KeyRead();
        KeyProc();
    }

}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
51条回答
zzx1415
1楼-- · 2020-01-16 21:11
mark
Cannot_Make_It
2楼-- · 2020-01-17 02:39
不错,用“最”可是有点过了
fengtianzhifeng
3楼-- · 2020-01-17 04:27
牛~刚刚看了您另外一个帖子~真的是不错~谢谢分享
dongfo
4楼-- · 2020-01-17 09:42
rainyss 发表于 2010-10-9 06:58
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4309217&bbs_id=9999

不要老是"最".

我觉得这个应该是最简单得了,其他更简单的没有松手检测,长按检测的。实际使用中往往是需要这些的
dongfo
5楼-- · 2020-01-17 12:30
 精彩回答 2  元偷偷看……
ouyj_0210
6楼-- · 2020-01-17 13:32
感谢,标记

一周热门 更多>