求51单片机的上升沿和下降沿C语言检测程序列子,端口就是普通IO口。

求51单片机的上升沿和下降沿C语言检测程序列子,端口就是普通IO口。,第1张

这里只讲原理,不关注速度。实际设计工作中,已经有很多单片机能够识别io端口上升沿和下降沿中断,且方式不止一种。

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 //记录上一次的状态

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12202133.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存