📄 keyscay._h
字号:
/*............................................................*/
//键盘扫描函数
//输入无
//输出无
//备注:采用线反转法
uchar key_scay(void)
{
unsigned char key;
DDRB=0xF0; //PB0-3为输入,PB4-7为输出,
PORTB=0x0F; //行线为1且内部上拉,列线为0
if(PINA&0x08) //第一行有键按下
key=0;
else if(PINA&0x04) //第二行有键按下
key=4;
else if(PINA&0x02) //第三行有键按下
key=8;
else if(PINA&0x01) //第四行有键按下
key=12;
DDRB=0x0F; //反转I/O口方向
PORTB=0xF0; //置行为低电平
delay_nms(20); //延迟消抖
if(PINA&0x80) //第一列有键按下
key+=0;
else if(PINA&0x40) //第二列有键按下
key+=1;
else if(PINA&0x20) //第三列有键按下
key+=2;
else if(PINA&0x10) //第四列有键按下
key+=3;
DDRB=0xF0;
PORTB=0x0F;
return(key);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -