用51单片机汇编语言检测上升沿和下降沿

2025-03-05 05:37:58
推荐回答(2个)
回答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);

//在此应用

}

}

扩展资料:

直接使用汇编指令编写单片机程序,对硬件的控制更加直接,可以直接操作物理地址,寄存器,端口等;其它更高级的语言(如:C语言)对硬件的控制是依赖于类库来实现的。并且,对于一些对程序大小和运行速度有非常严苛要求的项目而言,都必须使用汇编指令。

C语言只是为了方便编写,与机器打交道的其实都是2进制得代码,汇编语言就是这些代码好记忆的名称和规则,只是比C语言难理解些。

参考资料来源:百度百科-单片机汇编指令

回答2:

用两个变量记录过去状态和现读取状态,比较一下即可,然后将读取状态送入过去状态以便于下一次比较.