标题: 请问为什么同时满足SW1低电平和LED10显示红灯时报警用这个单片机代码,它无法报警呀 [打印本页]

作者: 欢欢1111    时间: 2023-12-4 17:57
标题: 请问为什么同时满足SW1低电平和LED10显示红灯时报警用这个单片机代码,它无法报警呀
我是想做当红绿灯为红灯时,LED10也变成红灯,如果有人经过时(SW1=0),且LED10是红灯时,蜂鸣器报警。
问题:我现在是LED10两端都是高电平,用下面的代码也无法实现上面的功能。求求各老师指点指点

1.png (25.57 KB, 下载次数: 50)

1.png

2.png (41.96 KB, 下载次数: 59)

2.png

作者: chxelc    时间: 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. }
复制代码



作者: 欢欢1111    时间: 2023-12-5 10:56
chxelc 发表于 2023-12-4 20:37

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

51hei.png (29.12 KB, 下载次数: 60)

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

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

作者: lkc8210    时间: 2023-12-7 10:05
逻辑问题
进入if(led5==0&&led8==0&&sw1==1)
到alert()里的if(led5==0&&led8==0&&sw1==0)
只有几十微秒
sw不可能刚好从1变为0






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1