#include"reg51.h"
#include<intrins.h>
int p;
int q=12;
char flag;
int k=0;
char code turn[]= {0x20,0x60,0x40,0xc0,0x80,0x90,0x10,0x30};
void com_Init()
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
ES=1;
EA=1;
}
void delayms(int i)
{
char x,j;
for(j=0;j<i;j++)
for(x=0;x<=150;x++);
}
void main(void)
{
com_Init();
p=1;
P3=0x30;
while(1)
{
switch (p)
{
case 0: {k=k<8 ?k+1:0; P3=turn[k];delayms(q); flag=0,p=0;} break;
case 1: {k=k>0 ?k-1:7; P3=turn[k];delayms(q); flag=1,p=1;} break;
case 2: q=q+3; if(q==27) q=24;if(flag==0) p=0 ;else p=1; break;
case 3: q=q-3; if(q==0) q=3; if(flag==0) p=0; else p=1; break;
case 4: P3=0xf0; delayms(10);break;
default: p=0; break;
}
}
}
void res() interrupt 4
{
ES=0;
EA=0;
p=SBUF;
RI=0;
EA=1;
ES=1;
}
新手提问,各位大佬指教
这是一段控制步进电机的程序
就是我上面这段程序能正确生成hex文件,
然后我烧录进51单片机后,电机能一直转,但是我用电脑给单片机发送数据他控制不了正传、反转、加速、减速等,我怀疑是串口没有中断,但是我不知道怎么解决,各位大佬帮帮忙!!谢谢!!!