当前位置:首页 > 单片机 > 单片机
[导读]#includeunsigned char val;unsigned char i,j,k;sbit k1=P3^4;void delayms(int ms) // 1ms{unsigned char i,j;for(;ms>0;ms--)for(i=6;i>0;i--)for(j=82;j>0;j--);}void main(){val=0xff;while(1){if(k1==0){delay

#include
unsigned char val;
unsigned char i,j,k;
sbit k1=P3^4;
void delayms(int ms) // 1ms
{
unsigned char i,j;
for(;ms>0;ms--)
for(i=6;i>0;i--)
for(j=82;j>0;j--);
}

void main()
{
val=0xff;
while(1)
{
if(k1==0)
{
delayms(10);
if(k1==0)
{

P0=val;
val--;
}
while(k1==0); //等待按键释放,要按信一直减,取消这一句即可
}
}
}

/***********************************************************************************************************************

多按键识别,

#include
unsigned char val;
unsigned char key_val;
sbit k1=P3^2;
sbit k2=P3^3;
sbit k3=P3^4;
sbit k4=P3^5;
void delayms(int ms) // 1ms
{
unsigned char i,j;
for(;ms>0;ms--)
for(i=6;i>0;i--)
for(j=82;j>0;j--);
}
void scankey()
{
key_val=0x00;
key_val |=(!k4); //0x08
key_val <<=1;
key_val |=(!k3); //0x04
key_val <<=1;
key_val |=(!k2); //0x02
key_val <<=1;
key_val |=(!k1); //0x01
}

void main()
{
while(1)
{
scankey();
if(key_val!=0)
{
delayms(10);
scankey();
if(key_val!=0)
{
switch(key_val)
{
case 0x01: P0=0xfe;break; //k1
case 0x02: P0=0xfd;break; //k2
case 0x04: P0=0xfb;break;//k3
case 0x08: P0=0xf7;break; //k4
}
}
}
}
}

***************************************************//////////////////////////////////////


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