因为手头项目,要做端口的外部扩展,原本是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指令进行控制有没有影响? 此外,我完全把这个芯片当做数字芯片进行的操作
单片机源程序如下:
|