1、 单片机系统开发与应用工程实习 报告 选题名称 : 基于 AT89S52 单片机的控制步进电机 系(院) : 计算机工程学院 专 业 : 计算机科学与技术(嵌入式软件技术与设计) 班 级 : 姓 名 : 学 号 : 指导教师 : 学年学期 : 2009 2010 学年 第 2 学期 2010 年 5 月 30 日 摘要 : 步进电机是将电脉冲信号转变为角位移或线位移的开环控制 元件。 非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设 定的方向转动一个固定的角度,称为 “步距角 ”,它的旋转是以固定的
2、角度一步一步运 行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。由于 脉冲信号数与步距角的线性关系,加上步进电机只有周期性的误差而无累 积误差等特点,使得在速度、位置等控制领域用步进电机来控制变的非常的简单。 关键词: 步进电机;单片机;步距角 目 录 1 课题综述 . 1 1.1 课题来源和意义 . 1 1.2 预期目标 . 1 2 系统分析 . 1 2.1 框图设计 . 1 2.2 晶振电路 . 2 3 系统设计 . 2 3.1 硬件连接图 . 2 3.2 按键功能 . 3 3.3 单片机 . 3
3、3.4 驱动电路 . 4 4 软件设计 . 5 4.1 软件流程图 . 5 4.2 激磁方式 . 5 5 程序代码 . 6 总 结 . 11 参考文献 . 12 单片机系统开发与应用工程实习 计报告 1 1 课题综述 1.1 课题来源和意义 步进电机是一种将电脉冲转换成相应角位移或线位移的电磁机械装置,也是一种能把输出机械位移增量和输入数字脉冲对应的驱动器件。步进电机具体有快速启动、停止的能力,精度高、控制方便,因此,在工业上得到广泛应用。 1.2 预期目标 ( 1)开始通电时,步进电机停止转动。 ( 2)单片机分别接有按键开关 K1、 K2 和 K3,用来控制步进电机的转向,要求如下: 当按
4、下 K1 时,步进电机正转。 当按下 K2 时,步进电机反转。 当按下 K3 时,步进电机停止转动。 ( 3)正转采用 1 相激磁方式,反转采用 12 相激磁方式。 2 系统分析 2.1 框图设计 根据系统要求画出基于 AT89S52 单片机的控制步进电机的控制框图如图 2-1 所示。 图 2-1 基于 AT89S52 单片机的控制步进电机的控制框图 按键 电路 复位电路 晶振 电路 AT89S52 电源电路 驱动电路 步进电机 单片机系统开发与应用工程实习 计报告 2 系统主要包括单片机、复位电路、晶振电路、按键电路、步进电机及驱动电路几部分。 2.2 晶振电路 AT89S52单片机有一个用
5、于构成内部振荡器的反相放大器, XTAL1 和 XTAL2 分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。 晶振 模块自带振荡器、提供低阻方波输出,并且能够在一定条件下保证运行。最常用的两种类型是晶振模块和集成 RC 振荡器(硅振荡器)。晶振模块提供与分立晶振相同的精度。硅振荡器的精度要比分立 RC 振荡器高,多数情况下能够提供与陶瓷谐振槽路相当的精度 。 图 2-2 为晶振电路。 图 2-2 晶振电路 3 系统设计 3.1 硬件连接图 根据图 2-1,可以设计出单片机控制步进电机的硬件电路图,如图 3-1 所示。 图 3-1 硬件连接图 单片机系统开发与应用工
6、程实习 计报告 3 3.2 按键功能 按键采用 3 个功能键, K1、 K2 和 K3 按键开关分别接在单片机的 P0.0P0.2 引脚上,用来控制步进电机的转向,作为控制信号的输入端键。按 K1 时,步进电机正传;按 K2时, 步进电机反转;按 K3 时,步进电机停止转动。 3.3 单片机 At89s52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。使用 Atmel 公司高密度非 易失性存储器技术制造,与工业 80C51 产品指令和引脚完 全兼容。片上 Flash 允许程序存储器在系统可编程,亦适于 常规编程器。 At89s52 主要 技术参数
7、如下: 与 MCS-51 单片机产品兼容 8K 字节在系统可编程 Flash 存储器 1000 次擦写周期 全静态操作: 0Hz 33MHz 三级加密程序存储器 32 个可编程 I/O 口线 三个 16 位定时器 /计数器 图 3-2AT89S52 引脚图 单片机系统开发与应用工程实习 计报告 4 3.4 驱动电路 单片机的输出电流太小,不能直接与步进电机相连,需要增加驱动电路。对于电流小于 0.5A 的步进电机,可以采用 ULN2003 类的驱动 IC。 ULN2003 技术参数如下所示。 最大输出电压: 50V。 最大连续输出电流: 0.5A。 最大连续输入电流: 25mA。 功耗: 1W
8、。 如图 3-3 所示为 2001/2002/2003/2004 系列驱动器引脚图,图 3-3 左侧 17 引脚为输入端,接单片机 P1 口的输出端,引脚 8 接地;右侧 1016 引脚为输出端,接步进电机,引脚 9 接电源 +5V,该驱动器可提供最高 0.5A 的电流。 图 3-3ULN2003 单片机系统开发与应用工程实习 计报告 5 4 软件设计 4.1 软件流程图 程序设计流程图如图 4-1 所示,主要包括键盘扫描模块、步进电机正转模块、步进电 机反转模块和步进电机定时模块。 图 4-1 程序设计流程图 4.2 激磁方式 步进电机正转采用 1 相激磁方式,正转工作时序如表 4-2 所示
9、;步进电机反转采Y Y Y 开始 设置堆栈 步进电机停转 按键扫描 K1 按下吗 K2 按下吗 K3 按下吗 步进电机正转模块 步进电机反转模块 步进电机停转 读取表格 输出 结束 N N 单片机系统开发与应用工程实习 计报告 6 用 12 相激磁方式,工作时序如表 4-3 所示。 表 4-2 相激磁方式正转时序 步进数 P1.3 P1.2 P1.1 P1.0 代码 1 1 1 0 0 0FCH 2 1 0 0 1 0F9H 3 0 0 1 1 0F3H 4 0 1 1 0 0F6H 表 4-3 相激磁方式反转时序 步进数 P1.3 P1.2 P1.1 P1.0 代码 1 0 1 1 1 0F
10、7H 2 0 0 1 1 0F3H 3 1 0 1 1 0FBH 4 1 0 0 1 0F9H 5 1 1 0 1 0FDH 6 1 1 0 0 0FCH 7 1 1 1 0 0FEH 8 0 1 1 0 0F6H 5 程序代码 #include sbit p00 = P00; sbit p01 = P01; sbit p02 = P02; 单片机系统开发与应用工程实习 计报告 7 unsigned char code Forward4=0xFC,0xF9,0xF3,0xF6;/正转表格 unsigned char code Return8=0xF7,0xF3,0xFB,0xF9,0xFD,0xFC,0xFE,0xF6;/反转表格 void delay(unsigned int i)/延时 while(-i); /* 步进电机正转 P0口的第三口, P02*/ void turnfor(void) unsigned char i; while(1) if(p00 = 0) delay(1000); if(p00 = 0) break; if(p01 = 0) if(p01 = 0) break; for(i = 0; i 4; i+) P1 = Forwardi; delay(2000);