大连理工大学 计算机原理实验 步进电机.docx

上传人:b****6 文档编号:8183325 上传时间:2023-01-29 格式:DOCX 页数:11 大小:263.47KB
下载 相关 举报
大连理工大学 计算机原理实验 步进电机.docx_第1页
第1页 / 共11页
大连理工大学 计算机原理实验 步进电机.docx_第2页
第2页 / 共11页
大连理工大学 计算机原理实验 步进电机.docx_第3页
第3页 / 共11页
大连理工大学 计算机原理实验 步进电机.docx_第4页
第4页 / 共11页
大连理工大学 计算机原理实验 步进电机.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

大连理工大学 计算机原理实验 步进电机.docx

《大连理工大学 计算机原理实验 步进电机.docx》由会员分享,可在线阅读,更多相关《大连理工大学 计算机原理实验 步进电机.docx(11页珍藏版)》请在冰豆网上搜索。

大连理工大学 计算机原理实验 步进电机.docx

大连理工大学计算机原理实验步进电机

大连理工大学本科设计报告

(计算机原理接口实验综合设计)

 

题目:

步进电机控制系统设计

 

课程名称:

计算机原理实验

学院(系):

电子信息与电气工程学部

专业:

班级:

学号:

学生姓名:

成绩:

 

2015年12月26日

题目:

步进电机控制系统设计

1设计要求

利用实验台上的开关(K7-K0),实现步进电机的转速、转向控制。

具体要求如下:

1.利用D8255A的PA0-PA3做输出,输出步进电机的相序、驱动步进电机工作(使用四个LED监视步进电机的相序信号),相序之间的时间决定着步进电机的转速,而间隔时间有时由CX寄存器的初值决定(参见实验教材3.1.3章节)。

2.利用ADC0809将输入滑动变阻器的模拟信号转换成数字信号来控制步进电机的转速,当滑动变阻器在两端时转速最快,向中间转动时,步进电机的转速会逐渐减小,当转过中间之后,步进电机转向;

3.利用8253做秒脉冲发生器,产生约0.5秒的周期性方波信号。

其中CNT0做分频器:

将1MHZ信号分频为100HZ;CNT1做秒脉冲输出(2HZ);

4.利用386模块的主8259的MIR5做中断请求输入,将CNT1的OUT1秒信号方波作为中断请求信号,引发中断服务ISR;

5.在中断服务程序中实现对步进电机的转速、转向实时控制。

实现方法如下:

在ISR中,对ADC0809的输出进行一次输入操作,并根据输入的数据:

判断ADC0809输出的值,根据相应的值来判断步进电机的方向和转速;

2设计分析及系统方案设计

1.首先参照实验教材的相关内容,将步进电机运转起来。

在原有的参考程序中使用的是“输出立即数”方式来输出步进电机的相序,建议进行修改,以方便电机的转向控制。

使用“寄存器间接寻址”的方式输出相序信号:

将步进电机的相序数据定义在数据段当中,使用SI或DI查表(间接寻址)获取相序数据。

其中查表顺序决定着电机转动方向。

2.对8253进行编程,使OUT1输出秒脉冲方波信号,为了便于调试,建议使用逻辑笔监测OUT1的输出状态是否正常;

3.编制与中断相关的程序。

包括中断屏蔽字的设定、中断向量表的创建以及开中断的操作,以上这些都应当加到程序的初始化中;

4.编写中断服务程序ISR。

在ISR中读取ADC0809转换后的数据,然后进行数据分析、根据数据来调整CX寄存器中的数据,因而改变步进电机的转速。

3系统电路图

4外围接口模块硬件电路功能描述

8259A是专门为了对8085A和8086/8088进行中断控制而设计的芯片,它是可以用程序控制的中断控制器。

单个的8259A能管理8级向量优先级中断。

8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。

具有3个通道3种工作方式的可编程并行接口芯片

 

5主程序中主要变量说明

变量名称

内存单元

功能

SPEED2

DS:

0001

存储不同状态下对应的CX值

SPEED

DS:

0000

延时程序中dh的值

flag

DS:

0003

控制步进电机转动的方向和速度值

6系统软件中各个子程序的功能描述

子程序名称

入口参数

出口参数

功能描述

delay

cx要改变的值存放在SPEED2中

延时子程序,用来延时,改变步进电机的转速。

int_proc

将转速和转向存放在flag中

中断控制程序,通过中断改变延时程序中CX

7主程序程序流程图

8程序清单

.modelsmall

.386

IO_8255EQU200H

IO_8253EQU210H

AD_IOEQU220H

DATASEGMENT

SPEEDDB6

SPEED2DB70H

FLAGDB00H

ZZDB01H,03H,02H,06H,04H,0CH,08H,09H

