实验四步进电机控制接口实验

  • 格式:doc
  • 大小:1.40 MB
  • 文档页数:6

下载文档原格式

  / 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

湖北科技学院计算机科学与技术学院《微机接口技术》实验报告

学号: 124221031 姓名:李亮亮

实验题目:步进电机控制接口实验报告

指导老师:范建军

实验日期: 2014.12.12

一、实验目的

通过步进电机控制实验,学习并行接口电路及其控制程序的设计原理与方法。

二、实验内容

基本实验四相步进电机,以双八拍方式运行。按开关SW1启动;按开关SW2,停止。

三、实验要求

利用MFID实验平台和步进电机驱动模块板进行硬件连接,利用MFIDE-6集成开发环境进行步进电机软件控制程序的设计、调试,直到使步进电机正常运行。

四、实验原理

1.步进电机驱动模块板电路原理如图2.1.2所示。模块板上包括接口的对象永磁式四相步进电机和驱动电路达林顿管TIP,保护电路74LS373,相序指示灯以及开关SW1和SW2等。

2.步进电机接口设计原理与方法的详细阐述,参考《微型计算机接口技术及应用》教材第7.3节(P146~151)。

图2.1.2 步进电机驱动模块电路原理框图

五、实验资源配置

1.电源:机内供电,将平台的电源开关拔到“内”的位置上,并将模块电源中并口电源接通

2.电缆线:采用单线/20芯扁平线

3.开关:T区的SW1、SW2和SW3可以配置为用来控制步进电机的运行方向、速度和

启动/停止

4.本实验所涉及的模块:F(8255模块),P(步进电机),T(按键开关),L(跳线)四个模块

5.I/O端口地址:8255的4个端口地址为300H~303H。其中A口=300H,B口=301H,C口=302H,命令口=303H

6.软件资源:MFID-6集成开发环境软件提供了丰富的汇编语言和C/C++语言程序开发工具

六、实验的硬件连接与软件编程

1.硬件连线:

F区P区

PA0 A相

PA2 B相

PA4 C相

PA6 D相

PC4 OE#74LS373开关

2.步进电机接口控制参考程序

①流程图 如图2.1.3所示。

实验上位机界面如下图:

图2.1.3 步进电机程序流程图

8255初始化 关74LS373

查SW 1按下?

相序表指针→SI 循环次数→CX

查SW 2按下?

相序代码→PA 开74LS373

延时 相序表指针SI+1` 循环次数CX-1 关74LS373

已到8次?

N

N

Y

Y

N

Y

开始 结束

实验代码:

;*------------------------------------------------------*

;* StepM.asm(步进电机控制接口实验) *

;* 步进电机控制程序Source File *

;* Copyright (c) 2001 by HUST *

;* Modify Date 2005.4.10 * ;*------------------------------------------------------*

code segment

assume cs:code,ds:code

org 100h

start:jmp begin

psta db 05h,15h,14h,54h,50h,51h,41h,45h ;相序表

message db 'Press sw2 to start !' ;系统提示

db 0dh,0ah

db 'If you want to quit,press sw1!'

db 0dh,0ah,'$'

begin: mov ax,cs

mov ds,ax

mov ah,09h ;显示提示信息

mov dx,seg message

mov ds,dx

mov dx,offset message

int 21h

mov dx,303h ;初始化8255A

mov al,81h

out dx,al

mov al,09h ;置PC4=1关闭74LS373

out dx,al

L: mov dx,302h ;查SW2按下?(PC1=0 ) in al,dx

and al,02h ;未按下,等待

jnz L

mov dx,303h ;置PC4=0,打开74LS37

mov al,08h

out dx,al

reload: mov si,offset psta ;设相序表指针

mov cx,8 ;设8拍循环次数

lop: mov dx,302h ;查SW1按下?(PC0=0 ?)in al,dx

and al,01h

jz quit ;已按下,退出

mov al,[si] ;未按下,送相序代码到PA口

mov dx,300h

out dx,al

mov di,0afh

mov bx,0ffffh ;延时

delay: dec bx

jnz delay

dec di

jnz delay

inc si ;相序表指针+1

dec cx ;循环次数-1

jnz lop ;未到8次,继续

jmp reload ;已到8次,重新赋值

quit: mov dx,303h ;置PC4=1,关闭74LS373 mov al,09

out dx,al

mov ah,4ch ;程序退出

int 21h

code ends

end start