找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 6399|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)端口復(fù)用問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:427121 發(fā)表于 2018-12-16 11:35 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
10黑幣
本人初學(xué)者,遇到難題,請(qǐng)求各位行家?guī)兔Γ?1單片機(jī)端口復(fù)用問(wèn)題:?jiǎn)纹瑱C(jī)控制外圍設(shè)備時(shí),什么情況下可以端口復(fù)用,如何復(fù)用?有可以實(shí)現(xiàn)的例子最好(C語(yǔ)言實(shí)現(xiàn)),比如ADC0809和12864可以都掛在單片機(jī)同一端口上嗎?可以分時(shí)復(fù)用嗎?如何用?急急急

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:362076 發(fā)表于 2018-12-17 18:25 | 只看該作者
如果多個(gè)器件使用同一種通信協(xié)議,那么可以通過(guò)總線的方式將器件連接起來(lái),對(duì)于1-wire總線和IIC總線,通過(guò)地址與特定器件通訊,對(duì)于SPI總線,通過(guò)片選使能選擇特定器件通訊。在IO不夠用的情況下,可以通過(guò)IO擴(kuò)展電路實(shí)現(xiàn)IO多路復(fù)用。除此之外,大多數(shù)情況下不可以將不同器件接在同一端口上。
回復(fù)

使用道具 舉報(bào)

板凳
ID:362076 發(fā)表于 2018-12-17 18:28 | 只看該作者
從邏輯的角度,假設(shè)兩器件已經(jīng)共享了同一組IO并且沒(méi)有典型總線協(xié)議,如果你可以實(shí)現(xiàn)程序上對(duì)不同器件的選擇和單獨(dú)控制,IO復(fù)用也是可行的,但是要保證一點(diǎn),在對(duì)某一器件操作時(shí),其它器件對(duì)IO數(shù)據(jù)線路應(yīng)呈現(xiàn)高阻(并不僅僅是不操作),這樣才能有效避免干擾。
回復(fù)

使用道具 舉報(bào)

地板
ID:401564 發(fā)表于 2018-12-17 22:28 | 只看該作者
大多是可以復(fù)用的呀,24CXX系列,18B20不都可以的嗎?
一般來(lái)說(shuō),只要器件有使能端口或者有器件地址可選,那都是可以多用的呀
回復(fù)

使用道具 舉報(bào)

5#
ID:447651 發(fā)表于 2018-12-18 10:31 | 只看該作者
51單片機(jī)的分時(shí)復(fù)用功能,最直接的就是MOVX指令,用這個(gè)指令就是在分時(shí)復(fù)用P0口,執(zhí)行:MOVX A,@DPTR,那么首先要送地址A0~A7給P0口,ALE有效,鎖存在373上,再將這個(gè)地址的數(shù)據(jù)從P0口讀入傳給A
回復(fù)

使用道具 舉報(bào)

6#
ID:448910 發(fā)表于 2018-12-18 14:51 | 只看該作者
那就在每個(gè)器件上加上一個(gè)使能管腳,使能對(duì)應(yīng)的器件的時(shí)候再通信
回復(fù)

使用道具 舉報(bào)

7#
ID:427121 發(fā)表于 2019-1-1 16:12 | 只看該作者
凌凈清河 發(fā)表于 2018-12-17 18:28
從邏輯的角度,假設(shè)兩器件已經(jīng)共享了同一組IO并且沒(méi)有典型總線協(xié)議,如果你可以實(shí)現(xiàn)程序上對(duì)不同器件的選擇 ...

請(qǐng)問(wèn)可以發(fā)一個(gè)簡(jiǎn)單的例子(C語(yǔ)言)嗎,在下實(shí)在是小白一個(gè),還是不會(huì)寫。
回復(fù)

使用道具 舉報(bào)

8#
ID:427121 發(fā)表于 2019-1-1 16:39 | 只看該作者
lvjuliet 發(fā)表于 2018-12-18 14:51
那就在每個(gè)器件上加上一個(gè)使能管腳,使能對(duì)應(yīng)的器件的時(shí)候再通信

請(qǐng)問(wèn)可以發(fā)一個(gè)簡(jiǎn)單例子的代碼嗎(C語(yǔ)言),本人剛開(kāi)始學(xué)習(xí)單片機(jī),自己寫程序著實(shí)困難,目前還處在參考讀懂別人程序階段。謝謝
回復(fù)

使用道具 舉報(bào)

9#
ID:449525 發(fā)表于 2019-1-2 08:33 | 只看該作者
是spi分時(shí)復(fù)用的話,可以通過(guò)cs片選。你顯示什么東西,要多久刷新一次,分開(kāi)就行了。
回復(fù)

使用道具 舉報(bào)

10#
ID:298582 發(fā)表于 2019-1-12 22:12 | 只看該作者
凌凈清河 發(fā)表于 2018-12-17 18:28
從邏輯的角度,假設(shè)兩器件已經(jīng)共享了同一組IO并且沒(méi)有典型總線協(xié)議,如果你可以實(shí)現(xiàn)程序上對(duì)不同器件的選擇 ...

原來(lái)是這樣,那我的應(yīng)該就是有干擾了,我的是lcd1602和DAC0832。有什么辦法可以使他們共用一個(gè)口,相當(dāng)于分時(shí)間使用。怎么才能讓其達(dá)到高阻態(tài)的效果
回復(fù)

使用道具 舉報(bào)

11#
ID:298582 發(fā)表于 2019-1-12 22:26 | 只看該作者
凌凈清河 發(fā)表于 2018-12-17 18:25
如果多個(gè)器件使用同一種通信協(xié)議,那么可以通過(guò)總線的方式將器件連接起來(lái),對(duì)于1-wire總線和IIC總線,通過(guò) ...

如果一個(gè)P0口共用:兩個(gè)DAC0832+一個(gè)lcd1602需要使用哪種方案
回復(fù)

使用道具 舉報(bào)

12#
ID:312493 發(fā)表于 2019-1-13 14:48 | 只看該作者
51單片機(jī)的分時(shí)復(fù)用功能,最直接的就是MOVX指令,用這個(gè)指令就是在分時(shí)復(fù)用P0口,執(zhí)行:MOVX A,@DPTR,那么首先要送地址A0~A7給P0口,ALE有效,鎖存在373上,再將這個(gè)地址的數(shù)據(jù)從P0口讀入傳給A
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表