📄 adc.txt
字号:
CR8255 EQU 303H
PA8255 EQU 300H
PB8255 EQU 301H
PC8255 EQU 302H
DSEG SEGMENT
COMM1 DB 10000001B
COMM2 DB 10010001B
CANN DB 0
STARTH DB 0FH
ALEH DB 0DH
STARTL DB 0EH
ALEL DB 0CH
STDELA DW 200 ;约200ns
OE DB 0BH
EOC DB 1
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
BEGIN: MOV AX,DSEG
MOV DS,AX
MOV DX,CR8255
MOV AL,COMM1
OUT DX,AL ;初始方式命令
MOV AL,CANN
MOV DX,PA8255
OUT DX,AL ;置通道号
NOP
NOP
MOV DX,CR8255
MOV AL,ALEH
OUT DX,AL ;ALEH
MOV AL,STARTH
OUT DX,AL ;STARTH
MOV CX,STDELA
STDEL: LOOP STDEL
MOV AL,STARTL
OUT DX,AL
MOV AL,ALEL
OUT DX,AL
MOV AL,COMM2
OUT DX,AL ;第二次发方式命令
MOV DX,PC8255
WAITEOC: IN AL,DX
AND AL,EOC
JZ WAITEOC
MOV DX,CR8255
MOV AL,OE
OUT DX,AL
MOV DX,PA8255
IN AL,DX
MOV BL,AL
MOV DL,AL
MOV CL,4
SHR DL,CL
CALL DISPLAY
MOV DL,BL
CALL DISPLAY
MOV AH,2
MOV DL,10
INT 21H
MOV DL,13
MOV AH,2
INT 21H
MOV AH,0BH
INT 21H
AND AL,AL
JZ BEGIN
MOV AH,8
INT 21H
CMP AL,1BH
JNZ BEGIN
MOV AX,4C00H
INT 21H
DISPLAY PROC NEAR
AND DL,0FH
OR DL,30H
CMP DL,3AH
JC NEXT
ADD DL,7
NEXT: MOV AH,2
INT 21H
RET
DISPLAY ENDP
CSEG ENDS
END BEGIN
数模转换-模数转换
DAC0832 EQU 30FH
CR8255 EQU 303H
PA8255 EQU 300H
PB8255 EQU 301H
PC8255 EQU 302H
DSEG SEGMENT
COMM1 DB 10000001B
COMM2 DB 10010001B
CANN DB 0
STARTH DB 0FH
ALEH DB 0DH
STARTL DB 0EH
ALEL DB 0CH
STDELA DW 200 ;约200ns
OE DB 0BH
EOC DB 1
COUNT DB 0
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
ADC0809 PROC NEAR
MOV DX,CR8255
MOV AL,COMM1
OUT DX,AL ;初始方式命令
MOV AL,CANN
MOV DX,PA8255
OUT DX,AL ;置通道号
NOP
NOP
MOV DX,CR8255
MOV AL,ALEH
OUT DX,AL ;ALEH
MOV AL,STARTH
OUT DX,AL ;STARTH
MOV CX,STDELA
STDEL: LOOP STDEL
MOV AL,STARTL
OUT DX,AL
MOV AL,ALEL
OUT DX,AL
MOV AL,COMM2
OUT DX,AL ;第二次发方式命令
MOV DX,PC8255
WAITEOC: IN AL,DX
AND AL,EOC
JZ WAITEOC
MOV DX,CR8255
MOV AL,OE
OUT DX,AL
MOV DX,PA8255
IN AL,DX
MOV BL,AL
MOV DL,AL
MOV CL,4
SHR DL,CL
CALL DISPLA
MOV DL,BL
CALL DISPLA
MOV AH,2
MOV DL,10
INT 21H
MOV DL,13
MOV AH,2
INT 21H
RET
ADC0809 ENDP
DISPLA PROC NEAR
AND DL,0FH
OR DL,30H
CMP DL,3AH
JC NEXT
ADD DL,7
NEXT: MOV AH,2
INT 21H
RET
DISPLA ENDP
ENTE: MOV AX,DSEG
MOV DS,AX
MOV DX,DAC0832
MOV AL,COUNT
OUT DX,AL
MOV BL,AL
MOV DL,AL
MOV CL,4
SHR DL,CL
CALL DISPLA
MOV DL,BL
CALL DISPLA
INC COUNT
MOV CX,0100
DELAY: PUSH CX
MOV CX,0FFFFH
INDELA: LOOP INDELA
POP CX
LOOP DELAY
CALL ADC0809
MOV AH,0BH
INT 21H
AND AL,AL
JZ ENTE
MOV AH,8
INT 21H
CMP AL,1BH
JNZ ENTE
MOV AX,4C00H
INT 21H
CSEG ENDS
END ENTE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -