课 程 设 计 报 告 一、课程设计的性质和目的 通过课程设计,进行硬软件设计的方法和技能训练,巩固在课堂上学到的 有关硬件电路设计和相应程序设计的基本知识和基本方法,通过具体课题的训 练,达到能独立阅读、查阅资料、软硬件设计和调试完善特定功能的目的。 二、步进电机课程设计的要求 1、遵循硬件设计模块化。 2、要求通过自制 PCB 板、或板、或面包板设计实物。 3、程序设计结构化。 4、要求程序结构合理,程序简明易懂,有必要的注释。 三、主要仪器设及软件 PC机、Keil软件、 、ALTIUM DESINGERS09(PROTEL99)、 Proteus绘图软 件及仿真等。 四、课程设计题目及要求 见具体课题(有课题老师与选题学生共同商定) 地点: 信息工程学院实验室(有教师协调安排) 元器件领用:由指导教师签字在行政楼 301 领取 时间安排: 每天集中半天的辅导(具体师生协商安排) 五、课题分析及设计思路 硬软件设计思路 基于单片机的步进电机控制,可以通过四个按键分别实现开始/停止,正传 /反转,全速前进和单步前进。 通过外部中断来控制开始/停止按键可实时响应按键的输入。步进电机由两个 LED 分 别指示程序的运行状态,可以方便进行操作。 1 硬件设计框图 ○ 总体硬件电路图如下所示: 1 2 硬件设计电路图(按模块设计) ○ 1.单片机小系统 AT89C51 为 8 位通用微处理器, 主要管脚有: XTAL1 ( 19 脚) 和 XTAL2 ( 18 脚)为振荡器输入输出端口,外接 12MHz 晶振。 RST/Vpd ( 9 脚)为 复位输入端口, 外接电阻电容组成的复位电路。 VCC ( 40 脚) 和 VSS ( 20 脚) 为供电端口,分别接 +5V 电源的正负端。 P0~P3 为可编程通用 I/O 脚,其 功能用途由软件定义。 5l 系列单片机提供以下功能:4 kB 存储器;256 BRAM ;32 条工/ O 线 个全双向的串行口以及 时钟电路。 2.电机模块 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进 电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信 号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个 脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为 “步距角” ,它的旋转是以固定的角度一步一步运行的。制脉冲频率来控 制电机转动的速度和加速度,从而达到调速的目的。 2 步进电动机的励磁方式可分为全部励磁及半步励磁, 其中全步励磁又 有 1 相励磁及 2 相励磁之分,而半步励磁又称 1—2 相励磁。步进电机每输出一个 脉冲信号,步进电动机只走一步。因此,依序不断送出脉冲信号,步进 电动机即可连续转动。本设计选择半步励磁(1—2 相励磁) : 1—2 相 励磁法为 1 相与 2 相轮流交替导通。因分辨率提高,且运转平滑,每送 一励磁信号可走 9 度。若以 1—2 相励磁法控制步进电动机正转,其励磁 顺序如下所示(若励磁信号反向传送,则步进电动机反转):励磁顺序:A —AB—B—BC—C— CD— D— DA 驱动电路如下: 其中: 1B,2B,3B,4B 分别与 P10,P11.P12,P13 相连接。 步进电机时序表: 3.按键模块 通过四个按键分别实现对步进电机的不同功能的实现,电路图如下: 开始/停止和方向按键分别通过连接单片机的 P3.3,P3.2,用外部中断 的方式对其处理,可快速准确的相应中断,以实现对电机的控制。 4.LED 模块 通过两个 LED 分别指示开始/停止(D1) ,正/反转(D2) 。电路图如下: 3 软件设计思路 1 软件功能规划 ○ 软件部分整体功能由开始/ 停止键控制,只有当开始/ 停止键按下, LED1(D1)亮时,才能控制步进电机的转动。D1 点亮后,由 LED2(D2) 的亮灭来指示电机的正反转,当 D2 灯亮时,电机正转,D2 灭时,电机 反转。 当电机全速运行时,可通过开始 / 停止键和方向键控制电机停止转 动。重新按下按键时,电机正常运行。 2 软件流程图如下: ○ 六、程序主要代码与分析(关键代码要有注释) : #include reg51.h //51 芯片管脚定义头文件 4 #include intrins.h //内部包含延时函数 _nop_(); #define uchar unsigned char #define uint unsigned int uchar code FFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //正转电机编码 uchar code REV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; //反转电机编码 sbit K1 = P3^0; //全速 sbit K2 = P3^1; //单步 sbit K3 = P3^2; //正/反转 sbit K4 = P3^3; //开始/停止 sbit led1 = P0^0; //指示灯,表示开始/停止状态 sbit led2 = P0^2; //指示灯,表示正转/反转状态 int num=500; //延时函数的常量,控制步进电机的转速 uchar h=0; //设置变量,控制单步运行 uchar flag = 0; //控制运行状态,控制开始/停止 uchar flag1 = 0; //控制运行状态,控制正转/反转 void motor_ffw(); //函数声明 void motor_rev(); void motor_ffw2(); / /* 延时 t 毫秒,11.0592MHz 时钟,延时约 1ms void delay(int t) { uint k; while(t--) { for(k=0; k20; k++)
以上信息由无锡惠斯通电机科技有限公司整理编辑,了解更多步进电机,两相步进电机,混合式步进电机信息请访问http://www.huistong.com
联系我们
-
服务热线13901635301
- 联系人:赵先生
- 手机:13901635301
- 电话:0523-83765066
- 地址:江苏省兴化市张郭镇刘西工业园区民营路168号
/ / 步进电机延时 t 毫秒