这是个进出碟程序,请高手帮忙看看程序!问题:烧到单片机后不工作

来源:百度知道 编辑:UC知道 时间:2024/06/14 14:30:45
#include"reg52.H"
#include<intrins.h>
sbit FWD=P2^4; //装载马达正转
sbit REV=P2^3; //装载马达反转
sbit SW1=P2^2; //光敏管1
sbit SW2=P2^1; //光敏管2
sbit SW=P2^0; //碟到位开关
unsigned a,b;
void main(void)
{AB:
EA=0;
FWD=0;
REV=0;
ES=0;
TMOD=0X02;
ET1=0;
ET0=1;
EX0=0;
EX1=0;
TH0=6;
TL0=6;
TR0=1;
TR1=0;
EA=1;

while(SW1==1)
{
FWD=1;
REV=0; //进碟
}
while(SW==1)
{
FWD=0;
REV=1; //出碟
}
if(SW2==0)
{
while(SW1==1)
{
FWD=0;
REV=0; //刹车
}
}
if(SW1==0)
goto AB;
else
{
a=5000;
D1: b=2000;
while(b>0)
{b--;}
if(a>0)

goto语句实在是C的一个大忌!估计楼主把这段代码的结构调整好,电机就可以工作了。

sbit FWD = P2^4; //装载马达正转
sbit REV = P2^3; //装载马达反转
sbit SW1 = P2^2; //光敏管1
sbit SW2 = P2^1; //光敏管2
sbit SW = P2^0; //碟到位开关

这几个检测、控制变量的关系,程序中的运用较滥。

深奥