我写了一个测脉冲宽度的程序,但是执行时总出现乱码,哪位高手给指点一下
#include<reg51.h>
sbit CK=P3^2;
int a,n,m;
unsigned char x[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(int coda)
{
int i,j;
for(i=coda;i>0;i--)
for(j=80;j>0;j--);
}
void display(int m)
{
P1=x[m/1000];
P2=0x00;
delay(1);
P1=x[m%1000/100];
P2=0x04;
delay(1);
P1=x[m%1000%100/10];
P2=0x08;
delay(1);
P1=x[m%10];
P2=0x0c;
delay(1);
}
void init()
{
TMOD=0x09;
TH0=0;
TL0=0;
EA=1;
ET0=1;
TR0=0;
}
void main()
{
int i;
n=0;
a=0;
init();
for(i=10;i>=0;i--)
{
while(CK)
display(n);
while(CK==0)
TR0=1;
while(CK);
TR0=0;
n+=a*65536+TH0*256+TL0;
m++;
a=0;
TH0=0;
TL0=0;
if(m==10)
{
m=0;
n=n/10;
while(1)
display(n);
}
}
}
void timer0() interrupt 1
{
TH0=0;
TL0=0;
a++;
}