新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機超聲波測距程序

        單片機超聲波測距程序

        作者: 時間:2016-12-01 來源:網絡 收藏

        // P0=table[shi];
        // wei_shi=0;
        // delay(5);

        // P0=table[bai]; //送數字8到段碼端口
        // wei_bai=0;
        // delay(5);
        if(temp>150)
        a=0;
        else
        a=1;
        }
        void main()
        {
        uint distance;

        Trig=0; //首先拉低脈沖輸入引腳
        EA=1; //打開總中斷0
        TMOD=0x10; //定時器1,16位工作方式
        while(1)
        {
        EA=0; //關總中斷
        Trig=1; //超聲波輸入端
        delay_20us(); //延時20us
        Trig=0; //產生一個20us的脈沖
        while(Echo==0); //等待Echo回波引腳變高電平
        succeed_flag=0; //清測量成功標志
        EA=1;
        EX0=1; //打開外部中斷0
        TH1=0; //定時器1清零
        TL1=0; //定時器1清零
        TF1=0; //計數溢出標志
        TR1=1; //啟動定時器1
        delay(10); //等待測量的結果
        TR1=0; //關閉定時器1
        EX0=0; //關閉外部中斷0
        if(succeed_flag==1)
        {
        time=timeH*256+timeL;
        distance=time*0.0172; //厘米

        }
        if(succeed_flag==0)
        {
        distance=0; //沒有回波則清零

        }

        display(distance);
        }
        }
        //外部中斷0,用做判斷回波電平
        void exter() interrupt 0 // 外部中斷0是0號
        {
        EX0=0; //關閉外部中斷
        timeH =TH1; //取出定時器的值
        timeL =TL1; //取出定時器的值
        succeed_flag=1;//至成功測量的標志
        }
        //定時器1中斷,用做超聲波測距計時
        void timer1() interrupt 3 //
        {
        TH1=0;
        TL1=0;
        }

        上一頁 1 2 下一頁

        關鍵詞: 單片機超聲波測

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阳城县| 读书| 农安县| 南华县| 长春市| 独山县| 雷波县| 明水县| 宾阳县| 徐汇区| 江口县| 弋阳县| 广安市| 晋中市| 鄂托克前旗| 财经| 芒康县| 麻阳| 印江| 房产| 綦江县| 宜城市| 诸城市| 柘荣县| 抚宁县| 南木林县| 西充县| 巴南区| 金门县| 焉耆| 呈贡县| 扎鲁特旗| 青河县| 马鞍山市| 冀州市| 方城县| 盐池县| 正蓝旗| 灵宝市| 莱阳市| 康马县|