⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 key_4x3.c

📁 51单片机的二极管键盘,4IO口12键,驱动函数 按键检测 按键扫描 等待按键
💻 C
字号:
#include "key_4x3.h"

/***************底层函数******************/
uchar Read_io()             //ok
{
    uchar tmp;
    tmp = Px;                   //读入数据
    tmp = (tmp >> MOVE) & 0x0f; //处理数据
    return(tmp);
}

void Write_io(uchar value)      //ok
{
    uchar tmp = 0x0f;
    Px = Px & ~(tmp << MOVE);   //键盘口清0
    Px = Px | (value << MOVE);  //装入数值
}

/****************主函数*******************/
uchar KEY_value(uchar key)
{
	uchar code _value[]={14,13,11,7}, _key[]={12,10,6,12,9,5,10,9,3,6,5,3};
	--key;
	Write_io(_value[key/3]);
	if(Read_io() == _key[key])
	{
		delay2ms(14);
		if(Read_io() == _key[key]) 	
        { 
            while(Read_io() == _key[key])
			{}
			return(1);
        } 
		else return(0);
	}
	else return(0);
}

uchar KEY_num(void)
{
	uchar num;
	for(num=1;num<13;num++)
	{
	if(KEY_value(num))
        {return(num);break;}
	}
}

uchar KEY_wait()
{
    uchar tmp;
    while(!(tmp = KEY_num()));
    return tmp;
}
/***********/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -