📄 矩阵键盘c编程.c
字号:
/*****************************************************************************
4*4行列式键盘的C程序编写
*****************************************************************************/
#include<reg51.h>
#include<absacc.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code Tab[16]={
0xC0,/*0*/
0xF9,/*1*/
0xA4,/*2*/
0xB0,/*3*/
0x99,/*4*/
0x92,/*5*/
0x82,/*6*/
0xF8,/*7*/
0x80,/*8*/
0x90,/*9*/
0x88,/*A*/
0x83,/*b*/
0xC6,/*C*/
0xA1,/*d*/
0x86,/*E*/
0x8E,/*F*/
};
uchar idata com1,com2;
void delay(void)
{
char a,b;
for(a=20;a>0;a--)
for(b=248;b>0;b--);
}
key_scan()
{
uchar i;
uchar com;
com1=0x00;
com2=0x00;
delay(); //消除键盘抖动 延时10ms
P2=0xf0;
if(P2!=0xf0)
{
com1=P2;
P2=0x0f;
com2=P2;
}
P2=0xf0;
while(P2!=0xf0);
com=com1|com2;
if(com==0xee)i=0;
if(com==0xed)i=1;
if(com==0xeb)i=2;
if(com==0xe7)i=3;
if(com==0xde)i=4;
if(com==0xdd)i=5;
if(com==0xdb)i=6;
if(com==0xd7)i=7;
if(com==0xbe)i=8;
if(com==0xbd)i=9;
if(com==0xbb)i=10;
if(com==0xb7)i=11;
if(com==0x7e)i=12;
if(com==0x7d)i=13;
if(com==0x7b)i=14;
if(com==0x77)i=15;
return(i);
}
void main()
{
uchar dat;
while(1){
P2=0xf0;
while(P2!=0xf0){
dat=key_scan();
P0=Tab[dat];}}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -