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

如题所述

这里只讲原理,不关注速度。实际设计工作中,已经有很多单片机能够识别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语言难理解些。

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

温馨提示:答案为网友推荐,仅供参考
相似回答