📄 aexp15-4.asm
字号:
;***************************************************
; Aexp15-4.asm 步进电机正/反点动控制程序 *
; 运行步骤:1.每按下一次开关SW1,步进电机顺时针走一步; *
; 每按下一次开关SW2,步进电机反时针走一步*
; 2.按下任意键,退出 *
;*************************************************
code segment
assume cs:code,ds:code
org 100h
start:jmp begin
psta db 45h,41h,51h,50h,54h,14h,15h,05h ;正向加电数据表
pstb db 05h,15h,14h,54h,50h,51h,41h,45h ;反向加电数据表
status db(?) ;状态标志变量
delaytime dw (?) ;延时变量参数
message db 'press SW1 to move a step in clockwise!',0ah,0dh ;系统提示信息
db 'press SW2 to move a step in counterclock!',0ah,0dh
db 'if you want to quit,please hit any key!',0ah,0dh,'$'
begin:mov ax,cs
mov ds,ax ;取程序数据段地址
mov ah,09h ;显示系统提示信息
mov dx,seg message
mov ds,dx
mov dx,offset message
int 21h
;初始化8255
mov dx,303h ;取平台上8255芯片控制端口地址
mov al,81h ;初始化8255的A口,B口和C口高四位为输出模式
out dx,al ;C口低四位为输入模式
;打开74ls373
mov al,08h
out dx,al ;置pc4=0,打开数据缓冲器74LS373
mov status,00h ;初始化状态为0
l0: mov si,offset psta ;取正向加电数据表地址
mov ch,08h ;设置正向数据表循环参数
add status,01h
cmp status,01h
je l1
jmp loop
l1: mov di,offset pstb ;取反向加电数据表地址
mov cl,08h ;设置反向数据表循环参数
loop: ;检测任意键
mov ah, 0bh ;调用DOS 21H 功能0BH 进行键盘判断
int 21h
cmp al, 00h
jne over ;检测到任意键退出
;判断开关SW1的状态
mov dx,302h ;取8255的端口C的地址
in al,dx ;读端口C的值
;当按下开关SW1时,PC0口为低电平;当按下开关SW2时,PC1口为低电平
test al,01h ;检测pc0口的状态
jnz l3
l2: in al,dx
test al,01h
jz l2 ;循环检测直至放开
jmp l5
;判断开关SW2的状态
l3: test al,02h ;检测pc1口的状态
jnz loop ;反复检测直至有键按下
l4: in al,dx
test al,02h
jz l4 ;循环检测直至放开
;送反向加电数据
mov al,[di] ;取反向数据表的当前加电数据
mov dx,300h ;取8255的端口A的地址
out dx,al ;输出加电数据到端口A
inc di ;改变加电数据地址
dec cl ;修改反向数据表循环参数
jnz loop ;判断反向数据表循环是否结束
jmp l1 ;进行反向数据表的新的一轮循环
;送正向加电数据
l5: mov al,[si] ;取正向数据表的当前加电数据
mov dx,300h ;取8255的端口A的地址
out dx,al ;输出加电数据到端口A
inc si ;改变加电数据地址
dec ch ;修改正向数据表循环参数
jnz loop ;判断正向数据表循环是否结束
jmp l0 ;进行正向数据表的新的一轮循环
over: ;关闭74ls373
mov dx,303h ;取8255的控制端口的地址
mov al,81h
out dx,al
mov al,09h
out dx,al ;置pc4=1,关闭数据缓冲器74LS373
;保护8255
;mov al,9Bh ;置8255的A口,B口和C口为输入模式
;out dx,al ;对8255进行保护
;返回DOS
mov ah, 4ch ;DOS功能调用
int 21h ;返回DOS
code ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -