微机原理课程步进电机设计报告

目     录

摘要:........................... 3

1 引言........................... 3

2 系统设计....................... 3

2.1系统的基本方案.............. 3

2.2 各模块的方案的选择和功能简述. 3

2.3 最终总体方案................ 4

2.4系统各模块的最终方案图....... 4

2.5 步进电机的工作原理.......... 4

2.6 8255的应用设计............. 5

2.7 转速的控制.................. 6

2.8 软件程序流程图.............. 7

2.9 系统的总体硬件原理图........ 8

3总结与致谢...................... 8

附件............................. 9

步进电机的微机控制

摘要:

微机原理是自动化专业和计算机专业的基础专业课,是对计算机系统和微处理器以及汇编语言、外围芯片的研究和学习。本设计就是基于8086CPU的微机控制,利用汇编语言,外围芯片8255的综合应用实例,连上硬件驱动电机电路,实施对步进电机的控制。通过此课程设计巩固了所学的知识,以及对汇编、C语言的温习和升华,同时是对我们动手、创新、独立思考问题能力的培养,为将来的计算机知识的进一步学习打下坚实的基础。

关键字:8086CPU  汇编程序   8255   驱动

1 引言

    在数控系统中,电机是控制系统的控制终端,所有的控制工作的目的就是为了控制电机的转速和方向。本文主要介绍一种控制步进电机的简单的系统搭建,和对电机的控制方法进行了论述。包括硬件接口的设计,汇编控制程序的编写,此方法简单,方便,通俗易懂。

2 系统设计

2.1系统的基本方案

PC机的控制模块,转速控制模块,转向控制模块,驱动模块

2.2 各模块的方案的选择和功能简述

由于本设计是基于星研环境下的汇编,以及给定实验室的实验仪器,PC机部分已经给定,可以直接利用。

转向控制模块:在设计当中,利用《微机原理和接口技术》所学知识,用8255外围接口芯片,通过对PC口的输出操作,实现对电机正反转的控制。

转速控制模块:在做8255并口实验的时候,利用对8255 A口或B口进行输入操作,检测各个开关的状态,而每个开关代表不同的速度,可以加速和减速。

驱动电路部分:经过查询,有两种方案可以进行驱动。

方案一:利用驱动芯片L297/L298芯片。SGS公司的L297单片步进电机控制集成电路适用于双极性两相步进电机或四相单极性步进电机的控制,与两片H桥式驱动芯片L298组合,组成完整的步进电机固定斩波频率的PWM恒流斩波驱动器。采用L297和L298实现的步进电机驱动,该电路为固定斩波频率的PWM恒流斩波驱动方式,适用两相双极性步进电机,最高电压46V,每相电流可达2A。采用此设计的步进电机驱动系统,在驱动二相或四相混合式步进电机时运动平稳,速度快,噪音低,控制精高,而且可选整步半步驱动。外观采用铝镁合金,散热性好,价格低廉,可广泛应用于需要驱动电流小于2A的混合式两相或四相步进电机的系统中。

方案二:利用驱动芯片ULN2003A。ULN2003A是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。 输入5VTTL电平,是高耐压、大电流、内部由七个硅NPN 达林顿管组成的驱动芯片,灌电流可达500mA,并且能够在关态时承受 50V 的电压,输出还可以在高负载电流并行运行。伺服电机、步进电机驱动等电路中。

 最终我选择了方案二。这两种驱动电路的不同之处在于驱动能力的不同,ULN2003的驱动电路只有500mA,可以驱动一些小型的电机,而298,297可以带动2A以上的电机。因为虽然方案一有很多的优点,但是要控制PWM斩波,调节占空比,对我来说有点困难,而且在实验仪器上的步进电机的功率不大,且仪器上用的ULN2003A驱动,用方案二完全可以完成实验,鉴于时间问题,只能在实验仪器上搭建硬件电路,综合以上考虑,选择了方案二。

2.3 最终总体方案

    以PC机为信息处理的核心,设计一块以可编程外围芯片8255为主体的硬件电路另加上驱动电机部分的ULN2003A芯片驱动,配合PC机对软件的控制处理,实现对电机转速、方向、加速和减速的控制。

2.4系统各模块的最终方案图

系统设计方案结构如图1所示

 

图1 系统设计总体方案

2.5 步进电机的工作原理

步进电机是将电脉冲信号转换成角位移或线位移的机电式元件,结构图如图2。这次试验仪上的电机是四相六线的。分A、B、C、D四相,其工作方式分为单四拍(A→B→C→D→A)、双四拍(AB→BC→CD→DA→AB)和单双八拍(A→AB→B→BC→C→CD→D→DA→A)。根据对各个相组合进行依次通电,便可以获得相应的节拍。本文采用的是双四拍的节拍信号。如图2所示为电机内部结构.

图2  电机内部链接

正转控制模型

反转控制模型 

2.6 8255的应用设计

可编程外围接口芯片8255有三个8位的输入输出端口A、B、C,有两种控制字:一类是定义各端口输入输出的工作方式,叫方式选择控制字。另一种是控制端口C的任一位的置位或复位操作,叫置位复位控制字。

本设计利用8255的方式选择控制字对其进行操作,A作输入端,C作输出端,工作于方式0:基本输入输出方式。A接在控制转速的开关上,C作输出操作A输入的各种响应。K0~K7为不同的速度控制键,其中K0为最低速度,K6为最高速度,K7控制电机的正反转,K7为0是反转,为1代表正转。硬件设计如图3所示

图3     8255硬件连接设计

  

2.7 转速的控制

    控制步进电机的速度,实际上是对控制系统发出的脉冲频率或换相的周期,即在升速的过程中使输出的脉冲频率逐渐增加;在减速的过程中使输出的脉冲频率逐渐减少。脉冲信号的频率可有软件控制和硬件控制。本文中采用了软件控制法,利用时间延迟的方法,利用不同的开关,写入不同的的延迟时间,表示不同的速度,可以加速,可以减速。

部分程序如下:

;定义延时子程序:延时程序是由两曾循环程序构成的BL是外曾循环的次数 CX是内层循环的次数延迟时间长则脉冲频率小转速慢

DELAY    PROC     NEAR  ;

DELAY1:   MOV     CX,0FFH

          MOV     BL,10H

DELAY2:   LOOP    DELAY2

          DEC     BL

          JNZ      DELAY1

          RET

DELAY ENDP

2.8 软件程序流程图

图4软件流程图

2.9 系统的总体硬件原理图

3总结与致谢

微机原理这门课程学完后我有很大的收获,对汇编语言有了初步的了解。并且通过本实验让我对汇编语言产生很大的兴趣,让我掌握了汇编编程的总体思路,本实验利用微机控制步进电机的调速,在实验过程中遇到的问题告诉我可以通过改变CX的赋值来控制电们理论的编程要结合实际的电动机技术指标调试延迟时间和实验箱的电机的转动速度。CX越小电动机的转动速度越大。也可以通过改变BL的值来改变单个开关的速度。我们把CX称为总开关,BL成为分开关。从而达到从K0到K6 速度逐渐变快,而K7控制电动机的反转。当K7闭合时 电动机反转。从这次实验中并让我进一步的学习到了8255的应用和掌握了8255 的初始化和其编程。对我们以后的工作和学习起到的积极的作用。

这次设计同时督促我查了许多的资料,让我学到了很多的知识,

附件

部分汇编程序

  DATA SEGMENT

COM_ADD       DW 00F3H  ;控制口偏移量

PA_ADD     DW 00F0H  ;PA口偏移量

PB_ADD     DW 00F1H  ;PB口偏移量

PC_ADD     DW      00F2H ;PC口偏移量     

BUF          DB     0      ;定义一个字节数据(用来存入开关的状态)

MES DB 'K0-K6 ARE SPEED CONTYOL',0AH,0DH;写入一些文字用来描述

    DB 'K6 IS THE HIGHEST SPEED ',0AH,0DH ;各个开关所代表的速度

    DB 'K0 IS THE LOWEST SPEED',0AH,0DH ;K0为最低速,K6为最高速

    DB 'K7 IS THE DIRECTION CONTROL',0AH,0DH,'$';K7为方向键

DATA ENDS

;2.代码段代码

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

       MOV     AX,DATA

       MOV     DS,AX  ;程序的初始化

       MOV     DX,OFFSET MES

       MOV     AH,09

       INT     21H    ;显示各个开关的信息

       MOV     DX,COM_ADD

        MOV     AL,92H ;(92H=10010010B,为控制字)

        OUT     DX,AL  ;  C口做输出,A口做输入

 ;送33H到A口输出 给后面电机的正反转提供初只  调用BIOS功能的INT16的1号功能,判断是否按下 如果有则返回DOS  如果没有判断开关的状态。

        MOV     BUF,33H

OUT1:   MOV     AL,BUF

         MOV     DX,PC_ADD

        OUT     DX,AL  ;间接寻址获得AL的值

        PUSH    DX

        MOV     AH,06h

        MOV     D1,0ffh

        INT     21H     ;检查是否有键按下               

        POP     DX

        JE      IN1     ;有键按下就停止,没有则转向IN1去执行

        MOV     AH,4CH

        INT     21H

IN1:    MOV     DX,PA_ADD

        IN      AL,DX   ;获得各个开关的状态               

        TEST    AL,01H

        JNZ     K0

        TEST    AL,02H

        JNZ     K1

        TEST    AL,04H

        JNZ     K2

         TEST    AL,08H

        JNZ     K3

        TEST    AL,10H

        JNZ     K4

        TEST    AL,20H

        JNZ     K5

        TEST    AL,40H

        JNZ     K6     ;检查各个开关的状态,分别转向相应的程序 

STOP:   MOV     DX,PA_ADD

        MOV     AL,0FFH

        JMP     OUT1   ;置停止信息并转向OUT1

;判断完状态则跳转到执行的程序  献给BL复制  实现岩石时间 控制转速  然后判断K7 的状态是1 还是0  。

K0:     MOV     BL,10H

SAM:    TEST    AL,80H;继续判断K7是否为0

         JZ      ZX0    ;为0就转向ZX0(循环右移程序)

        JMP     NX0    ;为1就转向NX0(循环左移程序)

K1:     MOV     BL,2FH ;BL为延时子程序的内层循环计数器

        JMP     SAM

K2:     MOV     BL,4FH

        JMP     SAM

K3:     MOV     BL,6FH

        JMP     SAM

K4:     MOV     BL,8FH

        JMP     SAM

K5:     MOV     BL,0AFH

        JMP     SAM

K6:     MOV     BL,0CFH

        JMP     SAM

ZX0:    CALL    DELAY ;调用延时子程序

        MOV     AL,BUF  

        ROR     AL,1

        MOV     BUF,AL

        JMP     OUT1   ;循环右移

NX0:    CALL    DELAY;调用延时子程序

        MOV     AL,BUF

        ROL     AL,1

        MOV     BUF,AL

        JMP     OUT1   ;循环左移

;延时程序是由两曾循环程序构成的 BL 是外曾循环的次数 CX是内层循环的次数严实时间长则脉冲频率小 转速慢

DELAY PROC NEAR  ;定义延时子程序

        MOV     CX,0FFH

DELAY2: LOOP    DELAY2

        DEC     BL

        JNZ     ST

ST:    RET

DELAY  ENDP

CODE  ENDS

END  START

 

第二篇:ARM课程设计步进电机控制报告

安徽电子信息职业技术学院

计算机科学系

《ARM嵌入式系统教程》课程设计报告

题目: 步进电机控制

指导老师: 郭志勇

学生姓名: 张迎兴 学 号: 100201131

专 业: 计算机控制

班 级:

20xx年 12 月 22 日

《ARM嵌入式系统教程》课程设计任

务书

题目: 步进电机控制

任务与要求:

步进电动机以最常用的三相六拍通电方式工作,并要求步进电动机

ARM课程设计步进电机控制报告

ARM课程设计步进电机控制报告

ARM课程设计步进电机控制报告

至 12 学生姓名: 张迎兴 学 号:100201131

专业: 计算机控制

指导教师: 郭志勇

- 1 -

摘 要:

随着微电子和计算机技术的发展,步进电机的要求量与日俱增,它广泛用于打印机、电动玩具等消费类产品以及数控机床、工业机器人、医疗器械等机电产品中,其在各个国名经济领域都有应用。研究步进电机的控制系统,对提高控制精度和响应速度、节约能源等都具有重要意义。

本控制系统的设计,有硬件设计和软件设计两部分组成。其中,硬件设计主要包括单片机最小系统、键盘控制模块、步进电机驱动模块、数码显示模块等功能模块的设计,以及硬件电路在电路板上的实现。软件设计包括主程序以及各个模块的控制程序,最总实验对步进电机转动方向及转动速度的控制,并且将步进电机的转动速度动态显示在LED数码管上。本系统具有智能性、实用性及可靠性的特点。

关键词: 步进电机;单片机;转速控制;方向控制;角度控制

- 2 -

目 录

摘要………………………………………………………………错误!未定义书

签。

关键词………………………………………………………2

一、设计目的………………………………………………………… 3

二、 课程设计计划表…………………………………………………………3 三、系统设计………………………………………………………………4

3.1步进电机电路图计

3.2步进电机程序设计设计四、 结束语………………………………………………………………6

五、参考文献…………………………………………………………

7

- 3 -

