目前的問題是 上電之后數(shù)碼管沒有反應(yīng) 通過串口軟件點擊發(fā)送才會數(shù)碼管顯示距離 但是一閃一閃不知道是怎么回事 希望知道的兄弟可以告訴我一下 #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/*-*/}; //數(shù)碼管顯示 0~9,不是很確定 unsigned char const positon[4]={0xfe,0xfd,0xfb,0xf7}; //數(shù)碼管位選斷 unsigned char disbuff[4]={0,0,0,0,}; //用來存放顯示的距離 typedef unsigned int u16; u16 time //時間變量 用來計算超聲波發(fā)出到接受所用的時間 u16 s; //距離變量 超聲波的距離 void delayms(uint); //延時函數(shù) void send_char(); //串口發(fā)送數(shù)據(jù)函數(shù) unsigned char txd; //應(yīng)該是沒用的 uchar buf; // 也應(yīng)該是沒用的 void delay(u16 i) // 延時函數(shù) { while(i--); } voidstart() //啟動超聲波的函數(shù) { Trig=1; delay(2); Trig=0; /超聲波啟動需要20us的延時才可以啟動 } voidcount() //計算函數(shù) { while(!Echo);// |