如何写一个单片机输入上升沿和下降沿的脉冲输出信号的c语言程序
8个回答
展开全部
如果是循环中查询的话我一般这样做, 定义一个变量比如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; //记录上一次的状态
}
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; //记录上一次的状态
}
展开全部
这个简单,从低到高就是上升输出,重高到低就是下降输出
#include<reg51.h>
sbit pluse=P1^0;
main()
{
int i;
while(1)
{
pluse=0; //此时为下降输出
i=100;
while(i--);
pluse=1; //此时为上升输出
i=100;
while(i--);
}
}
#include<reg51.h>
sbit pluse=P1^0;
main()
{
int i;
while(1)
{
pluse=0; //此时为下降输出
i=100;
while(i--);
pluse=1; //此时为上升输出
i=100;
while(i--);
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
查询一个端口,原来一直是低电平,查询到高电平,就是上升沿
反之.....
反之.....
追问
怎么写,没写过
追答
51单片机的端口上电后都是高电平
sbit key=P2.0; //P2.0端口定义为key(按键)
......
if(key==0) //按键被按下了,执行{}内的程序
{
....//程序
}
.....//没按,执行...
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个需要用到单片机里面的驱动程序
更多追问追答
追问
怎么编写?外部触发信号是一个保持信号,
追答
利用底层C语言编写
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2017-08-19
展开全部
使用定时器,控制IO高低就是
~
~
~
~
~
~
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询