打算机系统因此微处理器为核心的,各器件要与微处理器相连,且必须折衷事情,以是在微处理机中引入了总线的观点,各器件共同享用总线,任何时候只能有一个器件发送数据(可以有多个器件同时吸收数据) 。
打算机的总线分为掌握总线、地址总线和数据总线等三种。而数据总线用于传送数据,掌握总线用于传送掌握旗子暗记, 地址总线则用于选择存储单元或外设。
二、单片机的三总线构造

51系列单片机具有完善的总线接口时序,可以扩展掌握工具,其直接寻址能力达到64k( 2的16次方) 。在总线模式下,不同的工具共享总线,独立编址、分时复用总线,CPU 通过地址选择访问的工具,完成与各工具之间的信息通报。
单片机三总线扩展示意如图1 所示。
1、数据总线
51 单片机的数据总线为P0 口,P0 口为双向数据通道,CPU 从P0 口送出和读回数据。
2、地址总线
51 系列单片机的地址总线为16 位。
为了节约芯片引脚,采取P0 口复用办法,除了作为数据总线外,在ALE 旗子暗记时序匹配下,通过外置的数据锁存器,在总线访问前半周期从P0口送出低8位地址,后半周期从P0 口送出8 位数据。
高8位地址则通过P2 口送出。
3、掌握总线
51 系列单片机的掌握总线包括读掌握旗子暗记P3.7 和写掌握旗子暗记P3.6 等,二者分别作为总线模式下数据读和数据写的使能旗子暗记。
三、单片机总线时序剖析
51 单片机总线时序如图2 所示。
从图2 中可以看出,完成一次总线( 读写) 操作周期为T,P0 口分时复用,在T0 期间,P0 口送出低8 位地址,在ALE 的低落沿完成数据锁存,送出低8位地址旗子暗记。在T1 期间,P0 口作为数据总线利用,送出或读入数据,数据的读写操作在读、写掌握旗子暗记的低电日常平凡代完成。
须要把稳的是,在掌握旗子暗记( 读、写旗子暗记) 有效期间,P2 口送出高8位地址,合营数据锁存器输出的低8 位地址,实现16 位地址总线,即64kB 范围的内的寻址。
由于CPU不可能同时实行读和写操作,以是读、写旗子暗记不可能同时有效。
四、常见单片机编址电路
1、大略地址扩展
51 单片机的P2 口可以直接作为高8位地址总线利用,在一些大略系统电路中,常利用P2口直接编址驱动。
下面以利用数据缓冲器74LS273 驱动数码显示为例,剖析P2 口编址驱动的静态数码显示电路的设计。
一位LED 数码显示单元电路如图3 所示。
WR 与A8( P2.0) 相或供应74LS273的时钟旗子暗记,当实行“MOVX @DPTR,A”指令时,地址信息由DPTR 寄存器确定,会涌现有效的写旗子暗记WR,只有当地址A8 为知足“0”时,写旗子暗记才可以作为74LS273 的时钟旗子暗记输入,完成数据锁存。
P2 口为A8~A15 的8 位地址线,很随意马虎扩展到8 只LED 数码管,WR 旗子暗记分别与A8~A15 按或关系连接,每位地址线均为低电平有效,即可实现8 个有效地址。
该方案电路大略,但有效地址数太少,不适用于繁芜系统设计。
2、低8 位地址锁存
常日的设计电路是利用8D 锁存器74LS373 实现地址锁存,74HC573 与之逻辑功能相同,只是引脚布局不一样,利用74HC573 布线更随意马虎。
74LS373 真值表如图4所示。
在输出许可OE 为L、掌握使能LE 为H 时,输出为跟随状态;OE 为L、LE 为L 时,输出为保持状态。
地址锁存电路如图5 所示。OE 接地,LE 接单片机的ALE脚将产生知足时序的低8 位地址旗子暗记。
实行以下三条指令会得到如图6所示的时序图。
MOV DPTR,# 0FF55H; 低8 位地址为55H
MOV A,# 0AAH; 待发送数据0AAH→A( 55H 取反)
MOVX,@DPTR,A; A 中的0AAH送地址为0FF55H 的工具中会。
从图6 中可以看出,P0 口先送55H,在ALE 低落沿实现地址锁存,随后送出数据0AAH,在WR 有效( 低电平) 期间锁存器输出低8 位地址55H,P0 口送出数据0AAH。
3、带译码器的繁芜地址接口电路
理论上高8 位地址线可以产生256 个有效地址,如何实现地址“扩展”呢? 地址扩展准确描述是地址译码,例如3 根地址线可以译码成8 个地址,4根译码成16 个有效地址。这里选择3-8 译码器实现地址译码,电路图以及对应的编址如表1 所示。
五、单片机总线编址电路实例
总线扩展接口的单片机系统,包括外部32k RAM 扩展、LCD1602 接口、输入输出口。
D0~D7 接数据总线P0 口,地址线A0~A14接单片机地址总线低15 位,单片机地址线A15 接RAM 片选旗子暗记,低电平有效,这样RAM 地址分配从0000H 到7FFFH,与74138 译码地址不冲突。
LCD1602 接口电路如图9 所示。
RS、RW 分别接A12、A13,使能旗子暗记编址为Y7,这样LCD 的四个驱动地址( 数据读写和命令读写) 为0CFFFH 到0FFFFH ( 无关位为1) 或者8700H 到0B700H( 无关位为0)。
有些时候单片机引脚不足用,还要进行扩展,输入口扩展电路如图10 所示。
利用74HC573( 74LS373) 的高阻态功能,将其输出Q0~Q7 接P0 口,在知足总线地址读操作中,可以把输入InPORT的数据读入单片机的累加器,地址为0F8FFH 或8000H。
输出口扩展电路如图11 所示。
利用74LS273 数据锁存功能,在知足总线地址写操作中,可以把单片机累加器里的数据写入273 锁存输出,地址为0F8FFH 或8000H。由于所用掌握总线不同,可以和输入共用地址。
六、结束语
总线扩展是设计单片机掌握电路必须节制的技能,大量的分外功能IC都支持总线接口, 如ADC0809,TLC7528,DDS 器件AD9851 等。
总线接口的要点便是在严格的掌握时序下,总线被分时复用,以实现繁芜系统设计。