一、设计目的 1)了解步进电机的结构和工作原理。2)掌握步进电机控制系统的设计方 法及其调试技术。3)能够使用电路仿真软件进行电路调试。 步进电机驱动控制 系统设计内容二、课程设计进度计划表日 期12 月 8 号 至 12 月 11 号 12 月 12 号 至 16 号工 作 内 容上网收集资料,查阅相关内容执 行 情 况良好指导教师 签 字上机对步进电机电路图进行设 计及代码编写良好12 月 17 至 12 月 20 号上机调试对代码进行修改良好12 月 21 至 12 月 22 号对课程设计文档进行排版及制 作良好-4-

教师对进 度计划实 施情况总 评 签名 年 月 日三、系统设计3.1 步进电机电路图 如图 1-13.3VU111 12 XTAL1 XTAL2 P0.0/TxD0/PWM1 P0.1/RxD0/PWM3 P0.2/SCL/CAP0.0 P0.3/SDA/MAT0.0 P0.4/SCK/CAP0.1 P0.5/MISO/MAT0.1 P0.6/MOSI/CAP0.2 P0.7/SSEL/PWM2 P0.8/TxD1/PWM4 P0.9/RxD1/PWM6 P0.10/RTS1/CAP1.0 P0.11/CTS1/CAP1.1 P0.12/DSR1/MAT1.0 P0.13/DTR1/MAT1.1 P0.14/DCD1/EINT1 P0.15/RI1/EINT2 P0.16/EINT0/MAT0.2 P0.17/CAP1.2/TRST P0.18/CAP1.3/TMS P0.19/MAT1.2/TCK P0.20/MAT1.3/TDI P0.21/PWM5/TDO P0.22/TRACECLK P0.23/PIPESTAT0 P0.24/PIPESTAT1 P0.25/PIPESTAT2 P0.26/TRACESYNC P0.27/TRACEPKT0/TRST P0.28/TRACEPKT0/TMS P0.29/TRACEPKT2/TCK P0.30/TRACEPKT3/TDI P0.31/EXTIN0/TDO 13 14 18 21 22 23 24 28 29 30 35 36 37 41 44 45 46 47 48 1 2 3 32 33 34 38 39 8 9 10 15 16R2100RD1LED-BLUE D23.3VR4100RR910kR810kR710kR5FX UP DOWN 100RLED-BLUE D3 FX LED-BLUE D4R6100RUP3.3V 27 DBGSELLED-BLUE 9 5 7 10 12 6 11 1 15 IN1 IN2 IN3 IN4 ENA ENB VCC 4 VS OUT1 OUT2 OUT3 OUT4 GND 8DOWNR110k26RTCKU22 3 13 14 -146R310k 1.8V6 3.3V 40 17 5RSTV3 V3 V18 VSS VSS VSS VSS LPC2106C11uF43 31 19 7SENSA SENSBL298图 1-1-5-

3.2 步进电机控制程序设计如下:

#include "config.h"

#define KEY 0x00001c00

//uint16 speed=0;

uint16 speed=200;

uint8 flag=0;

uint8 round[8]={0x1,0x3,0x2,0x6,0x4,0xc,0x8,0x9}; uint8 back[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};

void delay(uint16 dly)

{ uint32 i;

for(; dly>0; dly--)

for(i=0; i<500; i++);

}

int main (void)

{

uint16 temp;

- 6 -

PINSEL0=0x00000000; PINSEL1=0x00000000;

IODIR=0x0000000f;

while(1)

{ if((IOPIN&KEY)!=KEY) { delay(10); } - 7 - if((IOPIN&KEY)!=KEY) { } //delay(20); if((IOPIN&KEY)==0x00001800) flag=~flag; if((IOPIN&KEY)==0x00001400) speed=speed-10; if((IOPIN&KEY)==0x00000c00) speed=speed+10; while((IOPIN&0x00001c00)!=0x00001c00);

} IOCLR=0x0f; if(flag==0) IOSET=round[temp]; else IOSET=back[temp]; temp++; if(temp>7) temp=0; delay(speed);

return 0;

}

四、结束语

经过这个学期对ARM的深入学习,并且在老师的悉心指导下和严格要求下,我们总于完成了步进电机设计课程。从书本上的知识到自己亲手的课程设计,每一步对我们来说无疑是巨大设为尝试和挑战。也成就了我们目前在大学期间完成的最大项目。

五、参考文献: 吴红星.《电机驱动与控制专用集成电路及应用》.北京:中国电力出版社,20xx年 董桂花.《步进电机控制系统的研究》.《农机化研究》. 20xx年03期。

- 8 -

相关推荐