另一種可編程的接口芯片8155,Intel公司研制的8155不僅具有兩個8位的I/O端口(A口、B口)和一個6位的I/O端口(C口),而且還可以提供256 B的靜態(tài)RAM存儲器和一個14位的定時/計數(shù)器。8155和單片機的接口非常簡單,目前被廣泛應用。
1. 8155的結構和引腳
8155有40個引腳,采用雙列直插封裝,其引腳圖和組成框圖如下圖所示。
我們對8155的引腳分類說明如下:
(1) 地址/數(shù)據(jù)線AD0~AD7(8條):是低8位地址線和數(shù)據(jù)線的共用輸入總線,常和51單片機的P0口相連,用于分時傳送地址數(shù)據(jù)信息,當ALE=1時,傳送的是地址。
(2) I/O口總線(22條):PA0~PA7、PB0~PB7分別為A、B口線,用于和外設之間傳遞數(shù)據(jù);PC0~PC5為C端口線,既可與外設傳送數(shù)據(jù),也可以作為A、B口的控制聯(lián)絡線。
(3) 控制總線(8條):
RESET:復位線,通常與單片機的復位端相連,復位后,8155的3個端口都為輸入方式。
WR, RD:讀/寫線,控制8155的讀、寫操作。
ALE:地址鎖存線,高電平有效。它常和單片機的ALE端相連,在ALE的下降沿將單片機P0口輸出的低8位地址信息鎖存到8155內(nèi)部的地址鎖存器中。因此,單片機的P0口和8155連接時,無需外接鎖存器。
CS:片選線,低電平有效。
IO/M:RAM或I/O口的選擇線。當=0時,選中8155的256 B RAM;當=1時,選中8155片內(nèi)3個I/O端口以及命令/狀態(tài)寄存器和定時/計數(shù)器。
TIMERIN、TIMEROUT:定時/計數(shù)器的脈沖輸入、輸出線。TIMERIN是脈沖輸入線,其輸入脈沖對8155內(nèi)部的14位定時/計數(shù)器減1;為輸出線,當計數(shù)器計滿回0時,8155從該線輸出脈沖或方波,波形形狀由計數(shù)器的工作方式?jīng)Q定。
2. 作片外RAM使用
當CE=0,IO/M=0時,8155只能做片外RAM使用,共256 B。其尋址范圍由以及AD0~AD7的接法決定,這和前面講到的片外RAM擴展時討論的完全相同。當系統(tǒng)同時擴展片外RAM芯片時,要注意二者的統(tǒng)一編址。對這256 B RAM的操作使用片外RAM的讀/寫指令“MOVX”。
3. 作擴展I/O口使用
當 CE=0,IO/M=1時,此時可以對8155片內(nèi)3個I/O端口以及命令/狀態(tài)寄存器和定時/計數(shù)器進行操作。與I/O端口和計數(shù)器使用有關的內(nèi)部寄存器共有6個,需要三位地址來區(qū)分。
1) 命令/狀態(tài)寄存器
和接口芯片8255一樣,芯片8155 I/O口的工作方式的確定也是通過對8155的命令寄存器寫入控制字來實現(xiàn)的。8155控制字的格式如下圖所示。
命令寄存器只能寫入不能讀出,也就是說,控制字只能通過指令MOVX @DPTR, A或MOVX @Ri, A寫入命令寄存器。
狀態(tài)寄存器中存放有狀態(tài)字,狀態(tài)字反映了8155的工作情況,狀態(tài)字的各位定義如下圖所示。
狀態(tài)寄存器和命令寄存器是同一地址,狀態(tài)寄存器只能讀出不能寫入,也就是說,狀態(tài)字只能通過指令MOVX A ,@DPTR或MOVX A,@Ri來讀出,以此來了解8155的工作狀態(tài)。
2) 計數(shù)器高、低8位寄存器
關于計數(shù)器高、低8位寄存器的使用,我們將在后面講到定時器使用時再作介紹。
4. I/O口的工作方式
當使用8155的三個I/O端口時,它們可以工作于不同的方式,工作方式的選擇取決于寫入的控制字,如圖6.21所示。其中,A、B口可以工作于基本I/O方式或選通I/O方式,C口可工作于基本I/O方式,也可以作為A、B選通方式時的控制聯(lián)絡線。
5. 定時/計數(shù)器使用
8155的可編程定時/計數(shù)器是一個14位的減法計數(shù)器,在TIMERIN端輸入計數(shù)脈沖,計滿時由TIMEROUT輸出脈沖或方波,輸出方式由定時器高8位寄存器中的M2、M1兩位來決定。當TIMERIN接外脈沖時為計數(shù)方式,接系統(tǒng)時鐘時為定時方式,實際使用時一定要注意芯片允許的最高計數(shù)頻率!
定時/計數(shù)器的初始值和輸出方式由高、低8位寄存器的內(nèi)容決定,初始值14位,其余兩位定義輸出方式。
6. MCS-51單片機和8155的接口
MCS-51和8155的接口非常簡單,因為8155內(nèi)部有一個8位地址鎖存器,故無需外接鎖存器。在二者的連接中,8155的地址譯碼即片選端可以采用線選法、全譯碼等方法,這和8255類似。在整個單片機應用系統(tǒng)中要考慮與片外RAM及其它接口芯片的統(tǒng)一編址。
此時,8155內(nèi)部RAM的地址范圍為:0000H~00FFH,8155各端口的地址(設無關位為0,這些地址都不是惟一的)為:
命令/狀態(tài)口 0400H
A口 0401H
B口 0402H
C口 0403H
定時器低字節(jié) 0404H
定時器高字節(jié) 0405H





