74LS138译码器剩余的译码输出端可作8255A、8155等可编程I/O芯片的片选信号。该电路适应性强,是一个通用的外部RAM、扩展I/O端口片选信号生成电路,适用于所有外部数据存储器容量在32KB以内的应用系统,也就是说,图中的SRAM存储器芯片可以是6264、62256芯片。在图6-3-4中,如果将译码输出允许端E1、E2接地,E3接高电平,A13、A12、A11分别接译码输入端C、B、A,则译码输出端抗于扰性能将变差。尤其是译码输入编码中只有一个为低电平的译码输出端,如Y3、Y5、Y6更容易受到干扰,因此尽管理论上可行,但实践上不宜采用。考虑到CPU读/写外部RAM选通信号的时序,也不宜将CPU外部数据存储器读写控制信号RD和WR作为74LS138译码器的译码输出允许控制信号。当系统中同时存在数据存储器和程序存储器时,程序存储器的输出允许端接80C31/80C32CPU的程序存储器选通信号PSEN,数据存储器读/写控制端分别与80C31/80C32CPU的外部数据存储器读、写控制信号RD和WR相连,如图6-3-5所示。IC4地址范围:4000H~5FFFHIC3地址范围:0000H~3FFFH或6000H-7FFFHICtI0C1011011DP1.0/T2A0DOP0.013868888A0o1.1/T2EXAIOPO,A30DA2D1.2PO.DD3DPI.343DPO.0312A4D4CD4LD416PO.43P1.4A4A3D5D5DS15PI.52205AS0D66A6D6D6P1.6Q2DCA6D19D719D7.A7A7PL.7PO.2O07OA35A813A92A24INTIA9中国司dOF11A1021A1021A912A10LEA1INTOA1123AIT23AA11A1l1215A12.2AI74LS3732A12A1214A1326A13ToA22OEAV.CS2CE204cS1PGMX29WE18VnOEoRESETRXD626427128TXDRDALE/PVeaWRPSEN80C32图6-3-5MCS-51系列单片机与数据和程序存储器的连接1.输出口扩展MCS-51写外部RAM时,用WR作为写选通信号。在时序上,数据输出有效到WR有效的时间TOVWX最短为零,而WR无效到数据输出无效(即数据保持)的时间
74LS138译码器剩余的译码输出端可作8255A、8155等可编程I/O芯片的片选信 号。该电路适应性强,是一个通用的外部RAM、扩展I/O端口片选信号生成电路, 适用于所有外部数据存储器容量在32KB以内的应用系统,也就是说,图中的SRAM 存储器芯片可以是6264、62256芯片。 在图6-3-4中,如果将译码输出允许端E1、E2接地,E3接高电平,A13、A12、 A11分别接译码输入端C、B、A,则译码输出端抗干扰性能将变差。尤其是译码输 入编码中只有一个为低电平的译码输出端,如Y3、Y5、Y6更容易受到干扰,因此 尽管理论上可行,但实践上不宜采用。 考虑到CPU读/写外部RAM选通信号的时序,也不宜将CPU外部数据存储器读/ 写控制信号RD和WR作为74LS138译码器的译码输出允许控制信号。 当系统中同时存在数据存储器和程序存储器时,程序存储器的输出允许端 接80C31/80C32 CPU的程序存储器选通信号PSEN,数据存储器读/写控制端分别与 80C31/80C32 CPU的外部数据存储器读、写控制信号RD和WR相连,如图6-3-5所示。 图6-3-5 MCS-51系列单片机与数据和程序存储器的连接 1.输出口扩展 MCS-51写外部RAM时,用WR 作为写选通信号。在时序上,数据输出有效到 WR有效的时间TQVWX最短为零,而WR无效到数据输出无效(即数据保持)的时间
TWHQX也不超过1个机器周期。而利用触发器扩展输出口时,触发器送数时钟由外部RAM写选通信号WR和高位地址译码信号经过“与门或或非门产生,这样送数时钟信号就存在一定的延迟,因而只能利用WR的前沿将数据锁存到触发器中。常用74LS273(八上升沿触发D触发器,带公共清零端)、74LS174(六上升沿触发D触发器)、74LS374(八上升沿触发D触发器,三态输出)和74LS377(八上升沿触发D触发器,带使能端)芯片扩展MCS-51的输出口,如图6-3-6所示。Vec9U4U2数据输出UI4.3kl0012DCDA103480IDP0.000000EA/Vrpae332242BB24tr00034886照D31936YKXIeB1860A61106L10DG6X2PO.7DO7D219F1907A24PO.78D8Q8QBDD1RESETLEOECLRCLK21H124.3kl2374LS37374LS273INTO23A10U4A13U3INTI2474LS021sAILHArOYoA122B2614T1737A133P2.6务Ai5P2:912P1.0/T2中P1.1/T2EX17RDP1.210A15616GIWRP1.39AdG2AY629A1415P1.4PSENQG2BY730P1.5ALE/P-74LS138P1.6TXD技大学出10PL.7RXD8XC5X或8XC5XX2图6-3-6利用74LS273芯片的输出口扩展电路当A15、A14、A13、A12、A11为10110时,U3译码输出端有效,或非门U4A等效于反相器,可见,CPU写外部RAM选通信号延迟了一个门电路延迟时间(约15ns)。此时,写端口地址为B000H,执行如下指令即可将累加器Acc的内容锁存到74LS273的输出端。MOVDPTR,#OBOOOH:输出口地址送数据指针MOVX;累加器Acc内容锁存到@DPTR,A74LS273的输出端显然,扩展输出口的状态不能读出。当仅需要修改输出口中个别位的状态时,可使用具有位寻址功能的内部RAM单元作为扩展输出口的映像地址,并采用间接方式访问,即先对映像地址单元进行“读一改一写操作,再将映像地址单元内容送外
TWHQX也不超过1个机器周期。而利用触发器扩展输出口时,触发器送数时钟由外 部RAM写选通信号WR和高位地址译码信号经过“与门”或“或非门”产生,这样送数 时钟信号就存在一定的延迟,因而只能利用WR的前沿将数据锁存到触发器中。常 用74LS273(八上升沿触发D触发器,带公共清零端)、74LS174(六上升沿触发D触发 器)、74LS374(八上升沿触发D触发器,三态输出)和74LS377(八上升沿触发D触发器, 带使能端)芯片扩展MCS-51的输出口,如图6-3-6所示。 图6-3-6 利用74LS273芯片的输出口扩展电路 当A15、A14、A13、A12、A11为10110时,U3译码输出端有效,或非门U4A等 效于反相器,可见,CPU写外部RAM选通信号延迟了一个门电路延迟时间(约15 ns)。 此时,写端口地址为B000H,执行如下指令即可将累加器Acc的内容锁存到74LS273 的输出端。 MOV DPTR,#0B000H ;输出口地址送数据指针 MOVX @DPTR,A ;累加器Acc内容锁存到 74LS273的输出端 显然,扩展输出口的状态不能读出。当仅需要修改输出口中个别位的状态时, 可使用具有位寻址功能的内部RAM单元作为扩展输出口的映像地址,并采用间接方 式访问,即先对映像地址单元进行“读—改—写”操作,再将映像地址单元内容送外
部端口。例如,通过如下指令即可将B00OH口的bO位取反:;使用28H单元作为B000HPORTP6DATA28H端口的映像地址MOVA,PORTP6;Acc←BOOOH端口映像地址CPLAcc.0;对bo位取反MOVPORTP6,A:回写映像地址单元MOVDPTR,#OBOOOH;DPTR端口地址MOVX:端口映像内容b0位取反后@DPTR, A送74LS273输出端由于只能利用WR的前沿(即下降沿)将输出数据锁存到触发器输出端,因此不能使用“高电平送数、下降沿锁存器件,如74LS373锁存器扩展输出口。对于这类器件,在WR信号后不加反相器时,送数时钟LE与WR相位不匹配:而在WR信号后加反相器时,写入期间LE有效,满足相位匹配条件,但数据输出锁存脉冲LE的下降沿对应的后沿(即上升沿)。由于WR延迟不可避免,数据维持时间可能小于芯片正确锁存数据所需的最小时间,因此可能导致“WR后沿来到时数据已无效"的现象,使锁存输出数据不可靠。对于确实需要将数据写入“高电平送数,下降沿锁存”器件的,如某些LCD显示模块I/O口时,可将这类器件的数据输入端、数据锁存使能端LE与CPU的I/O引脚(如P1.x)或具有输出锁存功能的I/O扩展芯片,如8255、8155的输出口相连,如图6-3-7所示。2.输入口扩展对输入口来说,一般无需锁存,原则上三态门电路、具有三态输出的总线缓冲器、驱动器、D型触发器(如74LS374)以及电平触发的锁存器(如74LS373)等均可以作为输入口扩展芯片,图6-3-8所示。在图6-3-8中分别使用了两片74LS373、一片74LS125构成了三个数据输入口,共扩展了20条输入线,其中U1的输出允许端OE接U4的译码输出引脚。当A15、A14、A13、A12、A11为10000,且Y0为低电平时,Y0输出低电平,即读8000H端口时,Y0引脚将出现负脉冲(由于输入口无需锁存,因此将74LS373的锁存输入端LE通过2.2k9的电阻与电源VCC相连),使数据输入端与
部端口。例如,通过如下指令即可将B000H口的b0位取反: PORTP6 DATA 28H ;使用28H单元作为B000H 端口的映像地址 MOV A,PORTP6 ;Acc←B000H端口映像地址 CPL Acc.0 ;对b0位取反 MOV PORTP6,A ;回写映像地址单元 MOV DPTR,#0B000H ;DPTR←端口地址 MOVX @DPTR,A ;端口映像内容b0位取反后 送 74LS273输出端 由于只能利用WR的前沿(即下降沿)将输出数据锁存到触发器输出端,因此不能 使用“高电平送数、下降沿锁存”器件,如74LS373锁存器扩展输出口。对于这类器 件,在WR信号后不加反相器时,送数时钟LE与WR相位不匹配;而在WR信号后加 反相器时,写入期间LE有效,满足相位匹配条件,但数据输出锁存脉冲LE的下降沿 对应 的后沿(即上升沿)。由于WR延迟不可避免,数据维持时间可能小于芯片正 确锁存数据所需的最小时间,因此可能导致“WR后沿来到时数据已无效”的现象,使 锁存输出数据不可靠。 对于确实需要将数据写入“高电平送数,下降沿锁存”器件的,如某些LCD显示 模块I/O口时,可将这类器件的数据输入端、数据锁存使能端LE与CPU的I/O引脚(如 P1.x)或具有输出锁存功能的I/O扩展芯片,如8255、8155的输出口相连,如图6-3-7 所示。 2. 输入口扩展 对输入口来说,一般无需锁存,原则上三态门电路、具有三态输出的总线缓冲 器、驱动器、D型触发器(如74LS374)以及电平触发的锁存器(如74LS373)等均可以作 为输入口扩展芯片,图6-3-8所示。在图6-3-8中分别使用了两片74LS373、一片 74LS125构成了三个数据输入口,共扩展了20条输入线,其中U1的输出允许端OE接 U4的译码输出引脚。当A15、A14、A13、A12、A11为10000,且Y0为低电平时, Y0输出低电平,即读8000H端口时,Y0引脚将出现负脉冲(由于输入口无需锁存,因 此将74LS373的锁存输入端LE通过2.2 kΩ的电阻与电源VCC相连),使数据输入端与
CPU数据总线相连。不难看出,由U2构成的第二个输入端口地址为8800H,其中锁存脉冲STB由外部输入设备提供;由U3构成的第三个输入端口地址为9000H。CPU[D7~DO]UI科技大学出版社DONJID180900001695B有良宁R自R院数据输入D3D4D516D618U4D71915All11-AYOOELEA1222k14BYI74LS37313A133cY2Vec12Y311CPU[D7~D0]E3U210A156DO23GI180000881IDA7439BLsf6G2AY6A8488RRDG2BY79D38574LS138B313数据输入14西安电子科技1D618D78DSTBOCCLK74LS373U31G安电子科技大学出版社DO3IY1A42GD162Y2A103G数据输入D28a3Y3A134GD31214Y4A74LS125图6-3-8输入口扩展电路图6-3-9一个实用的输入/输出口扩展电路6.4RAM/IO扩展8155的接口和应用6.4.1RAM/1O扩展器8155的接口技术8155有256字节RAM、2个8位并行口、1个6位并行口、1个14位定时器。是51系列单片机应用中常用的外围器件之一。利用8155/8156可编程1/O芯片扩展MCS-51的I/O口
CPU数据总线相连。不难看出,由U2构成的第二个输入端口地址为8800H,其中锁 存脉冲STB由外部输入设备提供;由U3构成的第三个输入端口地址为9000H。 图6-3-8 输入口扩展电路 图6-3-9 一个实用的输入/输出口扩展电路 6.4 RAM/IO 扩展 8155 的接口和应用 6.4.1 RAM/IO扩展器8155的接口技术 8155有256字节RAM、2个8位并行口、1个6位并行口、1个14位定时器。是 51系列单片 机应用中常用的外围器件之一。 利用 8155/8156 可编程 I/O 芯片扩展 MCS-51 的 I/O 口
8155/8156也是MCS-51单片机系统常用的可编程I/O扩展芯片,与MCS-51接口方便。采用40引脚DIP封装形式,单一+5V工作电源。8155/8156可编程I/O扩展芯片除了可提供三个可编程的I/O端口(A、B均为8位I/O口,C口为6位I/O端口)外,还提供了256字节的SRAM存储单元和一个14位可编程定时/计数器,并内置了地址锁存器,地址线可直接与MCS-51单片机的PO口相连,无须使用74LS373作地址锁存器,特别适合扩展具有片内程序存储器的MCS-51单片机CPU,如8751、8752、87C51/52/54/5889C51/52/54/58、87C51X2/52X2/54X2/58X289C51X2/52X2/54X2/58X2等的1/O口。当系统所需外部数据存储器容量不大时,由1片CPU和1片8155即可构成1/O端口较多的单片机应用系统。一、内部结构和引脚功能1222212NccADOBAADO四#R限限#限422415T3Y7IO/MPA4ADSADS256字节AA口PA7~PAO著3静态RAMADSADSPA7~PAOPA7CE223PB88CEB口PB~PB0阳RDCE99RDRD命令/状态WR10WRO寄存器ALE71O/M1111PPC口PCPCOALEALERESET6.6TMROUTTMROUT3TMRIN22922双可14位定时/计数器33TMRINTMRIN-rTMROUTGNDPC444PCSRESETRESET8156H8155H(b)(b)(a)图6-4-18155/8156内部结构及引脚排列其中:
8155/8156 也是 MCS-51 单片机系统常用的可编程 I/O 扩展芯片,与 MCS-51 接 口方便。采用 40 引脚 DIP 封装形式,单一+5 V 工作电源。8155/8156 可编程 I/O 扩展芯片除了可提供三个可编程的 I/O 端口(A、B 均为 8 位 I/O 口,C 口为 6 位 I/O 端口)外,还提供了 256 字节的 SRAM 存储单元和一个 14 位可编程定时/计数器,并 内置了地址锁存器,地址线可直接与 MCS-51 单片机的 P0 口相连,无须使用 74LS373 作地址锁存器,特别适合扩展具有片内程序存储器的 MCS-51 单片机 CPU,如 8751、 8752 、 87C51/52/54/58 、 89C51/52/54/58 、 87C51X2/52X2/54X2/58X2 、 89C51X2/52X2/54X2/58X2 等的 I/O 口。当系统所需外部数据存储器容量不大时,由 1 片 CPU 和 1 片 8155 即可构成 I/O 端口较多的单片机应用系统。 一、内部结构和引脚功能 图 6-4-1 8155/8156 内部结构及引脚排列 其中: PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 CE W R IO/M ALE 8 9 10 7 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 PC0 PC1 PC2 PC3 PC4 PC5 37 38 39 1 2 3 12 13 14 15 16 17 18 19 RD 11 (b) AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 T MROUT 6 TMRIN 3 RESET 4 8155H PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 CE W R IO/M ALE 8 9 10 7 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 PC0 PC1 PC2 PC3 PC4 PC5 37 38 39 1 2 3 12 13 14 15 16 17 18 19 RD 11 (b) AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 T MROUT 6 TMRIN 3 RESET 4 8156H 256字 节 静 态RAM A口 命令/状态 寄存器 B口 C口 14位定时 /计数器 PA7~ PA0 PB7~ PB0 PC7~ PC0 IO/M PA7~ PA0 CE TMRIN RESET RD W R ALE VCC T MROUT GND (a)