📄 矩阵式键盘.c
字号:
#include<AT89X51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define k P1 // 定义键盘接口
/************************************************
延时子程序
************************************************/
void delay(uchar n)
{
char j;
while(n--)
for(j=1;j<122;j++)
{ ; } //延时n毫秒
}
/************************************************
键盘扫描子程序
************************************************/
uchar scan_key(void)
{
uchar i,j,temp_i,temp_j,key_value;
temp_i=0x10;
temp_j=0x01;
if(k!=0x0f)
{
delay(10);
if(k!=0x0f)
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
k=~(temp_i<<i);
if((k&(temp_j<<j))==0)
key_value=4*i+j;
}
}
return key_value;
}
/************************************************
主函数
************************************************/
void main(void)
{
while(1)
P2=scan_key();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -