51单片机中如何用串口控制电机运行

2019-07-15 14:58发布

小女子一边看视频,一边学单片机串口的实验,下面是视频中没有问题的程序,可以成功地发送和接收相关的值:
void usartconfiguration()
{
        SCON=0x50;
        TMOD=0x20;
        PCON=0x80;//波特率加倍
        TH1=0xFA;
        TL1=0xFA;
        TR1=1;
        ES=1;
        EA=1;
}

void usart() interrupt 4
{
        unsigned char receive,i;
        receive=SBUF;
        RI=0;
        SBUF=receive;

        while(!TI);
        TI=0;
}

void main()
  {
          usartconfiguration();
        while(1);
        {
        }
  }


在此想自己在电脑中输入参数,实现对电机运动的控制,如输入1,电机正转,输入2,电机反转;于是将usart()函数改为:
void usart() interrupt 4
{
        unsigned char receive,i;
        receive=SBUF;
        RI=0;
        SBUF=receive;
        if(receive==1)
                {
                        for(i=0;i<8;i++)
                        {
                                P1=tap1;//tap1控制电机正转
                                delay(50);//已定义了delay函数
                        }
                }
        if(receive==2)
                {
                        for(i=0;i<8;i++)
                        {
                                P1=tap2;//tap2控制电机反转
                                delay(50);
                        }
                }
        while(!TI);
        TI=0;
}

红 {MOD}部分是后面添加用于控制电机,但是这样下来,发送数值,不仅电机不会转动,而且电脑中也不能接收到数值,请问这是为什么????

我看单片机例程,其中一个介绍输入数字用来控制LED灯,但用的是RS232串口,请问有什么区别??
小女子菜鸟一枚,希望大家赐教!!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。