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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2830|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)三路超聲波避障,麥克納姆輪 程序有什么問(wèn)題 求幫助

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:776497 發(fā)表于 2020-6-11 18:20 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#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()   //定時(shí)器    @11.0592MHZ   0.1ms
{
        TMOD = 0x11;
        TH0 = 0xFB;
        TL0 = 0xAF;
        TF0        = 0;         
        ET0 = 1;          //允許中斷
        EA = 1;           //開(kāi)啟總中斷
        TR0 = 1;          /開(kāi)啟定時(shí)器
        
        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 ()               //測(cè)前方距離
{
        P2_0 = 1;                      //發(fā)送超聲波
        Delay(1);                      //延時(shí)100us
        P2_0 = 0;                      //關(guān)閉超聲波
        while (!P2_1);                 //未接收到超聲波并等待
        TR1 = 1;                       //開(kāi)啟定時(shí)器
        while (P2_1);                  //接收到超聲波并等待
        TR1 = 0;                       //關(guān)閉定時(shí)器1
        Shi_Jian = TH1*256 + TL1;
        TH1 = 0;
        TL1 = 0;
        FJL = (Shi_Jian*1.7)/100;      //單位  cm
        return FJL;
        
}
int Zuo_Ju_Li ()               //測(cè)左邊距離
{
        P2_2 = 1;                      //發(fā)送超聲波
        Delay(1);                      //延時(shí)100us
        P2_2 = 0;                      //關(guān)閉超聲波
        while (!P2_3);                 //未接收到超聲波并等待
        TR1 = 1;                       //開(kāi)啟定時(shí)器
        while (P2_3);                  //接收到超聲波并等待
        TR1 = 0;                       //關(guān)閉定時(shí)器1
        Shi_Jian = TH1*256 + TL1;
        TH1 = 0;
        TL1 = 0;
        LJL = (Shi_Jian*1.7)/100;      /單位  cm
        return LJL;
        
}
int You_Ju_Li ()               //測(cè)右邊距離
{
        P2_4 = 1;                      //發(fā)送超聲波
        Delay(1);                      //延時(shí)100us
        P2_4 = 0;                      //關(guān)閉超聲波
        while (!P2_5);                 //未接收到超聲波并等待
        TR1 = 1;                       //開(kāi)啟定時(shí)器
        while (P2_5);                  //接收到超聲波并等待
        TR1 = 0;                       //關(guān)閉定時(shí)器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 ()   //前進(jìn)
{
        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)      //進(jìn)入狹小空間,后退
                                Car_Houtui ();
                        if (b <= c)             //左邊距離小于右邊距離,右轉(zhuǎn)
                                Car_Youzhuan ();
                        if (c <= b)             /右邊距離小于左邊距離,左轉(zhuǎn)
                                Car_Zuozhuan ();
                        else
                                Car_Stop ();
        
        }
}
幫忙看一下程序有什么問(wèn)題

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:328014 發(fā)表于 2020-6-11 18:53 | 只看該作者
這個(gè)程序沒(méi)有問(wèn)題
回復(fù)

使用道具 舉報(bào)

板凳
ID:774446 發(fā)表于 2020-6-12 08:09 | 只看該作者
我覺(jué)得這程序?qū)懙暮芎盟悸芬矝](méi)有問(wèn)題,棒棒的
回復(fù)

使用道具 舉報(bào)

地板
ID:776497 發(fā)表于 2020-6-12 11:40 | 只看該作者
51hei團(tuán)團(tuán) 發(fā)表于 2020-6-11 18:53
這個(gè)程序沒(méi)有問(wèn)題

但是執(zhí)行不了
小車不動(dòng)
回復(fù)

使用道具 舉報(bào)

5#
ID:573789 發(fā)表于 2020-6-17 14:55 | 只看該作者
很好 的教程
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久成人免费视频 | 97精品超碰一区二区三区 | 久久最新精品视频 | 国产视频一区二区三区四区五区 | 亚洲精品一区二区三区蜜桃久 | 亚洲国产欧美91 | 精品1区2区 | 久久久久久久久久久久久9999 | 色婷婷综合久久久中文字幕 | 中文字幕乱码一区二区三区 | 观看av| 国产欧美在线 | 亚洲欧美中文日韩在线v日本 | 作爱视频免费观看 | 国产一级片av | 亚洲欧美日韩在线 | 一级片视频免费 | 久久精品视频在线免费观看 | 午夜欧美 | 欧美日本韩国一区二区 | 欧美一区日韩一区 | 特黄小视频 | 国产精久久久 | 噜噜噜噜狠狠狠7777视频 | 成人亚洲精品 | 亚洲一区二区三区高清 | 精品免费国产一区二区三区四区介绍 | www.888www看片| 久久亚洲一区二区三区四区 | 亚洲三级av | 九九免费视频 | 在线一区视频 | 国产午夜精品一区二区三区四区 | 欧美精品一区二区三区一线天视频 | 精品欧美一区二区中文字幕视频 | 亚洲日韩中文字幕一区 | 青青久在线视频 | 91免费版在线观看 | 手机看片在线播放 | 中国一级大毛片 | 拍拍无遮挡人做人爱视频免费观看 |