labview通过51单片机控制电机

2019-07-17 15:52发布

刚刚接触,菜鸟一个,调试了很久还是不对,谁能帮帮我啊
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uint i;
uchar code tab[]={0x0c,0x06,0x03,0x09,0x09,0x03,0x06,0x0c};  //二相励磁
uchar maichong,tab_begin,flag;
uchar caozuo[2];
void delay(uint t)
{
uint x,y;
for(x=t;x>0;x--)
  for(y=50;y>0;y--);
}
void init()   //初始化
{
TMOD=0x20;   //设置定时器1为工作方式2
TH1=0xfd;         //波特率采用9600bps           
TL1=0xfd;
TR1=1;           //打开定时器
REN=1;      //允许串口写入
SM0=0;     //设置串口工作方式为8位异步收发,波特率可变
SM1=1;           
EA=1;            //打开串口中断,并读取串口函数
ES=1;   
}
void qudong()       //电机驱动
{
uchar i;
for(i=tab_begin;i<4+tab_begin;i++)   
{
  P0=tab[i];        //控制转向
  delay(maichong);     //控制转速
}
}
void main()
{
init();
while(1)
{
  maichong=caozuo[0];       //提取转速
  flag=caozuo[1];      
  tab_begin=(flag==1)?0:4;    //提取转向
  qudong();
}
}
void ser() interrupt 4    //串口函数   
{
if(RI==1)
{
  RI=0;    //接收第一个数据
  caozuo[i]=SBUF;
  SBUF=0xff;     //发送FF指示上位机发送第二个数据
  while(!ti);
  TI=0;
  i++;
  if(i==2) i=0;
}
}

捕获.JPG
完善1.rar 下载积分: 积分 -1 分
18.11 KB, 下载次数: 38, 下载积分: 积分 -1 分
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。