谁能帮我用单片机C语言编写开关控制提示灯要求:开关:S1 、S2、S3 LED:L1、L2、L3蜂鸣器:B1、B2、B3当S1开关ON,L1、L2、L3闪烁至S1断开,B1、B2、B3鸣3秒当S2开关ON,L2、L3闪烁至S2断开,B2、B3鸣3秒
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/16 22:24:49
谁能帮我用单片机C语言编写开关控制提示灯要求:开关:S1 、S2、S3 LED:L1、L2、L3蜂鸣器:B1、B2、B3当S1开关ON,L1、L2、L3闪烁至S1断开,B1、B2、B3鸣3秒当S2开关ON,L2、L3闪烁至S2断开,B2、B3鸣3秒
谁能帮我用单片机C语言编写开关控制提示灯
要求:开关:S1 、S2、S3
LED:L1、L2、L3
蜂鸣器:B1、B2、B3
当S1开关ON,L1、L2、L3闪烁至S1断开,B1、B2、B3鸣3秒
当S2开关ON,L2、L3闪烁至S2断开,B2、B3鸣3秒
当S3开关ON,L3闪烁至S3断开,B3鸣3秒
最好能给我简单电路图,用直流5V控制电路!
L闪烁的同时B鸣
谁能帮我用单片机C语言编写开关控制提示灯要求:开关:S1 、S2、S3 LED:L1、L2、L3蜂鸣器:B1、B2、B3当S1开关ON,L1、L2、L3闪烁至S1断开,B1、B2、B3鸣3秒当S2开关ON,L2、L3闪烁至S2断开,B2、B3鸣3秒
你的问题是在L闪烁的同时B鸣,还是B鸣了L再闪,还是L闪了B再鸣?
已经过仿真,你可以改变闪烁频率,但是要保证a乘以闪烁时间等于3秒
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit s1=P1^0;
sbit s2=P1^1;
sbit s3=P1^2;
sbit b1=P1^5;
sbit b2=P1^6;
sbit b3=P1^7;
sbit l1=P3^0;
sbit l2=P3^1;
sbit l3=P3^2;
delay1ms(uint x)
{uchar n;
while(x--)
{for(n=0;n<125;n++);}
}
main()
{
uchar a,b,c,d,e;
while(1)
{
if(s1==0)
{
delay1ms(20);
if(s1==0)
{
a=6;b++;
if(b==1){b1=0;b2=0;b3=0;}
while(a--)
{
delay1ms(250);
l1=0;l2=0;l3=0;
if(s1==1){goto loop1;}
delay1ms(250);
l1=1;l2=1;l3=1;
}
loop1:b1=1;b2=1;b3=1;P1=0xff;P3=0xff;
}
}
if(s2==0)
{
delay1ms(20);
if(s2==0)
{
c++;a=6;
if(c==1){b2=0;b3=0;}
while(a--)
{
delay1ms(250);
l2=0;l3=0;
if(s2==1){goto loop2;}
delay1ms(250);
l2=1;l3=1;
}
loop2: b2=1;b3=1;P1=0xff;P3=0xff;
}
}
if(s3==0)
{
delay1ms(20);
if(s3==0)
{d++;a=6;
if(d==1){b3=0;}
while(a--)
{
delay1ms(250);
l3=0;
if(s3==1){goto loop3;}
delay1ms(250);
l3=1;
}
loop3: b3=1;P1=0xff;P3=0xff;
}
}
if(P1==0xff){a=0;b=0;c=0;d=0;P1=0xff;P3=0xff;}
}
}