单片机学习小组
直播中

刘满贵

7年用户 1469经验值
私信 关注

请教大神如何对基于单片机CT107D的按键进行检测呢

请教大神如何对基于单片机CT107D的按键进行检测呢?

回帖(1)

赵媛

2022-2-23 11:10:40
蓝桥杯单片机CT107D 按键检测
定义key.h,

#ifndef _key_h
#define _key_h

#include "common.h"  //包含通用的头文件

uint8 key(uint8 flag);

#endif

定义相应的.c文件

#include "key.h"

//定义矩阵键盘的行 ;这里只写了独立按键的检测 所以没有定义列
***it r1=P3^0;
***it r2=P3^1;
***it r3=P3^2;
***it r4=P3^3;

uint8 key(uint8 flag) //参数flag为1时,按键被按下时立即返回值,为0时,等待松开按键时返回键值
{
        r1=1,r2=1,r3=1,r4=1;
        if(r1==0)        //检测s7
        {
                delay_ms(1);
                if(r1==0)
                {
                        if(flag)return 7;      
                        while(!r1);
                        return 7;
                }
        }
      
                if(r2==0)        //检测s6
        {
                delay_ms(1);
                if(r2==0)
                {
                        if(flag)return 6;      
                        while(!r2);
                        return 6;
                }
        }
      
                if(r3==0)        //检测s5
        {
                delay_ms(1);
                if(r3==0)
                {
                        if(flag)return 5;      
                        while(!r3);
                        return 5;
                }
        }
      
                if(r4==0)        //检测s4
        {
                delay_ms(1);
                if(r4==0)
                {
                        if(flag)return 4;      
                        while(!r4);
                        return 4;
                }
        }
        return 0;
}
举报

更多回帖

发帖
×
20
完善资料,
赚取积分