第7章MCS-51单片机常用接口7.1MCS-51单片机的最小系统所谓最小系统,是指一个真正可用的单片机最小配置系统。对于单片机内部资源已能满足系统需要的,可直接采用最小系统。MCS-51单片机根据片内有无程序存储器最小系统分两种情况。7.1.18051/8751的最小系统8051/8751片内有4K的ROM/EPROM,因此,只需要外接晶体振荡器和复位电路就可构成最小系统。如图所示。第7章MCS-51单片机常用接口第7章MCS-51单片机常用接口XTAL1XTAL28751P0P1P2P38051RESETEAGND+5V+5V8888该最小系统的特点如下:(1)由于片外没有扩展存储器和外设,P0、P1、P2、P3都可以作为用户I/O口使用。(2)片内数据存储器有128字节,地址空间00H~7FH,没有片外数据存储器。(3)内部有4KB程序存储器,地址空间0000H~0FFFH,没有片外程序存储器,EA应接高电平。(4)可以使用两个定时/计数器T0和T1,一个全双工的串行通信接口,5个中断源。第7章MCS-51单片机常用接口7.1.18031最小应用系统8031片内无程序存储器片,因此,在构成最小应用系统不仅要外接晶体振荡器和复位电路,还应外扩展程序存储器。P2ALE8031P0EAPSENG74LS373A15A8A7A0D7D0OE2764CE高8位地址线P2ALEP0EAPSEN第7章MCS-51单片机常用接口该最小系统特点如下:(1)由于P0、P2在扩展程序存储器时作为地址线和数据线,不能作为I/O线,因此,只有P1、P3作为用户I/O口使用。(2)片内数据存储器同样有128字节,地址空间00H~7FH,没有片外数据存储器。(3)内部有无程序存储器,但片外扩展了程序存储器,其地址空间随芯片容量不同而不一样。图6.2中使用的是2764芯片,容量为8K字节,地址空间为0000H~1FFFH。由于片内没有程序存储器,只能使用片外程序存储器,EA只能接低电平。(4)同样可以使用两个定时/计数器T0和T1,一个全双工的串行通信接口,5个中断源。第7章MCS-51单片机常用接口7.2存储器扩展7.2.1存储器扩展概述一、MCS-51单片机的存储器扩展能力可扩展片外程序存储器64KB,地址为0000H~FFFFH。可扩展片外数据存储器64KB,地址为0000H~FFFFH。二、存储器扩展的一般方法不论何种存储器芯片,其引脚都呈三总线结构,与单片机连接都是三总线对接。另外,电源线接电源线,地线接地线。1.控制线:程序存储器:ROM芯片输出允许控制线OE与单片机的PSEN信号线相连。数据存储器:RAM芯片输出允许控制线OE和写控制线WE分别与单片机的读信号线RD和写信号线WR相连。程序存储器用ROM芯片扩展,数据存储器用RAM芯片扩展第7章MCS-51单片机常用接口2、数据线:存储器芯片的数据线与单片机的数据总线(P0.0~P0.7)按由低位到高位的顺序顺次相接。3、地址线:存储器芯片的地址线的数目由芯片的容量决定。容量(Q)与地址线数目(N)满足关系式:Q=2N。一般来说,存储器芯片的地址线数目总是少于单片机地址总线的数目,连接时存储器芯片的地址线与单片机的地址总线(A0~A15)按由低位到高位的顺序顺次相接。连接后,单片机的高位地址线总有剩余。剩余地址线一般作为译码线,译码输出与存储器芯片的片选信号线CS相接。片选信号线与单片机系统的译码输出相接后,就决定了存储器芯片的地址范围。译码有两种方法:部分译码法和全译码法。部分译码:所谓部分译码就是存储器芯片的地址线与单片机系统的地址线顺次相接后,剩余的高位地址线仅用一部分参加译码。部分译码使存储器芯片的地址空间有重叠,造成系统存储器空间的浪费。第7章MCS-51单片机常用接口如下图,存储器芯片容量为2K,地址线为11根,与地址总线的低11位A0~A10相连,用于选中芯片内的单元。地址总线的A11、A12、A13、A14根地址线参加译码的选中芯片,设这四根地址总线的状态为0100时选中该芯片。地址总线A15不参加译码,当地址总线A15为0、1两种状态都可以选中该存储器芯片。A15A140A130A121A110A10A9A8A7A6A5A4A3A2A1A0地址译码线与存储器芯片连接的地址线当A15=0时,芯片占用的地址是0001000000000000~0001011111111111,即1000H~17FFH。当A15=1时,芯片占用的地址是1001000000000000~1001011111111111,即9000H~97FFH。部分译码法的一个特例是线译码。所谓线译码就是直接用一根剩余的高位地址线与一块存储器芯片的片选信号CS相连。第7章MCS-51单片机常用接口全译码:所谓全译码就是存储器芯片的地址线与单片机系统的地址线顺次相接后,剩余的高位地址线全部参加译码。这种译码方法存储器芯片的地址空间是唯一确定的,但译码电路相对复杂。3.扩展存储器所需芯片数目的确定存储器芯片容量系统扩展容量芯片数目=若所选存储器芯片字长与单片机字长一致,则只需扩展容量。所需芯片数目按下式确定:若所选存储器芯片字长与单片机字长不一致,则不仅需扩展容量,还需字扩展。所需芯片数目按下式确定:存储器芯片字长系统字长存储器芯片容量系统扩展容量芯片数目´=第7章MCS-51单片机常用接口7.2.2程序存储器扩展一.单片程序存储器的扩展P2.6P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P2.7P2.5P0.0ALEVcc8031PSENEAVss+5VA12A11A10A9A8A7A6A5A4A3A2A1A0D7D5D4D3D2D1D0OED6CEGNDVff+5V8D7D6D5D4D3D2D1DGOE8Q7Q6Q5Q4Q3Q2Q1QVcc74LS3732764第7章MCS-51单片机常用接口二.多片程序存储器的扩展其8个重叠的地址范围为如下:0000000000000000~0001111111111111,即0000H~1FFFH;0010000000000000~0011111111111111,即2000H~3FFFH;0100000000000000~0101111111111111,即4000H~5FFFH;0110000000000000~0111111111111111,即6000H~7FFFH;1000000000000000~1001111111111111,即8000H~9FFFH;1010000000000000~1011111111111111,即A000H~BFFFH;1100000000000000~1101111111111111,即C000H~DFFFH;1110000000000000~1111111111111111,即E000H~FFFFH。P2.6P2.5P2.4~P2.0ALE8031PSENEAGP2.774LS373OEA0~A7A8~A12CED0~D7OE2764(1)A0~A7A8~A12CE2764(2)D0~D7OEP0588885885第7章MCS-51单片机常用接口其两片的地址空间分别为:第一片:00000000000000000~0001111111111111,即0000H~1FFFH;00100000000000000~0011111111111111,即2000H~3FFFH;01000000000000000~0101111111111111,即4000H~5FFFH;01100000000000000~0111111111111111,即6000H~7FFFH;第二片:10000000000000000~1001111111111111,即8000H~9FFFH;10100000000000000~1011111111111111,即A000H~BFFFH;11000000000000000~1101111111111111,即C000H~DFFFH;11100000000000000~1111111111111111,即E000H~FFFFH。第7章MCS-51单片机常用接口P2.6P2.5P2.4~P2.0ALE8031PSENEAGP2.774LS373OEA0~A7A8~A12CED0~D7OE2764(1)A0~A7A8~A12CE2764(2)OEP0588885885CBAD0~D7GG1G2AG2BY3Y2Y1Y08D0~D7OE2764(3)A0~A7A8~A12CE8D0~D7OECEA8~A12A0~A72764(4)8585Vcc74LS138由于采用全译码,每片2764的地址空间都是唯一的。它们分别是:00000000000000000~0001111111111111,即0000H~1FFFH;00100000000000000~0011111111111111,即2000H~3FFFH;01000000000000000~0101111111111111,即4000H~5FFFH;01100000000000000~0111111111111111,即6000H~7FFFH。第7章MCS-51单片机常用接口P2.6P2.5P2.4~P2.0ALE8051RDEAGP2.774LS373OEA0~A7A8~A12CE1D0~D7OE6264(1)A0~A7A8~A12CE16264(2)D0~D7OEP058885885WRWEWE88CE2CE2P2.7为低电平0,两片6264芯片的地址空间为:第一片:01000000000000000~0101111111111111,即4000H~5FFFH;第二片:00100000000000000~0011111111111111,即2000H~3FFFH;P2.7为高电平1,两片6264芯片的地址空间为:第一片:11000000000000000~1101111111111111,即C000H~DFFFH;第二片:10100000000000000~1011111111111111,即A000H~BFFFH;7.2.3数据存储器扩展第7章MCS-51单片机常用接口7.3输入/输出口扩展7.3.1简单I/O口扩展通常通过数据缓冲器、锁存器来扩展简单I/O接口。例如:74LS37374LS244、74LS273、74LS245等芯片都可以作简单I/O扩展。P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.08051EAD0D1D2D3D4D5D6D7GOEQ0Q1Q2Q3Q4Q5Q6Q774LS373P2.0RDQ0Q1Q2Q3Q4Q5Q6Q71G2G74LS244++L1L2L3L4L5L6L7L0+5VD0D1D2D3D4D5D6D7K1K2K3K4K5K6K7K0第7章MCS-51单片机常用接口图中,扩展的输入口接了K0~K78个开关,扩展的输出口接了L0~L78个发光二极管,如果要实现K0~K7开关的状态通过L0~L7发光二极管显示,则相应的汇编程序为:LOOP:MOVDPTR,#0FEFFHMOVXA,@DPTRMOVX@DPTR,ASJMPLOOP如果用C语言编程,相应程序段为:#includeabsacc.h//定义绝对地址访问#defineucharunsignedchar……uchari;i=XBYTE[0xfeff];XBYTE[0xfeff]=i;……第7章MCS-51单片机常用接口7.3.2可编程I/O扩展(8255A)一.8255A的结构与功能数据总线缓冲器读/写控制部件双向数据总线D0~D7RDWRA1A0RESETCSB组控制部件A组控制部件A组端口AA组端口CB组端口CB组端口BA组B组PA7~PA0PC7~PC4PC3~PC0PB7~PB08位内部总线第7章MCS-51单片机常用接口CSA1A0RDWRI/O操作00001读A口寄