📄 main.c
字号:
#include<p30f4011.h>
void keyscan()
{
unsigned char key;
TRISB=0X000F;//定义B口低四位输入,高四位输出。
LATB=0X0000;//输出位为零
key=PORTB;//读取输出端口输出的值,并赋于key。
TRISB=0X00F0;//定义B口高低四位输入,低四位输出。
LATB=0X0000;//输出位为零
key|=PORTB;//读取输出端口的值,并和前面的输出值去并。
//用反转法确定读取扫描码
while(key==0X00FF)
{
TRISB=0X000F;
LATB=0X0000;
key=PORTB;
TRISB=0X00F0;
LATB=0X0000;
key|=PORTB;
return key;
delay5us(10); //延时消抖
};//如果没有按键,则重新扫描,直到有按键发生
switch(key)
{
case 0XEE:
key=1; break;
case 0XED:
key=2; break;
case 0XEB:
key=3; break;
case 0XE7:
key=4; break;
case 0XDE:
key=5; break;
case 0XDD:
key=6; break;
case 0XDB:
key=7; break;
case 0XD7:
key=8; break;
case 0XBE:
key=9; break;
case 0XBD:
key='A';break;
case 0XBB:
key='B';break;
case 0XB7:
key='C';break;
case 0X7E:
key='D';break;
case 0X7D:
key='E';break;
case 0X7B:
key=0; break;
case 0X77:
key='F';break;
default:
return key;//其它情况则返回key值,重新扫描
delay5us(10); //延时消抖
}
TRISB=0XFFFD;
LATB=key;
}
int main(void)
{
while(1)
{
keyscan();
}
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -