吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1340|回复: 4
收起左侧

[求助] 【求助帖】8086汇编硬件实验问题求助

  [复制链接]
NIMITIZ 发表于 2021-6-7 21:35
今晚在做一个8255芯片相关的硬件实验:
不断扫描开关K0和K1,当开关K0闭合时,点亮偶数的LED灯,其他灯灭;当开关K1闭合时,点亮奇数的LED灯,其他灯灭;当开关K0和K1同时闭合时,所有灯亮;当开关K0和K1同时断开时,所有灯灭。
原本是要根据两个开关的状态组合(一共4种组合)来选择亮灯的情况(4种亮灯情况),但在实验过程中,不管如何选择开关状态,亮灯情况依然不变,应该不是硬件电路(8086最小系统和8055外设)的问题,但在程序中找不到问题所在,特来请教论坛的大佬们。
源程序:

CODE SEGMENT
    ASSUME CS:CODE
    START:
    MOV AL,10010000B
    MOV DX,206H
    OUT DX,AL
    COM:
    MOV DX,200H
    IN AL,DX
    CMP AL,00000011B
    JNE COM0
    MOV DX,202H
    MOV AL,00000000B
    OUT DX,AL
    JMP COM
    COM0:
    CMP AL,00000000B
    JNE COM1
    MOV DX,202H
    MOV AL,11111111B
    OUT DX,AL
    JMP COM
    COM1:
    CMP AL,00000010B
    JNE COM2
    MOV DX,202H
    MOV AL,10101010B
    OUT DX,AL
    JMP COM
    COM2:
    MOV DX,202H
    MOV AL,01010101B
    OUT DX,AL
    JMP COM
CODE ENDS
    END START
硬件电路如下图所示

IO地址译码

IO地址译码

最小系统

最小系统
Snipaste_2021-06-07_21-20-45.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

sam喵喵 发表于 2021-6-7 22:49
用C开中断做过交通灯信号系统,汇编没整过
simon77 发表于 2021-6-7 23:14
 楼主| NIMITIZ 发表于 2021-6-10 17:43
simon77 发表于 2021-6-7 23:14
Proteus 文件也发上来看看

你好,proteus仿真文件我上传到了文叔叔,如果你有空的话,还请劳烦你下载下来看看,指点一下迷津,非常感谢

https://ws28.cn/f/5msfjplrxxp 复制链接到浏览器打开
 楼主| NIMITIZ 发表于 2021-6-10 22:12
simon77 发表于 2021-6-7 23:14
Proteus 文件也发上来看看

破案了,刚刚琢磨了一下,发现是开关状态的判断指令的问题引起的逻辑错误,改用TEST指令来判断,同时调整状态组合的判断顺序(先判断是否全部闭合,接着两个判断时一开一合的组合,最后才是全部断开的判断(但严格来说全部断开这一状态无法判断))

正确源码如下:

CODE SEGMENT
    ASSUME CS:CODE

    START:
    MOV AL,10010000B        ;控制字
    MOV DX,206H     ;8255A的控制端口地址
    OUT DX,AL

    COM:
    MOV DX,200H
    IN AL,DX
    TEST AL,00000011B        ;全部断开;
    JNE COM0     ;若实际状态与判断状态不同,则跳转
    MOV DX,202H
    MOV AL,11111111B
    OUT DX,AL
    JMP COM

    COM0:
    TEST AL,00000010B        ;其中一个断开,另一个闭合
    JNE COM1     ;状态不同,跳转
    MOV DX,202H
    MOV AL,10101010B
    OUT DX,AL
    JMP COM

    COM1:
    TEST AL,00000001B       ;10
    JNE COM2     ;状态不同,跳转
    MOV DX,202H
    MOV AL,01010101B
    OUT DX,AL
    JMP COM

    COM2:
    MOV DX,202H
    MOV AL,00000000B
    OUT DX,AL
    JMP COM     ;最后返回初始

CODE ENDS
    END START
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 02:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表