首页论坛文档中心邮件
个性首页 | 登陆
返回列表 回复 发帖

步进电机控制

DSEG    SEGMENT 'DATA'
      ; add your data here!
      all_red   dw  0000_0010_0100_1001b
      all_off   dw  0000_0000_0000_0000b
      s1        dw  0000_1000_0110_0001b
      s2        dw  0000_0100_0101_0001b
      s22       dw  0000_0000_0100_0001b
      s3        dw  0000_0011_0000_1100b
      s4        dw  0000_0010_1000_1010b
      s44       dw  0000_0010_0000_1000b
      delaytime dw  10
DSEG    ENDS

SSEG    SEGMENT STACK   'STACK'
      db   256  DUP(0)
SSEG    ENDS

CSEG    SEGMENT 'CODE'
START:
      ; set segment registers:
      MOV AX, DSEG
      MOV DS, AX
      MOV ES, AX


      ; add your code here
      mov ax, all_red
      out 4, ax
      
      begin:
      
      ; 情况一: 东西绿灯亮,南北红灯亮,长延时
      mov ax, s1
      out 4, ax
      mov cx, delaytime
      ls1:
      CALL DELAY
      loop ls1
      
      ; 情况二:东西黄灯闪烁,南北红灯亮,短延时
      mov cx, 4
      flash2:
      mov ax, s2
      out 4, ax
      call delay
      
      mov ax, s22
      out 4, ax
      call delay
      
      loop flash2
      
      ; 情况三: 东西红灯亮,南北绿灯亮,长延时
      mov ax, s3
      out 4, ax
      mov cx, delaytime
      ls3:
      CALL DELAY
      loop ls3
      
      ; 情况四:东西红灯亮,南北黄灯闪烁,短延时
      mov cx, 4
      flash4:
      mov ax, s4
      out 4, ax
      call delay
      
      mov ax, s44
      out 4, ax
      call delay
      
      loop flash4
      
      jmp begin
      
      ;----------------------------------------
      DELAY PROC
      push cx
      mov cx, 10
      del:
      nop
      loop del
      pop cx
      RET
      DELAY ENDP

CSEG    ENDS
END    START    ; set entry point.
http://eaxi.com
返回列表 回复 发帖