📄 settime.c
字号:
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
void dlms(void);
uchar kbscan(void);
void dlms(void)
{
uchar i;
for(i=200;i>0;i--)
{ }
}
uchar kbscan(void)
{
uchar sccode,recode;
P2=0xf0; //p0.0---p0.3发全0,p0.4--p0.7输入
if((P2&0xf0)!=0xf0) //如果p0口高四位不全为1,有键按下
{ dlms(); //延时去抖动
if((P2&0xf0)!=0xf0) //重读输入值
{ sccode=0xfe; //最底位置0
while((sccode&0x10)!=0) //不到最后一行循环
{ P2=sccode; //p0口输出扫描码
if((P2&0xf0)!=0xf0) //如果p0.4--p0.7不全为1,该行有键按下
{ recode=P2&0xf0;
sccode=sccode&0x0f; //保留p0口高四位输入值,低四位变为全1,作为列值
return(sccode+recode);
}
else
sccode=(sccode<<1)|0x01; //如该行无键按下,查下一行,行扫描值左移一位
}
}
}
return(0);
}
void Settime()
{
uchar keycode,number;
uchar i=0;
while(kbscan()!=0xb7)
{
keycode=kbscan();
number=Key_number(keycode);
if(number!=10&&number!=11&&number!=12&&number!=13&&number!=15)
{
led[i]=tab[number];
i++;
}
if(i==14)
{
i=0;
}
}
void main(void)
{ uchar key;
while(1)
{
key=kbscan();
dlms();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -