📄 keyboard.c
字号:
//***************************************************************************
// 4×4矩阵键盘扫描程序
// date:2004.12.16
//***************************************************************************
//连线方式:
//P1口为4×4矩阵键盘PC.0-PC.3接上拉电阻 PC.4-PC.7
//***************************************************************************
#include <iom16v.h>
#include <stdio.h>
#include <macros.h>
#include "keyboard.h"
unsigned char keycode=0;
void dlms(void)//延时
{
unsigned char i;
for(i=0;i<200;i++){i=i;}
}
unsigned char kbscan(void)//键盘扫描
{ unsigned char sccode,recode,i,j;
DDRC=0xF0;
PORTC=0x0F;
if((PINC&0x0F)!=0x0F)
{
dlms();
if((PINC&0x0F)!=0x0F)
{
for(sccode=0x7F;(sccode|0x10)!=0;sccode=(sccode>>1)|0x80)
{
//scode&=oxF0;
PORTC=sccode;
if(sccode==0xFF)return(0);
if((PINC&0x0F)!=0x0F)
{
recode=(PINC&0x0F);
if(((~sccode)&0xF0)>=0x80)
{
i=0;
}
else if(((~sccode)&0xf0)>=0x40)
{
i=1;
}
else if(((~sccode)&0xf0)>=0x20)
{
i=2;
}
//else if(((~sccode)&0xf0)>=0x10)
//{
//i=3;
//}
else i=3;
if(((~recode)&0x0f)>=0x08)
{
j=0;
}
else if(((~recode)&0x0f)>=0x04)
{
j=1;
}
else if(((~recode)&0x0f)>=0x02)
{
j=2;
}
//else if(((~recode)&0x0f)>=0x01)
//{
// j=3;
//}
else j=3;
keycode=i*4+j;
return (keycode);
}
}
}
else
{
return(20);
}
}
return(20);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -