8086嵌入式,8255A输入数据端改为D8-D15会怎么样

Poke_Z 2017-04-04 11:42:24
MOV CL,08H
MOV AX,0FE00h
OUT PortA,AX
MOV AL,SEGTAB
SHL AX,CL
OUT PortB,AX
CALL DELAY
原来D0-D7的时候的程序
改后的
...全文
167 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Poke_Z 2017-04-04
  • 打赏
  • 举报
回复
MOV AL, 0FDh OUT PortA,AL MOV AL,SEGTAB OUT PortB,AL CALL DELAY 搞错了,原来的是这个
uid123 2017-04-04
  • 打赏
  • 举报
回复
没有用,估计没办法执行,因为D0-D7是一组IO端口,按照8051的习惯,(8086也差不多),80h地址开始的地址,然后第二组寄存器是从90h开始结束,其中88h到8fh地址这些地址里面的存储单元有几个是不能被寻址的。
JQ_Fortune 2017-04-04
  • 打赏
  • 举报
回复
(回复这个问题我就找到bug了) 问题根源:每当 CPU 和偶地址单元或偶地址端口交换数据时,在 T1 状态,AD0 引腿传送的地址信号 必定为低电平. CPU 的传输特性决定了只要是和偶地址单元或偶地址端口交换数据, CPU 而 则 必定通过总线低 8 位即 AD7~AD0 传输数据. 可见 AD0 可以用来作为接于数据总线低 8 位上的 8 位外设接口芯片的选通信号 解决办法:因为数据总线已被修改,所以要选择高八位传输数据,就需要将address0置高电平,所以端口地址应该改为奇数,即90H,92H,94H,96H改为91H,93H,95H,97H,亲测有效
JQ_Fortune 2017-04-04
  • 打赏
  • 举报
回复
将0-7改为8-15后,程序感觉瘫痪掉了,数码管等等都不响应了,我猜我们是校友,还是同一个老师ljzhu。

1,068

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