好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

单片机用8255A扩展I口.doc

5页
  • 卖家[上传人]:资****亨
  • 文档编号:125418098
  • 上传时间:2020-03-17
  • 文档格式:DOC
  • 文档大小:107KB
  • / 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#include //扩展地址解析头文件#define PAC XBYTE[0x7FFF] //控制地址定义#define PA XBYTE[0x7FFC] //A口地址定义#define PB XBYTE[0x7FFD] //B口地址定义void delay(void) //延时子程序{ unsigned int m,n; for(m=0;m<500;m++) for(n=0;n<500;n++);}void main(void){ unsigned char n; //数据存储变量 PAC=0x82; //设控制字 while(1) { n=PB; //从B口读数据 delay(); PA=n; //在A口输出数据 delay();}} 控制功能:B口上预置的拨码开关状态会由A口上发光二极管的显示反映出来也可以不用74HC373锁存器,电路如下:图中,数据通过P0口传送,系统的读/写控制及复位信号与8255A的读/写及控制端对应相连, 8255A的地址线A1、A0对应相连系统高8位地址线的P2.1、P2.0,利用高8位地址线的P2.7作为选通信号,直接与8255A的片选端相连,A口接8个发光二极管作为输出,B口接8位拨码开关作为输入,C口空置(图中时钟和复位电路未画)。

      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文档。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.