
单片机用8255A扩展I口.doc
5页单片机用8255A扩展I/O口图中,P0口为地址/数据复用口,数据通过P0口直接传送,地址的低8位通过74LS373锁存,系统的读/写控制及复位信号与8255A的读/写及控制端对应相连,系统地址总线的A1、A0(P0.1、P0.0)直接与8255A的地址线A1、A0对应相连,利用高8位地址线的P2.7作为选通信号,直接与8255A的片选端相连,A口接8个发光二极管作为输出,B口接1只8位拨码开关作为输入,C口空置8255A地址设置表单片机引脚P27P26P25P24P23P22P21P20P07P06P05P04P03P02P01P008255A引脚CSA1A0A口0111111111111100B口01111111111111O1控制口0111111111111111十六进制值7FFX8255A各端口的地址如下:A口地址:7FFCH;B口地址:7FFDH;C口地址:7FFEH;控制口地址:7FFFH控制字设置数据位D7D6D5D4D3D2D1D0数值10000010十六进制82功能方式设置方式0A口输出B口输入D7=1,方式控制,D6、D5决定控制方式,D4决定A口,D1决定B口8255A控制字:82H。
用C语言编写的控制程序如下:#include
8255A地址设置表单片机引脚P27P26P25P24P23P22P21P20P07P06P05P04P03P02P01P008255A引脚CSA1A0A口0111110011111111B口0111110111111111控制口0111111111111111十六进制值7XFF此时,8255A各端口的地址如下:A口地址:7CFFH;B口地址:7DFFH;C口地址:7EFFH;控制口地址:7FFFH控制字设置同上8255A控制字:82H控制程序中,只要把控制地址定义、A口地址定义和B口地址定义改成以下三句,其他不变:#define PAC XBYTE[0x7FFF] #define PA XBYTE[0x7CFF] #define PB XBYTE[0x7DFF] 控制功能同上:B口上预置的拨码开关状态由A口发光二极管的显示反映出来[此文档可自行编辑修改,如有侵权请告知删除,感谢您的支持,我们会努力把内容做得更好]可编辑word文档。
