You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

8086与8255接口改地址后LED常亮问题求助

8086+8255端口LED闪烁问题的代码修改方案

电路说明

  • 无译码器电路示意图
  • 带译码器电路示意图

问题背景

搭建了8086与8255接口的Proteus电路实现端口LED闪烁,旧电路端口地址为00H、02H、04H、06H(Q1、Q2直接连A0、A1)时代码运行正常;修改端口地址为30H、31H、32H、33H后,LED始终常亮,确认译码器逻辑及片选信号正常,需排查代码问题。

旧地址版本代码

.MODEL SMALL

.DATA

PORTA EQU 00H

PORTB EQU 02H

PORT_CON EQU 06H

.CODE

MOV AX, '@DATA'

MOV DS, AX

MOV DX, PORT_CON

MOV AL, 80H

OUT DX, AL

MOV DX, PORTA

BLINK:

MOV AL, 00H

OUT DX, AL

CALL DELAY

MOV AL, 0FFH

OUT DX, AL

CALL DELAY

JMP BLINK

DELAY:

MOV CX, 0FFFFH

LOOP1:

LOOP LOOP1

RET

END

新地址版本代码

.MODEL SMALL

.STACK 100H

.DATA

PA EQU 30H

PB EQU 31H

PC EQU 32H

PCON EQU 33H

.CODE

MOV AX, '@DATA'

MOV DS, AX

MOV DX, PCON

MOV AL, 80H

OUT DX, AL

MOV DX, PA

BLINK:

MOV AL, 00H

OUT DX, AL

CALL DELAY

MOV AL, 0FFH

OUT DX, AL

CALL DELAY

JMP BLINK

DELAY:

MOV CX, 0FFFFH

LOOP1:

LOOP LOOP1

RET

END

代码问题分析与修改要点

核心问题

8086中,用DX寄存器传递端口地址时,高8位DH未清零。新代码中MOV DX, PCON仅给DL赋值33H,DH保留随机初始值,实际访问的端口地址为XX33H(XX为DH随机值),而非预期的0033H,导致8255无法接收正确的控制字和输出数据。旧代码能运行是因为模拟环境中DH恰好为0,属于巧合,并非可靠写法。

修改方案

方案1:直接寻址(推荐,适用于8位端口地址)

直接使用OUT AL, 端口号指令访问8位端口,无需DX寄存器,避免高8位问题:

.MODEL SMALL

.STACK 100H

.DATA

PA EQU 30H

PB EQU 31H

PC EQU 32H

PCON EQU 33H

.CODE

MOV AX, '@DATA'

MOV DS, AX

; 直接设置8255控制字
MOV AL, 80H
OUT PCON, AL

BLINK:
; 输出低电平点亮LED
MOV AL, 00H
OUT PA, AL
CALL DELAY

; 输出高电平熄灭LED
MOV AL, 0FFH
OUT PA, AL
CALL DELAY

JMP BLINK

DELAY:
MOV CX, 0FFFFH
LOOP1:
LOOP LOOP1
RET

END

方案2:间接寻址(需清零DX)

若坚持用DX传递地址,需先清零DX确保高8位为0:

.MODEL SMALL

.STACK 100H

.DATA

PA EQU 30H

PB EQU 31H

PC EQU 32H

PCON EQU 33H

.CODE

MOV AX, '@DATA'

MOV DS, AX

; 清零DX后加载控制端口地址
XOR DX, DX
MOV DL, PCON
MOV AL, 80H
OUT DX, AL

; 清零DX后加载Port A地址
XOR DX, DX
MOV DL, PA

BLINK:
MOV AL, 00H
OUT DX, AL
CALL DELAY

MOV AL, 0FFH
OUT DX, AL
CALL DELAY

JMP BLINK

DELAY:
MOV CX, 0FFFFH
LOOP1:
LOOP LOOP1
RET

END

内容的提问来源于stack exchange,提问作者Karan Ahuja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 05:40:04