步进电机驱动程序

发布者:PeacefulAura最新更新时间:2015-06-18 来源: 51hei关键字:步进电机  驱动程序 手机看文章 扫描二维码
随时随地手机看文章
#include 

#define uchar unsigned char

#define uint unsigned int  

#define ulong unsigned long

#define CLK_WISE 0//顺时针方向转动

#define INVERSE 1//逆时针方向转动

bit direction=CLK_WISE;/***方向标志,取值为CLK_WISE 或INVERSE*/

static uchar speedcount=0;//加速标志,越大转速越快,最大到7,然后回归到0,循环。

//程序中可以依据它来改变占空比

uchar step[8]={0x01,0x09,0x08,0x0c,0x04,0x06,0x02,0x03};//8个步

uchar th_0[8]={0x5D,0x85,0x9E,0xAE,0xBA,0xC2,0xC9,0xCF};//8个定时器值,高8位

uchar tl_0[8]={0x3D,0xEE,0x58,0x9E,0x3E,0xF7,0xBF,0x2C};//8个定时器值,低8位

int step_i=0;//当前处于哪一步

/***定时器t0***/

void time0(void) interrupt 1 using 1

{

P2=step[step_i];//输出电机控制信号

if(direction==CLK_WISE) //顺时针转

step_i++;

else

step_i--;//逆时针转

if (step_i>7)//顺时针到最后一步,需要调整到第一步

step_i=0;

if (step_i<0)//顺时针到第一步,需要调整到最后一步

step_i=7;

TH0=th_0[speedcount];//根据当前速度设定定时器初值

TL0=tl_0[speedcount];

 

}

 

/****改变转向标志*****/

void int1_srv (void) interrupt 2 using 2

{

if(INT1==0)

{

while(!INT1);

 direction=!direction;

}

}

 

/*******加速********/

void change(void) interrupt 0 using 0

{

if(INT0==0)

{

while(!INT0);

  speedcount++;//记录加速次数

if(speedcount>7)

speedcount=0;//最大为7,然后从0开始循环。

}

}

void main()

{

EA=1;

TMOD=0x01;

ET0=1;//定时器0初始化

TR0=1;

 

EX0=1;

IT0=1;//外部中断0

 

EX1=1;

IT1=1;//外部中断1

 

TH0=th_0[0];

TL0=th_0[0];//定时器0初始值

 

while(1)

{

;

}

}

关键字:步进电机  驱动程序 引用地址:步进电机驱动程序

上一篇:单片机音乐-输出口P0.4 STC89C52RC测试通过
下一篇:AT89C51单片机驱动液晶显示汉字C语言

推荐阅读最新更新时间:2024-03-16 14:04

嵌入式Linux网络驱动程序的开发及实现原理
   0 引言   随着人们对开放源代码软件热情的日益增高,Linux作为一个功能强大而稳定的开源操作系统,越来越受到成千上万的计算机专家和爱好者的青睐。在嵌入式领域,通过对Linux进行小型化裁剪后,使其能够固化在容量只有几十兆字节的存储器芯片或单片机中,成为应用于特定场合的嵌入式Linux系统。Linux强大的网络支持功能实现了对包括TCP/IP在内的多种协议的支持,满足了面向21世纪的嵌入式系统应用联网的需求。因此,在嵌入式系统开发调试时,网络接口几乎成为不可或缺的模块。    1 嵌入式Linux网络驱动程序介绍   Linux网络驱动程序作为Linux网络子系统的一部分,位于TCP/IP网络体系结构的网络接口
[嵌入式]
步进电机如何选择
      选择步进电机应遵循先选电机后选步进电机驱动器原则,先明确负载特性,再通过比较不同型号步进电机的静力矩和矩频曲线,找到与负载特性最匹配的步进电机。   1、一般应选用力矩比实际需要大百分之五十到百分之百的步进电机,因为步进电机不能过负载运行,即便是瞬间过载都可能造成失步、停转或不规则原地来回作动。   2、上位控制器输入的脉冲电流必须够大(一般要》10mA),以确保光电耦合器稳定导通,否则会导致步进电机失步;如果输入脉冲频率过高,会因个别脉冲接收不到,导致步进电机失步。   3、启动频率不应太高,应在启动程序中设置加速过程,即从规定的启动频率开始,加速到设定频率,否则就可能不稳定,甚至处于惰态。   4、电机如果未固定好,
