1.硬件接口電路
下圖所示為AT89S51單片機(jī)擴(kuò)展一片82C55的電路圖。圖中,74LS373是地址鎖存器,P0.1、P0.0經(jīng)74LS373與82C55的地址線A1、A0連接;P0.7經(jīng)74LS373與片選端CS相連,其他地址線懸空;82C55的控制線RD(的反)、WR(的反)直接與AT89S51單片機(jī)的RD(的反)和WR(的反)端相連;AT89S51單片機(jī)的數(shù)據(jù)總線P0.0~P0.7與82C55的數(shù)據(jù)線D0~D7連接。
2.確定82C55端口地址
圖中82C55只有3條線與AT89S51單片機(jī)的地址線相接,片選端CS、端口地址選擇端Al、A0,分別接于P0.7、P0.1和P0.0,其他地址線全懸空。顯然只要保證PO.7為低電平時,即可選中82C55;若P0.1、P0.0再為00,則選中82C55的PA口。同理P0.1、P0.0為01、10、11分別選中PB口、PC口及控制口。
若端口地址用16位表示,其他無用端全設(shè)為1(也可把無用端全設(shè)為0),則82C55的A、B、C及控制口地址分別為FF7CH、FF7DH、FF7EH、FF7FH。
如果沒有用到的位取0,則4個端口地址分別為0000H、0001H、0002H、0003H,只要保證CS、A1、A0的狀態(tài),無用位設(shè)為0或l均可。
3.軟件編程
在實際應(yīng)用設(shè)計中,必須根據(jù)外部設(shè)備的類型選擇82C55的操作方式,并在初始化程序中把相應(yīng)控制字寫入控制口。下面根據(jù)上圖所示,介紹對82C55進(jìn)行操作的編程。
例1:要求82C55工作在方式O,且PA口作為輸入,PB口、PC口作為輸出,則程序如下:
例2:對端口PC的置位/復(fù)位。
82C55的PC口8位中的任意一位,均可用指令來置位或復(fù)位。例如,如果想把PC口的PC5置1,相應(yīng)的控制字為00001011B-0BH。程序如下:
如果想把PC口的PC5復(fù)位,相應(yīng)的控制字00001010B-0AH,程序如下:
82C55接口芯片在AT89S51單片機(jī)應(yīng)用系統(tǒng)中廣泛用于與各種外部數(shù)字設(shè)備的連接,如打印機(jī)、鍵盤、顯示器以及作為數(shù)字信息的輸入、輸出接口。