51单片机C编程,4个开关控制4个灯。要求上电清零,开关灯一一对应。当1个开关按下,其它开关不起作用。
答案:2 悬赏:40 手机版
解决时间 2021-02-16 12:23
- 提问者网友:人生佛魔见
- 2021-02-15 18:00
51单片机C编程,4个开关控制4个灯。要求上电清零,开关灯一一对应。当1个开关按下,其它开关不起作用。
最佳答案
- 五星知识达人网友:掌灯师
- 2021-02-15 19:04
#include
sbit led1=P2^0;
sbit led2=P2^1;
sbit led3=P2^2;
sbit led4=P2^3;
sbit sw1=P2^4;
sbit sw2=P2^5;
sbit sw3=P2^6;
sbit sw4=P2^7;
bit a1,a2,a3,a4,panduan;
void main()
{
led1=led2=led3=led4=1;
while(1)
{
if(panduan==0)
{
while((sw1&&sw2&&sw3&&sw4)==0);
}
panduan=1;
if(a1==0)
{
if(sw1==0)
{
led1=0;
a2=1;
a3=1;
a4=1;
}
else
{
led1=1;
a2=0;
a3=0;
a4=0;
}
}
if(a2==0)
{
if(sw2==0)
{
led2=0;
a1=1;
a3=1;
a4=1;
}
else
{
led2=1;
a1=0;
a3=0;
a4=0;
}
}
if(a3==0)
{
if(sw3==0)
{
led3=0;
a2=1;
a1=1;
a4=1;
}
else
{
led3=1;
a2=0;
a1=0;
a4=0;
}
}
if(a4==0)
{
if(sw4==0)
{
led4=0;
a2=1;
a3=1;
a1=1;
}
else
{
led4=1;
a2=0;
a3=0;
a1=0;
}
}
}
}
全部回答
- 1楼网友:深街酒徒
- 2021-02-15 19:53
仿真通过(为了你前途着想,这个代码留了一个缺陷,自己去研究发现改良吧)如果是开关判断的就用楼上的吧 楼上的代码也是为了你前途着想啊,,自己改吧..没必要那么长的#include
void delay(unsigned char n);
void main()
{
P2=0x30;
while(1)
{
delay(200);
if(P2!=0x30)
{
P2=P2;
P2&=0xcf;
}
}
}
void delay(unsigned char n)
{
unsigned char i;
while(n--)
{
for(i=0;i<100;i++);
}
}
追问谢谢你啊,我知道了,我认为你那程序dalay程序应该在前面我试试看。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