通用步进电机控制器设计(精通单片机汇编语言的朋友进)
任务:1.步进电机驱动器能驱动四相步进电机。2.驱动器用两线控制方式,一根控制方向,一根控制速度。3.能用按键分别控制电机的启动与停止,正转,反转。4.能用按键分别设定正...
任务:
1.步进电机驱动器能驱动四相步进电机。
2.驱动器用两线控制方式,一根控制方向,一根控制速度。
3.能用按键分别控制电机的启动与停止,正转,反转。
4. 能用按键分别设定正转或反转的步数。
5. 能从按键调整正转或反转的速度。
6. 能显示设定的正转或反转的步数.
希望各位按上面要求做,给我提供源程序,并附必要的程序说明,另外给我个电路原理图(元件要清晰的)
我是单片机初学者,希望懂的朋友指点下 展开
1.步进电机驱动器能驱动四相步进电机。
2.驱动器用两线控制方式,一根控制方向,一根控制速度。
3.能用按键分别控制电机的启动与停止,正转,反转。
4. 能用按键分别设定正转或反转的步数。
5. 能从按键调整正转或反转的速度。
6. 能显示设定的正转或反转的步数.
希望各位按上面要求做,给我提供源程序,并附必要的程序说明,另外给我个电路原理图(元件要清晰的)
我是单片机初学者,希望懂的朋友指点下 展开
1个回答
2013-12-27
展开全部
实验七: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输入来控制正反转向;
<实验目的>
了解步进电机的的基本控制原理,掌握控制步进电机的转速、转向的程序设计方法。
<实验内容>
用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输入来控制正反转向;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询