文锦成 2023-01-30 16:39 采纳率: 50%
浏览 57

用proteus对8086+8255A仿真点亮数码管,用8086的A1,A2或A1,A3地址线对8255A片内寻址,可以点亮数码管,但是用A0,A1却点不亮,是A0不能做地址线进行片内寻址吗?

问题简述:用proteus对8086+8255A进行仿真,点亮一个数码管。用8086的A1、A2地址线对8255A进行片内寻址,可以点亮数码管,但是用地址线A0、A1却点不亮。我好奇怪,是A0不能做地址线进行片内寻址吗?试了用A1、A3结果也都可以点亮。程序和仿真原理图应该都没什么问题,就是这个不明白。
另外还有一个问题,当能点亮的时候,数码管左边接线处的逻辑指示灯为什么全是红色啊(如下图),不是应该有红有蓝吗?

仿真背景:用proteus仿真8086+8255A芯片点亮一个共阳极数码管,使其显示数字1,用8255A的端口B点亮,汇编语言编写程序。

问题描述及现象:
1、当我使用8086的地址线A1,A2对8255A进行片内寻址时,也就是8255A的四个端口地址分别为"60H,62h,64H,66h"时,程序编译通过,仿真出现正确结果,如下图图所示。

img


附代码:

DATA    SEGMENT
    PORTA EQU 60H;8255A端口地址
    PORTB EQU 62H
    PORTC EQU 64H
    CONTROL    EQU 66H
DATA    ENDS

STACK   SEGMENT    STACK
    DW 100H DUP(?)
STACK   ENDS

CODE    SEGMENT    PUBLIC 'CODE'
    ASSUME CS:CODE,DS:DATA,SS:STACK
START:
    MOV AX,DATA
    MOV DS,AX
    MOV AX,STACK
    MOV SS,AX

    MOV AL,10100100B;8255方式控制
    OUT CONTROL,AL

    MOV AL,79H;共阳极数码管亮1
    OUT PORTB,AL

ENDING:
    JMP    ENDING
CODE    ENDS
    END START

2、当我使用8086的地址线A0,A1 对8255A进行片内寻址时,对应8255A的四个端口地址为"61h,62H,63h,64H",其它都不变,程序编译通过,但是仿真结果不正确,数码管不显示,如下图所示。

img


附代码:

DATA    SEGMENT
    PORTA EQU 60H;8255A端口地址
    PORTB EQU 61H
    PORTC EQU 62H
    CONTROL    EQU 63H
DATA    ENDS

STACK   SEGMENT    STACK
    DW 100H DUP(?)
STACK   ENDS

CODE    SEGMENT    PUBLIC 'CODE'
    ASSUME CS:CODE,DS:DATA,SS:STACK
START:
    MOV AX,DATA
    MOV DS,AX
    MOV AX,STACK
    MOV SS,AX

    MOV AL,10100100B;8255方式控制
    OUT CONTROL,AL

    MOV AL,79H;共阳极数码管亮1
    OUT PORTB,AL

ENDING:
    JMP    ENDING
CODE    ENDS
    END START

  • 写回答

1条回答 默认 最新

  • m0_54204465 2023-01-30 19:49
    关注

    A0、A1地址线的问题:
    A0、A1地址线与8086的其他地址线一样,是可以用来进行片内寻址的。而具体能否点亮数码管,应该看8255A的端口地址设置,程序代码是否把数据输出到了正确的端口上。

    关于指示灯问题:
    指示灯颜色变化是模拟电路状态的一种方式,可以代表信号的逻辑电平,如果全是红色的话,表明这些信号的逻辑电平都是高电平,你需要检查一下程序代码与仿真原理图的配置是否正确。
    如果代码编译通过了,但是仿真结果不正确,可能是因为端口地址配置不正确,导致控制字节输出到了错误的端口,影响了数码管的正常工作。建议检查配置的端口地址是否与实际使用的端口地址一致。

    评论

报告相同问题?

问题事件

  • 创建了问题 1月30日

悬赏问题

  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
  • ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
  • ¥100 华为手机私有App后台保活
  • ¥15 sqlserver中加密的密码字段查询问题
  • ¥20 有谁能看看我coe文件到底哪儿有问题吗?
  • ¥20 我的这个coe文件到底哪儿出问题了
  • ¥15 matlab使用自定义函数时一直报错输入参数过多
  • ¥15 设计一个温度闭环控制系统
  • ¥100 rtmpose姿态评估