您的位置 首页 国产IC

单片机操控步进电机体系

学习了单片机在的基本输入输出和在数据采集领域的应用,接着学习了单片机在控制领域的应用。在控制系统中,通常要控制机械部件的平移和转动…

学习了单片机在的根本输入输出和在数据收集范畴的使用,接着学习了单片机在操控范畴的使用。在操控系统中,一般要操控机械部件的平移和滚动,这些机械部件的驱动大都选用沟通电机、直流电机和步进电机等,其间步进电机最适合与数字操控。因此在了解单片机在操控系统中的使用时,首要了解了单片机操控步进电机的规划。

首要器材:

1、AT89C52单片机芯片,用与承受键盘输入和操控步进电机。

2、4相步进电机驱动芯片STK672-040,内含有硬件脉冲分配电路和功率驱动动能。

3、4×4行列式键盘。

实验流程图:

实验电路图:

实验程序代码:
//Stepper.h程序

#ifndef_STEPPER_H//避免Stepper.h被重复引证

#define_STEPPER_H

#include

#define uchar unsigned char

#define uint unsigned int

#define T 10000// 10ms守时常量宏界说

sbit M1=P2^0;

sbit M2=P2^1;

sbit M4=P2^2;

sbit M5=P2^3;

sbit EN=P2^4;

sbit CWB=P2^5;

sbit RET=P2^6;

sbit CLK=P2^7;

#endif

//Stepper.c程序

#include “Stepper.h”

/*守时器0服务子程序*/

void time0() interrupt 1 using 1//用守时器0中止来发生CLK时钟

{

/*守时10ms,发生20ms周期的时钟,也便是50Hz的时钟*/

TH0 = -T/256;

TL0 = -T%256;

CLK = ~CLK;

}

/*键消抖延时函数*/

void delay(void)

{

uchar i;

for (i=300;i>0;i–);

}

/*键扫描函数*/

uchar keyscan(void)

{

uchar scancode,tmpcode;

P1 = 0xf0;//发全0行扫描码

if ((P1&0xf0)!=0xf0)//若有键按下

{

delay();//延时去颤动

if ((P1&0xf0)!=0xf0)//延时后再判别一次,去除颤动影响

{

scancode = 0xfe;

while((scancode&0x10)!=0)//逐行扫描

{

P1 = scancode;//输出行扫描码

if ((P1&0xf0)!=0xf0)//本行有键按下

{

tmpcode = (P1&0xf0)|0x0f;

/*回来特征字节码,为1的位即对应于行和列*/

return((~scancode)+(~tmpcode));

}

else scancode = (scancode<<1)|0x01;//行扫描码左移一位

}

}

}

return(0);//无键按下,回来值为0

}

/*主程序*/

void main()

{

uchar key;

TMOD = 0x01;//设置守时器0作业形式

EA = 1;

ET0 = 1;

/*设置为2相鼓励*/

M1 = 0;

M2 = 0;

/*设置为环形转向轨道*/

M4 = 1;

M5 = 1;

EN = 0;//堵截驱动输出

RET = 0;//归位输入无效

CWB = 1;//初始设置为顺时针方向

while(1)

{

key = keyscan();//调用键盘扫描函数

switch(key)

{

case 0x11:// 0行0列,发动键

EN = 1;//翻开驱动输出

TH0 = -T/256;//改动T能够改动步进电机滚动速度

TL0 = -T%256;

TR0 = 1;//守时器0开端计数

break;

case 0x21:// 0行1列,中止键

TR0 = 0;//守时器0中止计数

EN = 0;//堵截驱动输出

break;

case 0x41:// 0行2列,切换转向按键

CWB = ~CWB;

break;

case 0x81:// 0行3列,归位键

RET = 1;

delay();

RET = 0;

break;

default:break;

}

}

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/ic/267056.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部