
求大神指导单片机keil代码上下左右四个按钮控制3乘3,9个led灯
sbitled1=P0^0;sbitled2=P0^1;sbitled3=P0^2;sbitled4=P0^3;sbitled5=P0^4;sbitled6=P0^5;s...
sbit led1=P0^0;
sbit led2=P0^1;
sbit led3=P0^2;
sbit led4=P0^3;
sbit led5=P0^4;
sbit led6=P0^5;
sbit led7=P0^6;
sbit led8=P0^7;
sbit led9=P2^0;
sbit key_u=P2^1;
sbit key_l=P2^2;
sbit key_r=P2^3;
sbit key_d=P2^4;
unsigned char LED[3][3]={{1,1,1},{1,0,1},{1,1,1}};
void delay(unsigned int k)
{
while(k--);}
void a()
{
if(LED[0][0]) led1=1;else led1=0;
if(LED[0][1]) led2=1;else led2=0;
if(LED[0][2]) led3=1;else led3=0;
if(LED[1][0]) led4=1;else led4=0;
if(LED[1][1]) led5=1;else led5=0;
if(LED[1][2]) led6=1;else led6=0;
if(LED[2][0]) led7=1;else led7=0;
if(LED[2][1]) led8=1;else led8=0;
if(LED[2][2]) led9=1;else led9=0;
}
void main()
{
unsigned int i=1,j=1;
P1=0xF7;
P2=0xFF;
LED[i][j]=0;
a();
if(key_u==0)
{
if(key_u==0)
{delay(10);
i--;
if(i==1)
{ LED[i+1][j]=1;
i=i+2;
LED[i][j]=0;
a();
}
else LED[i+1][j]=1;
LED[i][j]=0;
a();
}
}
}
/* if(key_d==0) //下移
{
delay(10);
if(key_d==0)
{ if(i)
{ LED[i][j]=1;
i--;
LED[i][j]=0;
a();
}
else LED[i][j]=1;
i=i+2;
LED[i][j]=0;
a();
}
delay(888);
}
if(key_l==0)
{
delay(10);
if(key_l==0)
{ if(j)
{ LED[i][j]=1;
j++;
LED[i][j]=0;
a();
}
else LED[i][j]=1;
j=j-2;
LED[i][j]=0;
a();
}
delay(888);
}
if(key_r==0)
{
delay(10);
if(key_r==0)
{ if(j)
{ LED[i][j]=1;
j--;
LED[i][j]=0;
a();
}
else LED[i][j]=1;
j=j+2;
LED[i][j]=0;
a();
}
delay(888);
} */
上面的上移代码,我的灯长按住按钮才会亮,一不点击上移的就不亮了 展开
sbit led2=P0^1;
sbit led3=P0^2;
sbit led4=P0^3;
sbit led5=P0^4;
sbit led6=P0^5;
sbit led7=P0^6;
sbit led8=P0^7;
sbit led9=P2^0;
sbit key_u=P2^1;
sbit key_l=P2^2;
sbit key_r=P2^3;
sbit key_d=P2^4;
unsigned char LED[3][3]={{1,1,1},{1,0,1},{1,1,1}};
void delay(unsigned int k)
{
while(k--);}
void a()
{
if(LED[0][0]) led1=1;else led1=0;
if(LED[0][1]) led2=1;else led2=0;
if(LED[0][2]) led3=1;else led3=0;
if(LED[1][0]) led4=1;else led4=0;
if(LED[1][1]) led5=1;else led5=0;
if(LED[1][2]) led6=1;else led6=0;
if(LED[2][0]) led7=1;else led7=0;
if(LED[2][1]) led8=1;else led8=0;
if(LED[2][2]) led9=1;else led9=0;
}
void main()
{
unsigned int i=1,j=1;
P1=0xF7;
P2=0xFF;
LED[i][j]=0;
a();
if(key_u==0)
{
if(key_u==0)
{delay(10);
i--;
if(i==1)
{ LED[i+1][j]=1;
i=i+2;
LED[i][j]=0;
a();
}
else LED[i+1][j]=1;
LED[i][j]=0;
a();
}
}
}
/* if(key_d==0) //下移
{
delay(10);
if(key_d==0)
{ if(i)
{ LED[i][j]=1;
i--;
LED[i][j]=0;
a();
}
else LED[i][j]=1;
i=i+2;
LED[i][j]=0;
a();
}
delay(888);
}
if(key_l==0)
{
delay(10);
if(key_l==0)
{ if(j)
{ LED[i][j]=1;
j++;
LED[i][j]=0;
a();
}
else LED[i][j]=1;
j=j-2;
LED[i][j]=0;
a();
}
delay(888);
}
if(key_r==0)
{
delay(10);
if(key_r==0)
{ if(j)
{ LED[i][j]=1;
j--;
LED[i][j]=0;
a();
}
else LED[i][j]=1;
j=j+2;
LED[i][j]=0;
a();
}
delay(888);
} */
上面的上移代码,我的灯长按住按钮才会亮,一不点击上移的就不亮了 展开
若以下回答无法解决问题,邀请你更新回答
1个回答
展开全部
先说一下,若干天前,我为一个百度知友回答过这样的问题,要求和你的一样,我不知道你是否认识他。
第二,你的这个程序,错误处实在太多了,第一个错误,你的main函数里没有while(1)死循环,程序差不多跑一次就没了,第二个错误,你的按键问题,没有等待按键抬起。
总之来说,你的程序,写的实在错误太多了,让我在百度知道上给你指出,恐怕比较费劲。
给你参考一下我的程序,你自己修改一下看看。
以下是我回答其他知友的问题:
http://zhidao.baidu.com/question/537203808?&oldq=1
第二,你的这个程序,错误处实在太多了,第一个错误,你的main函数里没有while(1)死循环,程序差不多跑一次就没了,第二个错误,你的按键问题,没有等待按键抬起。
总之来说,你的程序,写的实在错误太多了,让我在百度知道上给你指出,恐怕比较费劲。
给你参考一下我的程序,你自己修改一下看看。
以下是我回答其他知友的问题:
http://zhidao.baidu.com/question/537203808?&oldq=1
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询