标题:
关于独立式按键的一段程序求说明
[打印本页]
作者:
woshibeilili
时间:
2016-1-12 17:20
标题:
关于独立式按键的一段程序求说明
uchar ADD=0X03,SUM=0X04
sbit K1 = P1^0;
sbit K2 = P1^1;
void delay1(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
uchar keyScan()
{
uchar key=0xff;
if(K1!=1||K2!=1)
{
delay1(10);
if(K1!=1||K2!=1)
{
if(K1!=1)
{
key=ADD;
}
else if(K2!=1)
{
key=SUM;
}
while(K1!=1||K2!=1);
}
}
return key; //·μ»Ø
}
void Key()
{
uchar key2;
key2=keyScan();
if(key2==ADD&&s<256
{
s++;
write_data(1,s);
}
else
if(key2==SUM&&s>0
{
s--;
write_data(1,s);
}
}
就不明白SUM和ADD,还有key1和key2的作用
作者:
woshibeilili
时间:
2016-1-12 17:24
还有第一个IF的作用?
作者:
smilefff
时间:
2016-1-13 12:23
第一个if,如果第一个按键或者第二个按键按下。
没有key1
key2是暂存值,存储SCANKEY()扫描得到的键值。
SUM,ADD相当于一个特征值
作者:
追逐ele
时间:
2016-1-13 19:34
if(K1!=1||K2!=1) //判断K1和K2是否有键按下
{
delay1(10); //延时消抖
if(K1!=1||K2!=1) //再次判断
{
if(K1!=1)
{
key=ADD; //若K1按下,则执行此语句
}
else if(K2!=1)
{
key=SUM; //若K2按下则执行此语句
}
while(K1!=1||K2!=1); 这句是若一旦K1,K2有一个键按下,就进入while循环的意思吧? 那这句有什么用呢?
}
}
return key; //·μ»Ø
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1