计算机系统以微处理器为基础。 每个设备必须连接到微处理器并且必须协调工作。 因此,微处理器中引入了总线的概念。 每个设备共享总线,并且任何时候只能有一个设备。 发送数据(可以多个设备同时接收数据)。
计算机总线分为三种类型:控制总线、地址总线和数据总线。 数据总线用于传输数据,控制总线用于传输控制信号,地址总线用于选择存储单元或外设。
2、单片机三总线结构
51系列单片机具有完整的总线接口时序,可以扩展控制对象。 其直接寻址能力达到64k(2的16次方)。 在总线模式下,不同的对象共享总线,独立寻址,分时共享总线。 CPU通过地址选择要访问的对象,完成与各个对象的信息传递。
单片机的三总线扩展图如图1所示。
1.数据总线
51单片机的数据总线是P0口,是双向数据通道。 CPU从P0端口发送和读回数据。
2.地址总线
51系列单片机的地址总线为16位。
为了节省芯片引脚,采用P0口复用方式。 除了作为数据总线外,在ALE信号的时序匹配下,在总线访问的前半个周期,通过外部数据锁存器从P0端口发送低8位地址。 8位数据以半个周期从P0口发出。
高8位地址通过P2端口发送。
3.控制总线
51系列单片机的控制总线包括读控制信号P3.7和写控制信号P3.6等,它们分别作为总线模式下数据读和数据写的使能信号。
3.单片机总线时序分析
51 MCU总线时序如图2所示。
从图2可以看出,完成一次总线(读写)操作的周期为T,P0口是时分复用的。 T0期间,P0口发送低8位地址,数据在ALE下降沿锁存并发送出去。 低8位地址信号。 T1期间,P0口作为数据总线发送或读取数据。 数据读写操作在读写控制信号为低电平期间完成。
需要注意的是,在控制信号(读写信号)有效期间,P2口发送高8位地址,配合数据锁存器输出的低8位地址,实现16位数据的写入。位地址总线,即64kB范围内的搜索。 地点。
由于CPU不能同时进行读写操作,因此读写信号不能同时有效。
4、常用单片机寻址电路
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所示。
5、微控制器总线寻址电路示例
带总线扩展接口的微控制器系统包括外部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(无关位为1) 。 是 0)。
有时单片机引脚不够用,需要扩展。 输入端口扩展电路如图10所示。
利用74HC573(74LS373)的高阻功能,将其输出Q0~Q7连接至P0口。 当满足总线地址读操作时,可以将输入到InPORT的数据读入单片机的累加器,地址为0F8FFH或8000H。
输出端口扩展电路如图11所示。
利用74LS273的数据锁存功能,当满足总线地址写操作时,可将单片机累加器中的数据写入273锁存器输出,地址为0F8FFH或8000H。 由于使用不同的控制总线,地址可以与输入共享。
六,结论
总线扩展是设计单片机控制电路时必须掌握的技术。 大量特殊功能IC支持总线接口,如ADC0809、TLC7528、DDS器件AD9851等。
总线接口的关键是在严格的控制时序下对总线进行时分复用,以实现复杂的系统设计。