標(biāo)題: 51單片機(jī)+8255可編程器件進(jìn)行端口擴(kuò)展項(xiàng)目討論 [打印本頁(yè)]
作者: madzz 時(shí)間: 2019-11-14 12:33
標(biāo)題: 51單片機(jī)+8255可編程器件進(jìn)行端口擴(kuò)展項(xiàng)目討論
因?yàn)槭诸^項(xiàng)目,要做端口的外部擴(kuò)展,原本是FPGA進(jìn)行主控,之前學(xué)了STM32,所以用32進(jìn)行主控,現(xiàn)在出現(xiàn)了問(wèn)題改成51進(jìn)行芯片的仿真測(cè)試,找到了問(wèn)題所在,把問(wèn)題拿出來(lái)和大家討論,希望有經(jīng)驗(yàn)的大佬可以幫忙分析指點(diǎn),沒(méi)有做過(guò)的兄弟們幫忙提供建設(shè)性意見(jiàn),再次感謝。
直奔主題,在51測(cè)試的時(shí)候發(fā)現(xiàn),可以獨(dú)立控制8255A的A口和B口進(jìn)行外部輸出,這個(gè)經(jīng)過(guò)測(cè)試是沒(méi)問(wèn)題的,但是當(dāng)用同樣的代碼進(jìn)行對(duì)c口操作時(shí),c口操作無(wú)效,而且還影響了AB口的狀態(tài),查閱了8255的數(shù)據(jù)手冊(cè),發(fā)現(xiàn)按道理時(shí)可以獨(dú)立操作ABC三個(gè)端口,問(wèn)什么會(huì)出現(xiàn)這個(gè)問(wèn)題呢?
其次8255A數(shù)據(jù)手冊(cè)中關(guān)于groupA、B分組的問(wèn)題,可以將A口和C口的高4位進(jìn)行整合為A組,可以將B口和C口的低4位進(jìn)行整合為B組,這里的整合怎么操作?這里的操作是指怎么通過(guò)指令進(jìn)行操作。
最后一個(gè)問(wèn)題,在定義8255a的地址時(shí),沒(méi)有使用傳統(tǒng)定義的給地址段,只是通過(guò)單一的控制A0、A1、CS指令進(jìn)行控制有沒(méi)有影響?
此外,我完全把這個(gè)芯片當(dāng)做數(shù)字芯片進(jìn)行的操作
51hei圖片_20191114123124.png (101.85 KB, 下載次數(shù): 47)
下載附件
proteus仿真圖
2019-11-14 12:32 上傳
單片機(jī)源程序如下:
作者: madzz 時(shí)間: 2019-11-14 12:34
希望大家?guī)托〉芙鉀Q一下這個(gè)問(wèn)題,謝過(guò)了
作者: madzz 時(shí)間: 2019-11-14 16:53
頂一下熱度
作者: oldwood_hmgh 時(shí)間: 2019-11-14 19:46
回答最后一個(gè)問(wèn)題:
最后一個(gè)問(wèn)題,在定義8255a的地址時(shí),沒(méi)有使用傳統(tǒng)定義的給地址段,只是通過(guò)單一的控制A0、A1、CS指令進(jìn)行控制有沒(méi)有影響?
可以的,但要時(shí)序合適,一個(gè)寫操作周期應(yīng)依次為 數(shù)據(jù)、A0/A1、CS、WR有效,延時(shí)(可選),WR、CS、A0/A1失效。一個(gè)讀操作周期應(yīng)依次為 A0/A1、CS、RD有效,延時(shí)(可選)讀數(shù)據(jù)、RD、CS、A0/A1失效。
都要幾個(gè)指令,比較慢,而用給地址段的方法只要一條讀或?qū)懼噶睿话阋布g地址碼。
作者: madzz 時(shí)間: 2019-11-14 21:25
謝謝回復(fù),我在嘗試一下,現(xiàn)在問(wèn)題主要在于第一個(gè)和第二個(gè),說(shuō)白了就是怎么對(duì)端口c進(jìn)行操作,用c語(yǔ)言寫的代碼對(duì)程序的影響度如何沒(méi)法驗(yàn)證
作者: yzwzfyz 時(shí)間: 2019-11-16 09:13
8255就是個(gè)邏輯電路,用什么CPU對(duì)控制都可以,只要符合手冊(cè)的規(guī)定就可以了。
作者: madzz 時(shí)間: 2019-11-17 00:58
哎,沒(méi)弄出來(lái),可以實(shí)現(xiàn)AB單獨(dú)控制,C口控制不了,原因不詳,換方案了
作者: 理電之光 時(shí)間: 2019-12-21 17:13
感謝分享,嚶嚶嚶
| 歡迎光臨 (http://m.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |