单片机用8255A扩展I0口

单片机用8255A扩展I0口

ID:47440530

大小:88.08 KB

页数:4页

时间:2020-01-11

单片机用8255A扩展I0口_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《单片机用8255A扩展I0口》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、单片机用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引脚CSA1A

2、0A口0111111111111100B口01111111111111O1控制口0111111111111111十六进制值7FFX8255A各端口的地址如下:A口地址:7FFCH;B口地址:7FFDH;C口地址:7FFEH;4控制口地址:7FFFH。控制字设置数据位D7D6D5D4D3D2D1D0数值10000010十六进制82功能方式设置方式0A口输出B口输入D7=1,方式控制,D6、D5决定控制方式,D4决定A口,D1决定B口。8255A控制字:82H。用C语言编写的控制程序如下:#include#include//扩展

3、地址解析头文件#definePACXBYTE[0x7FFF]//控制地址定义#definePAXBYTE[0x7FFC]//A口地址定义#definePBXBYTE[0x7FFD]//B口地址定义voiddelay(void)//延时子程序{unsignedintm,n;for(m=0;m<500;m++)for(n=0;n<500;n++);}voidmain(void){unsignedcharn;//数据存储变量PAC=0x82;//设控制字while(1){4n=PB;//从B口读数据delay();PA=n;//在A口输出数据delay();}}控制功

4、能:B口上预置的拨码开关状态会由A口上发光二极管的显示反映出来。也可以不用74HC373锁存器,电路如下:图中,数据通过P0口传送,系统的读/写控制及复位信号与8255A的读/写及控制端对应相连,8255A的地址线A1、A0对应相连系统高8位地址线的P2.1、P2.0,利用高8位地址线的P2.7作为选通信号,直接与8255A的片选端相连,A口接8个发光二极管作为输出,B口接8位拨码开关作为输入,C口空置(图中时钟和复位电路未画)。48255A地址设置表单片机引脚P27P26P25P24P23P22P21P20P07P06P05P04P03P02P01P00825

5、5A引脚CSA1A0A口0111110011111111B口0111110111111111控制口0111111111111111十六进制值7XFF此时,8255A各端口的地址如下:A口地址:7CFFH;B口地址:7DFFH;C口地址:7EFFH;控制口地址:7FFFH。控制字设置同上8255A控制字:82H。控制程序中,只要把控制地址定义、A口地址定义和B口地址定义改成以下三句,其他不变:#definePACXBYTE[0x7FFF]#definePAXBYTE[0x7CFF]#definePBXBYTE[0x7DFF]控制功能同上:B口上预置的拨码开关状态由

6、A口发光二极管的显示反映出来。4

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。