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