1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,六,章,MCS-51,单片机的系统扩展,主要内容,1,.MCS-51,单片机系统扩展的基本概念,2.,程序存储器扩展技术,3,.,数据存储器扩展,4,.,输入,/,输出口扩展技术,重点:,系统扩展,的方法,地址译码与分析方法,第六章,1-,1,wyx,第一节 单片机系统扩展的一般方法,一、系统扩展基本内容与意义,早期的单片机,8051/8751,最小应用系统,由于集成度的限制,这种最小应用系统只能用作一些小型的控制单元。其应用特点是:,(,1,)全部,I/O,口线均可供用户使用。,(,2,)内部程序存储
2、器容量不大(只有,4KB,地址空间)。,(,3,)应用系统开发具有特殊性,第六章,1-,2,系统扩展的内容:,1.,外部程序存储器的扩展;,2.,外部数据存储器的扩展;,3.I/O,接口的扩展;,4.,其他专用功能部件的扩展。,MCS-51,单片机内部虽然集成了储存器、,I/O,口、定时器,/,计数器等硬件资源,但它们的容量比较小,资源有限。为了满足各种复杂的应用系统的要求,常常需要单片机外部扩展存储器和各种功能的器件。,第六章,1-,3,二系统扩展三总线的形成,第六章,1-,4,3.,对,I/O,接口的读写操作如同外部,RAM,的读写,操作,用,MOVX,指令实现,外部程序存储器读操作,P0
3、口的分时输出地址信息和输入指令信息控制由,ALE,和,PSEN,实现。,为了将,P0,口的地址和数据分离,用,ALE,的下跳沿将,P0,口输出的地址信号低,8,位锁存在地址锁存器中,地址锁存器一般选用,74LS373,、,74LS573,、,8282,等芯片。,外部数据存储器读,/,写操作,对外部数据存储器的读操作控制由,ALE,和,RD,实现。,执行指令:,MOVX A,,,DPTR,对外部数据存储器的写操作控制由,ALE,和,WR,实现。,执行指令:,MOVX DPTR,,,A,第六章,1-,5,第二节,程序存储器的扩展,当程序量超过单片机的片内程序存储器时,可采用片外扩展程序存储器,通
4、常采用,EPROM,、,E2PROM,、,Flash,存储器等芯片。,第六章,1-,6,一、,程序存储器扩展的基本方法,1.,地址线的连接:,P0,口,(P0.0,P0.7),经锁存器接存储器低,8,位地址线,(A0,A7),。,P2,口,(P2.0,P2.7),与存储器高,8,位地址线,(A8,A15),相连接;,2.,数据线的连接:,P0,口与存储器的,8,位数据线(,D0,D7,)相连接。,3.,控制线的连接,/PSEN,接存储器的允许输出信号,/OE,ALE,接地址锁存器锁存信号,G,。,4.,片选信号的连接与地址译码,当芯片的三组总线连接完后,将地址总线剩下的高位地址线作为片选信号,
5、一般片选信号的产生有三种方法即:,线选法、部分译码法、全译码法等,。,1,典型,EPROM,扩展电路,Intel,的通用,EPROM,不同型号芯片由于其管脚有一定的兼容性,它们在单片机系统扩展中常常被采用。,EPROM,扩展的典型产品有:,2716,(,2KB,)、,2732,(,4KB),、,2764,(,8KB,),、,27128,(,16KB,),、,27256,(,32KB),、,27512(64KB,),它们的主要差别只是地址线的增减。,二、程序存储器扩展实例分析,EPROM,管脚功能:,(,1,),A0,A15,地址线。,2764,(,A0,A12,),,27128,(,A0,A1
6、3,),,27256,(,A0,A14,);,(,2,),CE,芯片使能信号,(,3,),OE/V,PP,输出使能信号,/,编程电压,(,4,),PGM,编程脉冲输入端,(,5,),O0,O7,数据线,第六章,1-,7,例,1,:,用一片,27128,扩展的,16K,字节单片机程序存储器。,扩展一片,程序存储器时,,片选信号,CS,可直接接地,也可接,A14,或,A15,,既采用线选法。,第六章,1-,8,27128,的,A0,A13,接地址总线,A0,A13,OE ,接,PSEN,O0,O7 ,接,D0,D7,地址锁存器的,G ALE,OC,直接接地,地址线和数据线,片选,地址锁存器,271
7、28,的,CE,接地址总线,A14(P2.6),为了使程序存储器从,0000H,地址开始,设,A15,0,,,则由线选,确定的高位地址:,A15 A14,0 0,低位,A13,A0,0 0 0 0 H3FFFH,即,27128,的地址范围:,0 0 0 0 H 3FFFH,采用线选法时,存储器的地址不是唯一的,存在地址重叠现象。,第六章,1-,9,2.,E,2,PROM,扩展电路,扩展,2864,电路如图,第六章,1-,10,2864,是,8K,字节的,E,2,PROM,,,说明:,图中的,2864,既是程序存储器又是数据存储器,这时程序和数据存储器要统一编址。,27128,的,A0,A12,
8、接地址总线,A0,A12,OE ,单片机的,RD,、,PSEN,通过与门输入,WE ,接,WR,O0,O7 ,接,D0,D7,第六章,1-,11,在,MCS-51,单片机中没有独立的,I/O,指令,将外部数据存储器与,I/O,接口统一编址,在设计扩展电路时首先考虑各个芯片的地址编址问题。,即存储器和,I/O,接口芯片的地址线及片选与单片机地址总线的连接问题,。,第,六,章,1-13,wyx,第三节,数据存储器的扩展,一、数据存储器和,I/O,接口扩展的基本方法,在单片机系统中常用的数据存储器是静态随机存储器(,SRAM,),,其典型的芯片有,6264,(,8K8,位)、,62256,(,32K
9、8,位)。,RAM,管脚,(6264),:,(,1,),A0,A15,地址线。,6264,(,A0,A12,),,62256,(,A0,A14,);,(,2,),CE1,、,CE2,芯片使能信号,(,3,),OE,输出允许,(,4,),WE,写允许,(,5,),IO0,IO7,数据线,第,六,章,1-14,wyx,A0,A13 ,接地址总线,A0,A13,CE1,、,CE2 CE1,接片选信号,CE2,接电源,OE ,接,RD,WE ,接,WR,IO0,IO7 ,接,D0,D7,RAM,与单片机的连线:,片选信号的产生有三种方法,:,线选法,直接利用地址总线的高位地址线作为存储器芯片的片选信号
10、优点:电路简单,不需要地址译码器硬件,体积小,成本低,缺点:可寻址的器件数目受限制,地址空间不连续,译码法,使用译码器对高位地址进行译码,译码器的输出作为存储器芯片的的片选信号,有全译码和部分译码。,是一种最常用的方法,能有效的利用存储空间,适用于大容量多芯片的存储器扩展。,常用译码器芯片有,74LS138,(,3,8,)、,74LS139,(,2,4,)、,74LS154,(,4,16,),第六章,1-,14,例,1.,6264,静态,RAM,扩展电路,二、数据存储器扩展举例,第六章,1-,15,例,2,如图为采用,74LS139,译码扩展两片,2764,(,8K,),EPROM,和两片
11、6264,(,8K,),RAM,芯片的电路,分析它们的地址范围。,G Y3,B Y2,A Y1,Y0,A0 A7 A8 A12,CE 2764(1),D0D7 OE,DO Q0,D7 Q7,G,A0 A7 A8 A12,CE 2764(2),D0D7 OE,A0 A7 A8 A12,CE 6264(1),D0D7 WE OE,A0 A7 A8 A12,CE 6264(2),D0D7 WE OE,G Y3,B Y2,A Y1,Y0,G Y3,B Y2,A Y1,Y0,P2.7,P2.6,P2.5,P2.0,P2.4,P0.0,P0.7,ALE,8031,PSEN,WR,EA RD,2764(1
12、):0000H1FFFH 2764(2):2000H3FFFH,6264(1):4000H5FFFH 6264(2):6000H7FFFH,第六章,1-,16,1,TTL,并行输入、输出接口,根据,“,输入三态,输出锁存,”,与总线相连的原则,可采用,TTL,电路或,CMOS,电路的锁存器、三态缓冲器扩展简单的,I/O,接口。,如采用,8,位三态缓冲器,74LS244,组成输入口,采用,8D,锁存器,74LS273,,,74LS373,等组成输出口。,第四节 一般,I/0,口的扩展,一、简单,I/0,扩展,CLR,Q0,D0,D1,Q1,Q2,D2,D3,Q3,GND,VCC,Q7,D7,D6
13、Q6,Q5,D5,D4,Q4,CLK,74LS273,74LS244,1EN,1A1,2Y4,1A2,2Y3,1A3,2Y2,1A4,2Y1,GND,VCC,2EN,1Y1,2A4,1Y2,2A3,1Y3,2A2,1Y4,2A1,当,CLR,为高电平,,CLK,的上升沿使,D,锁存。,当,EN,为低电平,,A,信号传送到,Y,;,EN,为高电平,,Y,为高阻态。,第六章,1-,17,简单,I/0,扩展举例:,第六章,1-,18,例中,74LS244,和,74LS273,地址都为,7FFFH,(,P2.7=0,)。,要求当某开关合上时相对应的,LED,点亮,开关断时相应的,LED,暗,其控制程
14、序如下,:,第,六,章,1-20,wyx,M1,:,MOV DPTR,,,#7FFFH,MOVX A,,,DPTR,MOVX DPTR,,,A,SJMP M1,2,TTL,串行输入、输出接口,用串行口的方式,0,,外接串行输入,并行输出的移位寄存器扩展并行输出口,或者外接并行输入,串行输出的移位寄存器,扩展并行输入口。常用的芯片,74LS164,74LS165,4014,4094,等。,二、可编程,I,0,口的扩展,可编程,I,0,口可以通过程序设置引脚不同的工作方式,,CPU,不需要其他的硬件,一片芯片可扩展较多的,I,0,接口,使用灵活方便,通用性强。,Intel,公司的可编程,I/O,接
15、口芯片种类齐全,为,MCS-51,单片机扩展,I/O,接口提供了很大的方便。,常用,Intel,系列可编程接口芯片,型号,名称,说明,8155,并行接口,带,256,字节的,RAM,和,14,位定时,/,计数器,8255,通用并行接口,8251,同步,/,异步通讯接口,8253,定时,/,计数器,8279,键盘,/,显示接口,第六章,1-,20,8255A,是一个典型的可编程通用并行接口芯片。它具有三个,8,位的并行口,有三种工作方式,可作为单片机与各种外设连接的接口电路。,1.,结构:,(,1,)三个并行,I/O,口,A,、,B,、,C,各有,8,根线,分成,A B,两组,(,2,)数据总线
16、缓冲器,:,用于 与,CPU,接口,(,3,)读写控制逻辑,:,选择 端口和数据的流向,(一),8255,可编程并行,i/o,接口扩展,第六章,1-,21,2.,引脚:,I/O,线,24,根,A,、,B,、,C,口;,数据线,8,根,D7D0,,与,CPU,接口;,控制线,6,根,RESET,(,复位),RD,、,WR,(,读、写),A,1,、,A,0,(,端口选择),CS,(,片选),电源线,2,根,Vcc,、,GND,3.,端口寻址与控制信号功能,第六章,1-,22,4.8255A,与,MCS-51,单片机的连接,由,8255A,的管脚功能得到数据脚、控制脚与微处理器连接,而,PA,、,P
17、B,、,PC,口与外部设备信号连接。,MCS-51,单片机管脚,8255A,管脚,P0.0,P0.7,D0D7,P3.6(),P3.7(),低位地址,2,位,A0、A1,地址译码信号,地址分析?,RD,WR,P2.7,ALE,8031,P0.7,0.0,RD,WR,CS,8255A,A1,A0,D7,D0,PC7PC0,PB7PB0,PA7PA0,373,G,Q1,Q2,分析:,8255A,的,4,个地址分别为(无关位取,1,):,PA,口,7FFCH,,,PB,口,7FFDH,,,PC,口,7FFEH,,,控制字寄存器地址为,7FFFH,。,第六章,1-,23,5.,8255A,的工作方式,
18、8255A,有,3,种基本的工作方式:方式,0,,方式,1,,方式,2,。其中,PA,口可以工作在,3,种方式,,PB,口可工作在方式,0,和方式,1,,,PC,口只能工作在方式,0,。,(,1,)工作方式,0,方式,0,为基本输入、输出方式。这种方式下:,PA,、,PB,口各,8,位均定义为输入或输出,,PC,口的低,4,位及高,4,位可独立定义为输入或输出。定义为输出口均有锁存数据的能力,而定义为输入口无锁存能力。,方式,0,适合于无条件传送方式,,CPU,直接执行输入输出指令。,第六章,1-,24,在这种方式下,,PA,口、,PB,口作为数据的输入或输出口,,均带有锁存,,PC,口自动作
19、为,PA,口与,PB,口的选通控制线。,在方式,1,下,,A,口和,B,口的输入输出,数据要在选通信号控制下来完成,,P,A,口借用,PC,口的一些信号线用作控制和状态线,形成,A,组;,PB,口也借用,PC,口的一些信号线用作控制和状态线,组成,B,组。,(,2,)工作方式,1,(选通的输入输出方式),方式,1,输出的控制和状态信号:,方式,1,输入的控制和状态信号:,STB,:选通输入信号线,输入,外部设备提供,IBF,:输入缓冲器满信号线,输出;,INTR,:中断请求输出信号。,ACK,:外设收到数据后的响应信号,,,输入,OBF,:输出缓冲器满信号,输出,INTR,:中断请求输出信号线
20、PC,口的功能定义见表,6,8,第六章,1-,25,P0.7P0.0,INT0,8031,EA,D7D0 PA7PA0,8255A,PC4,PC5,PC3,&,INTE,A,D0D7,输入设备,1,其中,,INTE,为中断允许触发器。,方式,1,输入,INTEA,受,PC4,位置,1/,置,0,控制,INTEB,受,PC2,位置,1/,置,0,控制,方式,1,输出,INTEA,受,PC6,位置,1/,置,0,控制,INTEB,受,PC2,位置,1/,置,0,控制,如图为,A,口方式,1,输入的工作示意图:,STB,A,IBF,A,第六章,1-,26,(,3,)工作方式,2,(双向传输方式),
21、工作方式,2,是,A,组独有的工作方式。外设既能在,PA,口的,8,条引线上发送数据,又能接收数据。此方式也是借用,PC,口的,PC3,PC7,这,5,条信号线作控制和状态线,,PA,口的输入和输出均带有锁存。,第六章,1-,27,6,、,8255,的控制字及状态字,8255,有两种控制字,方式选择控制字和端口,PC,置位复位控制字,这两个控制字都写入,8255,的控制端口,由最高位特征位区别。,A,口,B,口,方式控制字,D7,1,方式选择控制字:,第六章,1-,28,8255A,的,PC,口位操作控制字,第六章,1-,29,MOV DPTR,#6003H,;,控制字寄存器地址,MOV A,
22、83H,;,方式控制字,MOVX DPTR,A,;,写入,8255A,如果全部输出,则方式控制字为,10000000B,80H,。,8255A,上电复位后所有口为输出“,1”,状态。,初始化编程举例,1,7,.,8255A,的应用,设某片,8255A,的端口地址是,6000H,6003H,,工作于方式,0,,端口,A,和端口,C,高,4,位输出,端口,B,和端口,C,低,4,位输入,设置该,8255A,的方式选择控制字。,解:方式选择控制字,=1,000,0,01 1,第六章,1-,30,要求从,8255,的,C,口,PC3,输出一个正 脉冲,1,)分析:,PC3,输出低电平,0,000,0
23、11,0,B,PC3,输出高电平,0,000,011,1,B,2,),编程,MOV DPTR#6003H,MOV A,,,#06,MOVX DPTR,,,A,MOV A,,,#07,MOVX DPTR,,,A,MOV A,,,#06H,MOVX DPTR,,,A,初始化编程举例,2,第六章,1-,31,分析:,8255A,的,4,个地址分别为(无关位取,1,):,PA,口,7CFFH,,,PB,口,7DFFH,,,PC,口,7EFFH,,,控制字寄存器地址为,7FFFH,。,(,2,)应用举例,例,6,6,第六章,1-,32,应用子程序如下:,EX8255:MOV DPTR,#7FFFH,;,
24、指向控制口,MOV A,#89H,;,8255A,初始化,MOVX DPTR,A,MOV DPTR,#7FFEH,;指向,C,口,MOVX A,DPTR,;,取开关信号,MOV R3,#0,;开关号单元清,0,MOV R2,#8,;,8,个键,解:首先确定方式控制字,,PA,口应该工作在方式,0,且输出,,PB,口没有用任意,,PC,口输入,则方式控制字是,10001001B,。,例,6,6,:如图所示电路,由,PA,口输出点亮七段数码管,,PC,口接,8,个开关用作输入信号。当某开关合上时显示相应的开关号,即,K1,合显示“,1”,,,K2,合显示“,2”,,依此类推。试编程实现。,第六章,
25、1-,33,EX82_1,:,RRC A,;,移出一位信号,JC EX82_2,;,判断开关断转跳,INC R3,;,键号,1,MOV A,R3,;,显示值转换显示码,MOV DPTR,#DIRTAB,;,七段数码管显示段码表首地址,MOVC A,A+DPTR,;,查表,MOV DPTR,#7CFFH,;送,PA,口显示,MOVX DPTR,A,RET,EX82_2,:,INC R3,;,键号,1,DJNZ R2,EX82_1,;,8,个键判完?,RET,DIRTAB,:,DB 0C0H,,,0F9H,,,0A4H,,,0B0H,;定义段码,0,,,1,,,2,,,3,DB 99H,,,92H
26、82H,,,0F8H,;,4,,,5,,,6,,,7,DB 80H,,,98H,,,88H,,,83H,;,8,,,9,,,A,,,B,DB 0C6H,,,0A1H,,,86H,,,8EH,;,C,,,D,,,E,,,F,第六章,1-,34,图为某,8255A,扩展电路,试分析各端口地址。编程实现在如图示接口电路的两个,LED,显示器(共阴极接法)上显示自己的学号。,A,口输出字形码,,C,口输出位控码。,综合练习:,RD,WR,P2.0,8051,P0,ALE,D7 Q1,D0 Q0,G,RD PA,口,WR,CS,A1,A0,PC4,PC5,D7D0,第六章,1-,35,第三章,6-24,wyx,三、分支程序与循环程序设计,课间休息,






