亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 587|回復: 2
打印 上一主題 下一主題
收起左側(cè)

大佬幫忙看一下,我這個代碼到底哪里寫錯了?智能小車它一直運行的非?D

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1164343 發(fā)表于 2025-12-27 19:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include <reg52.h>
#include <intrins.h>


sbit Trig2 = P2^5;   
sbit Echo2 = P2^4;   
sbit Trig1 = P2^7;
sbit Echo1 = P2^6;
sbit Trig3 = P2^3;
sbit Echo3 = P2^2;
sbit AIN1 = P0^0;
sbit AIN2 = P0^1;
sbit PWMA = P1^0;
sbit BIN1 = P0^2;
sbit BIN2 = P0^3;
sbit PWMB = P1^1;

sbit AIN1_Front = P0^5;
sbit AIN2_Front = P0^4;
sbit PWMA_Front = P1^2;
sbit BIN1_Front = P0^7;
sbit BIN2_Front = P0^6;
sbit PWMB_Front = P1^3;


#define STOP_DISTANCE 20  
#define MAX_DISTANCE 400


void Delay10us(unsigned int us)
        {
    while(us--) {
        _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
        _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
    }
}

void Timer0_Init(void)
        {
    TMOD &= 0xF0;
    TMOD |= 0x01;   
    TH0 = 0;        
    TL0 = 0;
    ET0 = 0;        
    TR0 = 0;        
}
        void Delay_ms(unsigned int ms) {
    unsigned int i, j;
   
    for(i = 0; i < ms; i++) {
        for(j = 0; j < 120; j++) {
        }
    }
}
void Delay_ms(unsigned int ms);
unsigned int Get_Distance2(void);
unsigned int Get_Distance1(void);
unsigned int Get_Distance3(void);
void Motor_Stop(void);
void Turn1(void);
void Turn3(void);
void Motor_Forward(void);


unsigned int Get_Distance2(void) {
    unsigned int time_val = 0;
    unsigned int timeout = 50000;

    Trig2 = 1;
    Delay10us(2);   
    Trig2 = 0;

    while(!Echo2 && timeout--) {
        if(timeout == 0) return MAX_DISTANCE;
    }

    TR0 = 1;
    TH0 = 0;
    TL0 = 0;
    timeout = 50000;

    while(Echo2 && timeout--) {
        if(timeout == 0) {
            TR0 = 0;
            return MAX_DISTANCE;
        }
    }
    TR0 = 0;

    time_val = (TH0 << 8) | TL0;
    TH0 = 0;
    TL0 = 0;

    time_val = time_val / 63;
    if(time_val > MAX_DISTANCE) time_val = MAX_DISTANCE;
    return time_val;
}

unsigned int Get_Distance1 (void) {
    unsigned int time_val = 0;
    unsigned int timeout = 50000;
   
    Trig1 = 1;
    Delay10us(2);
    Trig1 = 0;
   
    while(!Echo1 && timeout) {
        timeout--;
    }
    if(timeout == 0) {
        TR0 = 0;
        return MAX_DISTANCE;
    }
   
    TH0 = 0; TL0 = 0; TF0 = 0;
    TR0 = 1;
   
    timeout = 50000;
    while(Echo1 && timeout) {
        timeout--;
    }
    TR0 = 0;
   
    time_val = (TH0 << 8) | TL0;
    TH0 = 0; TL0 = 0;
   
    time_val = time_val / 63;
   
    if(time_val > MAX_DISTANCE)
        time_val = MAX_DISTANCE;
   
    return time_val;
}

unsigned int Get_Distance3(void) {
    unsigned int time_val = 0;
    unsigned int timeout = 50000;
   
    Trig3 = 1;
    Delay10us(2);
    Trig3 = 0;
   
    while(!Echo3 && timeout) {
        timeout--;
    }
    if(timeout == 0) {
        TR0 = 0;
        return MAX_DISTANCE;
    }
   
    TH0 = 0; TL0 = 0; TF0 = 0;
    TR0 = 1;
   
    timeout = 50000;
    while(Echo3 && timeout) {
        timeout--;
    }
    TR0 = 0;
   
    time_val = (TH0 << 8) | TL0;
    TH0 = 0; TL0 = 0;
   
    time_val = time_val / 63;  
   
    if(time_val > MAX_DISTANCE)
        time_val = MAX_DISTANCE;
   
    return time_val;
}


void Turn1(void) {
   
    AIN1 = 0; AIN2 = 0; PWMA = 0;   
    BIN1 = 1; BIN2 = 0; PWMB = 1;   
   
    AIN1_Front = 0; AIN2_Front = 1; PWMA_Front = 1;  
    BIN1_Front = 1; BIN2_Front = 0; PWMB_Front = 1;  
}


void Turn3(void) {
   
    AIN1 = 1; AIN2 = 0; PWMA = 1;   
    BIN1 = 0; BIN2 = 0; PWMB = 0;   
   
   
    AIN1_Front = 1; AIN2_Front = 0; PWMA_Front = 1;  
    BIN1_Front = 0; BIN2_Front = 1; PWMB_Front = 1;  
}
void Motor_Forward(void) {
   
    AIN1 = 1; AIN2 = 0; PWMA = 1;
    BIN1 = 1; BIN2 = 0; PWMB = 1;
   
    AIN1_Front = 1; AIN2_Front = 0; PWMA_Front = 1;
    BIN1_Front = 1; BIN2_Front = 0; PWMB_Front = 1;
}
void Motor_Stop(void)
        {
    AIN1 = 0; AIN2 = 0;   
    BIN1 = 0; BIN2 = 0;   
    PWMA = 0; PWMB = 0;   
   
    AIN1_Front = 0; AIN2_Front = 0;   
    BIN1_Front = 0; BIN2_Front = 0;   
    PWMA_Front = 0; PWMB_Front = 0;   
}

void main(void) {
    unsigned int dist1, dist2, dist3;  
   
    Timer0_Init();      
    Motor_Stop();      
    Delay_ms(1000);     
   
    while(1) {
        dist2 = Get_Distance2();   
        Delay_ms(30);               
        dist1 = Get_Distance1();  
        Delay_ms(30);               
        dist3 = Get_Distance3();
        Delay_ms(30);            
        
        if(dist2 < STOP_DISTANCE) {
            Motor_Stop();           
            Delay_ms(200);         
            
            if(dist1 > dist3) {
              
                Turn1();     
                Delay_ms(400);      
                Motor_Stop();      
                Delay_ms(100);   
            } else {
                Turn3();      
                Delay_ms(400);   
                Motor_Stop();      
                Delay_ms(100);  
            }
            
            Motor_Forward();      
            Delay_ms(500);         
            
        } else if(dist1 < (STOP_DISTANCE / 2))
                                {
            Turn3();           
            Delay_ms(100);         
            
        } else if(dist3 < (STOP_DISTANCE / 2))
                                {
            Turn1();         
            Delay_ms(100);        
            
        } else {
            Motor_Forward();      
        }
        Delay_ms(100);         
    }
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:857072 發(fā)表于 2025-12-28 08:38 來自觸屏版 | 只看該作者
Delay_ms()不要用了就好99%了。
回復

使用道具 舉報

板凳
ID:1164343 發(fā)表于 2025-12-28 13:46 | 只看該作者
能具體講一下是哪個有問題嗎
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表