⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aexp15-5.asm

📁 微机接口技术的入门必备试验代码 试验平台msdi
💻 ASM
字号:
;**************************************
;  Aexp15-5.asm  步进电机起/停控制程序 *  
;  运行步骤:1.按下开关SW2,起动         *
;          2.按下任意键,退出           *
;**************************************     
code  segment
      assume cs:code,ds:code
      org 100h
start:jmp  begin
pstb      db 05h,15h,14h,54h,50h,51h,41h,45h          ;反向加电数据表
delaytime dw (?)				      ;延时变量参数
message   db 'press SW2 to start!',0ah,0dh            ;系统提示信息
          db 'if you want to quit,please hit any key!'
          db 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
            
wait1: ;判断开关SW2的状态
      mov  dx,302h              ;取8255的端口c的地址
      in   al,dx                ;读端口c的值
                                ;当按下开关sw2时,pc0口为低电平 
      and  al,01h               ;检测pc0口状态
      jnz  wait1
    
l0:   mov  si,offset pstb	;取反向加电数据表地址
      mov  cx,08h		;设置数据表循环参数

loop: ;检测任意键
      mov  ah, 0bh		
      int  21h			;调用DOS 21H 功能0BH 进行键盘判断
      cmp  al, 00h
      jne  over       		;检测到任意键退出

      ;延时
      mov  delaytime,0ffffh	;设置延时变量参数值,采用的是软件
				;延时方式,此值根据主机的频率而设定
      mov  ah,03h		;设置循环延时参数
l1:   mov  bx,delaytime		;进行软件延时,可根据主机频率
l2:   dec  bx			;调整延时变量参数值和循环延时参数
      jnz  l2
      dec  ah
      jnz  l1		

      ;送加电数据
      mov  al,[si]  		;取当前加电数据
      mov  dx,300h		;取8255的端口A的地址
      out  dx,al		;输出加电数据到端口A
      inc  si			;改变加电数据地址
      dec  cx			;修改数据表循环参数
      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


      ;返回DOS
      mov  ah, 4ch		;DOS功能调用
      int  21h         		;返回DOS 
code  ends
      end  start                 

 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -