当前位置:文档之家› 微机原理课程设计_步电机

微机原理课程设计_步电机

汇编及接口技术课程设计
题目:步进电机控制系统
成绩:
目录一.设计目的
二.设计内容
三.设计方案
四.软件设计
五.硬件线路设计
六.源代码
七.总结
步进电机控制系统
一、设计目的
1.了解步进电机控制的基本原理。

2.掌握控制步进电机转动的编程方法。

3.进一步熟练8255的使用。

二、设计内容
编程控制步进电机,使其能够正常运转,要求:
1.开关K8控制电机的启动与停止。

当K8向上拨时,电机启动,向下拨时电机停止。

2.开关K7控制电机的正反转。

当K7向上拨时,电机正反转;向下拨时,电机反转。

3.开关K1~K6控制电机的转速:K1向上拨时,得到最低转速,…… K6向上拨时,
得到最高转速。

4.在数码管上显示速度编号。

三.设计方案
四.软件设计
运用分支程序来调节开关的选择,再通过改变sx的大小和延时子程序来调节步电机的转动速度。

设计:k0-k5控制转速,k6控制正反,k7控制开始停止
五、硬件线路设计
1. 实验连线
8255模块的RD、WR 连到ISA总线接口模块的IOR#、IOW#,8255选通信号CS 连到ISA总线接口模块的IOY0。

8255模块的数据线D7~D0、连到ISA总线接口模块的XD7~XD0。

地址线A1~A0连到XA1~XA0。

步进电机的A—PB0,B—PB1,C—PB2,D—PB3。

1)8255的PA口(PA0---PA7)和开关K1-K8相连。

2)8255的PB口(PB0---PB3)和步进电机的A、B、C、D相连。

3) 8255的PC口(PC0---PC7)连接到LED的(a---h)。

六.源代码
DATA SEGMENT
P8255A DW 0600H
P8255B DW 0602H
P8255C DW 0604H
P8255M DW 0606H
TABDT DB 01H,03H,02H,06H,04H,0CH,08H,09H ;顺时针旋转
TABDT1 DB 09H,08H,0CH,04H,06H,02H,03H,01H ;逆时针旋转
TIMEP DW 100H ;时间参数
DCODE DB ? ;显示代码
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS,AX
;-------------------------------------------------------------------------------------------------------- FIRST: MOV DI,100H
MOV DX,P8255M
MOV AL,90H ;;;;;;;;;;;;;;;; ;
OUT DX,AL
A1: MOV DX, P8255A
IN AL,DX
TEST AL,40H ;K6=PA6
JZ A2
MOV BX,OFFSET TABDT1
jmp A3
A2: MOV BX,OFFSET TABDT
A3: MOV CX,0008H ;;;;;;;;;;;;;;;;;
NEW: MOV DX, P8255A
IN AL,DX
TEST AL,80H ;K8=PA7
JNZ THIRD
;-----------------------------------------------------------------------------------------------
SECOND: MOV DX, P8255B
MOV AL,0FFH ;停止步进电机
OUT DX,AL
JMP NEW
;---------------------------------------------------------
------------------------------------
THIRD: MOV DX,P8255B
MOV CX, 0008H
A4: MOV AL,[BX]
MOV DX, P8255B; 写B口
OUT DX, AL
CALL SWITCH
CALL DELAY ; 控制步进电机的转速
;CALL DISPLY
INC BX
LOOP A4
JMP A1
;-----------------------------------------------------------------------------------------------
FORTH: INC BX
LOOP NEW
DONE: JMP A1
EXIT1: MOV AX,4C00H
INT 21H
;---------------------------------------------------------
---------------------------------------- DELAY PROC NEAR ;延时程序PUSH CX
PUSH SI
DELO: MOV SI,DI
DL1: NOP
MOV CX, 0FFH ;;;;;;
DL2: LOOP DL2
DEC SI
JNZ DL1
POP SI
POP CX
RET
DELAY ENDP
DISPLY PROC NEAR ;显示程序NOP
RET
DISPLY ENDP
;-----------------------------------------------------------------------------------------
SWITCH PROC NEAR ;速度子程序
PUSH AX
PUSH BX
PUSH DX
MOV DX,P8255A
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
JMP STH1
K0: MOV DI, 1000H
jmp K6
K1: MOV DI, 200H
jmp K6
K2: MOV DI, 100H
jmp K6
K3: MOV DI, 50H
JMP K6
K4: MOV DI, 40H
JMP K6
K5: MOV DI, 10H
JMP K6
STH1: MOV AX,300H
K6: MOV TIMEP,AX
POP DX
POP BX
POP AX
RET
SWITCH ENDP
CODE ENDS
END START
七.总结
初学《微机原理》时,感觉摸不着头绪。

面对着众多的术语、概念及原理性的问题不知道该如何下手。

在了解课程的特点后,我发现,应该以实践为突破口,可以通过学习一个具体实践过程,了解和熟悉计算机的结构、特点和工作过程。

这次步电机设计历时一天多,在其中我有许多的不会,开始的设计什么的都不太会,在老师的帮助下学着一步步做8255片,步电机,开关部分是否硬件无损的测试,然后又学习怎么实现步电机的基本功能,虽然最后仍没弄太懂步电机的设计,设计也有一些缺陷,但是大体上还是完成了这次的实验,从中我学到了微机原理的实现,也学到了微机原理的重要性,实践的关键性。

11。

相关主题