如何写一个单片机输入上升沿和下降沿的脉冲输出信号的c语言程序

如题所述

如果是循环中查询的话我一般这样做, 定义一个变量比如keyLastStatus来记录上一次扫描周期的状态
sbit key=P2.0; char keyLastStatus=0;
keyLastStatus=key; //初始化
while (1)
{
if(key==1 && keyLastStatus!=key) Todo(); //上升沿
if(key==0 && keyLastStatus!=key) Todo(); //下降沿
keyLastStatus=key; //记录上一次的状态
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-06-15
这个简单,从低到高就是上升输出,重高到低就是下降输出
#include<reg51.h>
sbit pluse=P1^0;
main()
{
int i;
while(1)
{
pluse=0; //此时为下降输出
i=100;
while(i--);
pluse=1; //此时为上升输出
i=100;
while(i--);
}
}本回答被网友采纳
第2个回答  2015-04-10
查询一个端口,原来一直是低电平,查询到高电平,就是上升沿
反之.....追问

怎么写,没写过

追答

51单片机的端口上电后都是高电平
sbit key=P2.0; //P2.0端口定义为key(按键)
......
if(key==0) //按键被按下了,执行{}内的程序
{
....//程序
}
.....//没按,执行...

本回答被网友采纳
第3个回答  2015-04-10
这个需要用到单片机里面的驱动程序追问

怎么编写?外部触发信号是一个保持信号,

追答

利用底层C语言编写

追问

能给我一个例子吗?

追答

不能。采纳!

第4个回答  推荐于2017-08-19
使用定时器,控制IO高低就是

~
~
~本回答被网友采纳
相似回答