51单片机总线时序

本文介绍了51单片机的总线结构,包括数据总线、地址总线和控制总线,并详细阐述了51单片机的三总线时序,以及如何通过地址锁存器、译码器实现地址扩展,提供了多种单片机编址电路的设计实例。
摘要由CSDN通过智能技术生成

一、总线概述

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

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

 

二、单片机的三总线结构

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 接口、输入输出口。

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

    

  使用 74HC573 锁存低 8 位地址; 74138 实现 8 个地址扩展, 74138 A B C A8 A10 E1 A15 E2 E3 接地常有效,得到 0F8FFH 0FFFFH8 个地址 ( 无关位用 1 表示 ) 或者 8000H 8700H( 无关位用 0 表示 )

   32k RAM 接口如图 8 所示。

 

    

   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 等。

 

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值