標(biāo)題: 51單片機的同一個端口實現(xiàn)兩個功能 [打印本頁]

作者: 人生閑    時間: 2017-6-6 20:50
標(biāo)題: 51單片機的同一個端口實現(xiàn)兩個功能
51單片機的同一個端口實現(xiàn)兩個功能,但是沒有邏輯元件,怎么實現(xiàn),就是我用高四位實現(xiàn)一個功能,然后低四位實現(xiàn)另一個功能,我是應(yīng)該將他們分開設(shè)計地址,還是不用的,如果需要,我該怎么設(shè)計地址呢?
求大神幫幫忙!。。。。!
作者: dzbj    時間: 2017-6-7 09:10
你說 你這問題 什么資料都沒有 誰能看得懂啊 都不知道你要干嘛
作者: lingwise    時間: 2017-6-7 10:36
本帖最后由 lingwise 于 2017-6-7 12:02 編輯

不要用總線的形式操作,當(dāng)做普通IO口來按邏輯需要,按時序自己操作寄存器
作者: imxuheng    時間: 2017-6-7 14:37
分別實現(xiàn)什么功能
作者: zl2168    時間: 2017-6-7 16:04
同一個端口可以實現(xiàn)兩個功能,高4位、低4位分別設(shè)置,但你的提問沒講清。
作者: 人生閑    時間: 2017-6-7 16:16
zl2168 發(fā)表于 2017-6-7 16:04
同一個端口可以實現(xiàn)兩個功能,高4位、低4位分別設(shè)置,但你的提問沒講清。

我是想說,我用AT89C51的P2端口,實現(xiàn)高四位進(jìn)行對1602顯示屏的RS,RW,EN的控制,然后低四位進(jìn)行按鈕控制開關(guān),其他沒有外接元件,就是需要用C來表示。
作者: 707926588    時間: 2017-6-7 16:25
多想想
作者: zl2168    時間: 2017-6-7 21:15
人生閑 發(fā)表于 2017-6-7 16:16
我是想說,我用AT89C51的P2端口,實現(xiàn)高四位進(jìn)行對1602顯示屏的RS,RW,EN的控制,然后低四位進(jìn)行 ...

有2種操作方法:一種按bit操作;另一種按byte操作。按byte操作時,需用“與”、“或”組合。具體操作方法推薦你閱讀《80C51單片機實用教程——基于Keil C和Proteus》高等教育出版社ISBN 978-7-04-044532-9, 用于學(xué)習(xí)51單片機原理,程序(雙解c和匯編)語句條條有注解,便于閱讀理解,便于自學(xué)。
作者: dzbj    時間: 2017-6-7 23:01
人生閑 發(fā)表于 2017-6-7 16:16
我是想說,我用AT89C51的P2端口,實現(xiàn)高四位進(jìn)行對1602顯示屏的RS,RW,EN的控制,然后低四位進(jìn)行 ...

這有什么難的 管它P幾口呢 分別定義每個端口不就行了 你們是學(xué)習(xí)要求必須用整個位去操作么 誰這么變態(tài)啊
作者: 人生閑    時間: 2017-6-7 23:01
zl2168 發(fā)表于 2017-6-7 21:15
有2種操作方法:一種按bit操作;另一種按byte操作。按byte操作時,需用“與”、“或”組合。具體操作方法 ...

謝謝

作者: sstalker    時間: 2017-6-7 23:08
那就按照普通IO來配置就好了啊
作者: yzwzfyz    時間: 2017-6-9 09:11
讀P2高位,結(jié)果=0-15,存于A的低位:
MOV     A, P2        ;讀入全部
SWAP   A             ;高低互換位置
ANL      A, #0FH   ;去除高位(原P2低位)
將A(=0-15)寫P2高位:
ANL      A, #0FH      ;去除高位的干擾
SWAP   A                ;高低互換位置準(zhǔn)輸入至P2高位
MOV     B, A            ;暫存一下備用,此時低位是0
MOV     A, P2          ;讀入P2全部
ANL     A, #0FH       ;保留P2低位,清除P2高位
ORL     A, B            ;與需要寫入的全成新的P2
MOV    P2, A          ;寫入(P2高位是新的,低位不變)
作者: 布拉格    時間: 2017-6-9 17:46
不用分開,直接用就行




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1