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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于51壁障遙控尋跡小車源代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:151076 發(fā)表于 2016-11-29 19:39 | 只看該作者 回帖獎勵 |倒序?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)動
        delay(15-9);
        P1=0xff;
        delay(9);
}
void zuozhuan1()
{       
   P1=0xf2;
   delay1(10);
   P1=0xf0;
   delay1(1);//左轉(zhuǎn)動//

}
void youzhuan()
{        P1=0xf8;  //右轉(zhuǎn)動//
        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;//定時器高位清零
    TL1=0;//定時器低位清零
        Trig=1;//超聲波輸入端
        delay_20us();//延時20us
        Trig=0;//產(chǎn)生一個20us的脈沖
        while(Echo==0);//等待Echo回波引腳變低電平
        EX0=1;//打開外部中斷0
        TR1=1;//啟動定時器1
        while(Echo==1);//等待測量結(jié)果
        TR1=0;//關(guān)閉定時器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;//取出定時器的值
        timeL=TL1;//取出定時器的值
}
void timer1() interrupt 3// 定時器1中斷,超聲波測距計(jì)時
{       
        TH1=0;
        TL1=0;
}

評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人亚洲视频 | 草久视频| 三级免费网 | 欧美一级在线观看 | 拍真实国产伦偷精品 | 激情 亚洲 | 欧美一级片在线播放 | 午夜精品三区 | 99国产视频| 一区免费观看 | 神马久久av | 超级乱淫av片免费播放 | 99久热 | 国产在线精品一区二区三区 | www国产亚洲精品久久网站 | 精品欧美一区二区三区久久久 | 精品影院 | 在线看片网站 | 欧美成人精品一区二区男人看 | 嫩草国产 | 99热这里有精品 | av色站| 夜夜草 | 免费观看日韩精品 | 亚洲精品自在在线观看 | 国产亚洲精品精品国产亚洲综合 | 麻豆一区二区三区精品视频 | 天天插天天狠天天透 | av在线免费看网址 | 瑟瑟免费视频 | 久久久久久久综合色一本 | 免费超碰 | 91视视频在线观看入口直接观看 | 亚洲一区二区三区免费视频 | 九九亚洲| 99成人| 一本色道精品久久一区二区三区 | 色综合久久天天综合网 | 日韩精品在线网站 | 欧美视频免费在线 | 一区二区三区网站 |