基于86外中断proteus仿真;按键控制流水灯方向和速度

按键1 控制流水灯放下,按一下改变一下

按键2 控制流水灯速度,, 随便设置了三级速度

DATA SEGMENT
FX DB 0
S1 DB 0
SD DW 300
POT_A EQU 30H
POT_B EQU 32H
POT_C EQU 34H
POT_K EQU 36H
DATA ENDS

CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START:
MAIN PROC FAR
    CLI
    MOV AX,DATA
    MOV DS,AX
    
    MOV AL,82H    ;8255
    OUT POT_K,AL
    PUSH DS
    XOR AX,AX
    MOV DX,AX
    MOV SI,60H*4
    MOV AX,OFFSET ZD
    MOV [SI],AX
    MOV AX,SEG ZD
    MOV [SI+2],AX
    PUSH DX
    MOV AL,1
HERE:
    STI
LED:    
    MOV AH,FX
    TEST AH,1
    OUT POT_A,AL
    JZ NIXIANG
    ROL AL,1
    JMP LED1
NIXIANG:ROR AL,1
LED1:
    MOV BL,100
DELA:
    MOV CX,SD
DEL: LOOP DEL
    DEC BL
    JNZ DELA
    JMP HERE
    
MAIN endp


ZD PROC
    PUSH AX
    IN AL,POT_B
    TEST AL,1
    JZ WAY
    TEST AL,2
    JNZ EXIT
NEX0:
    MOV AL,S1
    INC AL
    MOV S1,AL

    CMP AL,1
    JNZ NEX1
    MOV DX,3000
    MOV SD,DX
    JMP EXIT
NEX1:
    CMP AL,2
    JNZ NEX2
    MOV DX,1000
    MOV SD,DX 
    JMP EXIT
NEX2:
    CMP AL,3
    JNZ NEXT3
    MOV DX,300
    MOV SD,DX 
    JMP EXIT
NEXT3:
    MOV AL,0
    MOV S1,AL
    JMP NEX0
    
    
    
WAY: MOV AH,FX
    INC AH
    MOV FX,AH
    

EXIT:
    POP AX
    Iret

ZD endp

CODE ENDS
    END START

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值