熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
|
發(fā)布時(shí)間: 2020-7-29 19:00
正文摘要:本帖最后由 STC15W408AS 于 2020-7-29 19:03 編輯 如上圖所示,單片機(jī)內(nèi)部的4個(gè)P口,都自帶有一個(gè)D鎖存器,為什么用P口擴(kuò)展程序存儲器或者數(shù)據(jù)存儲器時(shí),還要在P口上再接一個(gè)D鎖存器74LS373? |
gbchang 發(fā)表于 2020-7-30 14:48 太感謝了。 |
至于內(nèi)部的鎖存器,我畫了個(gè)P0口的工作狀態(tài)圖:
|
|
至于內(nèi)部鎖存器,是在做總線時(shí),數(shù)據(jù)讀入用的,就是從2732中取指令或者常量表時(shí),得到的數(shù)據(jù)。 我把P0口的幾種狀態(tài)畫了個(gè)示意圖:
|
|
3樓和9樓答非所問,雖然內(nèi)容是對的,但不是樓主想問的,使他更加疑惑了。 11樓說的對,所以我當(dāng)初畫51電路圖時(shí),P0口的網(wǎng)絡(luò)標(biāo)號都是類似"AD0~AD7"形式,時(shí)刻提醒這是復(fù)用總線:
|
看不明白就不看了,這是上古時(shí)期用的電路,現(xiàn)在不會(huì)用這個(gè)了,換一個(gè)IO更多的單片機(jī)幾乎是沒有增加MCU方面的價(jià)錢的,74LS373卻要兩塊一個(gè),而且電路和程序變得更麻煩了如果你一定要學(xué)會(huì)這個(gè),那就再回去看一下8051入門的硬件知識,好像在STC的數(shù)據(jù)手冊中已經(jīng)沒有介紹了
|
| 地址和數(shù)據(jù)復(fù)用,不外接鎖存器,如何區(qū)別是地址還是還是數(shù)據(jù)呢? |
|
外擴(kuò)存儲器時(shí),外擴(kuò)存儲器的低八位地址是從P0口輸出的,同時(shí)數(shù)據(jù)也必須從P0口輸出,這兩種輸出顯然是必須分開的,也就是一個(gè)端口分時(shí)輪流輸出地址或者數(shù)據(jù)信號,而外擴(kuò)存儲器的地址和數(shù)據(jù)總線是分開的,所以必須有一個(gè)中間器件過渡,將這兩種信號給分開,這就是鎖存器的用處。 如果你能找到一種低八位地址和數(shù)據(jù)總線復(fù)用的存儲器,也就不需要外接鎖存器了,但顯然你是找不到的,所以外接的鎖存器就成了外擴(kuò)存儲器(當(dāng)然指的是這種存儲器而不是24C02之類)必不可少的搭檔 |
| 是哦,樓上說的對,我咋沒注意到,這個(gè)用373的主要原因是因?yàn)榈刂房偩和數(shù)據(jù)總線都使用了單片機(jī)的P0口,所以,在先寫地址,再寫數(shù)據(jù)的情況下,要在寫地址后將地址鎖存,然后再寫數(shù)據(jù)。這樣IO口就達(dá)到了復(fù)用的目的,節(jié)省了一半的IO口。 |
STC15W408AS 發(fā)表于 2020-7-29 23:09 直接用MCU的io口最大支持20mA電流,用373則沒有限制,電流取決于VCC的輸出能力。 |
| 外擴(kuò)存儲器時(shí),P0口是要工作在總線狀態(tài)的,存儲器地址的低8位信息必須要用額外的鎖存器才能在讀寫時(shí)保持,因?yàn)榈刂房偩低8位和數(shù)據(jù)總線復(fù)用了,這是51機(jī)的設(shè)計(jì)。 |
| 參與人數(shù) 1 | 黑幣 +5 | 收起 理由 |
|---|---|---|
|
| + 5 | 很給力! |
breakhero 發(fā)表于 2020-7-29 23:09 意思內(nèi)部鎖存器實(shí)現(xiàn)一種端口功能,然后外部的鎖存器同時(shí)實(shí)現(xiàn)另一種端口功能? |
1692483014 發(fā)表于 2020-7-29 22:30 想不通。提高驅(qū)動(dòng)能力,難道這個(gè)鎖存器芯片可以提升總線上的電流? |
| 就像你引用的圖片里所示,地址和數(shù)據(jù)復(fù)用的端口,如果不使用鎖存器鎖定地址是無法正常讀寫存儲器的,這里加的鎖存器就是要把復(fù)用狀態(tài)分離開來,等于把端口數(shù)量擴(kuò)展。內(nèi)部的鎖存器無法實(shí)現(xiàn)這個(gè)。 |
圓就是圈圈 發(fā)表于 2020-7-29 22:19 內(nèi)部不是已經(jīng)有鎖存器了嗎? |
| 兩個(gè)作用:隔離 和 提高驅(qū)動(dòng)能力。 |
| 我覺得是因?yàn)镻0口不僅可以做數(shù)據(jù)總線還可以做地址總線,外加所存器保證地址和數(shù)據(jù)不互相干擾 |
Powered by 單片機(jī)教程網(wǎng)