登录
首页 单片机论坛
回帖 发帖
正文

主题:单片机如何发脉冲控制步进电机

点击:8363 回复:24

f = 6n/B
n  电机转速
B  步距角
f  频率
用定时中断来置位或复位IO口输出一个脉冲,每中断两次输出一个脉冲
T_APR = T_BASE/2f
T_APR 定时器重载值
T_BASE 定时器时基
如51单片机的定时器重载值:
TAPR = 65536-T_APR
do{
     REC_TL = TxL;
     REC_TH = TxH;
    TAPR = 65536-T_APR+TxL+TxH*256;
   }while(REC_TL!=TxL)
TxL = TAPR%256;
TxH = TAPR/256;
09-11-05 12:56
如果用单片机直接控制步进电机,需在程序中做出步进电机旋转时IO状态做成表格,计算定时器重载值的方法同上(不用除2了),在中断中做一个环形计数器,每次中断时将查表得出的值直接输出到IO口。
09-11-05 13:05
xlian的程序还有点象那么回事,楼主说的应该是用现成驱动器的情况,就是脉冲加方向,所以不需要轮番的对IO口输出,3楼的就没任何实用价值,除了误导人,估计是教材看多了,楼主没看到是福气。51做这个控制定时器输出脉冲是唯一的选择,什么DJNZ啊FOR之类的就不要来了,如果需要进行加速度的处理最好是查表,因为51能力实在有限,发脉冲的间隙根本来不及复杂的计算,做在程序里或预先计算好都可以
09-11-05 15:08
#include    
sbit P10 = P1^0;
void main(void)
{
TMOD=0x01;
TR0=1;  
ET0=1;    
EA=1;    
while(1)  
{

}
}
timer0() interrupt 1
{
TH0=0x**;
TL0=0x**;
P10=~P10; }
是不是我写成这样你们才觉得爽呢?
09-11-06 21:13
这个不知道他看不看的懂
09-11-06 21:16
我 是看不懂啊,郁闷。。。。。
09-12-01 22:05
看你选择哪种控制方法,脉冲+方向还是双脉冲控制,再考虑怎末产生脉冲
09-12-08 18:59
谢谢了
10-02-27 09:45
谢谢,以上各位同仁的指点,方法我已知道了,只是还没有时间去试,这段时间再做一些低层的函数,已经大功告成,包括一些12864的全部底层函数,什么画图啊,画直线之类的,还有就是一些定时器,与PLC完全一样,想要多少定时器就有多少定时器,除了没有像PLC的编程软件,其它的基本一模一样,包括发脉冲
10-03-29 16:28
用这款RSI12864***这款液晶屏 UART 串口与单片机直接通信,就可以控制显示屏,占用口线少。
型号:RSI12864B***-00
显示模式:STN 蓝模负显
分 辨 率:128*64 Dots
VA  尺寸:72.0mm*40.0mm
工作电压:5.0V
接    口:RS232 or UART(TTL:5.0V)
◆基本特性◆
显示模式: STN 蓝模负显
VA  尺寸: 72.0mm*40.0mm
分 辨 率: 128*64 Dots
显示视角: 6:00
图片存储: 内建FLASH Memory,用于存储界面图片
2D  绘图: 支持2D(点、线、圆、矩形)图形绘制
字    库: 支持多国语言字库(如ASCII、中、日、韩……)
背光亮度: 支持软件可调
对 比 度: 支持软件可调
键    盘: 支持4*8键盘扫描功能,直接将键值发送给控制端
ID  识别: 支持ID识别功能,可实现一机多控
工作温度: -20~70℃
存储温度: -30~80℃
工作电压: 5.0V
通信接口: RS232 or UART(TTL:5.0V)
14-11-05 14:51

上一页 下一页

工控新闻

更多新闻资讯