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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2335|回復: 2
打印 上一主題 下一主題
收起左側

中國教育機器人擂臺賽超聲波小車代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:558970 發表于 2019-6-10 15:55 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int

uint Motor_counter,speed_H,speed_L,speedleft,speedright,Lv,Rv;
uint v1=1500,v2=1500,IN_counter=20;
uint k=50;
int yichu=1500;
sbit left=P1^0;        //        left
sbit right=P1^1;
sbit IN1=P2^1;
sbit IN2=P2^2;         
sbit IN=P2^3;

sbit tirg1=P3^5;
sbit tirg2=P3^6;
sbit tirg3=P3^7;
sbit tirg4=P1^5;
sbit tirg5=P1^6;
sbit echo=P3^2;


unsigned int tf,ts;
int i=0;
float distance1,distance2,distance3,distance4,distance5;
void delay10us()   
{
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();

}
void init(uint s)   
{
        TMOD|=0x01;   
        TH0=(65536-s)/256;
        TL0=(65536-s)%256;
        TR0=1;
        ET0=1;
        EA=1;
        PT0=1;

        EX0=1;     
        IT0=1;

}

void send1(void)
{
        tirg1=1;
        delay10us();
        tirg1=0;
                  
        while(echo==0);
        tf=(TH0<<8)|TL0;
}
void send2(void)
{
        tirg2=1;
        delay10us();
        tirg2=0;
              
        while(echo==0);
        tf=(TH0<<8)|TL0;
}
void send3(void)
{
        tirg3=1;
        delay10us();
        tirg3=0;
              
        while(echo==0);
        tf=(TH0<<8)|TL0;
}
void send4(void)
{
        tirg4=1;
        delay10us();
        tirg4=0;
                  
        while(echo==0);
        tf=(TH0<<8)|TL0;
}
void send5(void)
{
        tirg5=1;
        delay10us();
        tirg5=0;
                     
        while(echo==0);
        tf=(TH0<<8)|TL0;
}
void shou1()
{
          ts=(TH0<<8)|TL0;
         distance1=(ts-tf)*0.017;
}
void shou2()
{
          ts=(TH0<<8)|TL0;
         distance2=(ts-tf)*0.017;
}
void shou3()
{
          ts=(TH0<<8)|TL0;
         distance3=(ts-tf)*0.017;
}
void shou4()
{
          ts=(TH0<<8)|TL0;
         distance4=(ts-tf)*0.017;
}
void shou5()
{
          ts=(TH0<<8)|TL0;
         distance5=(ts-tf)*0.017;
}
void delay()
{        uint i,j;
        for(i=10;i>0;i--)
        for(j=4500;j>0;j--);

}
void main()
{        
    init(10000);
        TMOD|=0X10;
        TH1=(65536-90)/256;
        TL1=(65536-90)%256;
        TR1=1;
        PT1=1;
        ET1=1;
        EA=1;

        while(1)
        {
//                if(IN1==1&&IN2==1)   
//                                {
//                          if(distance1<20){Rv=-200;Lv=200;         }
//                                else
//                                        {if(distance3<30||distance5<25){Rv=-200;Lv=-200;         }
//                                         if(distance2<30||distance4<25){Rv=200;Lv=200;        }
//        //                                else if(distance4<25){Rv=-200;Lv=200;        }
//        //                                else if(distance5<25){Rv=200;Lv=-200;        }
//                                        else {Rv=-200;Lv=200;}
//                                        }         
//                                }
//        if(IN1==1&&IN2==0)  
//                          {
//                           Rv=200;Lv=200;delay();
//                          }
//            if(IN1==0&&IN2==1)  
//                          {
//                          Rv=-200;Lv=-200;delay();
//                           }
//            if(IN1==0&&IN2==0)
//                        {
//                          Rv=200;Lv=200;delay();
//                         }

               
               
               
               

                 if(IN1==1&&IN2==1)     
                                {
                          if(distance1<20){Rv=-200;Lv=200;         }
                                else
                                        {if(distance3<50||distance5<25){Rv=-200;Lv=-200;         }
                                         if(distance2<50||distance4<25){Rv=200;Lv=200;        }
        //                                else if(distance4<25){Rv=-200;Lv=200;        }
        //                                else if(distance5<25){Rv=200;Lv=-200;        }
                                        else {Rv=-200;Lv=200;}
                                        }         
                                }
        if(IN1==1&&IN2==0)     
                          {
                           Rv=200;Lv=200;delay();
                          }
            if(IN1==0&&IN2==1)        //3Î′¼ì2aμ½ê±£¬Æ«à룬×ó×a
                          {
                          Rv=-200;Lv=-200;delay();
                           }
            if(IN1==0&&IN2==0)
                        {
                          Rv=200;Lv=200;delay();
                         }


        
        }

}

