51单片机步进电机控制汇编语言程序单片机步进电机控制汇编语言程序
本程序是通过秒信号触发中断来实现的,要求中断程序必须在1S内执行完毕;步进电机转速控制是通过8255输入
信号在每次执行中断程序内调整控制信号的循环次数来实现的。
CODE SEGMENT
ASSUME CS:CODE
START: PUSH CS
POP DS;数据段和代码段共用一个地址
JMP MAIN
NUM DB 08H,04H,02H,01H; 定义循环控制信号
DAT1 DB 0H ;定义循环参量
DAT2 DB 0H
;---------初始化8253计数器-----------
MAIN:MOV DX,203H;计数器0初始化,工作在方式3
MOV AL,36H
OUT DX,AL
MOV DX,200H;给计数器0赋计数初值960H(2400)
MOV AL,60H ;低8位
OUT DX,AL
MOV AL,09H ;高8位
OUT DX,AL
MOV DX,203H;计数器1初始化,工作在方式3
MOV AL,76H
OUT DX,AL
MOV DX,201H;给计数器1赋计数处值80H(128)
MOV AL,80H ;低8位
OUT DX,AL
MOV AL,00H ;高8位
OUT DX,AL
;-----------初始化8255---------------
MOV DX,021BH;A口输入,B口输出
MOV AL,90H
OUT DX,AL
;-----------初始化向量表8号中断--------
MOV AX,0;ES:DI
MOV ES,AX
MOV DI,20H;4*8=32
MOV AX,OFFSET INTP;装载中断函数的偏移地址