您的位置:首页 > 其它

关于C51释放按键与后沿消抖

2016-06-15 05:31 281 查看
/****************************

 独立按键,按一次按键,LED灯

 左移一位

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

#include <reg52.h>

#include <intrins.h>

#define uint unsigned int

#define uchar unsigned char

sbit Key=P1^0;

void delayms(uint z);

void main()

{
P0=0xFE;
Key=0x01;
while(1)
{
if(!Key)
{
delayms(10);
 //延时10MS前沿消抖
if(!Key)
{
P0=_crol_(P0,1);
//while(!Key);
//如果不加按键释放语句,LED灯会不断左移动直到释放按键,
    //人为按键时间要大于10MS,所以导致Key的状态多次检测。
//同时,这个语句是消耗CPU的,最好用定时中断解决。
//delayms(10);
//后沿没有必要消抖,因为按键都弹上去了,除非按键损坏。
}
}
}

}

void delayms(uint z)    //延时约1MS

{
uint x,y;
for(x=z;x>0;x--)
{
for(y=114;y>0;y--);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  51单片机