電路圖
流程圖
程序
return(0);
? ? else
? ? {
? ? delay(10);
? ? ? ? if(P1==0x0f)
? ? ? ? ? ? return(0);
? ? ? ? for(a=0;a<4;a++)
? ? ? ? {
? ? ? ? P1=_cror_(0x7f,a);
? ? ? ? ? ? if(P1_0==0)break;
? ? ? ? ? ? if(P1_1==0)break;
? ? ? ? ? ? if(P1_2==0)break;
? ? ? ? ? ? if(P1_3==0)break;
? ? ? ? }
? ? ? ? key=P1;
? ? ? ? for(;P1!=0x0f;P1=0x0f)
? ? ? ? {;}
? ? ? ? ? ? switch(key)
? ? ? ? ? ? {
? ? ? ? ? ? ? case 0xee:key_value=2;break;
? ? ? ? ? ? ? ? case 0xeb:key_value=3;break;
? ? ? ? ? ? ? ? case 0xe7:key_value=4;break;
? ? ? ? ? ? ? ? case 0xde:key_value=5;break;
? ? ? ? ? ? ? ? case 0xdd:key_value=6;break;
? ? ? ? ? ? ? ? case 0xdb:key_value=7;break;
? ? ? ? ? ? ? ? case 0xd7:key_value=8;break;
? ? ? ? ? ? ? ? case 0xbe:key_value=9;break;
? ? ? ? ? ? ? ? case 0xbd:key_value=10;break;
? ? ? ? ? ? ? ? case 0xbb:key_value=11;break;
? ? ? ? ? ? ? ? case 0xb7:key_value=12;break;
? ? ? ? ? ? ? ? case 0x7e:key_value=13;break;
? ? ? ? ? ? ? ? case 0x7d:key_value=14;break;
? ? ? ? ? ? ? ? case 0x7b:key_value=15;break;
? ? ? ? ? ? ? ? case 0x77:key_value=16;break;
? ? ? ? ? ? ? ? default:;break;
? ? ? ? ? ? }
? ? ? ? ? ? return(key_value);
? ? }
}
void main(void)
{
? ? uchar key_value=0xff;
? ? while(1)
? ? {
? ? while(key_value!=D[0])
? ? ? ? ? {key_value=KeyV();}
? ? ? ? ? ? while(key_value!=D[1])
? ? ? ? ? {key_value=KeyV();}
? ? ? ? ? ? while(key_value!=D[2])
? ? ? ? ? {key_value=KeyV();}
? ? ? ? ? ? while(key_value!=D[3])
? ? ? ? ? {key_value=KeyV();}
? ? ? ? ? ? while(key_value!=D[4])
? ? ? ? ? {key_value=KeyV();}
? ? ? ? ? ? while(key_value!=D[5])
? ? ? ? ? {key_value=KeyV();}
? ? ? ? ? ? while(key_value!=16)
? ? ? ? ? {key_value=KeyV();}
? ? ? ? ? ? LED=0;
? ? }? ?
}
總結(jié)
這次的程序?qū)τ谖襾?lái)說(shuō)有一定的難度牛曹,但是我認(rèn)真完成并且還搞懂了原理山析。