因為手頭項目,要做端口的外部擴展,原本是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指令進行控制有沒有影響? 此外,我完全把這個芯片當做數字芯片進行的操作
proteus仿真圖
單片機源程序如下:
|