1、基于protues步进电机仿真基于protues的步进电机仿真课程设计专业及班级 _ _ _姓 名_ _学 号_ _授 课 老 师_ _ _ _ _完 成 时 间_ _ _ _基于proteus的步进电机仿真摘 要步进电机是一种将电脉冲转变为角位移的执行机构,可通过控制脉冲数来控制角位移量。步进电机广泛应用在生产实践的各个领域。它最大的应用是在数控机床的制造中,因为步进电机不需要A/D转换,能够直接将数字脉冲信号转化成为角位移,所以被认为是理想的数控机床的执行元件。本设计利用proteus仿真软件进行电路仿真,系统通过设置六个按键分别控制步进电机的起止、方向、步进速度,使用1602液晶显示以上
2、参数。整个系统具有稳定性好,实用性强,操作界面友好等优点。关键词:proteus仿真步进电机1602一、整体电路分析如下图,整个设计以STC89C51单片机为中心,由复位电路,时钟电路,电机驱动,步进电机,显示电路等组成,硬件模块如图1所示:图1 硬件模块图通过按键进行相应的参数设定,单片机接收到信号后经过判断驱动电机驱动模块,然后由驱动电路驱动步进电机运转,并用LCD显示设置的参数。二、系统硬件电路选择与设计1、主控器的选择本次主控单元使用C51单片机对整个系统进行控制。STC89C51RC包含512字节RAM 、32条I/O口线、3个16位定时/计数器、8输入4优先级嵌套中断结构、1个串行
3、I/O口(可用于多机通信、I/O扩展或全双工UART)以及片内振荡器和时钟电路。电路图如下:图2 单片机最小系统电路图2、步进电机选择步进电机是一种能够将电脉冲信号转换成角位移或线位移的机电元件,它实际上是一种单相或多相同步电动机。单相步进电动机有单路电脉冲驱动,输出功率一般很小,其用途为微小功率驱动。多相步进电动机有多相方波脉冲驱动,用途很广。本设计使用的是四相三拍步进电机,连接图如下:图3 步进电机接线图3、驱动电路的选择L297、L298是步进电机专用控制器,它能产生4相控制信号, 可用于计算机控制的两相双极和四相单相步进电机,能够用单四拍、双四拍、四相八拍方式 控制步进电机。芯片内的P
4、WM 斩波器电路可开关模式下调节步进电机绕组中的电机绕组中 的电流。该集成电路采用了SGS 公司的模拟/数字兼容的I2L 技术,使用5V 的电源电压, 全部信号的连接都与TFL/CMOS 或集电极开路的晶体管兼容。图4 L297 L2984、键盘输入模块电路 设计中,键盘采用非编码键盘系统中的独立式按键结构。键盘工作方式采用定时扫描方式。采用定时器TO定时,通过输出数据,识别按键的工作状态。键 盘主要用来提供人机接口,电路如图3所示,采用独立式按键电路。按键功定义如下:当P1.5按下时,步进电机开始启动;当INTO按下时,步进电机停止;当P1.0按下时,步进电机开始加速;当P1.1按下时,步进
5、电机开始减速;当P1.2按下时,步进电机开始正转;当P1.3按下时,步进电机开始反转。连接图如下:图5按键接连接图5、显示电路的LCD显示模块是把LCD显示屏、背景光源、线路 板和驱动集成电路等部件构造成1个整体作为1个独 立部件使用,只留1个接口与外部通信。显示模块通 过这个接口接收显示的命令和数据,并按指令和数据 的要求进行显示,外部电路通过这个接口读出显示模 块的工作状态和显示数据。1602液晶模块内部的字 符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大 小写、常用的符号和日文假名等,每1个字符都有1个 固定的代码。用户对模块写入适当
6、的控制命令,即可 完成清屏、显示、地址设置等操作 。设计采用并行方式控制,LCD与单片机的通讯接口电路如图6所示。图6 1602显示电路接线图四、系统软件设计软件流程图图7 系统流程图五、总结本次设计利用仿真软件Proteus及KeilC5l进行调试。 系统实现了可程序设定和显示步进角、步进方向和步进速度,支持用开关量单独控制步进电机的启动和停止、转向、转速。通过此次课程设计,我不仅学会如何用单片机控制步进电动机,而且在查找资料的过程中也了解了许多课外知识,开拓了视野,使自己在专业知识方面和动手能力方面有了很大的提高,更让我学会了理论与实践的结合。最后,感谢丁老师的悉心教导以及同学的帮助! 六
7、、附录(1)整体电路图(2)程序代码#include lcd1602.h#define uchar unsigned char#define uint unsigned int/*功能:延时1.64ms *参数:无 */void delay1_64ms(void) uchar i; for(i = 0;i 250;i+) _nop_(); _nop_(); _nop_(); _nop_(); /*功能:延时40us *参数:无 */*void delay40us(void) uchar i; for(i = 0;i =0&a=0x0a &a= 0x0f) Lcd_Write(Lcd_Data,a+0x37);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1