我想让8个led轮流每隔1s点亮一个灯 同时 我希望8个数码管的0246位每隔2秒取变化一个数 下面是我的程序 麻烦帮忙看看问题在那
#include<reg52.h>
#include<intrins.H>
typedef unsigned char uchar ;
typedef unsigned int uint ;
uchar table[]={
0X3F,0X06,0X5B,0X4F,
0X66,0X6D,0X7D,0X07,0X7F,0X6F};//数码管花样
uchar temp;
uint num,i,num1;
void delay(uint z);
void main()
{
num=0;
i=0;
TMOD=0X01; //定时器0工作方式1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
temp=0xfe;
P1=temp; //LED初始化
while(1)
{
delay(1000); //延时1s
temp=_crol_(temp,1); //LED左移
P1=temp;
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
P2=0;P0=table[i]; /*数码管0246位按显示花样 */
P2=2;P0=table[i]; /*数码管0246位按显示花样 */
P2=4;P0=table[i]; /*数码管0246位按显示花样 */
P2=6;P0=table[i]; /*数码管0246位按显示花样 */
if(num==40) //定时器的延时2s
{
i++;
num=0;
if(i==10)
i=0;
}
}