51单片机检测IO口高低变化,3秒内有变化无动作。3秒无变化立即启动继电器?

我想做个电机保护装置,电机有磁铁有霍尔传感器,电机正常转动一圈会触发霍尔一次,霍尔模块会输出一次低电平,正常情况下1秒转一圈,我们设置3秒内检测若IO口(P2.0)电平若... 我想做个电机保护装置,电机有磁铁有霍尔传感器,电机正常转动一圈会触发霍尔一次,霍尔模块会输出一次低电平,正常情况下1秒转一圈,我们设置3秒内检测若IO口(P2.0)电平若不停的有变化则无任何动作,若没有变化,(可以确定电机卡主或者堵转了),这时P2.1输出低电平去控制继电器吸合断开电机电源,
怎么写代码,谢谢指教,,,
展开
 我来答
11kxmx
2021-07-09 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.2万
采纳率:70%
帮助的人:2436万
展开全部
sbit IN=P2^0;
sbit OUT=P2^1;
uint time ;
void main()
{
OUT=0;//继电器不动作
time=0;
while(1)
{
while(IN==1)//高电平
{
delayms(10);
time++;
if(time>300) OUT=1;//超过3S,动作
}
time=0;
while(IN==0)//低电平

{ delayms(10);
time++;
if(time>300) OUT=1;//超过3S,动作
}
time=0;
}
}
追问

把你代码替换到我代码中,可以运行。就是这个time>300时间太短,我改为1800以上,能满足我说的功能要求。谢谢大师解决了我的问题,,

追答
延时时间与晶振频率有关,你可以尝试一下更简洁的程序
while(1)

{
flag=IN;
delayms(10);
if(flag==IN)
{
time++;
if(time>300) OUT=1;//超过3S,动作
}
else time=0;
}
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32F103是一款高性能的嵌入式芯片,由意法半导体(STMicroelectronics)公司生产。它是STM32系列芯片之一,具有紧凑、低功耗、高性能等特点,被广泛应用于嵌入式系统中。STM32F103的主要特点包括:1. 集成了A... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式