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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2436|回復: 2
打印 上一主題 下一主題
收起左側(cè)

我有個小車 需要一個超聲波(有云臺) 壁障小車程序 麻煩各位哥哥姐姐咯

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:275019 發(fā)表于 2018-1-13 16:08 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
500黑幣
我的單片機用的是C51  小車電機占的IO口 為P2口  前左電機為P1-0(正傳)和P-1(反轉(zhuǎn))前右電機P2-2(正轉(zhuǎn))和P2-3(反轉(zhuǎn)) 后左電機P-4(正轉(zhuǎn))和P2-5反轉(zhuǎn)  后右電機P2-6(正轉(zhuǎn))和P2-7(反轉(zhuǎn))   。 其中(電機  正反轉(zhuǎn)只需  其中一個為1 另一個為0);
其中 超聲波  輸出口為P1-0口 接收口為P3-2口
  舵機輸出口為P1-1口;

先謝過 各位哥哥姐姐咯   ;需要一個能超聲波壁障的程序    其他程序都不用

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

使用道具 舉報

來自 2#
ID:275019 發(fā)表于 2018-1-14 17:23 | 只看該作者
/*****花了  幾天的時間寫出來了   對于我這初學者 還是蠻開心的*************/


#include<reg52.h>
#define car P2
#include <intrins.h>    //nop頭文件
typedef unsigned int u16;
typedef unsigned char u8;
sbit car_0 = P2^0;       //前左電機正轉(zhuǎn)
sbit car_1 = P2^1;       //前左電機反轉(zhuǎn)
sbit car_2 = P2^2;       //前右電機正轉(zhuǎn)
sbit car_3 = P2^3;       //前右電機反轉(zhuǎn)
sbit car_4 = P2^4;       //后左電機正轉(zhuǎn)
sbit car_5 = P2^5;       //后左電機反轉(zhuǎn)
sbit car_6 = P2^6;       /后右電機正轉(zhuǎn)
sbit car_7 = P2^7;       // 后右電機反轉(zhuǎn)
sbit trig  = P1^0;       //超聲波輸出口
sbit echo  = P3^2;       //超聲波接收口
sbit dj    = P1^1;       //舵機控制口
u16 time,S,S1,S2,S3,S4,push_val_left,pwm_val_left,timer;
#define Left_moto_go    {car_0=0,car_1=1,car_4=0,car_5=1;}   //左邊兩個電機向前走#define Left_moto_back  {car_0=1,car_1=0,car_4=1,car_5=0;}         //左邊兩個電機向后走#define Left_moto_Stop  {car_0=1,car_1=1,car_4=1,car_5=1;}         //左邊兩個電機停止
#define Right_moto_go   {car_2=0,car_3=1,car_6=0,car_7=1;}         //右邊兩個電機向前走
#define Right_moto_back {car_2=1,car_3=0,car_6=1,car_7=0;}         //右邊兩個電機向后走
#define Right_moto_Stop {car_2=1,car_3=1,car_6=1,car_7=1;}         //右邊兩個電機停止
/************************************************************************/
//前進
void qianj(void)                   //前進
{
        Left_moto_go ;                
        Right_moto_go ;               
}
/************************************************************************/
void hout(void)                                   //后退
{
        Left_moto_back ;        
        Right_moto_back ; }  
/************************************************************************/
//左轉(zhuǎn)                         
void zuoz(void)
{
        Left_moto_back ;       
        Right_moto_go ;        
//        zxdzz ();                          
}
/************************************************************************/
//右轉(zhuǎn)
void youz(void)                        
{
        Left_moto_go ;                
        Right_moto_back ;           
//        zxdyz ();                                 
}
/************************************************************************/
//STOP
void tingz(void)                           //停止
{                                                 
        Left_moto_Stop ;                  
        Right_moto_Stop ;        
//        zxdgd ();                       
}
/************************************************************************/
//超聲波發(fā)射信號
void StartModule()
{
         trig = 1
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        trig=0;
}
/***************************************************/
/**************************************************/
void         Conut (void) //計算距離
{
                while(!echo);   
                TR0=1;           
                while(echo);   
                TR0=0;         
                time=TH0*256+TL0
                TH0=0;
                TL0=0;
                S=(time*1.7)/100

}


void COMM( void )         //方向判斷
{

        push_val_left=5;
        timer=0;
        while(timer<=4000);
        StartModule();     
        Conut();           
        S2=S;
       
        push_val_left=23;
        timer=0;
        while(timer<=4000);
        StartModule();     
        Conut();         
        S4=S;
       
        push_val_left=13;   
        timer=0;
        while(timer<=4000);
        StartModule();     
        Conut();         
        S1=S;
       
        if((S2<20)||(S4<20)
        {
                hout();         
                timer=0;
                while(timer<=4000);
        }

        if(S2>S4)
        {
                youz();      
                timer=0;
                while(timer<=4000);
        }
        else
        {
                        zuoz();     
                        timer=0;
                while(timer<=4000);
        }
}


void main (void)
{
          push_val_left =  13;
    car = 0xff;
          TMOD = 0x11;
          TH1 = 0x0FF;
    TL1 = 0x0A4;
          ET1 = 1;
          TR1 = 1;
          TH0 = 0;
    TL0 = 0;
    ET0 = 1;
          EA = 1;
  while(1)
        {        

       
                        if(timer>=1000)
                        {
                                timer = 0;
                                StartModule();
                                Conut();
                                if(S<45)
                                {
                                        hout();
                                        hout();
                                        hout();
                                        tingz();
                                        COMM();
                                }
                                else
                                        if(S>45)
                                        qianj();
                        }
        }


        }

/***************************************************/
///定時器3
void pwmdins()interrupt 3
{

    TH1 = 0x0FF;
    TL1 = 0x0A4;
    timer++;                                       
          pwm_val_left++;                                         
          if(pwm_val_left<=push_val_left)
               dj = 1;
           else
              dj = 0;
           if(pwm_val_left>=200)
              pwm_val_left=0;         
                          

}


避障.zip

39.18 KB, 下載次數(shù): 9

回復

使用道具 舉報

板凳
ID:265553 發(fā)表于 2018-1-13 23:44 | 只看該作者
我也是初學都 ,
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品毛片一区二区在线看 | 天天操夜夜操免费视频 | 国内精品久久久久 | 一级毛片在线播放 | 夜夜久久 | 91极品视频 | 亚洲精品一区二区三区在线 | 91视视频在线观看入口直接观看 | 国产精品一区二区三区在线 | 国产免费色 | tube国产 | 日本电影免费完整观看 | 四虎精品在线 | 天堂网色| 欧美日韩在线视频一区 | 国产美女精品视频免费观看 | 在线一区二区三区 | 九九热在线免费观看 | 欧美精品一区二区免费 | 国产色在线 | 精品欧美色视频网站在线观看 | 国产精品a久久久久 | 高清av电影 | 国产精品久久久亚洲 | 精品一区久久 | 中文字幕在线网 | 日韩三级在线观看 | 超碰97在线免费 | 欧美国产一区二区 | 九九久久久久久 | 91精品久久久久久久久中文字幕 | 国产精品无码专区在线观看 | 亚洲精品日韩一区二区电影 | 97精品超碰一区二区三区 | 亚洲精品毛片av | 亚卅毛片 | 精品一区二区三区四区五区 | 国产精品视屏 | 国产二区在线播放 | 亚洲综合精品 | 国产精品无码专区在线观看 |