作者npualien (Lewis)
看板ASM
标题[问题] 8051控制步进马达
时间Tue Oct 6 20:45:39 2009
最近写一个程式来控制步进马达,
我使用Keil uVision3来撰写程式,
不过讯号送过去马达却没反应
想请板上高手解惑,感恩!
驱动器手册
http://www.motiontech.com.au/assets/pdf/IMS500.pdf
程式码
/********************************************************
#include <AT89X51.h> // 将硬体宣告AT89X51.H 包含进来
unsigned char i;
void delay_1m(unsigned int dly); //宣告delay_1m()函数
void main()
{
while(1)
{
P1 = 0xF2;
delay_1m(1);
P1 = 0xF3;
delay_1m(1);
}
}
/***************************************************************************
副程式 : delay_1m
输入引数 : 无号16位元整数unsigned int dly
说明 : 此副程式,引数dly为delay的长短控制
: 1 dly = 1msec
****************************************************************************/
void delay_1m(unsigned int dly)
{
int count; // 宣告count为一个整数变数(大小为16 bits)
// 当count=110,
// 执行while(count>0) count--; 约为1mS(石英晶体=11.0592MHz)
while(dly != 0)
{
count=11;
while(count>0)
count--;
dly--;
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.13.136.214
推 WolfLord:你的IO输出不对
不知道是哪边的IO接错了呢? 10/06 21:32
推 sorkayi:输出角是哪一只 有换别的晶片看看吗
你好,我用port1输出。 10/07 10:57
1F:推 squall0734:1.先确认硬体连接是否正确(参考datasheet 7.&8. ) 10/07 22:51
确认过接脚无误,7的部分controller的+5v是指High的讯号还是外接5v?
2F:→ squall0734:2.依照驱动时序图撰写程式(参考1.&5.&6.) 10/07 22:53
这方面我按照说明书打,不过不知道对不对。
3F:→ squall0734:3.验证驱动波形是否正确(接示波器看是否跟时序图一致) 10/07 22:53
4F:→ squall0734:还有~有接DRIVER跟自己用MCU+电路设计的程式是不同的~ 10/07 22:55
※ 编辑: npualien 来自: 163.13.136.214 (10/09 10:34)
※ 编辑: npualien 来自: 163.13.136.214 (10/09 10:36)
5F:推 sorkayi:用PORT 1 的话 那看看是不是你的脚错了 写 0xff 0x00 try 10/09 12:56
目前我接讯号到驱动器的光耦合器後都正常,用示波器量过了,不过马达还是没动作
我的CW-为5ms的方波,CW+为H(高电位),CCW+和CCW-为H,欲使正转,这样讯号和电路
有错吗?
6F:→ sorkayi:看看 8051 有没有坏了 上次我就烧坏几个了 10/09 12:56
※ 编辑: npualien 来自: 163.13.136.214 (10/09 16:08)
7F:推 sorkayi:电路有无接错 提升电阻 马达驱动要几伏特 10/10 14:37
基本上马达有自己的一套驱动器(独立电源和控制晶片),只要送正确的讯号就可以触发他
目前我试出在CO+和CO-送L的讯号,马达会锁死,不过正反转还是不行。
※ 编辑: npualien 来自: 163.13.136.214 (10/10 15:21)
※ 编辑: npualien 来自: 163.13.136.214 (10/10 15:22)
8F:推 squall0734:你的讯号频率是不是高於驱动器+马达的响应频率了~ 10/11 01:02
9F:→ squall0734:讯号模式除了1 0 以外还有频率问题喔~不知道你有注意ꠠ 10/11 01:03
10F:→ squall0734:在5.里面~Ta Tb Tc Td 都要符合标准才行~ 10/11 01:05
11F:→ squall0734:BTW~示波器用好一点~不然光那误差会搞死人的(亲身经历) 10/11 01:06
12F:推 squall0734:你在CW+跟CCW+的脚位连接到+5V,将CW-接在控制正转的脚 10/12 16:47
13F:→ squall0734:位,同理将CCW-接在控制反转的pin上~这样试试看~ 10/12 16:48
前几天发现一个很致命的问题,我把+5V用PORT来输出,将它改到回路上的+5V就可以动了。
※ 编辑: npualien 来自: 163.13.136.214 (10/21 11:17)