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

標(biāo)題: 51單片機(jī)藍(lán)牙遙控+超聲波跟隨+紅外循跡切換問(wèn)題 [打印本頁(yè)]

作者: wen1989jun    時(shí)間: 2023-9-4 17:58
標(biāo)題: 51單片機(jī)藍(lán)牙遙控+超聲波跟隨+紅外循跡切換問(wèn)題
各位大神好
以下是51單片機(jī)(STC89C52)藍(lán)牙遙控+超聲波跟隨+紅外循跡主程序,現(xiàn)在經(jīng)過(guò)測(cè)試功能均能實(shí)現(xiàn),能否幫忙解釋下主程序里面超聲波+紅外切換那塊還有問(wèn)題么?其他子程序是否還有問(wèn)題,有沒(méi)有什么優(yōu)化代碼的可能,感謝解惑。。。完整程序放置在附件

#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)//有新的串口數(shù)據(jù) 在串口接收中斷中加入gbRI=1;
     {
        gbRI=0;//新的串口數(shù)據(jù)已處理
        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;  //設(shè)置定時(shí)初值
        TH0=0xFF;  //設(shè)置定時(shí)初值
        Counter++;
        Counter%=100;                //計(jì)數(shù)值變化范圍限制在0~99
        Counter1++;
        Counter1%=100;        //計(jì)數(shù)值變化范圍限制在0~99
        Counter2++;
        Counter2%=100;        //計(jì)數(shù)值變化范圍限制在0~99
        Counter3++;
        Counter3%=100;        //計(jì)數(shù)值變化范圍限制在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)   //允許單片機(jī)接收數(shù)據(jù)
{
        Data=SBUF;                   //讀取數(shù)據(jù)
        UART_SendByte(SBUF);  //將接收到的數(shù)據(jù)發(fā)回串口
        RI=0;  //接收標(biāo)志位清0 軟件復(fù)位
}
}

TEST-藍(lán)牙遙控 紅外循跡 超聲波跟隨小車.zip

59.76 KB, 下載次數(shù): 18


作者: wen1989jun    時(shí)間: 2023-9-5 09:30
自頂下,望各位大神指點(diǎn),感謝感謝!!!
作者: zsyzdx    時(shí)間: 2023-9-5 11:00
不是你自己寫的程序嗎?為啥還需要解釋?    if(gb_IR)
      IR_Tracking();//紅外循跡
                if(gb_ultrasonic)
                        Ultrasound_Dis();//超聲波跟隨這些不都有注釋嗎?
作者: wen1989jun    時(shí)間: 2023-9-5 17:57
zsyzdx 發(fā)表于 2023-9-5 11:00
不是你自己寫的程序嗎?為啥還需要解釋?    if(gb_IR)
      IR_Tracking();//紅外循跡
                ...

因?yàn)檫@個(gè)程序是根據(jù)我之前的一個(gè)問(wèn)題里面兩位大神指點(diǎn)寫下來(lái)的,雖然我都寫了注釋,但是還是有點(diǎn)懵。
http://www.raoushi.com/bbs/dpj-231199-1.html




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1