[嵌入式]
C64x系列DSP/BIOS中设备驱动程序的设计
摘要:为了高效地对外部设备进行控制,给硬件设备编写驱动程序是一种有效的解决方法。C64x系列的DSP系统提出了类/微型驱动模型的驱动程序结构。实践结果表明,采用类/微型驱动模型进行驱动程序设计后,应用软件可以复用绝大部分相似设备的驱动程序,因而极大地提高了驱动程序的开发效率。 关键词:数字信号处理器 I/O设备驱动 类/微型驱动模型 实时操作系统 随着新技术的不断涌现和DSP实时系统的日趋复杂,不同类型的外部设备越来越多。为这些外部设备编写驱动程序已经成为依赖操作系统管理硬件的内在要求。但是,由于内存管脚、响应时间和电源管理等条件的限制,为一个给定的DSP系统编写设备驱动程序有时候会很困难。针对设备驱动程序开发者遇到的上述难
[应用]
TMC5160步进电机驱动芯片开发使用笔记-1
内容主要来自TMC5160数据手册,个人的理解简单做下笔记: TMC5160做为驱动,作为控制器,控制一个或多个5160; 站在应用的角度去分析,不涉及过多方面; ​ TMC5160是高功率控制器和驱动IC,有串行(S和)。 它结合用于与产业最先进的步进电机驱动器自动目标定位柔性斜坡发生器。使用外部,高动态,高转矩的驱动器得以实现。 基于的复杂Spreycle™(高精度斩波)和StealthChop™技术,可以确保绝对无噪音的操作以最高的效率和最佳的扭矩相结合。 高集成度,高能源效率和小外形启用小型化和成本效益的解决方案可扩展的系统。完整的解决方案降低学习曲线降
[机器人]
51单片机驱动步进电机的电路及程序设计
在这里介绍一下用51单片机驱动步进电机的方法。 这款步进电机的驱动电压12V,步进角为 7.5度 . 一圈 360 度 , 需要 48 个脉冲完成!!! 该步进电机有6根引线,排列次序如下:1:红色、2:红色、3:橙色、4:棕色、5:黄色、6:黑色。 采用51驱动ULN2003的方法进行驱动。 ULN2003的驱动直接用单片机系统的5V电压,可能力矩不是很大,大家可自行加大驱动电压到12V。 ;********************************************************************************* ;****************************
[单片机]
51单片机驱动<font color='red'>步进电机</font>的电路及程序设计
非接触式远程自动体温测量仪设计
某些传染病(例如甲流感)危害着人类的健康,其特征是体温的异常,然而在公共场所,例如车站、学校、宾馆以及娱乐场所等检测人体体温并不是一件容易的事,一般采用非接触式测温计可以减少交叉感染。现有的红外电子体温计只能实现近距离现场体温测量,且功能单一。本设计研制的红外体温测量仪通过测量计算出不同距离情况下红外接收探头接收到的热辐射波的衰减量,能够较远距离的实现较精确的温度测量,真正的实现了非接触测量。当人站立在该装置前时,能自动调节温度传感器探头对准额头进行测量人体温度,温度数据经无线传输模块可以传到100米外的主控机并显示,当温度过高时会自动报警。 1 总体方案框图 非接触式远程自动体温测温仪总体方案框图如图1所示。 2
[单片机]
非接触式远程自动体温测量仪设计
步进电机加减速程序,适合做GPIO设置
#include stm32f10x_lib.h #include main.h TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; GPIO_InitTypeDef GPIO_InitStructure; ErrorStatus HSEStartUpStatus; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; int pulse; int StepCount; int pulse1; int pulse2; int t1; int t2; int r1; int r2; void RCC_Configuration(void); void
[单片机]
DSP和PBL3717A构成的步进电机的控制系统
摘要:介绍由美国TI公司的数字信号处理器TMS320LF2407A和SGS公司的步进电机驱动芯片PBL3717A构成的两相混合式步进电机的控制系统。 关键词:PBL3717A DSP 步进电机 控制系统 引言 步进电机是数字控制系统中的一种重要执行元件,广泛应用于各种控制系统中。它是一种将电脉冲信号转换为位移或转速的控制电机,输入一个脉冲信号,电机就转动一个角度或前进一步。其机械角位移和转速分别与输入电机绕组的脉冲个数和脉冲频率成比例,可以通过改变脉冲频率在大范围内调速,易于与计算机或其它数字元件接口,适用于数字控制系统。随着超大规模集成电路技术的迅速发展,DSP(Digital Signal Processor数字信号处理
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved