找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 1207|回复: 3
收起左侧

请问为什么同时满足SW1低电平和LED10显示红灯时报警用这个单片机代码,它无法报警呀

[复制链接]
ID:1102550 发表于 2023-12-4 17:57 | 显示全部楼层 |阅读模式
我是想做当红绿灯为红灯时,LED10也变成红灯,如果有人经过时(SW1=0),且LED10是红灯时,蜂鸣器报警。
问题:我现在是LED10两端都是高电平,用下面的代码也无法实现上面的功能。求求各老师指点指点
1.png
2.png
回复

举报

ID:712097 发表于 2023-12-4 20:37 | 显示全部楼层
  1. void alert1 (void)
  2. {
  3.   if (sw1==0)//有人
  4.   {
  5.     beep1 st=1 ;
  6.     led10==0
  7.     beep1=~beep1 ;
  8.     delay1(10) ;
  9.   }
  10.   else
  11.   {
  12.     beep1_ st=0;
  13.     led10==1;
  14.   }
  15. }
复制代码


回复

举报

ID:1102550 发表于 2023-12-5 10:56 | 显示全部楼层

可是我的led10是同步着十字红绿灯路口的显示,十字路口显示红灯时,led10会随之变红,在这个基础上有人才报警

之前试过这样,还是不太行

之前试过这样,还是不太行
回复

举报

ID:161164 发表于 2023-12-7 10:05 | 显示全部楼层
逻辑问题
进入if(led5==0&&led8==0&&sw1==1)
到alert()里的if(led5==0&&led8==0&&sw1==0)
只有几十微秒
sw不可能刚好从1变为0

回复

举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表