標題: 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指令進行控制有沒有影響?
此外,我完全把這個芯片當做數字芯片進行的操作
51hei圖片_20191114123124.png (101.85 KB, 下載次數: 47)
下載附件
proteus仿真圖
2019-11-14 12:32 上傳
單片機源程序如下:
作者: 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.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |