********************************************************************************
*描述:*
*按鍵掃描程序*
*上電時(shí),點(diǎn)亮P00口LED*
*按下K1時(shí),LED向右移一位*
*按下K2時(shí),LED向左移一位*
*******************************************************************************/
#include
#include
sbitK1=P3^2;
sbitK2=P3^3;
unsignedcharsCAN_key()
{
unsignedcharkey_s;
key_s=0x00;
key_s|=K2;
key_s<<=1;
key_s|=K1;
returnkey_s;
}
voidproc_key(unsignedcharkey_v)
{
if((key_v&0x01)==0)
{
P0=_cror_(P0,1);
}
elseif((key_v&0x02)==0)
{
P0=_crol_(P0,1);
}
}
voiddelayms(unsignedcharms)//延時(shí)子程序
{
unsignedchari;
while(ms--)
{
for(i=0;i<120;i++);
}
}
main()
{
unsignedcharkey_s,key_v;
key_v=0x03;
P0=0xfe;
while(1)
{
key_s=scan_key();
if(key_s!=key_v)
{
delayms(20);
key_s=scan_key();
if(key_s!=key_v)
{
key_v=key_s;
proc_key(key_v);
delayms(150);
}
}
}
}