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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機藍牙遙控+超聲波跟隨+紅外循跡切換問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:1071654 發表于 2023-9-4 17:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位大神好
以下是51單片機(STC89C52)藍牙遙控+超聲波跟隨+紅外循跡主程序,現在經過測試功能均能實現,能否幫忙解釋下主程序里面超聲波+紅外切換那塊還有問題么?其他子程序是否還有問題,有沒有什么優化代碼的可能,感謝解惑!。。完整程序放置在附件

#include <REGX52.H>
#include <INTRINS.H>
#include <Timer2.H>
#include <Timer0.H>
#include "UART.H"
#include "Delay.H"
#include "MotorDrive.H"
#include "HC_SR04.H"
#include <IR_Tracking.H>

bit gb_ultrasonic=0;
bit gb_IR=0;
bit gbRI=0;

sbit L298N_ENA=P1^4;
sbit L298N_ENB=P1^5;
sbit L298N_ENA1=P1^1;
sbit L298N_ENB1=P0^2;

unsigned char Compare,Compare1,Compare2,Compare3;
unsigned char Counter,Counter1,Counter2,Counter3;
unsigned char Data;
               
void main()
{
        UART_Init();                //串口初始化
        Timer0_Init();        //T0初始化
        Timer2_Init();        //T2初始化
        Compare=Compare1=Compare2=Compare3=20;
        while(1)
        {
    if(gb_IR)
      IR_Tracking();//紅外循跡
                if(gb_ultrasonic)
                        Ultrasound_Dis();//超聲波跟隨
    if(gbRI)//有新的串口數據 在串口接收中斷中加入gbRI=1;
     {
        gbRI=0;//新的串口數據已處理
        gb_IR=0;//除循跡指令外,其它指令不循跡
                         gb_ultrasonic=0;//除超聲波跟隨指令外,其它指令不跟隨
                if(Data        == 8)
                        gb_ultrasonic=1;//收到超聲波跟隨指令
    if(Data == 7)
        gb_IR=1;//收到循跡指令
    else if(Data == 0)
        StopIt();
    else if(Data == 1)       
      {
                                Compare=Compare1=Compare2=Compare3=100;
        Forward();
      }
    else if(Data == 2)
      {
                                Compare=Compare1=Compare2=Compare3=100;
        BackOff();
      }
                else if(Data==3)
                        {
                                Compare=Compare1=Compare2=Compare3=40;
                                TurnLeft();
                        }
                else if(Data==4)
                        {
                                Compare=Compare1=Compare2=Compare3=40;
                                TurnRight();
                        }
                else if(Data==5)
                        {
                                Compare=Compare1=Compare2=Compare3=30;
                                TurnLeftCircle();
                        }
                else if(Data==6)
                        {
                                Compare=Compare1=Compare2=Compare3=30;
                                TurnRightCircle();
                        }
                }
  }
}
               
void Timer0_Routine() interrupt 1
{
        TL0=0xA4;  //設置定時初值
        TH0=0xFF;  //設置定時初值
        Counter++;
        Counter%=100;                //計數值變化范圍限制在0~99
        Counter1++;
        Counter1%=100;        //計數值變化范圍限制在0~99
        Counter2++;
        Counter2%=100;        //計數值變化范圍限制在0~99
        Counter3++;
        Counter3%=100;        //計數值變化范圍限制在0~99
        if(Counter<Compare)
        {
                L298N_ENA=1;
        }
        else
        {
                L298N_ENA=0;
        }
        if(Counter1<Compare1)
        {
                L298N_ENB=1;
        }
        else
        {
                L298N_ENB=0;
        }
        if(Counter2<Compare2)
        {
                L298N_ENA1=1;
        }
        else
        {
                L298N_ENA1=0;
        }
        if(Counter3<Compare3)
        {
                L298N_ENB1=1;
        }
        else
        {
                L298N_ENB1=0;
        }
}


void UART_Routine() interrupt 4    //串口中斷
{         
gbRI=1;
if(RI==1)   //允許單片機接收數據
{
        Data=SBUF;                   //讀取數據
        UART_SendByte(SBUF);  //將接收到的數據發回串口
        RI=0;  //接收標志位清0 軟件復位
}
}

TEST-藍牙遙控 紅外循跡 超聲波跟隨小車.zip

59.76 KB, 下載次數: 18

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

使用道具 舉報

沙發
ID:1071654 發表于 2023-9-5 09:30 | 只看該作者
自頂下,望各位大神指點,感謝感謝!!!
回復

使用道具 舉報

板凳
ID:320306 發表于 2023-9-5 11:00 | 只看該作者
不是你自己寫的程序嗎?為啥還需要解釋?    if(gb_IR)
      IR_Tracking();//紅外循跡
                if(gb_ultrasonic)
                        Ultrasound_Dis();//超聲波跟隨這些不都有注釋嗎?
回復

使用道具 舉報

地板
ID:1071654 發表于 2023-9-5 17:57 | 只看該作者
zsyzdx 發表于 2023-9-5 11:00
不是你自己寫的程序嗎?為啥還需要解釋?    if(gb_IR)
      IR_Tracking();//紅外循跡
                ...

因為這個程序是根據我之前的一個問題里面兩位大神指點寫下來的,雖然我都寫了注釋,但是還是有點懵。
http://www.zg4o1577.cn/bbs/dpj-231199-1.html
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产伦精品一区二区三区精品视频 | 国产精品二区三区在线观看 | 久久国产一区 | 久久天堂网 | 中国一级特黄真人毛片 | 亚洲天堂精品一区 | 亚洲有码转帖 | 国产成人福利在线观看 | 亚洲欧美成人在线 | 欧美日韩在线一区二区三区 | 久久久青草婷婷精品综合日韩 | 久久99精品久久久水蜜桃 | 国产精品视频免费观看 | 一本一道久久a久久精品蜜桃 | 亚洲国产精品福利 | 91精品国产91久久久久久吃药 | 亚洲免费在线 | 国产欧美精品一区二区三区 | 99视频精品 | 亚洲国产日韩欧美 | 久久久久久久久久久久久久久久久久久久 | 欧美久久久久 | 一区二区三区视频在线 | 三级黄片毛片 | 国产美女一区二区 | 伊人网站在线观看 | 999久久久久久久久 国产欧美在线观看 | 欧美精品国产一区二区 | 国产传媒毛片精品视频第一次 | 免费在线观看一区二区 | 久久亚洲欧美日韩精品专区 | 精品一二三 | 国产亚洲精品精品国产亚洲综合 | 欧州一区二区三区 | 亚洲精品一区中文字幕乱码 | 日本又色又爽又黄的大片 | 欧美一区二区网站 | 欧美久久久网站 | 国产一区二区中文字幕 | 日日夜夜av | 国产精品一区二区三区四区 |