求助啊,帮我看看程序为什么出错?
#include<reg52.h>
sbit WE=P2^1;
sbit DUAN=P2^0;
sbit DS1302=P2^7;
#define uchar unsigned char
#define uint unsigned int
uchar t,num1,num2,num3,num4,num5,num6,num7,num8;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void chushihua()
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
DS1302=0;
}
void display()
{
WE=1;
P0=0xfe;
WE=0;
DUAN=1;
P0=table[num8];
DUAN=0;
P0=0xff;
WE=1;
P0=0xfd;
WE=0
DUAN=1;
P0=table[num7];
DUAN=0;
P0=0xff;
WE=1;
P0=0xfb;
WE=0
DUAN=1;
P0=table[num6];
DUAN=0;
P0=0xff;
WE=1;
P0=0xf7;
WE=0
DUAN=1;
P0=table[num5];
DUAN=0;
P0=0xff;
WE=1;
P0=0xef;
WE=0
DUAN=1;
P0=table[num4];
DUAN=0;
P0=0xff;
WE=1;
P0=0xdf;
WE=0
DUAN=1;
P0=table[num3];
DUAN=0;
P0=0xff;
WE=1;
P0=0xbf;
WE=0
DUAN=1;
P0=table[num2];
DUAN=0;
P0=0xff;
WE=1;
P0=0x7f;
WE=0
DUAN=1;
P0=table[num1];
DUAN=0;
P0=0xff;
}
void main()
{
chushihua();
TMOD=0x01;
EA=1;
ET0=1;
TR0=1;
while(1)
{
display();
if (t==20)
{
t=0;
num1++;
if (num1==10)
{
num1=0;
}
}
}
}
void time0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
t++;
}
先段选再位选,还要加延时
已经改成这样了,为什么编译不了?
#include<reg52.h>
sbit WE=P2^1;
sbit DUAN=P2^0;
sbit DS1302=P2^7;
#define uchar unsigned char
#define uint unsigned int
uchar t,num1,num2,num3,num4,num5,num6,num7,num8;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uint z)
{
uint y,x;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void chushihua()
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
DS1302=0;
}
void display()
{
DUAN=1;
P0=table[num8];
DUAN=0;
WE=1;
P0=0xfe;
WE=0;
P0=0xff;
delay(5);
DUAN=1;
P0=table[num7];
DUAN=0;
WE=1;
P0=0xfd;
WE=0
P0=0xff
delay(5);
DUAN=1;
P0=table[num6];
DUAN=0;
WE=1;
P0=0xfb;
WE=0
P0=0xff;
delay(5);
DUAN=1;
P0=table[num5];
DUAN=0;
WE=1;
P0=0xf7;
WE=0
P0=0xff;
delay(5);
DUAN=1;
P0=table[num4];
DUAN=0;
WE=1;
P0=0xef;
WE=0
P0=0xff;
delay(5);
DUAN=1;
P0=table[num3];
DUAN=0;
WE=1;
P0=0xdf;
WE=0
P0=0xff;
delay(5);
DUAN=1;
P0=table[num2];
DUAN=0;
WE=1;
P0=0xbf;
WE=0
P0=0xff;
delay(5);
DUAN=1;
P0=table[num1];
DUAN=0;
WE=1;
P0=0x7f;
WE=0
P0=0xff;
delay(5);
}
void main()
{
chushihua();
TMOD=0x01;
EA=1;
ET0=1;
TR0=1;
while(1)
{
display();
if (t==20)
{
t=0;
num1++;
if (num1==10)
{
num1=0;
}
}
}
}
void time0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
t++;
}
0xff 放到dula = 0后面啊
WE=1;
P0=0xfe;
WE=0;
P=0xff;
DUAN=1;
P0=table[num8];
DUAN=0;
P0=0xff;应该就没有问题了,试试