单片机通过接受到数据控制步进电机 50C

#include
#include

unsigned char receiveData;

unsigned char code TAB[8]=
{ //定义表格一定要使用code,这样会做到程序存储区中
0x7F, //表格第1步数据0b01111111
0x3F, //表格第2步数据0b00111111
0xBF, //表格第3步数据0b10111111
0x9F, //表格第4步数据0b10011111
0xDF, //表格第5步数据0b11011111
0xCF, //表格第6步数据0b11001111
0xEF, //表格第7步数据0b11101111
0x6F, //表格第8步数据0b01101111
};

void UAR_Rec(void) interrupt 4 //

{       

        {

            receiveData=SBUF;
            RI=0;
          SBUF=receiveData;
          while(!TI);
        }

        if(TI)  TI=0;


 }

void mian(void)

 {

unsigned int a=0; //定义一个int型变量,做延时用
unsigned char b=7; //定义一个char型变量,显示内容用
TMOD&=0X0F;
TMOD|=0X20;
TH1=0XFA;
TL1=0XFA;
TR1=1;
SCON=0X50;
ES=1;
EA=1;

      while(1)
        {
            if(receiveData==1)  //接受到  1  执行下面的代码,可是我 
            {
    for(a=0;a<500;a++); //延时
    if(++b>7) b=0;     //b做加1操作,并限制在0-7以内
    P1=TAB[b];          //将TAB[b]的值送入P1口输出
    }
}





    }

附上代码,串口发送时数据也不返回数据,步进电机也不转???是什么原因,求大神帮忙!!!

2个回答

请附上原理图,现在的信息没办法分析

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