Akiiiiilay 2023-03-13 08:32 采纳率: 100%
浏览 170
已结题

51循迹小车代码问题

51循迹小车,烧完没有反应,没有报错没有警告,麻烦帮忙看下代码


#include <REGX52.H>

sbit In1=P0^0;//L电机
sbit In2=P0^1;
sbit In3=P0^2;//R电机
sbit In4=P0^3;
sbit ENA1 = P1^3; //L使能
sbit ENB1 = P1^0; //R使能
sbit EL = P2^0;//L红外
sbit ER = P2 ^1;//R红外


unsigned char Jishu,Bijiao;

void Timer0Init()        //100微秒@11.0592MHz
{
    TMOD &= 0xF0;        //设置定时器模式
    TL0 = 0xA4;        //设置定时初值
    TH0 = 0xFF;        //设置定时初值
    TF0 = 0;        //清除TF0标志
    TR0 = 1;        //定时器0开始计时
    ET0 = 1;        //定时器0中断允许开关
    EA = 1;         //定时器总开关
    PT0 = 0;        //定时器0中断优先级
}
void  Timer0_T(unsigned char ABC) // 中断
{
    TMOD &= 0xF0;
    TMOD |= 0x01;
    Bijiao=ABC;
    Jishu++;
    if(Jishu>=100)
        Jishu = 0;
    if(Jishu<Bijiao)
    {
        ENA1=1;
        ENB1=1;
    }
    else
    {
        ENA1=0;
        ENB1=0;
    }
}
     

void car_go()
{
    In1=1;
    In2=0;
    In3=1;
    In4=0;
}
void car_L()
{
    In1=0;
    In2=1;
    In3=1;
    In4=0;
}
void car_R()
{
    In1=1;
    In2=0;
    In3=0;
    In4=1;
}

void Xunji()
{
    if(EL==1&&ER==1)
    {
        Timer0Init();
        Timer0_T(50);
        while(1)
        car_go();
    }
    else if(EL==0&&ER==0)
    {
        Timer0Init();
        Timer0_T(50);
        while(1)
        car_go();  
    }
    else if(EL==1&&ER==0)
    {
        Timer0Init();
        Timer0_T(20);
        while(1)
        car_R();
    }
    else if(EL==0&&ER==1)
    {
        Timer0Init();
        Timer0_T(20);
        while(1)
        car_L();   
    }
}
void main()
{
    while(1)
        Xunji();
}

  • 写回答

2条回答 默认 最新

  • 於黾 2023-03-13 08:38
    关注

    你这代码问题大了
    不管前面判断进哪个if,你后面都是死循环,再也不接受传感器信号了?
    主函数里有个死循环就行了,里面的死循环全删掉
    还有,使能信号你没有给,直接给电机,电机能动吗

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月21日
  • 已采纳回答 3月13日
  • 创建了问题 3月13日

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分