步进电机驱动电路,帮我解答下吧。

[复制链接]
2122|0
 楼主| chank 发表于 2010-8-22 14:06 | 显示全部楼层 |阅读模式
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit a1=P3^5;
sbit a2=P3^6;
sbit a3=P3^7;
uint zhrun=0;
uint farun=0;
uint stop=0;
void moto(uchar n);
void interrupt0()interrupt 0{
uchar i;
EA=0;
if(a1==0)
{
for(i=4;i>0;i--){
zhrun=1;
}
}
if(a2==0){
for(i=4;i>0;i--){
  farun=1;
}
}
if(a3==0){
for(i=10;i>0;i--)
{
  stop=1;
}
}
  EA=1;
  EX0=1;
  IT0=0;
}
void moto(uchar n)
{
uchar idata zheng[]={0x08,0x0c,0x06,0x02,0x03,0x01,0x09};
uchar idata fan[]={0x09,0x01,0x03,0x02,0x06,0x0c,0x08};
uchar m,l=0;
if(zhrun==1)
{
   for(m=0;m<n;m++)
  {
    P1=zheng[l];
    l++;
    if(l==8)
    l=0;
   }
}
else
if(farun==1)
{
   for(m=0;m<n;m++)
  {
    P1=fan[l];
    l++;
    if(l==8)
    l=0;
   }
}
else
if(stop==1)
{
   P1=0x00;
}
}
void main()
{
EA=1;
EX0=1;
IT0=0;
while(1)
{
  moto(4);
  }
}


这个程序,用proteus仿真,电机不转啊。
图我传不上来,哪位高手帮忙看下啊,哪里出问题了。
新手上路,多多关照。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

3

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部