📄 4×3矩阵键盘c编程.c
字号:
#include<reg51.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
uchar code Tab[12]={
0xF9,/*1*/
0xA4,/*2*/
0xB0,/*3*/
0x99,/*4*/
0x92,/*5*/
0x82,/*6*/
0xF8,/*7*/
0x80,/*8*/
0x90,/*9*/
0x88,/*A*/
0xC0,/*0*/
0xC6,/*C*/};
uchar idata com1,com2;
uint idata key[12]={0};
void delay()
{
uchar i,j;
for(i=0;i<20;i++)
for(j=0;j<255;j++);
}
uchar key_scan()
{
uchar temp;
uchar i;
delay();
P2=0xf0;
if(P2!=0xf0)
{
com1=P2;
P2=0x0f;
com2=P2;
}
P2=0xf0;
while(P2!=0xf0);
temp=com1|com2;
if(temp==0xee)i=0;
if(temp==0xed)i=1;
if(temp==0xeb)i=2;
if(temp==0xde)i=3;
if(temp==0xdd)i=4;
if(temp==0xdb)i=5;
if(temp==0xbe)i=6;
if(temp==0xbd)i=7;
if(temp==0xbb)i=8;
if(temp==0x7e)i=9;
if(temp==0x7d)i=10;
if(temp==0x7b)i=11;
return(i);
}
void main()
{
uchar dat;
P0=0x00;
while(1)
{
P2=0xf0;
while(P2!=0xf0)
{
dat=key_scan();
P1=dat;
key[0]=dat;
P0=Tab[key[0]];
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -