📄 key4x4._h
字号:
//延时
void s_ms(unsigned int t)
{
for(;t>1;t--)
{
}
}
//读取键盘
//PC口作为键盘输入
unsigned char key_value()
{
unsigned char tem1,tem2,rem,i ;
rem=0 ;
//不清零会返回一个不可预知的数
DDRC=0xf0 ;
//c口高四位输出 低四位输入
PORTC=0x0f ;
//输入有上拉电阻
s_ms(30);
tem1=PINC ;
//读取端口c
tem1=tem1&0x0f ;
//判断是否有键被按下
if(tem1!=0x0f)
{
s_ms(800);
//延时
tem2=PINE ;
//读取端口c
tem2=tem2&0x0f ;
//判断是否为干扰
if(tem1==tem2)
{
DDRC=0x0f ;
//c口高四位输入 低四位输出
PORTC=0xf0 ;
//反相输出
s_ms(1);
//换向后要延时
rem=PINC ;
//读取端口c
rem=rem&0xf0 ;
//取高四位
rem=rem+tem1 ;
//合并
rem=~rem ;
//反向输出
//判断按键是否被释放
do
{
PORTC=0xf0 ;
s_ms(3000);
}
while(PINC!=0xf0);
}
}
s_ms(6000);
s_ms(6000);
return(rem);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -