當前位置:編程學習大全網 - 編程語言 - 通用步進電機控制器設計(精通單片機匯編語言的朋友進)

通用步進電機控制器設計(精通單片機匯編語言的朋友進)

實驗七:8255A+8253+8259A

<實驗目的>

了解步進電機的的基本控制原理,掌握控制步進電機的轉速、轉向的程序設計方法。

<實驗內容>

用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輸入來控制正反轉向;

  • 上一篇:知道日期 可以算星期嗎
  • 下一篇:Alphabet(字母控股)旗下子公司
  • copyright 2024編程學習大全網