#include <reg52.h>
#define uchar unsigned char
sbit s1=P2^0;
sbit s2=P2^1;
sbit s3=P2^2;
sbit s4=P2^3;
sbit f=P3^6;
uchar x,y,z;
uchar num,num1,w;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
0xf8,0x80,0x90};
void delay(uchar z)
{
for(x=z;x>0;x--)
for(y=1000;y>0;y--);
}
void init()
{
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void main()
{
num=0;
num1=0;
init();
while(1){
if(num1==20)
{
num1=0;
P0=table[num];
s1=1;
s2=1;
s3=1;
s4=1;
delay(5);
s1=0;
s2=0;
s3=0;
s4=0;
num++;
if(num==10)
{
for(w=0;w<100;w++)
{
f=~f;
delay(100);
}
delay(5);
num=0;
}
}
}
}
void time() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num1++;
}
为什么w等于十几的时候f变完立马数码管立马从零开始数到九,以此循环,w等于100的时候f变完不立马从零开始数到九,而是停一段时间才变为零。。。。求指教
#define uchar unsigned char
sbit s1=P2^0;
sbit s2=P2^1;
sbit s3=P2^2;
sbit s4=P2^3;
sbit f=P3^6;
uchar x,y,z;
uchar num,num1,w;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
0xf8,0x80,0x90};
void delay(uchar z)
{
for(x=z;x>0;x--)
for(y=1000;y>0;y--);
}
void init()
{
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void main()
{
num=0;
num1=0;
init();
while(1){
if(num1==20)
{
num1=0;
P0=table[num];
s1=1;
s2=1;
s3=1;
s4=1;
delay(5);
s1=0;
s2=0;
s3=0;
s4=0;
num++;
if(num==10)
{
for(w=0;w<100;w++)
{
f=~f;
delay(100);
}
delay(5);
num=0;
}
}
}
}
void time() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num1++;
}
为什么w等于十几的时候f变完立马数码管立马从零开始数到九,以此循环,w等于100的时候f变完不立马从零开始数到九,而是停一段时间才变为零。。。。求指教