#include<REGX51.H>
#define LED_BIGY P2
unsigned char shumaguan[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
sbit k1 = P1^0;
sbit k2 = P1^1;
void delay(unsigned int t)
{
unsigned int t1;
t1=t;
while(t1--);
}
void main(void)
{
if(k1==1)
{
delay(1000);
if(k1==1)
{
shumaguan=shumaguan[1];
}
while(!k1);
}
if(k2==1){
delay(1000);
if(k2==1)
{
shumaguan=shumaguan[2];
}
while(!k2);
}
}
两下滑线处一直提示led.c(24): error C213: left side of asn-op not an lvalue
shumaguan=shumaguan[1]; 这样的赋值是不被允许的。
因为shumaguan 是一个数组
而shumaguan[1] 是一个字符
将字符变量赋值给数组变量 用一个外部变量 char a 或者内部变量 char a去接受其中的值吧。
你应该定义一个全局的变量去保存这个数据。
#include<REGX51.H>
#define LED_BIGY P2
unsigned char shumaguan[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
sbit k1 = P1^0;
sbit k2 = P1^1;
char shumaguanTemp;
void delay(unsigned int t)
{
unsigned int t1;
t1=t;
while(t1--);
}
void main(void)
{
if(k1==1)
{
delay(1000);
if(k1==1)
{
shumaguanTemp=shumaguan[1];
}
while(!k1);
}
if(k2==1){
delay(1000);
if(k2==1)
{
shumaguanTemp=shumaguan[2];
}
while(!k2);
}
}
这样就不会报错了,而且记录了你数组里面的那个值。
你这两句赋值的目的是什么呢?知道目的才能确定如何来修改
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632