久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 51單片機三路超聲波避障,麥克納姆輪 程序有什么問題 求幫助 [打印本頁]

作者: 特務(wù)    時間: 2020-6-11 18:20
標(biāo)題: 51單片機三路超聲波避障,麥克納姆輪 程序有什么問題 求幫助
#include <REGX51.H>

#define uint unsigned int
#define uchar unsigned char

uint PWM = 5;          //最大20,pwm調(diào)速
uchar time = 0;
uint Shi_Jian;
uint a,b,c,FJL,LJL,RJL;



void Delay (uint t)                //@11.0592MHz    100us
{
        unsigned char i;
        while (t)
        {
               
                i = 43;
                while (--i);
                t--;
        }
}


void Timer_Init()   //定時器    @11.0592MHZ   0.1ms
{
        TMOD = 0x11;
        TH0 = 0xFB;
        TL0 = 0xAF;
        TF0        = 0;         
        ET0 = 1;          //允許中斷
        EA = 1;           //開啟總中斷
        TR0 = 1;          /開啟定時器
        
        TF1        = 0;
        TH1 = 0;
        TL1 = 0;
}



void Timer0_Rountine() interrupt 1   //T0  中斷
{
        time++;
        TH0 = 0xFB;
        TL0 = 0xAF;
        if(time >= 20)
                time = 0;
}
int Front_Ju_Li ()               //測前方距離
{
        P2_0 = 1;                      //發(fā)送超聲波
        Delay(1);                      //延時100us
        P2_0 = 0;                      //關(guān)閉超聲波
        while (!P2_1);                 //未接收到超聲波并等待
        TR1 = 1;                       //開啟定時器
        while (P2_1);                  //接收到超聲波并等待
        TR1 = 0;                       //關(guān)閉定時器1
        Shi_Jian = TH1*256 + TL1;
        TH1 = 0;
        TL1 = 0;
        FJL = (Shi_Jian*1.7)/100;      //單位  cm
        return FJL;
        
}
int Zuo_Ju_Li ()               //測左邊距離
{
        P2_2 = 1;                      //發(fā)送超聲波
        Delay(1);                      //延時100us
        P2_2 = 0;                      //關(guān)閉超聲波
        while (!P2_3);                 //未接收到超聲波并等待
        TR1 = 1;                       //開啟定時器
        while (P2_3);                  //接收到超聲波并等待
        TR1 = 0;                       //關(guān)閉定時器1
        Shi_Jian = TH1*256 + TL1;
        TH1 = 0;
        TL1 = 0;
        LJL = (Shi_Jian*1.7)/100;      /單位  cm
        return LJL;
        
}
int You_Ju_Li ()               //測右邊距離
{
        P2_4 = 1;                      //發(fā)送超聲波
        Delay(1);                      //延時100us
        P2_4 = 0;                      //關(guān)閉超聲波
        while (!P2_5);                 //未接收到超聲波并等待
        TR1 = 1;                       //開啟定時器
        while (P2_5);                  //接收到超聲波并等待
        TR1 = 0;                       //關(guān)閉定時器1
        Shi_Jian = TH1*256 + TL1;
        TH1 = 0;
        TL1 = 0;
        RJL = (Shi_Jian*1.7)/100;      //單位  cm
        
}

void Car_Stop ()   //停止
{
                P1_0=0,P1_1=0,P1_2=0,P1_3=0,P1_4=0,P1_5=0,P1_6=0,P1_7=0;
}
void Car_Run ()   //前進
{
        if (time <= PWM)
                P1_0=1,P1_1=0,P1_2=0,P1_3=1,P1_4=0,P1_5=1,P1_6=0,P1_7=1;
        else
                Car_Stop ();
}
void Car_Zuozhuan ()   //左轉(zhuǎn)
{
        if (time <= PWM)
                P1_0=0,P1_1=1,P1_2=0,P1_3=1,P1_4=1,P1_5=0,P1_6=0,P1_7=1;
        else
                Car_Stop ();
}
void Car_Youzhuan ()   //右轉(zhuǎn)
{
        if (time <= PWM)
                P1_0=1,P1_1=0,P1_2=1,P1_3=0,P1_4=0,P1_5=1,P1_6=1,P1_7=0;
        else
                Car_Stop ();
}

void Car_Houtui ()   /后退
{
        if (time <= PWM)
                P1_0=0,P1_1=1,P1_2=1,P1_3=0,P1_4=1,P1_5=0,P1_6=1,P1_7=0;
        else
                Car_Stop ();
}





void main()
{
        Timer_Init();
        while (1)
        {
                do
                {
                        Car_Run ();
                        a = Front_Ju_Li ();
                }while(a >= 20);
                Car_Stop ();
                b = Zuo_Ju_Li ();
                Delay(100);
                c = You_Ju_Li ();
                Delay(100);
               
               
                        if (b <= 15 && c <= 15)      //進入狹小空間,后退
                                Car_Houtui ();
                        if (b <= c)             //左邊距離小于右邊距離,右轉(zhuǎn)
                                Car_Youzhuan ();
                        if (c <= b)             /右邊距離小于左邊距離,左轉(zhuǎn)
                                Car_Zuozhuan ();
                        else
                                Car_Stop ();
        
        }
}
幫忙看一下程序有什么問題


作者: 51hei團團    時間: 2020-6-11 18:53
這個程序沒有問題
作者: lexecy    時間: 2020-6-12 08:09
我覺得這程序?qū)懙暮芎盟悸芬矝]有問題,棒棒的

作者: 特務(wù)    時間: 2020-6-12 11:40
51hei團團 發(fā)表于 2020-6-11 18:53
這個程序沒有問題

但是執(zhí)行不了
小車不動
作者: 黃尼瑪a    時間: 2020-6-17 14:55
很好 的教程




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美a免费| 午夜影院毛片 | 欧美一级免费看 | 精品一区二区久久 | 国产精品久久久久久久久污网站 | 一区二区在线 | 久草青青草 | 91视频久久久久 | 在线视频一区二区三区 | 97精品视频在线观看 | 一级片在线观看 | 国产日韩欧美激情 | 国产伊人精品 | 全部免费毛片在线播放网站 | 网站国产 | 视频一区二区在线观看 | 五月综合激情婷婷 | 中文字幕一区二区三区四区五区 | 天天玩天天干天天操 | 国产精品视频一区二区三区不卡 | av特级毛片| 国产精品99久久免费观看 | 日本高清中文字幕 | av免费观看在线 | 久久久久久久香蕉 | 一级在线观看 | 91精品国产乱码麻豆白嫩 | www亚洲免费国内精品 | www久久久 | 色婷婷综合久久久中文字幕 | 欧美中文字幕 | 久草视频在 | av中文字幕网 | 色播99| 一区二区三区四区av | 久久国产精品一区二区三区 | 天天干免费视频 | 人人爽日日躁夜夜躁尤物 | 日本精品网站 | 亚洲国产成人精品女人久久久 | 国产超碰人人爽人人做人人爱 |