📄 gg204.asm
字号:
;gg204.asm
;for 读A口送B口<芯片8255A:A口接4开关,B口接1个八段显示器,pc7接1S脉冲>
;for 产生1S脉冲<芯片8253-5>
;2005-05
;lcy/p_Sa
data SEGMENT
BUF DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88h,83h,0c6h,0a1h,86h,09h;0-F八段显示器代码
PA EQU 280h
PB EQU 281h
PC EQU 282h
PCTL EQU 283h
T0 EQU 288H
T1 EQU 289H
T2 EQU 28aH
TCTL EQU 28bH
data ENDS
stack0 SEGMENT para stack
DW 20h DUP(0)
stack0 ENDS
coseg SEGMENT
ASSUME CS:coseg,DS:data,SS:stack0
start: MOV AX, data
MOV DS, AX
;================MOV-DS-AX==============
MOV DX, TCTL
MOV AL, 27h ;00-10-011-1B:0通道,高8位,方式3(方波发生器),BCD记数
OUT DX, AL
MOV DX, T0
MOV AL, 10h ;1us=>1ms方波
OUT DX, AL
MOV DX, TCTL
MOV AL, 65h ;01-10-010-1B:1通道,高8位,方式2(频率发生器),BCD记数
OUT DX, AL
MOV DX, T1
MOV AL, 10h ;1ms=>1s脉冲
OUT DX, AL
MOV DX, PCTL
MOV AL, 98h ;1-0011-000B:A口方式0输入,B口方式0输出
OUT DX, AL
XOR BX, BX
LEA BX, BUF
MOV CX, 30H
L1: MOV DX, PC
IN AL, DX
TEST AL, 80H
JZ L1
MOV DX, PA
IN AL, DX
AND AL, 0FH ;A口输入取低4位
XLAT ;AL <= ((BX)+(AL)),AL取得相应八段显示器代码
;或者
;XOR BX, BX
;MOV BL, AL
;MOV AL, BYTE PTR BUF[BX]
INC DX ;A口变B口
OUT DX, AL
MOV DX, PC
L2: IN AL, DX
TEST AL, 80H
JNZ L2
LOOP L1
;================INT-21H================
MOV AH, 4ch
INT 21h
coseg ENDS
END start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -