全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 通信网络 >

并行I/O口扩展的2种方式实例介绍

时间:2020-09-23 17:09

人气:

作者:admin

标签: 驱动器 

导读:I/O口不能完全用于输入/输出操作,当需要扩展外部存储器时,P0、P2口用作地址总线和数据总线,此时能用的I/O口就只有P1和P3口,如果再使用串行通信,I/O口就不够使用了,需要扩展I...

I/O口不能完全用于输入/输出操作,当需要扩展外部存储器时,P0、P2口用作地址总线和数据总线,此时能用的I/O口就只有P1和P3口,如果再使用串行通信,I/O口就不够使用了,需要扩展I/O口

两种方式:

① 采用普通锁存器、三态门等芯片来进行简单的扩展(如74LS373或74LS244等)

②采用可编程的I/O芯片来扩展(如8255或8155等)

要求:用4个开关控制4个LED的亮灭状态,其中采用74LS244控制开关的输入,采用74LS373控制LED输出

代码:

电路图:

过程分析:

#18 P0=0xff;通过拉高P0口置为1111 1111,即关闭LED灯;

#19 com=0;对CD4071 U2.A的1和CD4071 U2.B的5输入一个0;

#20 rd = 0;对CD4071 U2.A的2输入一个0;

由于CD4071的功能是执行逻辑或运算,1和2分别输入0,则3输出0给74LS244的OE口;

74LS244缓冲驱动器的OE为使能端,低电平是有效的,高电平时输出为三态,此时通过CD4071传给OE低电平,使开关的电平可以通过74LS244传入P0;

开关状态传入P0;

#21 temp = P0;通过定义的unsigned char temp来存放P0的状态

#22 rd = 1;对CD4071 U2.A的2输入一个1;

1=0;2=1;此时或门输出为1;

74LS244的OE端高电平时输出为三态,关闭74LS244

#23 wr = 1;对CD4071 U2.B的6输入一个1;

此时5=0;6=1;CD4071 U2.B的7输出一个1;

74LS343的OE为低电平时,用作地址锁存器;LE为高电平时,输出Q0-Q7状态与D0-D7状态相同;当LE发生负跳变(1->0)时,输入端的D0-D7锁入Q0-Q7

#24 P0 = temp;temp中的数据存入P0,传送到74LS343的D端;

#25 wr = 0;对CD4071 U2.B的6输入一个0;

此时5=0;6=0;CD4071 U2.B的7输出一个0;

LE的状态从1->0,发生负跳变,输出Q0-Q7

LED等接受到开关的情况,发生亮灭。

实验结果

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信