我写了一个测脉冲宽度的程序,但是执行时总出现乱码,哪位高手给指点一下
#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++; }
|