基于51单片机的步进电机控制系统-单片机课程设计报告

各子模块电路如下: (1) 时钟产生电路

用于产生单片机的控制时钟,实际使用时采用11.0592M晶振。

(2) 复位电路

用于单片机手动复位。

(3) 1602液晶接口电路

用于连接1602液晶,P2.0—P2.2分别接RS、RW、EN,P0口接数据指令输入口。

二、步进电机驱动及接口电路

本电路模块用于单片机对步进电机的控制及使用ULN2003芯片对步进电机进行驱动。 原理图如下:

由于所选24BYJ48步进电机为四相步进电机,故只需4个单片机IO口控制,此处使用单片机的IO口P1.0-P1.3,使用ULN2003的引脚1-4做输入,16-13引脚做输出口。

三、按键电路

本次设计为了便于今后功能扩展使用了8个按键。

原理图如下:

第四章 程序设计

进入主程序后首先进行LCD初始化和定时器中断初始化,之后进行依次对按键进行扫描,当检测到相应的按键按下时,即执行相应的功能。 系统流程图如下:

开始LCD初始化定时器中断初始化K1被按下?是否K2被按下?否K3被按下?是当前为正转还是反转?反转direction取非,正转正转否是电机当前状态为运行还是停止?停止运行on_off取非,电机停止运行设置欲转圈数圈数加一或减一(到预设最大值或最小值时加减转换)on_off取非,电机启动direction取非,反转否K5被按下?否K4被按下?是是调速,电机运转速率加一或减一RATE最大时速率最小(到预设最大值或最小值时加减转换)点动,调用motor_RUN1();使用定时器1实现

第五章 系统调试

经过对程序的反复修改,调试之后,系统可以实现电机运行、停止,设置运行圈数,调节转速,电机正反转,点动等功能,同时液晶显示相应的状态。

第六章 心得体会

为其近一个月的单片机课程设计结束了,在这一个月中我收获了很多,感到很有意义。

早在大二自学单片机时我就注意到步进电机这种器件,但当时只是略作了解,没有学习它的原理与编程控制,这次借课程设计的机会,我得以对步进电机进行了较为深入的了解和学习。

在课设的前期我通过查阅了许多资料,学习了步进电机的工作原理。之后我开始考虑整体硬件电路的设计,显示、驱动电路的设计,最终选择使用28BYJ48型步进电机、ULN2003驱动芯片、1602液晶显示。在这之后我开始考虑要实现的电机功能,最后决定实现电机运行、停止,设置运行圈数,调节转速,电机正反转,点动等功能。在完成了原理图与PCB图绘制、电路元件焊接后,我开始着手进行程序设计。通过查阅资料我了解到控制步进电机的关键是利用定时器中断控制脉冲的快慢、顺序来调节电机转速、正反转等状态。以此为基础我开始了程序设计与调试,在这个过程中我遇到过一些困难,最后通过深入的学习、不断修改程序和同学的帮助终于得到解决。最终,本次课程设计完成了预想的对步进电机的几项基本控制功能。

步进电机调速系统适用各种现场自动化控制,特别应用于小功率负载的控制;具有成本底,性能稳定,可靠性高等优点。我觉得通过这次课程设计我对步进电机的基本控制得到了掌握,这对今后我在学习、工作的诸多应用场合中很可能会有用武之地。

另外,在这次课设过程中涉及的LCD1602控制等内容也对我很有帮助。通过本次课设我对51单片机的编程控制、定时器中断等知识也得到了充分的复习巩固。

总之,这次课设让我受益匪浅,感谢邱应强老师一学期来单片机课程的悉心教导,这些是我完成本次课设的基础和关键。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4