刚刚接触,菜鸟一个,调试了很久还是不对,谁能帮帮我啊
#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;
}
}
-
-
-
完善1.rar
下载积分: 积分 -1 分
18.11 KB, 下载次数: 38, 下载积分: 积分 -1 分
一周热门 更多>