FZDB09H,08H,0CH,04H,06H,02H,03H,01H

STOPDB00H,00H,00H,00H,00H,00H,00H,00H

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

;-------设置8253CNT0,CNT1----------

MOVDX,IO_8253

ADDDX,3

MOVAL,00110111B

OUTDX,AL

MOVDX,IO_8253

MOVAL,0

OUTDX,AL

OUTDX,AL

MOVDX,IO_8253

ADDDX,3

MOVAL,01010110B

OUTDX,AL

MOVDX,IO_8253

INCDX

MOVAL,20

OUTDX,AL

;-------设置8255----------

MOVDX,IO_8255

ADDDX,03

MOVAL,82H;A口作为输出B口作为输入

OUTDX,AL

;-------设置386EX主8259中断屏蔽字----------

INAL,21H

ANDAL,11011111B

OUT21H,AL

;-------设置中断向量表----------

PUSHDS

MOVAX,0

MOVDS,AX

LEAAX,CS:

INT_PROC;AX指向中断程序入口地址

MOVSI,35H;类型码=35H

ADDSI,SI

ADDSI,SI;35*4

MOVDS:

[SI],AX;中断向量表的IP值

PUSHCS

POPAX

MOVDS:

[SI+2],AX;中断向量表的CS值

POPDS

STI

;步进电机转向

L1:

MOVAL,FLAG

MOVAH,AL

ANDAH,80H

CMPAH,00H

JEL2

LEADI,ZZ

JMPL3

L2:

LEADI,FZ

;速度

L3:

ANDAL,7FH

CMPAL,00H

JNEL4

LEADI,STOP

L4:

MOVSPEED2,AL

MOVDX,IO_8255

MOVCX,08H

LP:

MOVAL,[DI]

OUTDX,AL

CALLDELAY

INCDI

LOOPLP

JMPL1

;-------中断服务子程序----------

INT_PROCPROCfar

PUSHAX

PUSHCX

MOVDX,AD_IO

OUTDX,AL;启动ADC

MOVDX,AD_IO;获取ADCEOC状态地址

ADDDX,2

L5:

INAL,DX

TESTAL,01H;测试EOC=1?

JZL5

MOVDX,AD_IO;读数据地址

INCDX

INAL,DX

MOVBL,AL

ANDBL,80H

CMPBL,00H

JNZL6

JMPL7

L6:

NEGAL

L7:

LEASI,FLAG

MOV[SI],AL

OUTDX,AL

MOVAL,20H;发送中断结束指令

OUT20H,AL

POPCX

POPAX

STI;允许中断发生

IRET

INT_PROCENDP

 

DELAYPROC

PUSHAX

PUSHCX

PUSHDX

MOVDH,SPEED

XORCX,CX

X1:

MOVCL,SPEED2

ADDCX,CX

ADDCX,CX;增大相序步长

ADDCX,00F5H

X2:

LOOPX2

DECDH

JNZX1

POPDX

POPCX

POPAX

RET

DELAYENDP

CODEENDS

ENDSTART

9系统调试运行结果说明、分析所出现得问题,设计体会与建议

硬件环境:

386EX实验箱

软件环境:

HQFC

设计语言:

汇编语言

本次实验将设计后的程序下载到386EX实验箱上,运行程序,旋转滑动变阻器,可以看到在滑到中间位置时,步进电动机会停止运行;滑过中间位置时,步进电机的转向发生了改变。

滑动变阻器在两端时,步进电机转速最快,在中间时,转速最慢,总体的设计效果已经实现。

在实验过程中,我还遇到了许多问题,最终解决问题,成功实现了设计要求的功能。

在实验中遇到的问题如下:

1)对8253,8255,8259芯片的初始化,以及中断屏蔽字和中断向量表的设置不太熟悉,经过对以前实验的复习,该问题得到解决。

2)对于程序的跳转不熟悉,时常出现死循环的现象。

3)在中断子程序的编写中注意关闭中断。

在解决了上述问题之后成功的实现了设计要求的实验现象。

10结论及设计体会

本次实验总体来说是成功的。

实现了设计要求的所有实验现象。

在实验的开始阶段我感到一筹莫展,不知道该从哪下手。

老师指导我们从基础程序做起,先把基础程序编好在逐渐的往上增加功能。

编好基本程序后,我逐渐找到了感觉,结合前几次做的实验,我成功的加入了8253芯片实现了脉冲,加入8259芯片实现了中断功能,加入了电位器,实现了通过电位器改变转速和转向的功能,完成了设计目标。

这次试验让我对汇编和硬件的结合有了深入的了解,也让我明白每次成功都是一点一滴的积累,最后非常感谢陈老师的耐心教导。

参考文献

[1]秦晓梅陈育斌,计算机原理综合实验教程,大连理工大学,2011

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 财务管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1