目前的问题是 上电之后数码管没有反应 通过串口软件点击发送才会数码管显示距离 但是一闪一闪不知道是怎么回事 希望知道的兄弟可以告诉我一下 #include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit DU =P2^6; //段选 sbit WE =P2^7; //位选 ssbit Trig = P1^6;//超声波输出端 sbit Echo = P1^7; //超声波接收端 int d,e,f; unsigned char posit=0; unsigned char disbuff1[5]={ 0,0,0,0,0x00}; uchar codetable1[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39}; //askll编码 0~9 unsigned char const discode[] ={ 0x3F,0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F,0x6F,0x40,0x00/*-*/}; //数码管显示 0~9,不是很确定 unsigned char const positon[4]={0xfe,0xfd,0xfb,0xf7}; //数码管位选断 unsigned char disbuff[4]={0,0,0,0,}; //用来存放显示的距离 typedef unsigned int u16; u16 time //时间变量 用来计算超声波发出到接受所用的时间 u16 s; //距离变量 超声波的距离 void delayms(uint); //延时函数 void send_char(); //串口发送数据函数 unsigned char txd; //应该是没用的 uchar buf; // 也应该是没用的 void delay(u16 i) // 延时函数 { while(i--); } voidstart() //启动超声波的函数 { Trig=1; delay(2); Trig=0; /超声波启动需要20us的延时才可以启动 } voidcount() //计算函数 { while(!Echo);// |