📄 19_549.asm
字号:
;//****************************************************************
;文件名:串行A/D转换器TLC549转换程序 FOR 8088
;功能:把模拟信号转换成数字量,并通过数码管显示被转换的数字量。
;接线: 对应连接串行模数转换模块的DATA、CLK、CS_549到8255模块的PC0、PC4、PC5
; 8255模块的CS_8255连CPU模块的200H。
;//********************************************************************
;PC0——DATA
;PC4——CLK
;PC5——CS_549
PA8255 EQU 200H ;8255PA口地址
PB8255 EQU 201H ;8255PB口地址
PC8255 EQU 202H ;8255PC口地址
PCTL8255 EQU 203H ;8255控制口地址
Z8279 EQU 239H
D8279 EQU 238H
LEDMOD EQU 00 ;左边输入,八位显示外部译码八位显示
LEDFEQ EQU 38H ;扫描频率
CODE SEGMENT
ASSUME CS:CODE,DS:code,SS:code
START:
PUSH CS
POP DS
MOV DX,Z8279
MOV AL,LEDMOD
OUT DX,AL
MOV AL,LEDFEQ
OUT DX,AL
MOV CX,06H
XZ: MOV DX,D8279
MOV AL,00H
OUT DX,AL
LOOP XZ
MOV DX,D8279
MOV AL,5eH
OUT DX,AL
MOV DX,D8279
MOV AL,77H
OUT DX,AL ;以上为写(AD)
NOP
MOV DX,PCTL8255
MOV AL,81H ;设置8255,PA、PC4~5出,PC0入
OUT DX,AL
BEGINAD:
MOV DX,PCTL8255
MOV AL,08H ;PC4: CLK 置“0”
OUT DX,AL
MOV AL,0AH ;PC5: CS置“0”
OUT DX,AL
MOV AL,0
MOV CX,8 ;分八次读一个字节
INPUT: PUSH AX
MOV DX,PCTL8255
MOV AL,09H ;PC4: CLK 置“1”
OUT DX,AL
NOP
MOV DX,PC8255 ;
IN AL,DX
RCR AL,1
POP AX
RCL AL,1
PUSH AX
MOV DX,PCTL8255
MOV AL,08H ;PC4: CLK 置“0”
OUT DX,AL
POP AX
LOOP INPUT
MOV AH,AL
MOV DX,PCTL8255
MOV AL,0BH ;PC5: CS置“1”
OUT DX,AL
DISPLAY:
MOV AL,AH
and al,0fh
push ax
mov dx,z8279
mov al,80h
out dx,al
pop ax
LEA BX,LED
XLAT
MOV DX,D8279 ;将AL中内容写到数码管上
OUT DX,AL
MOV AL,AH
mov cl,4
ror al,cl
and al,0fh
push ax
mov dx,z8279
mov al,81h
out dx,al
pop ax
LEA BX,LED
XLAT
MOV DX,D8279 ;将AL中内容写到数码管上
OUT DX,AL
call delay
JMP BEGINAD ;重复
delay proc near
push cx
mov cx,05f00h
loop $
pop cx
ret
delay endp
LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -