sbit io_inp=P2^1输入端
bit old_bit输入端电平记忆
unsigned char low_high上升下降沿标志,0=无变化,1=上升沿,2、下降沿
void io_rest(void)
{
if(old_bit=!io_inp)
{
old_bit=io_inp
if(io_inp=1)
low_high=1
else
low_high=2
}
}
void main(void)
{
old_bit=io_inp=P2^1
while(1)
{
low_high=0
io_rest(void)
//在此应用
}
}
如果是循环中查询的话我一般这样做, 定义一个变量比如keyLastStatus来记录上一次扫描周期的状态sbit key=P2.0char keyLastStatus=0
keyLastStatus=key //初始化
while (1)
{
if(key==1 &&keyLastStatus!=key) Todo()//上升沿
if(key==0 &&keyLastStatus!=key) Todo()//下降沿
keyLastStatus=key //记录上一次的状态
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)