标题: 51单片机+8255可编程器件进行端口扩展项目讨论 [打印本页]
作者: madzz 时间: 2019-11-14 12:33
标题: 51单片机+8255可编程器件进行端口扩展项目讨论
因为手头项目,要做端口的外部扩展,原本是FPGA进行主控,之前学了STM32,所以用32进行主控,现在出现了问题改成51进行芯片的仿真测试,找到了问题所在,把问题拿出来和大家讨论,希望有经验的大佬可以帮忙分析指点,没有做过的兄弟们帮忙提供建设性意见,再次感谢。
直奔主题,在51测试的时候发现,可以独立控制8255A的A口和B口进行外部输出,这个经过测试是没问题的,但是当用同样的代码进行对c口操作时,c口操作无效,而且还影响了AB口的状态,查阅了8255的数据手册,发现按道理时可以独立操作ABC三个端口,问什么会出现这个问题呢?
其次8255A数据手册中关于groupA、B分组的问题,可以将A口和C口的高4位进行整合为A组,可以将B口和C口的低4位进行整合为B组,这里的整合怎么操作?这里的操作是指怎么通过指令进行操作。
最后一个问题,在定义8255a的地址时,没有使用传统定义的给地址段,只是通过单一的控制A0、A1、CS指令进行控制有没有影响?
此外,我完全把这个芯片当做数字芯片进行的操作
单片机源程序如下:
作者: madzz 时间: 2019-11-14 12:34
希望大家帮小弟解决一下这个问题,谢过了
作者: madzz 时间: 2019-11-14 16:53
顶一下热度
作者: oldwood_hmgh 时间: 2019-11-14 19:46
回答最后一个问题:
最后一个问题,在定义8255a的地址时,没有使用传统定义的给地址段,只是通过单一的控制A0、A1、CS指令进行控制有没有影响?
可以的,但要时序合适,一个写操作周期应依次为 数据、A0/A1、CS、WR有效,延时(可选),WR、CS、A0/A1失效。一个读操作周期应依次为 A0/A1、CS、RD有效,延时(可选)读数据、RD、CS、A0/A1失效。
都要几个指令,比较慢,而用给地址段的方法只要一条读或写指令,但要一般要硬件译地址码。
作者: madzz 时间: 2019-11-14 21:25
谢谢回复,我在尝试一下,现在问题主要在于第一个和第二个,说白了就是怎么对端口c进行操作,用c语言写的代码对程序的影响度如何没法验证
作者: yzwzfyz 时间: 2019-11-16 09:13
8255就是个逻辑电路,用什么CPU对控制都可以,只要符合手册的规定就可以了。
作者: madzz 时间: 2019-11-17 00:58
哎,没弄出来,可以实现AB单独控制,C口控制不了,原因不详,换方案了
作者: 理电之光 时间: 2019-12-21 17:13
感谢分享,嘤嘤嘤
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |