key.c
来自「本资料为基于单片机89C55+LCD12864的万年历」· C语言 代码 · 共 56 行
C
56 行
#include <reg51.h>
#include <key.h>
#define uchar unsigned char
#define uint unsigned int
void d1ms(uint i)
{
uint a;
for(;i>0;i--)
{
for(a=800;a>0;a--);
}
}
void d1s(uint i)
{
for(;i>0;i--)
{
d1ms(500);
}
}
/***********************
返回0x0A:按下设置键; 返回0X06:光标键; 返回0X09:加键; 返回0X05:减键; 非正常按键:0
***********************/
uchar keyscan()
{
uchar scan1,second1;
P2=0xf0;
if((P2&0xf0)!=0xf0) /*判断是否有键按下*/
{
d1ms(1);
if((P2&0xf0)!=0xf0) /*再次判断*/
{
scan1=0xfe; /*逐行扫描*/
while((scan1&0x10)!=0) /*只允许位移3位*/
{
P2=scan1;
if((P2&0xf0)!=0xf0)
{
second1=(P2&0xf0)|0x0f;
do
{
P2=0xf0;
}while(P2!=0xf0); //等待按键松开
d1ms(1);
return((~second1)+(~scan1));
}
else
scan1=(scan1<<1)|0x01;
}
}
}
return(0);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?