📄 lzf.txt
字号:
IOY0 EQU 0C400H ;片选IOY0对应的端口始地址
IOY1 EQU 0C440H
IOY2 EQU 0C480H
IOY3 EQU 0C4C0H
;*****************************************************************
MY8255_A EQU IOY0+00H*4 ;8255的A口地址
MY8255_B EQU IOY0+01H*4 ;8255的B口地址
MY8255_C EQU IOY0+02H*4 ;8255的C口地址
MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址
DA0832 EQU IOY1+00H*4 ;DA0832的端口地址
MY8254_0 EQU IOY2+00H*4
MY8254_1 EQU IOY2+01H*4
MY8254_2 EQU IOY2+02H*4
MY8254_MODE EQU IOY2+03H*4
AD0809 EQU IOY3+00H*4 ;AD0809的端口地址
DATA SEGMENT
STR1 DB 'FUN SPEED IS:',0AH,0DH,'$' ;定义显示的字符串
COUNT DW 0
YK DW ?
KEY DB ?
DATA ENDS
STACK1 SEGMENT STACK
DW 256 DUP(?)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET STR1 ;显示字符串
MOV AH,09H
INT 21H
MOV DX,MY8255_MODE ;初始化8255工作方式
MOV AL,89H ;工作方式0,B口输出,A口输入
OUT DX,AL
MOV YK,0000H
LOOP1: MOV DX,MY8255_C ;读A口
IN AL,DX
;MOV DX,AD0809
;IN AL,DX
MOV DX,DA0832
OUT DX,AL
MOV DX,MY8254_MODE ;初始化8254工作方式
MOV AL,10H ;计数器0,方式0
OUT DX,AL
MOV DX,MY8254_0
MOV AL,0FFH
OUT DX,AL
MOV CX,06AH
NEXT:
DIS: INC COUNT
CMP COUNT,0FFFFH
JNZ DIS
LOOP NEXT
MOV COUNT,0
MOV DX,MY8254_MODE ;初始化8254工作方式
MOV AL,00H ;锁存计数器0
OUT DX,AL
MOV DX,MY8254_0
IN AL,DX
MOV BL,0FFH
SUB BL,AL
MOV AL,BL
MOV KEY,AL
CMP AL,63H
JAE KKK
JMP LLL
KKK: MOV AL,63H
LLL: MOV AH,00H
MOV DX,MY8255_B ;写B口
OUT DX,AL
MOV YK,AX
MOV AX,YK ;将测速值YK送到屏幕显示
CALL DECSHOW
MOV DL,0DH
MOV AH,02H
INT 21H
MOV AH,1 ;判断是否有按键按下
INT 16H
JZ LOOP1 ;无按键则跳回继续循环,有则退出
QUIT: MOV AX,4C00H
INT 21H
DECSHOW PROC NEAR
MOV DX,0
MOV BX,10
DIV BX
ADD AL,30H
MOV AH,0EH
INT 10H
ADD DL,30H
MOV AH,2
INT 21H
RET
DECSHOW ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -