单片机 移位寄存器 时钟 4数码

#include <REG51.H>

unsigned char shuzu[]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char send[]={1,4,2,1,0,7,1,3,8};
unsigned char miao[]={0,0,0,0};
unsigned char count;
void delay(unsigned int i){
		   unsigned int k;
		   for (k=0;k<i;k++);
}
 void c()
 {
 unsigned int i;
 	for (i=4;i>0;i--){
	  SBUF=0x00;
	  while(!TI);
	  TI=0;
	}
 }
 void time_1() interrupt 3
 {
 unsigned int s;
 		TH1=(65536-50000)/256;
	TL1=(65536-50000)%256;
		TR1=1;
		count++;
		if(count==20){
		count=0;
		miao[0]++;
		if(miao[0]==10){miao[1]++;miao[0]=0;}
		if(miao[1]==10){miao[2]++;miao[1]=0;}
		if(miao[2]==10){miao[3]++;miao[2]=0;}
		c();
		  	for (s=0;s<4;s++){
	  SBUF=shuzu[miao[s]];
	  while(!TI);
	  TI=0;
	  
	}
		}
 }
void main()
{
unsigned int i;
	SCON=0x00;
	TMOD=0x10;
	TH1=(65536-50000)/256;
	TL1=(65536-50000)%256;
	EA=1;
	ET1=1;
	TR1=1;
	 while(1);
}

Proteus串口方式0