一、概述
通常说计算机有地址、数据、控制三类总线,由于总线上需要驱动的负载多,CPU是大规模集成电路,不具备功率驱动能力,总线驱动器的作用就是提供功率驱动。其次,CPU总线常常是分时复用总线,就是说在不同的时段,管脚上出现的信号功能不同,需要锁存器存储并分离信号,总线驱动器起锁存器的作用。74LS245是我们常用的总线驱动器芯片,用来驱动LED或者其他的设备。
二、74LS245性能介绍
74LS245为三态输出的八组总线收发器,既可以输出,也可以输入数据。其引脚图如图1所示,其中A0-A7为A总线端,B0-B7为B总线端,G为三态允许端,DIR为方向控制端。74LS245为双列直插封装。图2为74LS245的功能框图。
图1 74LS245引脚配置图
图2 74LS245内部逻辑图
表1为74LS245的功能表。当片选端G低电平有效时,DIR=“0”,信号由B向A传输;DIR=“1”,信号由A向B传输;当G为高电平时,A、B均为高阻态,此时74LS245不工作。
表1 74LS245功能表
74LS245的推荐工作条件如表2所示。
表2 74LS245推荐工作条件
三、Proteus电路图设计
图3为74LS245 DIR引脚为1时的Proteus仿真电路图,用MCS-51的P0.0-P0.7与74LS245的A0-A7相连,74LS245的B0-B7与8个LED管相连,用来指示输出数据的变化。74LS245的G引脚接地。
图3 74LS245 DIR引脚为1时的仿真电路图
图4为74LS245 DIR引脚为0时的Proteus仿真电路图,用MCS-51的P0.0-P0.7与74LS245的A0-A7相连,74LS245的B0-B7与8个单刀双掷开关相连,用来控制74LS245的输入数据。
图4 74LS245 DIR引脚为0时的仿真电路图
四、程序设计
本文的程序设计非常简单,指示简单的控制MCS-51单片机P0口数据的输入输出,从而验证74LS245的功能。DIR引脚为1时的汇编程序如下:
ORG 00H
START: MOV P0,#88H ;向P0口写数据
SJMP START
END
图5 74LS245 DIR引脚为1时的仿真效果图
DIR引脚为0时的汇编程序如下:
ADDLBL EQU 50H
ORG 00H
START: MOV A,P0;读P0口数据
MOV ADDLBL,A;P0口数据送50H
SJMP START
END
图6 74LS245 DIR引脚为0时的仿真效果图
五、仿真过程、效果及总结
(1)打开Keil2,选择ProjectNew Project命令,在弹出的Create New Project对话框中新建Keil项目74LS245.uv2。
(2)选择CPU为ATMEL中的AT89C51单片机。
(3)编辑好源程序,编辑完成后保存。
(4)在Project Workspace窗口中,将74LS245.asm文件加入到Source Group1中。
(5)在Project Workspace窗口中Target1文件夹上单击右键,在弹出的窗口中选择Output选项卡,并选中Create HEX File选项。
(6)在Keil菜单中选择Project Build Target选项,编译汇编程序,并产生HEX文件。
(7)将Keil产生HEX文件加载到Proteus ISIS绘制的硬件电路中。
图5为74LS245 DIR引脚为1时的仿真效果图:当G=0,DIR=1时,送入P口数据为88H时,即送入74LS245 A口的数据也为88H,D4与D8 LED灯亮,证明从B口输出的数据为88H;图6为74LS245 DIR引脚为0时的仿真效果图:当G=0,DIR=0时,使单刀双掷开关SW8与SW4接高电平,即送入74LS245 B口的数据为88H,此时查看MCS-51 50H地址的内容为88H,证明从A口输出的数据为88H。
本实例完美地验证了74LS245的逻辑功能:8路同相三态双向总线收发器,可双向传输数据。当单片机的I/O口总线负载达到或超过其最大负载能力时,必须接入总线驱动器。