(完整word版)步进电机驱动程序(用定时的方式来控制步进电机)

更新时间:2023-06-07 23:37:29 阅读: 评论:0

#include <REG52.H>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit PUL  = P1^0;          //脉冲输入端
sbit DIR  = P1^1;          //方向控制端
sbit ENBL = P1^2;          //使能端       
uint num;
/*xms*1ms毫秒延时函数*/
void delay(uint xms)
{        uint a,b;
香菇炖鸡肉
        for(a=xms;a>0;a--)
形容速度快的句子                for(b=110;b>0;b--);
}
void init()
{
        TMOD|= 0x01;                          //设置定时器0为工作方式1,16为定时器/计数器
伶俐的读音        TL0 = (65535-10)%256;                //设置定时初值
        TH0 = (65535-10)/256;                //设置定时初值
        ET0  = 1;                                      //开启定时器0中断
        TR0  = 1;                                      //关闭定时器0
        EA  = 1;
}
常德战役void main()
{
    init();
        DIR  = 1;
          ENBL = 1;
        while(1)
        {if(num==12800)
                  {
                    DIR=~DIR;
新疆旅游必去十大景点                          num=0;
                  TR0=0;
东毒西邪                  delay(1000);
                  TR0=1;
                  }
        }
               
}
/*定时器0中断服务函数 */
void T0_timer() interrupt 1               
{
        TL0 = (65535-10)%256;                //设置定时初值
        TH0 = (65535-10)/256;                //设置定时初值
孔雀开屏鲈鱼//        TL0 = 0xEE;                //设置定时初值
//        TH0 = 0xFF;                                 
        PUL = ~PUL;
        num++;
}
使能端打开,电机处于工作状态
输出的脉冲数计数
//使能端关闭,电机处于停止工作状态
初始化定时器1
禁止所有中断
投影法
预加时间timer
256分频
启用定时器溢出中断
允许所有中断
常规中断服务
预加载timer
异或运算
计算方式65536-16000000/256/20HZ=62411

本文发布于:2023-06-07 23:37:29,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/897871.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:中断   电机   工作   旅游
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图