51单片机一段代码,编译不了,请帮忙看看怎么回事
#include<reg51.h>
#define uchar unsigned char;
#define uint unsigned int;
sbit S2=P3^4;
sbit S3=P3^5;
sbit S4=P3^6;
sbit S5=P3^7;
sbit dula=P2^6;
sbit wela=P2^7;
uchar i;
uchar code table[]=
{0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void display(uchar i)
{
dula=1;
P0=table;
dula=0;
wela=1;
P0=0xfe;
wela=0;
}
void main()
{
if(S2==0)
display(1);
if(S3==0)
display(2);
if(S4==0)
display(3);
if(S5==0)
display(4);
}
编译提示:
17行,syntax error near‘;’
p0=table[i]
数组引用的不正确!将"P0=table"换成“P0=table[i]”;
你也不看看 你那个输入的i 传输到diplay函数有什么用?谁用到它,这样不出问题才怪
自己写的时候仔细一点,有问题自己先仔细检查一下,有时候是很简单的问题,检查一下就能查出来,这样比直接来这里提问更能学到东西。
#define uchar unsigned char
#define uint unsigned int
就可以了,不能加分号了
不建议用#define来定义数据类型,可以用typedef,如下
typedef uchar unsigned char;
typedef uint unsigned int;
输出有问题,而且书写格式存在问题