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

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

QQ登錄

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

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

基于51壁障遙控尋跡小車(chē)源代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:151076 發(fā)表于 2016-11-29 19:39 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<reg52.h>
#define uint unsigned int;
#define uchar unsigned char
sbit Trig=P3^1;
sbit Echo=P3^2;
sbit zuo1=P2^2;
sbit you1=P2^1;
sbit zuo2=P2^3;
sbit you2=P2^0;
sbit A=P1^0;
sbit E=P1^1;
sbit C=P1^2;
sbit D=P1^3;
sbit ENA=P1^4;
sbit ENB=P1^5;
sbit a=P2^4;
sbit b=P2^5;
sbit c=P2^6;
sbit d=P2^7;
uchar PWML,PWMR,t;
uint x,y;
uint timeH,distance,timeL,time;
void delay1(int e)
{
        int i,j;
        for(i=e;i>0;i--)
        for(j=5;j>0;j--);
}
void delayms(int f)
{
        int i,j;
        for(i=f;i>0;i--)
        for(j=110;j>0;j--);
}
void delay(int g)
{
        int i,j;
        for(i=2;i>0;i--)
        for(j=g;j>0;j--);
}
void delay_20us()
{
        uchar s;
        for(s=0;s<100;s++);
}
void yaokong()
{
        if(a==1)
        x=1;
        if(b==1)
        x=2;
        if(c==1)
        x=3;
        if(d==1)
        x=4;
}
void qianjin1()
{
        while(x!=4)
        {
                 A=0;E=1;
                 C=0;D=1;
         PWML=30;
                 PWMR=30;
                 delayms(1000);
                 PWML=100;
                 PWMR=100;
                 delayms(1000);
                 PWML=0;
                 PWMR=0;
                 delayms(1000);
                 A=1;E=0;
                 C=1;D=0;
                 PWML=100;
                 PWMR=100;
                 delayms(1000);
                 PWML=30;
                 PWMR=30;
                 delayms(1000);
                 x=4;
        }
}
void qianjin()
{        P1=0xfa;  //前進(jìn)//
        delay(15-8);
        P1=0xff;
        delay(8);
}
void qianjin2()
{        P1=0xfa;  //前進(jìn)
    delay1(50);
        P1=0xf0;
        delay1(50);
}
void zuozhuan()
{        P1=0xf2;  //左轉(zhuǎn)動(dòng)
        delay(15-9);
        P1=0xff;
        delay(9);
}
void zuozhuan1()
{       
   P1=0xf2;
   delay1(10);
   P1=0xf0;
   delay1(1);//左轉(zhuǎn)動(dòng)//

}
void youzhuan()
{        P1=0xf8;  //右轉(zhuǎn)動(dòng)//
        delay(15-9);
        P1=0xff;
        delay(9);
}
void xunji()
{
        if((zuo1==1)&&(zuo2==1)&&(you2==1)&&(you1==0))
                {
                y=1;//youzhuan();       
                }
        if((zuo1==1)&&(zuo2==1)&&(you2==1)&&(you1==1))
                {
                y=0;//qianjin();
                }
        if((zuo1==0)&&(zuo2==1)&&(you2==1)&&(you1==1))
                {
                y=2;//zuozhuan();       
                }
        if((zuo1==1)&&(zuo2==1)&&(you2==0)&&(you1==0))
                {
                y=1;//youzhuan();       
                }
        if((zuo1==0)&&(zuo2==0)&&(you2==1)&&(you1==1))
                {
                        y=2;//        zuozhuan();
                }
        if((zuo1==1)&&(zuo2==0)&&(you2==0)&&(you1==0))
                {
                y=1;//youzhuan();       
                }
        if((zuo1==0)&&(zuo2==0)&&(you2==0)&&(you1==1))
                {
                        y=2;//        zuozhuan();
                }
        switch(y)
        {
                case 0:qianjin();break;
                case 1:youzhuan();break;
                case 2:zuozhuan();break;
        }
}
void chaoshengbo()
{
        Trig=0;//拉低脈沖輸入引腳
        TH1=0;//定時(shí)器高位清零
    TL1=0;//定時(shí)器低位清零
        Trig=1;//超聲波輸入端
        delay_20us();//延時(shí)20us
        Trig=0;//產(chǎn)生一個(gè)20us的脈沖
        while(Echo==0);//等待Echo回波引腳變低電平
        EX0=1;//打開(kāi)外部中斷0
        TR1=1;//啟動(dòng)定時(shí)器1
        while(Echo==1);//等待測(cè)量結(jié)果
        TR1=0;//關(guān)閉定時(shí)器1
        EX0=0;//關(guān)閉外部中斷
    time=timeH*256+timeL;
        distance=time*0.172;//毫米
        if(distance>300)
                {
                        qianjin2();
                }
                else
                {
                  zuozhuan1();


                 }
}
void panduan()
{
          if(x==1)
        {
         TR0=0;
         TR1=0;
         xunji();
        }
        if(x==2)
        {
         TR1=0;
         TR0=1;
         qianjin1();
        }
        if(x==3)
        {
         TR0=0;
         chaoshengbo();
    }
        if(x==4)
        {
         P1=0xf0;
        }
}
void init()
{
TMOD=0x11;
TH0=(65536-50)/256;
TL0=(65536-50)%256;
EA=1;
ET0=1;
ET1=1;
P1=0xf0;
P2=0x0f;
}
void main()
{       
  init();
  while(1)
  {
        yaokong();
        panduan();
  }
}
void T0_time() interrupt 1
{
        TH0=(65536-50)/256;
        TL0=(65536-50)%256;
        if(t<PWML)
         {
                  ENA=1;
        }
          else
          ENA=0;
          if(t<PWMR)
          ENB=1;
          else
          ENB=0;
          t++;
          if(t>=100)
          t=0;
}
void exter() interrupt 0//外部中斷,判斷回波電平
{       
        timeH=TH1;//取出定時(shí)器的值
        timeL=TL1;//取出定時(shí)器的值
}
void timer1() interrupt 3// 定時(shí)器1中斷,超聲波測(cè)距計(jì)時(shí)
{       
        TH1=0;
        TL1=0;
}

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久久久一区二区三区 | 一级毛片高清 | 日本成人午夜影院 | 免费在线观看毛片 | 成人一区二区在线 | 久久伊人操 | 男女视频在线看 | 久久久久国产 | 神马久久av | 亚洲精品乱码久久久久久蜜桃91 | 四虎影院在线观看免费视频 | 性做久久久久久免费观看欧美 | 亚洲国产成人在线 | 日韩免费视频一区二区 | 国产一级特黄aaa大片评分 | 亚洲欧美在线一区 | 韩国主播午夜大尺度福利 | h视频免费看 | 九九精品久久久 | 黑人精品欧美一区二区蜜桃 | 欧美精品一区二区免费 | 国产免费一级片 | 特级毛片 | 欧美国产激情 | 成人小视频在线观看 | 国产日韩欧美在线观看 | 午夜大片 | 国产91在线 | 亚洲 | 国产女人第一次做爰毛片 | 日韩av手机在线观看 | 日韩午夜| 精品国产一区二区三区久久狼黑人 | 国产精品99久久久久久久vr | 久久精品小视频 | 精品一区二区三区在线观看国产 | 日本不卡高清视频 | 国产综合久久 | 午夜视频免费在线观看 | 精品国产乱码久久久久久1区2区 | 99精品欧美 | 欧美日韩网站 |