CMP AL,30H ;键值大于30H,为方向控制键
JNC DIRE MOV DELAYTIME,AL
JMP RTN
DIRE:CMP AL,32H ;HERE 顺时针
JNE NEXT MOV DIRDSP,40H LEA BX,STEP JMP RTN
NEXT:CMP AL,33H ;EXEC 逆时针
JNE RTN MOV DIRDSP,46H LEA BX,STEP
ADD BX,08H ;逆时针控制表地址
RTN: MOV SI,BX RET CHKKEY ENDP
QUIT:MOV DX,C8279 MOV AL,0D2H OUT DX,AL jmp $
DELAY PROC NEAR
PUSH CX
;判断键值,获得相应延时循环值
第 16 页 共 22 页
MOV AL,20H ;\
SUB AL,DELAYTIME
JNZ L1 MOV CX,04H
L1: MOV AL,08H ;\
SUB AL,DELAYTIME
JNZ L2 MOV CX,05H
L2: MOV AL,00H ;\
SUB AL,DELAYTIME
JNZ L3
L3: MOV AL,21H ;\
SUB AL,DELAYTIME MOV CX,07H JNZ L4 MOV CX,08H
L4: MOV AL,09H ;\
SUB AL,DELAYTIME
JNZ L5 MOV CX,09H
L5: MOV AL,01H ;\
SUB AL,DELAYTIME
JNZ L6 MOV CX,0AH
L6: MOV AL,22H ;\
SUB AL,DELAYTIME
JNZ L7 MOV CX,10H
第 17 页 共 22 页
L7: MOV AL,0AH ;\
SUB AL,DELAYTIME
JNZ L8 MOV CX,20H
L8: MOV AL,02H ;\
SUB AL,DELAYTIME
JNZ L9 MOV CX,30H L9: MOV AL,03H SUB AL,DELAYTIME ;\
JNZ LOOP1 MOV CX,40H LOOP1:PUSH CX MOV CX,0155H LOOP2:NOP LOOP LOOP2 POP CX LOOP LOOP1 POP CX RET DELAY ENDP
DISPLAY PROC NEAR
PUSH BX MOV DX,D8279 MOV AL,DELAYTIME
LEA BX,LED ;查表显示速度值
XLAT
第 18 页 共 22 页
OUT DX,AL MOV AL,DIRDSP
OUT DX,AL ;显示电机转动方向 MOV CX,0006H ;显示界面\
LEA BX,DSP LOOP4:MOV AL,[BX]
OUT DX,AL INC BX LOOP LOOP4 MOV DX,C8279 MOV AL,0C2H OUT DX,AL POP BX RET DISPLAY ENDP
LED DB 07H,66H,06H,3FH DB 00H,00H,00H,00H
;LED显示
;按键值对应的表
DB 7FH,6DH,5BH,71H DB 00H,00H,00H,00H
DB 00H,00H,00H,00H DB 00H,00H,00H,00H DB 00H,00H,00H,00H DB 00H,00H,00H,00H
DB 6FH,7DH,4FH,79H DB 00H,00H,00H,00H
第 19 页 共 22 页
DB 77H,7CH,39H,5EH DB 00H,00H,00H,00H
DB 06H,5BH,4FH,66H DB 00H,00H,00H,00H DB 06H,5BH,4FH,66H DB 00H,00H,00H,00H
DSP DB 00H,00H,73H,79H,31H,6DH,00H
DELAYTIME DB 01H DIRDSP DB 40H
STEP DB 01h,03H,02h,06H,04h,0cH,08h,09H
DB 09H,08h,0cH,04h,06H,02h,03H,01h
CODE ENDS END START
;顺时针转表
;逆时针转表
7问题分析与解决方案
7.1 实验设计前后面临的问题分析
7.1.1 芯片的选择问题
在芯片选择上,有8253,8255,8279可供选择,开始的时候想使用这三者联合。使用8253作为定时时钟,输出给8255作为延时。后来发现在实验过程中,自己没有掌握汇编语言,不会编程序。所以最终选择8255与8279联合,由8279作
定时。
第 20 页 共 22 页