📄 key_board.c
字号:
//包含所需头文件
#include <ioM16v.h>
#include <macros.h>
#include "delay.h"
/*------宏定义------*/
#define uchar unsigned char
#define uint unsigned int
#define key_mask 0b00001111
//static uchar keyvalue;
uchar key_return=0;
uchar read_keyboard()
{
static uchar key_value,key_line;
uchar i;
DDRD=0xf0;
key_line=0b00010000;
for(i=1;i<=4;i++)
{
PORTD=~key_line;
PORTD=~key_line;
key_value=key_mask&PIND;
if(key_value==key_mask)
key_line<<=1;
else
break;
}
delay_nms(5);
if(key_value==(key_mask&PIND))
{
switch(key_line|key_value)
{
case 0b00011110:key_return=1;
break;
case 0b00011101:key_return=2;
break;
case 0b00011011:key_return=3;
break;
case 0b00010111:key_return=4;
break;
case 0b00101110:key_return=5;
break;
case 0b00101101:key_return=6;
break;
case 0b00101011:key_return=7;
break;
case 0b00100111:key_return=8;
break;
case 0b01001110:key_return=9;
break;
case 0b01001101:key_return=0;
break;
}
}
return key_return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -