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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1236|回復: 1
收起左側

智能小車尋跡程序

[復制鏈接]
ID:457497 發表于 2019-4-14 13:23 | 顯示全部樓層 |閱讀模式
#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;

//蜂鳴器驅動口定義
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;}            //左電機向前走
#define left_back         {IN1=1,IN2=0;}            //左邊電機向后轉
#define left_stop         {EN1=0;IN1=0,IN2=0;}         //左邊電機停轉                     
#define right_go          {IN3=1,IN4=0;}           //右邊電機向前走
#define right_back        {IN3=0,IN4=1;}           //右邊電機向后走
#define right_stop        {EN2=0;IN3=0,IN4=0;}               //右邊電機停轉

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();
}

//判斷案件是否按下,按下就前進
void keyscan(void)              //按鍵掃描函數
{
    A:    if(K4==0)                        //判斷是否有按下信號
                {
                    delay(10);                  //延時10ms
                        if(K4==0)                        //再次判斷是否按下
                         {
                            FM=0;               //蜂鳴器響                 
                            while(K4==0);        //判斷是否松開按鍵
                            FM=1;               //蜂鳴器停止  
                          }
                    else
                     {
                       goto A;        //跳轉到A重新檢測
                      }
                }
                else
                {
                  goto A;             //跳轉到A重新檢測
                }
}


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

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

                while(1)        //無限循環
        {
            //有信號為0  沒有信號為1
        if(Left_1_led==0&&Right_1_led==0)
            qianjin();   //調用前進函數
        else if(Left_1_led==1&&Right_1_led==0)            //左邊檢測到黑線
                        {
                             zuozhuan();                       //調用小車左轉函數
                        }                          
                else if(Right_1_led==1&&Left_1_led==0)                //右邊檢測到黑線
                        {          
                                 youzhuan();                   //調用小車右轉函數
                    }
                else
                        tingzhi();         
         }
}

回復

使用道具 舉報

ID:1 發表于 2019-4-14 21:44 | 顯示全部樓層
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩高清免费 | 欧美阿v | 国产精品一区二区三区四区五区 | 日韩欧美视频在线 | 天堂中文资源在线 | 精品伦精品一区二区三区视频 | 久久久久久99| 91精品国产综合久久婷婷香蕉 | 欧美日韩一区二区在线 | 国产97在线 | 日韩 | 日韩精品一区二区不卡 | 妞干网av | 免费一级淫片aaa片毛片a级 | 久久精品在线免费视频 | 国产一区久久 | 日韩有码一区 | 欧美精品二区 | 在线亚洲电影 | 久久99国产精品 | 日韩欧美精品在线 | 亚洲 自拍 另类 欧美 丝袜 | 爱综合| 国产一区二区三区四区区 | www精品| 国产精品久久久久久久久 | 国产有码 | 日韩在线免费电影 | 亚洲精品丝袜日韩 | 国产午夜三级一区二区三 | 人人澡人人射 | 欧美久久久久 | 老司机成人在线 | 成人在线一区二区 | 国产精品一区二区无线 | 婷婷色国产偷v国产偷v小说 | www.一区二区三区 | 韩日一区二区三区 | 午夜视频在线免费观看 | 天堂三级 | 国产精品综合色区在线观看 | 一区二区三区视频在线观看 |