本期代码实现的功能为选择按键控制灯光
具体功能为
![](https://img-blog.csdnimg.cn/img_convert/fb765f04a0a71bc20a1572fdcf6f8267.png)
以下是代码
#include <reg52.h>
sbit S7=P3^0;
sbit S6=P3^1;
sbit S5=P3^2;
sbit S4=P3^3;
sbit L1=P0^0;
sbit L2=P0^1;
sbit L3=P0^2;
sbit L4=P0^3;
sbit L5=P0^4;
sbit L6=P0^5;
unsigned char state=0;
void select573()
{
P2=(P2&0x1f)|0x80;
}
void delay(unsigned char t)
{
while(t--);
while(t--);
}
void statecontrol()
{
if(S7==0)
{ delay(500);
if(S7==0)
{ if(state==0)
{state=1;
L1=0;
}
else if(state==1)
{state=0;
L1=1;
}
}
while(S7==0);/防止按下·一次按键读取到按下多次的情况
}
//========
if(S6==0)
{ delay(500);
if(S6==0)
{ if(state==0)
{state=2;
L2=0;
}
else if(state==2)
{state=0;
L2=1;
}
}
while(S6==0);
}
}
void controlled()
{
if(S5==0)
{ delay(500);
if(S5==0)
{ if(state==1)
{ L3=0;
while(S5==0);
L3=1;
}
else if(state==2)
{
L5=0;
while(S5==0);
L5=1;
}
}
}
//=====
if(S4==0)
{ delay(500);
if(S4==0)
{ if(state==1)
{ L4=0;
while(S4==0);
L4=1;
}
else if(state==2)
{
L6=0;
while(S4==0);
L6=1;
}
}
}
}
void main()
{ select573();
while(1)
{
statecontrol();
controlled();
}
}