在这个代码中1.C(18): error C141: syntax error near 'unsigned'是什么原因,怎样修正,求大神指教
#include<reg52.h>#include<intrins.h>#defineu8unsignedchar#defineu16unsignedintu8codet...
#include<reg52.h>
#include<intrins.h>
#define u8 unsigned char
#define u16 unsigned int
u8 code table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
u8 code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void display(u8 g,u8 s,u8 b,u8 q,u8 w);
void delay(u16 x);
u8 g,s,b,q,w;
void main()
{
TMOD=0x01;
EA=1;
ET0=1;
TR0=1;
while(1)
{
display(u8 g,u8 s,u8 b,u8 q,u8 w);
}
}
void delay(u16 x)
{
u8 a,j;
for(a=x;a>0;a--)
for(j=110;j>0;j--);
}
void display(u8 g,u8 s,u8 b,u8 q,u8 w)
{
u8 i,j;
for(j=0;j<5;j++)
{
switch(j)
{
case(0):P0=table0[0];P1=table1[g];break;
case(1):P0=table0[1];P1=table1[s];break;
case(2):P0=table0[2];P1=table1[b];break;
case(3):P0=table0[3];P1=table1[q];break;
case(4):P0=table0[4];P1=table1[w];break;
}
delay(1);
P1=0x00;
}
}
void T0_time() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
if(num==20)
{
num=0;
g++;
if(g==10)
{
g=0;
s++;
if(s==10)
{
s=0;
b++;
if(b==10)
{
b=0;
q++;
if(q==10)
{
q=0;
w++;
if(w==10)
w=0;
}
}
}
}
}
}
但修改编译后依然有问题“1.C(18): error C141: syntax error near 'u8'”,能在帮我看看吗! 展开
#include<intrins.h>
#define u8 unsigned char
#define u16 unsigned int
u8 code table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
u8 code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void display(u8 g,u8 s,u8 b,u8 q,u8 w);
void delay(u16 x);
u8 g,s,b,q,w;
void main()
{
TMOD=0x01;
EA=1;
ET0=1;
TR0=1;
while(1)
{
display(u8 g,u8 s,u8 b,u8 q,u8 w);
}
}
void delay(u16 x)
{
u8 a,j;
for(a=x;a>0;a--)
for(j=110;j>0;j--);
}
void display(u8 g,u8 s,u8 b,u8 q,u8 w)
{
u8 i,j;
for(j=0;j<5;j++)
{
switch(j)
{
case(0):P0=table0[0];P1=table1[g];break;
case(1):P0=table0[1];P1=table1[s];break;
case(2):P0=table0[2];P1=table1[b];break;
case(3):P0=table0[3];P1=table1[q];break;
case(4):P0=table0[4];P1=table1[w];break;
}
delay(1);
P1=0x00;
}
}
void T0_time() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
if(num==20)
{
num=0;
g++;
if(g==10)
{
g=0;
s++;
if(s==10)
{
s=0;
b++;
if(b==10)
{
b=0;
q++;
if(q==10)
{
q=0;
w++;
if(w==10)
w=0;
}
}
}
}
}
}
但修改编译后依然有问题“1.C(18): error C141: syntax error near 'u8'”,能在帮我看看吗! 展开
展开全部
#define u8 unsigned char
#define u16 unsigned int
修改成
typedef unsigned char u8;
typedef unsigned int u16;
#define u16 unsigned int
修改成
typedef unsigned char u8;
typedef unsigned int u16;
追问
但修改编译后依然有问题“1.C(18): error C141: syntax error near 'u8'”,能在帮我看看吗!
追答
main函数里的while循环体
display(u8 g,u8 s,u8 b,u8 q,u8 w);
要改成
display(g,s,b,q,w);
函数调用的时候,参数不用类型说明
还有一个问题就是,中断里的num没有定义
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询