51单片机总线时序

 一、总线概述

计算机系统是以微处理器为核心的,各器件要与微处理器相连,且必须协调工作,所以在微处理机中引入了总线的概念,各器件共同享用总线,任何时候只能有一个器件发送数据(可以有多个器件同时接收数据

计算机的总线分为控制总线、地址总线和数据总线等三种。而数据总线用于传送数据,控制总线用于传送控制信号, 地址总线则用于选择存储单元或外设。

 

二、单片机的三总线结构

51系列单片机具有完善的总线接口时序,可以扩展控制对象,其直接寻址能力达到64k( 216次方。在总线模式下,不同的对象共享总线,独立编址、分时复用总线,CPU 通过地址选择访问的对象,完成与各对象之间的信息传递。

 

  单片机三总线扩展示意如图所示。

51单片机总线时序_第1张图片    

 

  1、数据总线

  51 单片机的数据总线为P0 口,P0 口为双向数据通道,CPU P0 口送出和读回数据。 

  2、地址总线

  51 系列单片机的地址总线为16 位。 

  为了节约芯片引脚,采用P0 口复用方式,除了作为数据总线外,在ALE 信号时序匹配下,通过外置的数据锁存器,在总线访问前半周期从P0口送出低8位地址,后半周期从P0 口送出位数据。 

  高8位地址则通过P2 口送出。 

  3、控制总线   

  51 系列单片机的控制总线包括读控制信号P3.7 和写控制信号P3.6 等,二者分别作为总线模式下数据读和数据写的使能信号。

 

三、单片机总线时序分析

  51 单片机总线时序如图所示。

 

    51单片机总线时序_第2张图片

  从图中可以看出,完成一次总线读写操作周期为TP0 口分时复用,在T0 期间,P0 口送出低位地址,在ALE 的下降沿完成数据锁存,送出低8位地址信号。在T1 期间,P0口作为数据总线使用,送出或读入数据,数据的读写操作在读、写控制信号的低电平期间完成。 

  需要注意的是,在控制信号读、写信号有效期间,P2 口送出高8位地址,配合数据锁存器输出的低位地址,实现16 位地址总线,即64kB 范围的内的寻址。  

  由于CPU不可能同时执行读和写操作,所以读、写信号不可能同时有效。

 

四、常见单片机编址电路

  1、简单地址扩展 

  51 单片机的P2 口可以直接作为高8位地址总线使用,在一些简单系统电路中,常使用P2口直接编址驱动。 

  下面以使用数据缓冲器74LS273 驱动数码显示为例,分析P2 口编址驱动的静态数码显示电路的设计。 

  一位LED 数码显示单元电路如图所示。

 51单片机总线时序_第3张图片

    

  WR A8( P2.0) 相或提供74LS273的时钟信号,当执行“MOVX @DPTRA”指令时,地址信息由DPTR 寄存器确定,会出现有效的写信号WR,只有当地址A8 为满足“0”时,写信号才可以作为74LS273 的时钟信号输入,完成数据锁存。 

  P2 口为A8A15 位地址线,很容易扩展到LED 数码管,WR 信号分别与A8A15 按或关系连接,每位地址线均为低电平有效,即可实现个有效地址。 

  该方案电路简单,但有效地址数太少,不适用于复杂系统设计。

 

  2、低位地址锁存

通常的设计电路是使用8D 锁存器74LS373 实现地址锁存,74HC573 与之逻辑功能相同,只是引脚布局不一样,使用74HC573 布线更容易。

 

  74LS373 真值表如图4所示。 

51单片机总线时序_第4张图片    

   在输出允许OE L、控制使能LE 时,输出为跟随状态; 

  OE LLE 时,输出为保持状态。 

  地址锁存电路如图所示。OE 接地,LE 接单片机的ALE脚将产生满足时序的低位地址信号。 

  执行以下三条指令会得到如图6所示的时序图。
  MOV DPTR# 0FF55H; 低位地址为55H

  MOV A# 0AAH; 待发送数据0AAH→A( 55H 取反)

  MOVX@DPTRA; 中的0AAH送地址为0FF55H 的对象中会。 

51单片机总线时序_第5张图片 

  从图中可以看出,P0 口先送55H,在ALE 下降沿实现地址锁存,随后送出数据0AAH,在WR 有效低电平期间锁存器输出低位地址55HP0 口送出数据0AAH 

  3、带译码器的复杂地址接口电路

  理论上高位地址线可以产生256 个有效地址,如何实现地址扩展地址扩展准确描述是地址译码,例如根地址线可以译码成个地址,4根译码成16 个有效地址。这里选择3-8 译码器实现地址译码,电路图以及对应的编址如表所示。

 

    51单片机总线时序_第6张图片

五、单片机总线编址电路实例 

  带总线扩展接口的单片机系统,包括外部32k RAM 扩展、LCD1602 接口、输入输出口。

  带编址扩展的单片机最小系统电路如图所示。

51单片机总线时序_第7张图片    

  使用74HC573 锁存低位地址;74138 实现个地址扩展,74138 ABA8 A10E1 A15 E2E3 接地常有效,得到0F8FFH 0FFFFH8 个地址无关位用表示或者8000H 8700H( 无关位用表示

  32k RAM 接口如图所示。

 

    51单片机总线时序_第8张图片

  D0D7 接数据总线P0 口,地址线A0A14接单片机地址总线低15 位,单片机地址线A15 RAM 片选信号,低电平有效,这样RAM 地址分配从0000H 7FFFH,与74138 译码地址不冲突。

  LCD1602 接口电路如图所示。

    51单片机总线时序_第9张图片

  RSRW 分别接A12A13,使能信号编址为Y7,这样LCD 的四个驱动地址数据读写和命令读写0CFFFH 0FFFFH ( 无关位为1) 或者8700H 0B700H( 无关位为0)

  有些时候单片机引脚不够用,还要进行扩展,输入口扩展电路如图10 所示。

 

    51单片机总线时序_第10张图片

  利用74HC573( 74LS373) 的高阻态功能,将其输出Q0Q7 P0 口,在满足总线地址读操作中,可以把输入InPORT的数据读入单片机的累加器,地址为0F8FFH 8000H

  输出口扩展电路如图11 所示。 

    51单片机总线时序_第11张图片

利用74LS273 数据锁存功能,在满足总线地址写操作中,可以把单片机累加器里的数据写入273 锁存输出,地址为0F8FFH 8000H。由于所用控制总线不同,可以和输入共用地址。

 

六、结束语 

  总线扩展是设计单片机控制电路必须掌握的技术,大量的特殊功能IC都支持总线接口, ADC0809TLC7528DDS 器件AD9851 等。

 

  总线接口的要点就是在严格的控制时序下,总线被分时复用,以实现复杂系统设计。

你可能感兴趣的:(51单片机总线时序)