这里只讲原理,不关注速度。实际设计工作中,已经有很多单片机能够识别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语言难理解些。
参考资料来源:百度百科-单片机汇编指令