<實驗目的>
了解步進電機的的基本控制原理,掌握控制步進電機的轉速、轉向的程序設計方法。
<實驗內容>
用8255A的PA0~3分別控制步進電機的A、B、C、D四相,“1”則該相繞組通電,“0”則不通電。步進電機的驅動原理是使各相繞組依次通電來使其作步進式旋轉,通過通電順序和切換頻率來調節其轉速和轉向。步進電機可以四相四拍或四相八拍方式工作,即通電順序為:A→B→C→D→A;A→AB→B→BC→C→CD→D→DA→A。按相反的順序即可改變電機的旋轉方向。本實驗系統采用的是:AB→BC→CD→DA→AB。
註:電機在起動和停止時,不應該突然起、停。而應采用逐漸加速、減速的方式。至於起、停所需時間則依產品型號而定。
<實驗電路>
8255A: PA0~3與步進電機的BA~BD相連;
8253: GATE0接+5v;
CLK0接393分頻器的T2插孔(4.9125/4MHz),或T3~6插孔(分別是8、16、32、64分頻);
CS接譯碼器單元的Y2;
數據線D0~7與系統數據總線單元任壹插座相連;
譯碼單元: 譯碼器輸入A、B、C與系統地址線A2、A3、A4相連;
譯碼器控制端G與系統地址線A0下方的G相連。
8259單元: CS端與譯碼器單元的Y0相連;
D0~7與系統數據總線單元任壹插座相連;
最後,將8253的OUT0與8259的IR7相連。
<實驗程序>
CODE
SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE
ORG 3400H
H8:
JMP P8259
PORT0
EQU 0FFE0H
PORT1
EQU 0FFE1H
;-------------------初始化-------------------
P8259: CLI
MOV AX,OFFSET INT8259
MOV BX,003CH
MOV [BX],AX
MOV BX,003EH
MOV AX,0000H
MOV [BX],AX
CALL FOR8259
MOV SI,0000H
I8255: MOV DX,0FFDBH
MOV AL,8AH
OUT DX,AL
MOV BL,03
P8253: MOV DX,0FFD9H
;
IN AL,DX
;選擇3種轉速
TEST AL,01H
JNZ QQQ
TEST AL,02H
JNZ WWW
MOV DX,0FFEBH
;轉速0
MOV AL,34H
OUT DX,AL
MOV DX,0FFE8H
MOV AL,00H
OUT DX,AL
MOV AL,096H
OUT DX,AL
JMP OVER1
QQQ:
MOV DX,0FFEBH
;轉速1
MOV AL,34H
OUT DX,AL
MOV DX,0FFE8H
MOV AL,00H
OUT DX,AL
MOV AL,010H
OUT DX,AL
JMP OVER1
WWW:
MOV DX,0FFEBH
;轉速2
MOV AL,34H
OUT DX,AL
MOV DX,0FFE8H
MOV AL,00H
OUT DX,AL
MOV AL,0F0H
OUT DX,AL
OVER1:
STI
;中斷子程序------------------------------------
INT8259:CLI
MOV DX,0FFD8H
MOV SI,0FFD9H//通過PB7控制正反轉
IN AL,SI
AND AL,80H
JZ X59
XX59:
MOV AL,BL
OUT DX,AL
SHL BL,1
CMP BL,18H
JZ A1
CMP BL,12H
JNZ C1
MOV BL,03H
JMP C1
A1:
MOV BL,09H
C1:
MOV AL,20H
MOV DX,PORT0
OUT DX,AL
STI
IRET
X59:
MOV AL,BL
OUT DX,AL
SHR BL,1
CMP BL,81H
JZ A2
CMP BL,88H
JNZ C2
MOV BL,0CH
JMP C2
A2:
MOV BL,09H
C2:
MOV AL,20H
MOV DX,PORT0
OUT DX,AL
STI
IRET
;8259A初始化==============================
FOR8259:MOV AL,13H
MOV DX,PORT0
OUT DX,AL
MOV AL,08H
MOV DX,PORT1
OUT DX,AL
MOV AL,09H
OUT DX,AL
MOV AL,7FH
;IRQ7
OUT DX,AL
RET
CODE
ENDS
END H8
<思考與練習>
1. 計算出步進電機走壹步旋轉的角度,能否精確的回到原點。
答:18度,能。
2.如何控制步進電機的起、停?
答:用8253的GATE0門控制,高電平時起,低電平時停。
3.如何控制步進電機的轉速和轉向?
答:進入中斷,通過8355A的PB7輸入來控制正反轉向;