基于AT89S51的系統(tǒng)擴(kuò)展結(jié)構(gòu)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
AT89S51單片機(jī)采用總線(xiàn)結(jié)構(gòu),使擴(kuò)展易于實(shí)現(xiàn),AT89S51單片機(jī)系統(tǒng)擴(kuò)展結(jié)構(gòu)如下圖所示。
由上圖可以看出,系統(tǒng)擴(kuò)展主要包括存儲(chǔ)器擴(kuò)展和I/O接口部件擴(kuò)展。AT89S51單片機(jī)的外部存儲(chǔ)器擴(kuò)展即包括程序存儲(chǔ)器擴(kuò)展又包括數(shù)據(jù)存儲(chǔ)器擴(kuò)展。AT89S51單片機(jī)采用程序存儲(chǔ)器空間和數(shù)據(jù)存儲(chǔ)器空間截然分開(kāi)的哈佛結(jié)構(gòu)。擴(kuò)展后,系統(tǒng)形成了兩個(gè)并行的外部存儲(chǔ)器空間。
由于系統(tǒng)擴(kuò)展是以AT89S51單片機(jī)為核心,通過(guò)總線(xiàn)把AT89S51單片機(jī)與各擴(kuò)展部件連接起來(lái)。因此,要進(jìn)行系統(tǒng)擴(kuò)展首先要構(gòu)造系統(tǒng)總線(xiàn)。
系統(tǒng)總線(xiàn)按功能通常分為3組,如上圖所示。
(1)地址總線(xiàn)(Address Bus,AB):地址總線(xiàn)用于傳送單片機(jī)單向發(fā)出的地址信號(hào),以便進(jìn)行存儲(chǔ)單元和I/O接口芯片中的寄存器單元的選擇。
(2)數(shù)據(jù)總線(xiàn)(Data Bus,DB):數(shù)據(jù)總線(xiàn)用于單片機(jī)與外部存儲(chǔ)器之間或與I/O接口之間傳送數(shù)據(jù),數(shù)據(jù)總線(xiàn)是雙向的。
(3)控制總線(xiàn)(Control Bus,CB):控制總線(xiàn)是單片機(jī)發(fā)出的各種控制信號(hào)線(xiàn)。
下面討論如何來(lái)構(gòu)造系統(tǒng)的三總線(xiàn)。
1.PO口作為低8位地址/數(shù)據(jù)總線(xiàn)
AT89S51單片機(jī)受引腳數(shù)目的限制,PO口既用作低8位地址總線(xiàn),又用作數(shù)據(jù)總線(xiàn)(分時(shí)復(fù)用),因此需要增加一個(gè)8位地址鎖存器。AT 89S51單片機(jī)對(duì)外部擴(kuò)展的存儲(chǔ)器單元或I/O接口寄存器進(jìn)行訪問(wèn)時(shí),先發(fā)出低8位地址送地址鎖存器鎖存,鎖存器輸出作為系統(tǒng)的低8位地址(A7~A0)。隨后,PO口又作為數(shù)據(jù)總線(xiàn)口(D7~D0),如右圖所示。
2.P2口的口線(xiàn)作為高位地址線(xiàn)
P2口的全部8位口線(xiàn)用作系統(tǒng)的高8位地址線(xiàn),再加上地址鎖存器提供的低8位地址,便形成了系統(tǒng)完整的16位地址總線(xiàn)(如右圖所示),從而使單片機(jī)系統(tǒng)的尋址范圍達(dá)到64KB。
3.控制信號(hào)線(xiàn)
除了地址線(xiàn)和數(shù)據(jù)線(xiàn)之外,還要有系統(tǒng)的控制總線(xiàn)。這些信號(hào)有的是單片機(jī)引腳的第一功能信號(hào),有的則是P3口第二功能信號(hào)。其中包括:
(1) PSEN(的反)信號(hào)作為外擴(kuò)程序存儲(chǔ)器的讀選通控制信號(hào)。
(2) RD(的反)和WR(的反)信號(hào)作為外擴(kuò)數(shù)據(jù)存儲(chǔ)器和I/O接口寄存器的讀/寫(xiě)選通控制信號(hào)。
(3) ALE信號(hào)作為P0口發(fā)出的低8位地址的鎖存控制信號(hào)。
(4) EA(的反)信號(hào)作為片內(nèi)、片外程序存儲(chǔ)器的選擇控制信號(hào)。
可以看出,盡管AT89S51單片機(jī)有4個(gè)并行的I/O口,共32條口線(xiàn),但由于系統(tǒng)擴(kuò)展的需要,真正給用戶(hù)作為數(shù)字I/O使用的,就剩下Pl口和P3口的部分口線(xiàn)了。