1.硬件接口电路
下图所示为AT89S51单片机扩展一片82C55的电路图。图中,74LS373是地址锁存器,P0.1、P0.0经74LS373与82C55的地址线A1、A0连接;P0.7经74LS373与片选端CS相连,其他地址线悬空;82C55的控制线RD(的反)、WR(的反)直接与AT89S51单片机的RD(的反)和WR(的反)端相连;AT89S51单片机的数据总线P0.0~P0.7与82C55的数据线D0~D7连接。
2.确定82C55端口地址
图中82C55只有3条线与AT89S51单片机的地址线相接,片选端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位表示,其他无用端全设为1(也可把无用端全设为0),则82C55的A、B、C及控制口地址分别为FF7CH、FF7DH、FF7EH、FF7FH。
如果没有用到的位取0,则4个端口地址分别为0000H、0001H、0002H、0003H,只要保证CS、A1、A0的状态,无用位设为0或l均可。
3.软件编程
在实际应用设计中,必须根据外部设备的类型选择82C55的操作方式,并在初始化程序中把相应控制字写入控制口。下面根据上图所示,介绍对82C55进行操作的编程。
例1:要求82C55工作在方式O,且PA口作为输入,PB口、PC口作为输出,则程序如下:
例2:对端口PC的置位/复位。
82C55的PC口8位中的任意一位,均可用指令来置位或复位。例如,如果想把PC口的PC5置1,相应的控制字为00001011B-0BH。程序如下:
如果想把PC口的PC5复位,相应的控制字00001010B-0AH,程序如下:
82C55接口芯片在AT89S51单片机应用系统中广泛用于与各种外部数字设备的连接,如打印机、键盘、显示器以及作为数字信息的输入、输出接口。