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

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日

悬赏问题

  • ¥50 swiftui @query 报错
  • ¥50 怎么解决刷卡或扫码后,点击软件输入框,win10屏幕键盘不会自动弹出的问题
  • ¥15 如何使用arcgispro的训练深度模型,发现water和nowater精度为0?(相关搜索:深度学习)
  • ¥20 matlab作业不太懂呀有问题能给个代码吗
  • ¥15 自制电路图为何无法驱动ESP01S?
  • ¥15 前端加access数据库
  • ¥15 ARCGIS 多值提取到点 ERROR 999999
  • ¥15 mysql异常断电, [MY-011971] [InnoDB]
  • ¥15 uni.onBluetoothDeviceFound熄屏不运行
  • ¥15 求PHDA糖尿病并发症数据集,有偿