请求:单片机控制步进电机C语言编程

来源:百度知道 编辑:UC知道 时间:2024/06/21 20:14:21
80C51单片机控制步进电机运动。认为步进电机是全步的,单片机P1.0控制电机方向,P1.1控制电机脉冲。P2.6接口控制键盘,键盘控制步进电机直线运动。当按下键时,单片机控制步进电机先前运动24MM,然后向后24MM到起点。其中在运动过程中,会遇到中断信号,P1.5接口的LED灯亮,但是电机仍继续运动,直到回到起点。其中单片机INT0接口接中断,步进电机75BF003。丝杠螺距0.5MM。C语言程序。谢谢
P1.0.P1.1.P2.6都是单片机的接口。实际上就是单片机控制步进电机运动,向前运动24MM。再向后24MM,在此运动过程中,会有中断信号传给单片机,单片机再接收到中断信号后,P1.5接口的LED亮,其中中断信号不打断步进电机运动。

你描述的要求不是很明了,应该分步描述,每一步的要求分步写出来,大家容易看懂.

明白你的意思了!

只有两个口控制步进电机的话,需要外加步进电机驱动器.
p1.0控制方向,p1.0是1(0)电机向前,p1.0是0(1)步进电机向后

p1.1控制步数和速度,用一个PWM就可以了,直接用定时器来控制.pwm频率越高速度越快,但要用在定时器中断里面计算步进的步数来确定走了多远.

至于你说的中断信号,可以用循环扫描的方法,在程序中扫描输入中断信号,当检测到信号后改变P1.5的电平,即可点亮LED

一楼说的步进电机驱动器对外置需要一个时钟,一个正反转控制信号,用这样的芯片自然简单,其实用单片机自己产生步进电机驱动信号也可以,之需要加晶体管驱动电路(加大驱动功率的作用),为了精确运动距离,首先得根据螺距算出要总共要转过的角度(多少圈领多少个脉冲)
至于中断信号可以将其设置成下降沿触发(电平触发会导致多次相应),不进电机驱动信号产生就用主函数中的主循环实现(设定好循环次数等固定信息)。

我想杀了你