欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

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

QQ登錄

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

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

智能小車(chē)尋跡程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:457497 發(fā)表于 2019-4-14 13:23 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<reg52.h>
#include"touwenjian.h"
sbit IN1=P1^2;
sbit IN2=P1^3;
sbit IN3=P1^6;
sbit IN4=P1^7;
sbit EN1=P1^4;
sbit EN2=P1^5;

//定義按鍵
sbit K4=P3^7;
//sbit K3=P3^6;

//蜂鳴器驅(qū)動(dòng)口定義
sbit FM=P2^3;

//循跡LED指示燈定義
sbit Left_1_led=P3^3;         //左循跡紅外傳感器      
sbit Right_1_led=P3^2;         //右循跡紅外傳感器  

//避障LED指示燈定義  
sbit Left_2_led=P3^4;         //左避障紅外傳感器  
sbit Right_2_led=P3^5;         //右避障紅外傳感器  


#define left_go           {IN1=0,IN2=1;}            //左電機(jī)向前走
#define left_back         {IN1=1,IN2=0;}            //左邊電機(jī)向后轉(zhuǎn)
#define left_stop         {EN1=0;IN1=0,IN2=0;}         //左邊電機(jī)停轉(zhuǎn)                     
#define right_go          {IN3=1,IN4=0;}           //右邊電機(jī)向前走
#define right_back        {IN3=0,IN4=1;}           //右邊電機(jī)向后走
#define right_stop        {EN2=0;IN3=0,IN4=0;}               //右邊電機(jī)停轉(zhuǎn)

unsigned char pwm_kong_left  =0;
unsigned char pwm_kong_right =0;

unsigned char push_kong_left  =6;
unsigned char push_kong_right =6;

bit right_pwm_on =1;
bit left_pwm_on  =1;

void delay(unsigned int xms)                               
{
    unsigned int i,j;
        for(i=xms;i>0;i--)                     
    for(j=112;j>0;j--);
}

void qianjin(void)
{
        right_go;
        left_go;

}

void houtui(void)
{
        right_back;
        left_back;
}

void zuozhuan(void)
{
        right_go;
        left_stop;
}

void youzhuan(void)
{
        right_stop;
        left_go;

}
void tingzhi(void)
{
        right_stop;
        left_stop;
}

void pwm_tiaosu_right(void)
{
        if(right_pwm_on)
        {
                if(pwm_kong_right<=push_kong_right)
                {
                        EN1=1;
                }
                else
                {
                        EN1=0;
                }
                if(pwm_kong_right==20)
                {
                        pwm_kong_right=0;
                }
        }
        else
        {
                EN1=0;
        }
}

void pwm_tiaosu_left(void)
{
        if(right_pwm_on)
        {
                if(pwm_kong_left<=push_kong_right)
                {
                        EN2=1;
                }
                else
                {
                        EN2=0;
                }
                if(pwm_kong_left==20)
                {
                        pwm_kong_left=0;
                }
        }
        else
        {
                EN2=0;
        }
}

void timer0()interrupt 1 using 2
{
        TH0=0XFC;
        TL0=0X66;
        pwm_kong_right++;
        pwm_kong_left++;
        pwm_tiaosu_right();
        pwm_tiaosu_left();
}

//判斷案件是否按下,按下就前進(jìn)
void keyscan(void)              //按鍵掃描函數(shù)
{
    A:    if(K4==0)                        //判斷是否有按下信號(hào)
                {
                    delay(10);                  //延時(shí)10ms
                        if(K4==0)                        //再次判斷是否按下
                         {
                            FM=0;               //蜂鳴器響                 
                            while(K4==0);        //判斷是否松開(kāi)按鍵
                            FM=1;               //蜂鳴器停止  
                          }
                    else
                     {
                       goto A;        //跳轉(zhuǎn)到A重新檢測(cè)
                      }
                }
                else
                {
                  goto A;             //跳轉(zhuǎn)到A重新檢測(cè)
                }
}


void main(void)
{
        P1=0x00;
//        keyscan();
        delay(1000);

        TMOD=0X01;
    TH0= 0XFC;  //1ms定時(shí)
    TL0= 0X66;
    TR0= 1;
    ET0= 1;
        EA = 1;       

                while(1)        //無(wú)限循環(huán)
        {
            //有信號(hào)為0  沒(méi)有信號(hào)為1
        if(Left_1_led==0&&Right_1_led==0)
            qianjin();   //調(diào)用前進(jìn)函數(shù)
        else if(Left_1_led==1&&Right_1_led==0)            //左邊檢測(cè)到黑線(xiàn)
                        {
                             zuozhuan();                       //調(diào)用小車(chē)左轉(zhuǎn)函數(shù)
                        }                          
                else if(Right_1_led==1&&Left_1_led==0)                //右邊檢測(cè)到黑線(xiàn)
                        {          
                                 youzhuan();                   //調(diào)用小車(chē)右轉(zhuǎn)函數(shù)
                    }
                else
                        tingzhi();         
         }
}

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

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2019-4-14 21:44 | 只看該作者
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說(shuō)明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表