接口/总线/驱动
51系列单片机具有完善的总线接口时序,可以扩展控制对象,其直接寻址能力达到64k(2的16次方)。在总线模式下,不同的对象共享总线,独立编址、分时复用总线,CPU通过地址选择访问的对象,完成与各对象之间的信息传递。单片机三总线扩展示意如下图所示。
51单片机的数据总线为PO口,PO口为双向数据通道,CPU从pO口送出和读回数据。
51系列单片机的地址总线为16位。为了节约芯片引脚,采用PO口复用方式除了作为数据总线外,在ALE信号时序匹配下,通过外置的数据锁存器,在总线访问前半周从PO口送出低8位地址,后半周期从P0口送出8位数据。高8位地址则通过P2口送出。
51系列单片机的控制总线包括读控制信号P3.7和写控制信号P3.6等,二者分别作为总线模式下数据读和数据写的使能信号。
数据总线: P0,8 位,以并行方式一次传递1个字节的数据。
地址总线:低8 位: PO,高8 位: P2,16 位,可访问65536 个独立单元。
控制总线: 读程序PSEN(-),读端口RD(-) (P3.6),写端口WR(-) (P3.7),地址有效ALE。
当MCS-51没有外部扩展时,P0、P2 与P3 由端口的锁存器扩展; 当MCS-51有外部扩展时,P0、P2、P3.6 和P3.7 不再受到端口锁存器的控制,转而由总线逻辑控制。
当ALE 为高,特别当ALE 从高降为低时,P0 输出的是地址总线的低8 位。
当PSEN(-)或RD(-)或WR(-)之一有效时,PO 作为数据总线使用。
EA不是三总线的信号线,只是控制MCS-51单片机是否使用内部程序存储器。当EA接地时,单片机放弃内部的程序存储器,全部使用外部扩展的程序存储器; 当EA 接+5V时,程序存储器从内部开始,超出内部的才产生外部总线信号,访问外部程序存储器。对兼容的MCS-51单片机,如果内部程序存储器加密了,则不论EA 是否接地,程序的访问方式与EA 接高电平相同,复位后先运行存在内部程序存储器中的程序。
访问程序存储器的指令仅有读指令:MOVC A,@A+DPTR或PC。这个指令使用了PSEN(-)信号。在ALE 有效时,地址A+DPTR 或A+PC 的低8 位从PO 输出,在整个读阶段,地址A+DPTR或A+PC 的高8 位从P2 输出。由于缺乏“写”控制信号,因此MOVC 指令不是完整的三总线指令。
访问数据存储器与I/0 空间的指令为MOVX,有读和写两类:
读外部数据存储器与I/0 空间的指令: MOVXA,@DPTR 或Ri (i=0,1) ;
写外部数据存储器与I/0 空间的指令: MOVX@DPTR 或Ri(i=0,1),A。
在ALE 有效时,地址的低8 位DPL 或RO、R1从PO 输出。使用DPTR 时地址的高8 位为DPH,从P2 输出,使用RO 或R1时,按照通常扩展电路的接法,地址的高8 位为P2 锁存器的值。指令中代表数据总线的是ACC,读(RD)或写(WR) 由MOVX 指令的方向决定。MOVX包含了数据总线,控制总线和地址总线,是完整的三总线指令,在单片机访问扩展接口的IC 时非常有用。
利用单片机输出的ALE 和地址锁存器就可以将PO 中短暂出现的低8 位地址分离出来并且在控制总线有效期间保持稳定不变,构成便于扩展的基本结构。以下是用Protel99SE 绘制的扩展基本结构的原理图,见下图:
在扩展的基本结构中,除了单片机自身工作所需的电源(隐含为隐藏)、晶振和复位外,P0、P2 和P3.6 与P3.7 的功能已经转为三三总线服务,I/0 端口仅剩P1和部分的P3 端口。地址锁存器74LS373 的LE(G) 应当接CPU 的ALE,OE(-) 应当接地,以便截获PO 输出的地址总线的低8 位,并保持在373 的输出端输出。有了这个便于扩展的基本结构,就可以像搭盖积木一样将所需功能的IC 添加到单片机上构成应用系统。
扩展基本结构原理图
全部0条评论
快来发表一下你的评论吧 !