找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1952|回复: 0
打印 上一主题 下一主题
收起左侧

请高手帮我看下这个程序步进电机的

[复制链接]
跳转到指定楼层
楼主
ID:67129 发表于 2014-10-9 11:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个是用89C52单片机做的一个驱动步进电机和LED发光管的程序 在用电位器调节AD取值电压的时候 LED获取的信号是正常的 步进电机为什么一直转啊转的  我用P1口的值在做比较  if语句不满足条件 应该没有脉冲信号给步进电机呀  为什么还是循环在转,请高手帮我解答下吧。

#include<reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit adrd=P3^7;                          //IO口定义
sbit adwr=P3^6;
sbit diola=P2^5;
sbit dula=P2^6;
sbit wela=P2^7;
uchar j,k,adval;
uint num,num1,i;
uchar code F_Rotation[4]={0x20,0x10,0x08,0x04};
void delay(unsigned char i)                //延时程序
{
  for(j=i;j>0;j--)
    for(k=125;k>0;k--);
}

void main()                //        主程序
{


    while(1)
  {
        P1=0xff;   //首先给P1口一个值
        num=P1;                        //把这个P1口的值赋给num变量作为比较
        delay(10);
    wela=1;
    P0=0;                       //选通ADCS
    adwr=0;                        //AD写入(随便写个什么都行,主要是为了启动AD转换)
    _nop_();
    adwr=1;
    P0=0xff;                    //关闭ADCS
    delay(10);
    wela=0;                     //关闭有AD片选信号锁存器的锁存端以防止在操作数码管时使AD的片选发生变化
    delay(20);
     wela=1;                   //重新打开有AD片选信号锁存器的锁存端
    // P1=0xff;                    //读取P1口之前先给其写全1
     P0=0;                       //选通ADCS
     adrd=0;                     //AD读使能
     num1=P1;                        //AD数据读取
     adrd=1;
     P0=0xff;                     //关闭ADCS
     adwr=0;   
     P1=num1;                //同时把AD的值送八个发光二极显示
         if(num!=num1)     //如果P1口的值发生了变化
                {        dula=1;                        //数码管关闭
                        P0=0;
                        dula=0;
                        delay(20);
                        num=num1;   //把num1赋值给num
                       
                        for(i=0;i<4;i++)      //4相
                     {
                             P0=F_Rotation[i];  //输出对应的相 可以自行换成反转表格
                             delay(20);        //改变这个参数可以调整电机转速 ,数字越小,转速越大
                         }
                }
                

   }
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表