C51独立按键的识别示例程序
扫描二维码
随时随地手机看文章
每按一次独立键盘的S2键,与P1口相连的一个发光二极管往下移动一位。
#include
sbit BY1=P3^4; //定义按键的输入端S2键
unsigned char count; //按键计数,每按一下,count加1
unsigned char temp;
unsigned char a,b;
void delay10ms(void) //延时程序
{
unsigned char i,j;
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}
key() //按键判断程序
{
if(BY1==0) //判断是否按下键盘,当单片机上电时所有IO口为//高电平,S2键一端接地另一端接P3.4,所以当键被按下时P3.4口//直接接地,此时检测P3.4肯定为低电平。
{
delay10ms(); //延时,软件去干扰
if(BY1==0) //确认按键按下
{
count++; //按键计数加1
if(count==8) //计8次重新计数
{
count=0; //将count清零
}
}
while(BY1==0);//等待按键释放,如果键未释放则一直在此等待。
}
}
move() //广告灯向下移动移动函数
{
a=temp< b=temp>>(8-count);// _crol_()函数 P1=a|b; } main() { count=0; //初始化参数设置 temp=0xfe; P1=0xff; P1=temp; while(1) //永远循环,扫描判断按键是否按下 { key(); //调用按键识别函数 move(); //调用广告灯移动函数 } }