微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 亲们看下这个51的程序有问题吗,为什么不执行啊!

亲们看下这个51的程序有问题吗,为什么不执行啊!

时间:10-02 整理:3721RD 点击:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit  int1=P1^2;
sbit int2=P1^3;//左轮输入
sbit int3=P1^4;
sbit int4=P1^5;        //右轮输入
sbit ENA=P1^6;
sbit ENB=P1^7; //PMW输入
sbit X1=P2^4;
sbit X2=P2^6;
sbit X3=P2^7;
sbit X4=P3^6;
sbit X5=P2^5;        //循迹红外3个输出
uchar zs1=0,zs2=0;
void zhizou()//直走
{
        int1=1;
        int2=0;
        int3=1;
        int4=0;
}
void zuozhuan() //左转1级
{
        int1=0;
        int2=0;
        int3=1;
        int4=0;
}
void zuozhuan2() //左转2级
{
        int1=0;
        int2=1;
        int3=1;
        int4=0;
}
void youzhuan()//右转1级
{
        int1=1;
        int2=0;
        int3=0;
        int4=0;
}
void youzhuan2()//右转2级
{
        int1=1;
        int2=0;
        int3=0;
        int4=1;
}
void yuandi()//原地寻找
{
        int1=1;
        int2=0;
        int3=0;
        int4=1;
}
void main()
{
        ENA=1;
        ENB=1;
        zhizou();
           if((X1==1)&&(X2==1)&&(X3==0)&&(X4==1)&&(X5==1))//直走
        {
        zhizou();
        }
        else
        if((X1==1)&&(X2==0)&&(X3==1)&&(X4==1)&&(X5==1))
        {
        zuozhuan();
        }
        else
        if((X1==1)&&(X2==1)&&(X3==1)&&(X4==0)&&(X5==1))
        {
        youzhuan();
        }
        else
        if((X1==0)&&(X2==1)&&(X3==1)&&(X4==1)&&(X5==1))
        {
        zuozhuan()2;
        }
        else
        if((X1==1)&&(X2==1)&&(X3==1)&&(X4==1)&&(X5==0))
        {
        youzhuan2();
        }
}

没有主循环,程序直接跑飞

能帮忙说下怎么修改吗?
谢谢

在main函数里加个while循环

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top