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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1704|回復: 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

回復

使用道具 舉報

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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美中文字幕在线观看 | 亚洲精品在线免费 | 亚洲国产一区在线 | 日韩中文字幕在线视频观看 | 日韩中文字幕一区 | 亚洲视频在线一区 | 日韩中文字幕在线视频观看 | 国产精品九九九 | 国产一区视频在线 | 在线āv视频 | 欧美精品在欧美一区二区少妇 | 国产永久免费 | 午夜精品久久久久久久久久久久 | 国产一区三区在线 | 国产精品久久久久久久久久三级 | 亚洲午夜视频在线观看 | 国产日韩91 | 亚洲一区视频 | 欧美国产亚洲一区二区 | 蜜月aⅴ免费一区二区三区 99re在线视频 | 亚洲高清视频在线观看 | 亚洲色综合 | 国产视频1区2区 | 欧美精品久久 | 伊人超碰在线 | 玖玖国产 | 国产资源视频 | 永久免费在线观看 | wwwww在线观看 | 亚洲第一在线 | 亚洲三区在线观看 | 日韩精品一区二区三区视频播放 | 国产精品区二区三区日本 | 日韩成人在线观看 | 国产精品久久国产愉拍 | 蜜桃av人人夜夜澡人人爽 | 中文字字幕在线中文乱码范文 | 97色在线视频| 毛片一级电影 | 性色视频| 亚洲一区二区三区在线免费观看 |