#include<reg51.h>
#define uchar unsigned char
sbit jia_key=P3^6;
sbit jian_key=P3^7;
uchar num=0;
uchar code table[]={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6};
void delay(uchar i)
{
uchar j,k;
for(j=i;j>0;j--)
for(k=125;k>0;k--)
}
void key();
{
if(jia_key==0)
{
delay(5);
if(jia_key==0)
{
num++;
if(num==8)
num=7;
while(jia_key==0);
}
}
if(jian_key==0)
{
delay(5);
if(jian_key==0);
{
if(num!=0)
num--;
else
num=0;
while(jian_key==0);
}
}
}
void dispose();
{
switch(num);
{
case 0:
shu=1;
break;
case 1:
shu=2;
break;
case 2:
shu=3;
break;
case 3:
shu=4;
break;
case 4:
shu=5;
break;
case 5:
shu=6;
break;
case 6:
shu=7;
break;
case 7:
shu=8;
break;
}
}
void qudong()
{
uchar j,i;
for(j=0;j<8;j++)
{
P1=table[j];
for(i=0;i<shu;i++)
{
delay(20);
}
}
}
void main()
{
while(1)
{
key();
dispose();
qudong();
}
}
4拍我试过 还是不行 4拍就是改几个数据的 用过
改掉了还是不行 急用啊
本回答被提问者采纳用的低4位P1口传送数据 是51开发板 所以应该不用图吧 直接写程序就可以上开发板了
我的一个51单片机 ULN2003A驱动5线4相的步进电机 找了半天还是不知道哪...
电机驱动有讲究的,最好的办法就是用示波去去跟踪脉冲,看你是想走八拍的,如果你没做过,可以先走4拍试试,如果有脉冲,你就看一下是不是频率太高了,来不及反应。
...一个按键实现步进电机的正反转?驱动芯片用的是ULN2003A
在程序里定义一个位变量flag,按下按键时对它取反,若flag为1则正转,为0则反转,就可以了
请问能用ULN2003A控制24V的步进电机吗???控制器是AT889S52单片机。步进...
完全可以的哦 不用耦合的 ULN2003的 IN端接单片机的引脚 OUT步进电机 2003的公共端COM接到24v 这样就可以控制了的 2003本来是个复合的达林顿管子 内部就相当于耦合了 专门可以用来驱动低于50V的负载的 你找个ULN的数据手册看看典型应用就知道怎么用了 ...