标题:
单片机Keil报错: error C187: not an lvalue
[打印本页]
作者:
野鹤
时间:
2020-6-22 03:13
标题:
单片机Keil报错: error C187: not an lvalue
#include <reg51.h>
#include <intrins.h>
#include"1602.h"
#include"DS1302.h"
#define uchar unsigned char
#define uint unsigned int
sbit K1=P3^0;
sbit K2=P3^1;
sbit K3=P3^2;
sbit K4=P3^3;
sbit fenming=P2^3;
bit stop=0,mode=0;
char num=1;
uchar a[8]={0x55,0x55,0x16,0x26,0x05,0x01,0x20,0x00}, b[8]={0,0,0,0,0,0,0,0}, dis1[8],dis2[8];
uchar Tim[]="Time: ";
uchar Dat[]="Date: ";
char m=12,s=00,i,y,g[5]={0,0,0,0,0},e[11],f[5],c[3]={0,0,0},v[3]={0,0,0},h[5];
void chai()
{
dis1[0]=b[0]%16+'0';
dis1[1]=b[0]/16+'0';
dis1[2]=':';
dis1[3]=b[1]%16+'0';
dis1[4]=b[1]/16+'0';
dis1[5]=':';
dis1[6]=b[2]%16+'0';
dis1[7]=b[2]/16+'0';
dis2[0]=b[3]%16+'0';
dis2[1]=b[3]/16+'0';
dis2[2]='-';
dis2[3]=b[4]%16+'0';
dis2[4]=b[4]/16+'0';
dis2[5]='-';
dis2[6]=b[6]%16+'0';
dis2[7]=b[6]/16+'0';
}
void display_timer()
{
static char n;
n++;
if(n==5)
{
s--; n=0;
}if(s==-1)
{
m--; s=59;
}
if(m==-1)
{
m=12;
}
g[0]=s%10+'0';
g[1]=s/10+'0';
g[2]=':';
g[3]=m%10+'0';
g[4]=m/10+'0';
wcmd(0x85);
for(i=0;i<5;i++)
{
wdat(g[4-i]);
}
}
void display_fen()
{
e[0]='A';
e[1]=':';
e[2]=c[0]+'0';
e[3]=c[1]+'0';
e[4]=c[2]+'0';
e[5]=' ';
e[6]=' ';
e[7]=' ';
e[8]=' ';
e[9]=' ';
e[10]='B';
e[11]=':';
e[12]=v[0]+'0';
e[13]=v[1]+'0';
e[14]=v[2]+'0';
wcmd(0xC0);
for(y=0;y<15;y++)
{
wdat(e[y]);
}
}
void display()
{
char i;
wcmd(0x80);
for(i=0;i<6;i++)
{
wdat(Dat[i]);
}
for(i=0;i<8;i++)
{
wdat(dis2[7-i]);
delay(3);
}
wcmd(0xc0);
for(i=0;i<6;i++)
{
wdat(Tim[i]);
}
for(i=0;i<8;i++)
{
wdat(dis1[7-i]);
delay(3);
}
}
void main()
{
bit stop=0;
init_1302();
init_1602();
set(a);
while(1)
{
if(stop==0)
{
read_all(b);
chai();
display();
}
if(stop==1)
{
if(K1==0)
{
delay(5);
if(K1==0)
{
read_all(b);
b[num]++;
if((b[num]&0x0f)==0x0a)
{
b[num]+=6;
}
if((num==0)&&(b[num]>(0x59+0x80)))
{
b[num]=0x80;
}
if((num==1)&&(b[num]>0x59))
{
b[num]=0;
}
if((num==2)&&(b[num]>0x23))
{
b[num]=0;
}
if(num==3)
{
if(b[4]==1)
{
if(b[num]>0x31)
{b[num]=1;}
}
if(b[4]==2)
{
if(b[6]%4==0)
{
if(b[num]>0x29)
{b[num]=1;}
}
else
{
if(b[num]>0x28)
{b[num]=1;}
}
}
if(b[4]==3)
{
if(b[num]>0x31)
{b[num]=1;}
}
if(b[4]==4)
{
if(b[num]>0x30)
{b[num]=1;}
}
if(b[4]==5)
{
if(b[num]>0x31)
{b[num]=1;}
}
if(b[4]==6)
{
if(b[num]>0x30)
{b[num]=1;}
}
if(b[4]==7)
{
if(b[num]>0x31)
{b[num]=1;}
}
if(b[4]==8)
{
if(b[num]>0x31)
{b[num]=1;}
}
if(b[4]==9)
{
if(b[num]>0x30)
{b[num]=1;}
}
if(b[4]==10)
{
if(b[num]>0x31)
{b[num]=1;}
}
if(b[4]==11)
{
if(b[num]>0x30)
{b[num]=1;}
}
if(b[4]==12)
{
if(b[num]>0x31)
{b[num]=1;}
}
}
if((num==4)&&(b[num]>0x12))
{
b[num]=1;
}
write(0x80+2*num,b[num]);
if(b[0]>=0x80) b[0]-=0x80;
chai();
wcmd(0x0c);
display();
wcmd(0x0f);
if(num<3)
{
wcmd(0xcd-num*3);
}
else
{
wcmd(0x8d-(num-3)*3);
}
while(!K1);
}
}
if(K2==0)
{
delay(5);
if(K2==0)
{
num++;
if(num==5) num++;
if(num==7) num=0;
if(num<3)
{
wcmd(0xcd-num*3);
}
else
{
if(num==6)
wcmd(0x8d-(num-4)*3);
else
wcmd(0x8d-(num-3)*3);
}
while(!K2);
}
}
}
if(K3==0)
{
delay(5);
if(K3==0)
{
stop=!stop;
if(stop==1)
{
b[0]|=0x80;
write(0x80,b[0]); //??
wcmd(0x0f);
wcmd(0x0d);
num=0;
}
if(stop==0)
{
write(0x80,b[0]&=0x7f);//??
wcmd(0x0c);
}
while(!K3);
}
}
if(K4==0)
{
delayms(10);
if(K4==0)
{
init_1302();
init_1602();
TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
EA=1;
ET0=1;
TR0=1;
while(1)
{
display_timer();
display_fen();
if(K1==0)
{
delayms(10);
if(K1==0)
{
c[2]++;
if(c[2]==10)
{
c[1]++;
c[2]=0;
if(c[1]==10)
{c[0]++;c[1]=0;}
}
}
}
if(K2==0)
{
delayms(10);
if(K2==0)
{
v[2]++;
if(v[2]==10)
{
v[1]++;
v[2]=0;
if(v[1]==10)
{v[0]++;v[1]=0;}}
}
}
if(K3==0)
{
delayms(10);
if(K3==0)
{
m=12,s=00;
}
}
}
}
}
}
}
复制代码
作者:
野鹤
时间:
2020-6-22 03:14
很急,求帮忙!!!
作者:
17803856022
时间:
2020-6-22 08:43
不是一个左值,可能直接使用的是数字,这样不可以
作者:
wulin
时间:
2020-6-22 10:50
野鹤 发表于 2020-6-22 03:14
很急,求帮忙!!!
代码不全,不易判断错误所在。
作者:
zxgfy
时间:
2020-6-22 11:24
看看问题在哪一行,有非变量被做为左值了,及“=”左边
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1