这个题目取得不算好,但是我也不知道怎么表达
效果就是,像电脑的键盘一样,如果按一下,就输入一个字符,如果一直按着,就先输入一个字符,然后输入一连串字符
void main(void) {
DisableInterrupts;
init_led_key();
EnableInterrupts;
for(;;)
{
if(KEY1==0)
//KEY1按键按下
{
data=data>>1;
//右移移位
if(data==0)
data=0x80;
LED=~data;
delay(10);
if(KEY1==0)
//判断是否是长按
{
for(;;)
{
data=data>>1;
//右移一位
if(data==0)
data=0x80;
//最左端的灯点亮
LED=~data;
delay(3);
if(KEY1!=0)
break;
}
}
}
if(KEY2==0)
{
data=data<<1;
if(data==0)
data=0x01;
LED=~data;
delay(10);
if(KEY2==0)
{
for(;;)
{
data=data<<1;
if(data==0)
data=0x01;
LED=~data;
delay(3);
if(KEY2!=0)
break;
}
}
}
}
}
虽然在大神们看来这很简单,对于我来说这是我一直想知道的,但又一直没有去认真思考过的东西
不喜可喷可不喷= =