51单片机步进电机控制汇编语言程序

来源:本站
导读:目前正在解读《51单片机步进电机控制汇编语言程序》的相关信息,《51单片机步进电机控制汇编语言程序》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《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;装载中断函数的偏移地址

MOV ES:[DI],AX

MOV AX,8100H;

MOV ES:[DI+2],AX

;-------------初始化8259A--------------

MOV DX,210H;ICW1初始化

MOV AL,13H;上升沿触发,单片,要ICW4

OUT DX,AL

MOV DX,211H;ICW2初始化

MOV AL,08H;初始化中断类型码范围,08-0F对应INT0-INT7

OUT DX,AL

MOV DX,211H;ICW4初始化

MOV AL,01H;

OUT DX,AL

;--------------打开中断--------------

MOV DX,211H;打开8259A八号中断

IN AL,DX

AND AL,0FEH;1111 1110

OUT DX,AL

STI;开CPU中断,IF=1

MOV BX,OFFSET NUM;取控制信号的偏移地址

MOV SI,0 ;将SI循环归零

LOP: MOV AX,0

JMP LOP;死循环,等待中断到来

;------------中断程序开始----------

INTP PROC FAR;

LTP:MOV DX,219H

MOV AL,[BX+SI]

OUT DX,AL

INC SI

CMP SI,04H

JNZ NEXT

MOV SI,0

NEXT: MOV CX,03FFFH ;简短延时

LOOP $

CALL REFRESH;调用按键扫描子程序

DEC DAT1 ;循环次数减一

JNZ LTP ;循环次数减为零时跳出循环

MOV AL,DAT2;重新填装DAT1的值

MOV DAT1,AL

MOV DX,210H;中断结束命令

MOV AL,20H

OUT DX,AL

IRET;中断返回

INTP ENDP

;-------按键扫描程序----------

REFRESH PROC FAR

MOV DX,218H

IN AL,DX

CMP AL,00H

JNZ NEXT1 ;若输入信号为00,则循环参量置为1

MOV DAT2,01H

NEXT1: CMP AL,01H

JNZ NEXT2 ;若输入信号为01,则循环参量置为2

MOV DAT2,02H

NEXT2: CMP AL,03H

JNZ NEXT3 ;若输入信号为11,则循环参量置为3

MOV DAT2,03H

NEXT3: CMP AL,07H

JNZ NEXT4 ;若输入信号为111,则循环参量置为4

MOV DAT2,04H

NEXT4 MOV DAT1,0H

RET

REFRESH ENDP

;-------按键扫描结束----------

CODE ENDS

END START

提醒:《51单片机步进电机控制汇编语言程序》最后刷新时间 2024-03-14 01:09:34,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《51单片机步进电机控制汇编语言程序》该内容的真实性请自行鉴别。