void Timer0Interrupt(void) interrupt 3
{
        speedleft=1382+Lv;
        speedright=1382+Rv;
        TH1=speed_H;
        TL1=speed_L;
        Motor_counter++;
        if(Motor_counter>7)Motor_counter=0;
        switch(Motor_counter)
        {
                case 0:speed_H=0xf1;speed_L=0x9a; left=1;        break;
             case 1:
                case 2:
                case 3:speed_H=(0xffff-speedright)>>8;speed_L=(0xffff-speedright)&0x00ff;left=0;break;
                case 4:speed_H=0xf1;speed_L=0x9a;right=1;break;
                case 5:
                case 6:        
                case 7:speed_H=(0xffff-speedleft)>>8;speed_L=(0xffff-speedleft)&0x00ff;right=0;break;                                
                default:break;               
                                       
        }        
}
void Timer1() interrupt 1        
{

        TH0=(65536-13000)/256;
        TL0=(65536-13000)%256;   
//        ec1=~ec1;
        i++;
        if(i==0)
        send1();        
        if(i==1)
        send2();
        if(i==2)
        send3();
        if(i==3)
        send4();
        if(i==4)
        send5();
        if(i==5)
        {
        i=0;
        send1();
        }                        
}
void exter0() interrupt 0
{         
         if(ts>65535)
         ts=65000;
         else
         if(i==0)
   shou1();        
         if(i==1)
         shou2();        
         if(i==2)
         shou3();
         if(i==3)
         shou4();
         if(i==4)
         shou5();
}

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:328014 發表于 2019-6-11 02:51 | 只看該作者
求分享原理圖
回復

使用道具 舉報

板凳
ID:89286 發表于 2019-6-11 06:58 | 只看該作者
thanks for sharing
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91视频观看 | 日韩三级在线观看 | 一区二区三区国产 | 一区二区在线不卡 | 不卡一二三区 | 久久综合一区 | 精品一区国产 | 日韩三级电影在线看 | 国产精品久久在线 | 日本电影网站 | 中文字幕精品视频 | 一级黄色裸片 | 国产精品欧美精品日韩精品 | 天天操天天干天天曰 | 成人性视频免费网站 | 久久福利电影 | 欧美性大战xxxxx久久久 | 欧美日韩一 | 欧美亚洲国语精品一区二区 | 欧美成年网站 | 日韩伦理一区二区 | 99精品电影| 精品久久久久久18免费网站 | 国产精品久久久久久久久免费软件 | 七七婷婷婷婷精品国产 | www.com久久久 | 亚洲天堂免费在线 | www亚洲精品| 亚洲97 | 国产免费拔擦拔擦8x高清 | 国产成人精品一区二区 | 中文字幕精品一区二区三区精品 | 亚洲精品久久视频 | 99精品国产一区二区三区 | 欧美激情在线一区二区三区 | 午夜激情免费 | 久久成人精品 | 97成人精品 | 最新免费黄色网址 | 欧美国产亚洲一区二区 | 国产sm主人调教女m视频 |