单片机原理与应用及C51程序设计:第六章 CS-51单片机系统扩展

上传人:壹****1 文档编号:573320425 上传时间:2024-08-14 格式:PPT 页数:31 大小:304KB
返回 下载 相关 举报
单片机原理与应用及C51程序设计:第六章 CS-51单片机系统扩展_第1页
第1页 / 共31页
单片机原理与应用及C51程序设计:第六章 CS-51单片机系统扩展_第2页
第2页 / 共31页
单片机原理与应用及C51程序设计:第六章 CS-51单片机系统扩展_第3页
第3页 / 共31页
单片机原理与应用及C51程序设计:第六章 CS-51单片机系统扩展_第4页
第4页 / 共31页
单片机原理与应用及C51程序设计:第六章 CS-51单片机系统扩展_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《单片机原理与应用及C51程序设计:第六章 CS-51单片机系统扩展》由会员分享,可在线阅读,更多相关《单片机原理与应用及C51程序设计:第六章 CS-51单片机系统扩展(31页珍藏版)》请在金锄头文库上搜索。

1、第六章 CS-51单片机系统扩展第六章第六章 CS-51单片机系统扩展单片机系统扩展 MCS-51单片机系统扩展包括程序存储器扩展、数据存储器扩展、I/O口扩展、定时/计数器扩展、中断系统扩展和串行口扩展。在本章中只介绍应用较多的程序存储器扩展、数据存储器扩展和I/O口扩展。 6.1 MCS-51单片机的最小系统单片机的最小系统所谓最小系统,是指一个真正可用的单片机最小配置系统。对于单片机内部资源已能满足系统需要的,可直接采用最小系统。MCS-51单片机根据片内有无程序存储器最小系统分两种情况。 6.1.1 8051/8751的最小系统 8051/8751片内有4K的ROM/EPROM,因此,

2、只需要外接晶体振荡器和复位电路就可构成最小系统。如图所示。 第六章 CS-51单片机系统扩展XTAL1 XTAL2 8751 P0P1P2P3 8051 RESET EA GND +5V +5V8 8 88 该最小系统的特点如下:(1)由于片外没有扩展存储器和外设,P0、P1、P2、P3都可以作为用户I/O口使用。(2)片内数据存储器有128字节,地址空间00H7FH,没有片外数据存储器。(3)内部有4KB程序存储器,地址空间0000H0FFFH,没有片外程序存储器,EA应接高电平。(4)可以使用两个定时/计数器T0和T1,一个全双工的串行通信接口,5个中断源。第六章 CS-51单片机系统扩展

3、6.1.1 8031最小应用系统 8031片内无程序存储器片,因此,在构成最小应用系统不仅要外接晶体振荡器和复位电路,还应外扩展程序存储器。 P2ALE8031P0EAPSENG74LS373A15A8A7A0D7D0OE2764CE高8位地址线P2ALEP0EAPSEN第六章 CS-51单片机系统扩展该最小系统特点如下:(1)由于P0、P2在扩展程序存储器时作为地址线和数据线,不能作为I/O线,因此,只有P1、P3作为用户I/O口使用。(2)片内数据存储器同样有128字节,地址空间00H7FH,没有片外数据存储器。(3)内部有无程序存储器,但片外扩展了程序存储器,其地址空间随芯片容量不同而不

4、一样。图6.2中使用的是2764芯片,容量为8K字节,地址空间为0000H1FFFH。由于片内没有程序存储器,只能使用片外程序存储器,EA只能接低电平。(4)同样可以使用两个定时/计数器T0和T1,一个全双工的串行通信接口,5个中断源。 第六章 CS-51单片机系统扩展6.2 存储器扩展存储器扩展6.2.1 存储器扩展概述存储器扩展概述一、一、MCS-51单片机的存储器扩展能力单片机的存储器扩展能力 MCS-51单片机地址总线宽度为16位,片外可扩展的存储器最大容量为64KB,地址为0000HFFFFH。因为程序存储器和数据存储器是通过不同的控制信号和指令进行访问,允许两者的地址空间重叠,所以

5、片外可扩展的程序存储器与数据存储器分别都为64KB。 二、存储器扩展的一般方法二、存储器扩展的一般方法 不论何种存储器芯片,其引脚都呈三总线结构,与单片机连接都是三总线对接。另外,电源线接电源线,地线接地线。 1. 控制线:对于程序存储器,一般来说,具有输出允许控制线 OE,它与单片机的PSEN信号线相连 。对于数据存储器,一般都有输出允许控制线OE和写控制线 WE,它们分别与单片机的读信号线RD和写信号线WR相连。 第六章 CS-51单片机系统扩展2、数据线:存储器芯片的数据线的数目由芯片的字长决定。连接时,存储器芯片的数据线与单片机的数据总线(P0.0P0.7)按由低位到高位的顺序顺次相接

6、。 3、地址线:存储器芯片的地址线的数目由芯片的容量决定。容量(Q)与地址线数目(N)满足关系式:Q=2N。存储器芯片的地址线与单片机的地址总线(A0A15)按由低位到高位的顺序顺次相接。一般来说,存储器芯片的地址线数目总是少于单片机地址总线的数目,因此连接后,单片机的高位地址线总有剩余。剩余地址线一般作为译码线,译码输出与存储器芯片的片选信号线CS相接。片选信号线与单片机系统的译码输出相接后,就决定了存储器芯片的地址范围。 译码有两种方法:部分译码法和全译码法。 部分译码部分译码:所谓部分译码就是存储器芯片的地址线与单片机系统的地址线顺次相接后,剩余的高位地址线仅用一部分参加译码。部分译码使

7、存储器芯片的地址空间有重叠,造成系统存储器空间的浪费。 第六章 CS-51单片机系统扩展如下图,存储器芯片容量为2K,地址线为11根,与地址总线的低11位A0A10相连,用于选中芯片内的单元。地址总线的A11、A12、A13、A14根地址线参加译码的选中芯片,设这四根地址总线的状态为0100时选中该芯片。地址总线A15不参加译码,当地址总线A15为0、1两种状态都可以选中该存储器芯片。A15A140A130A121A110A10A9A8A7A6A5A4A3A2A1A0地址译码线与存储器芯片连接的地址线当A15=0时,芯片占用的地址是0001000000000000000101111111111

8、1,即1000H17FFH。当A15=1时,芯片占用的地址是10010000000000001001011111111111,即9000H97FFH。部分译码法部分译码法的一个特例是线译码线译码。所谓线译码就是直接用一根剩余的高位地址线与一块存储器芯片的片选信号CS相连。 第六章 CS-51单片机系统扩展全译码全译码:所谓全译码就是存储器芯片的地址线与单片机系统的地址线顺次相接后,剩余的高位地址线全部参加译码。这种译码方法存储器芯片的地址空间是唯一确定的,但译码电路相对复杂。3扩展存储器所需芯片数目的确定扩展存储器所需芯片数目的确定存储器芯片容量系统扩展容量芯片数目=若所选存储器芯片字长与单片

9、机字长一致,则只需扩展容量。所需芯片数目按下式确定:若所选存储器芯片字长与单片机字长不一致,则不仅需扩展容量,还需字扩展。所需芯片数目按下式确定:存储器芯片字长系统字长存储器芯片容量系统扩展容量芯片数目=第六章 CS-51单片机系统扩展6.2.2 程序存储器扩展程序存储器扩展一单片程序存储器的扩展一单片程序存储器的扩展P2.6P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P2.7P2.5P0.0ALEVcc8031PSENEAVss+5VA12A11A10A9A8A7A6A5A4A3A2A1A0D7D5D4D3D2D1D0OED6CEGNDVf

10、f+5V8D7D6D5D4D3D2D1DGOE8Q7Q6Q5Q4Q3Q2Q1QVcc74LS373第六章 CS-51单片机系统扩展二多片程序存储器的扩展二多片程序存储器的扩展其8个重叠的地址范围为如下:00000000000000000001111111111111,即0000H1FFFH;00100000000000000011111111111111,即2000H3FFFH;01000000000000000101111111111111,即4000H5FFFH;01100000000000000111111111111111,即6000H7FFFH;1000000000000000100

11、1111111111111,即8000H9FFFH;10100000000000001011111111111111,即A000HBFFFH;11000000000000001101111111111111,即C000HDFFFH;11100000000000001111111111111111,即E000HFFFFH。P2.6P2.5P2.4P2.0ALE8031PSENEAGP2.774LS373OEA0A7A8A12 CED0D7OE2764(1)A0A7A8A12 CE2764(2)D0D7OEP0588885885第六章 CS-51单片机系统扩展上图是通过线选法实现的两片2764扩展

12、成16KB程序存储器。两片2764的地址线A0A12与地址总线的A0A12对应相连,2764的数据线D0D7与数据总线A0A7对应相连,两片2764的输出允许控制线连在一起与8031的PSEN相连。第一片2764的片选线CS与8031地址总线的P2.7直接相连,第二片2764的片选线CS与8031地址总线的P2.7取反后相连。 其两片的地址空间分别为:第一片:000000000000000000001111111111111,即0000H1FFFH;001000000000000000011111111111111,即2000H3FFFH;010000000000000000101111111

13、111111,即4000H5FFFH;011000000000000000111111111111111,即6000H7FFFH;第二片:100000000000000001001111111111111,即8000H9FFFH;101000000000000001011111111111111,即A000HBFFFH;110000000000000001101111111111111,即C000HDFFFH;111000000000000001111111111111111,即E000HFFFFH。第六章 CS-51单片机系统扩展P2.6P2.5P2.4P2.0ALE8031PSENEAGP

14、2.774LS373OEA0A7A8A12CED0D7OE2764(1)A0A7A8A12CE2764(2)OEP0588885885CBAD0D7GG1G2AG2BY3Y2Y1Y08D0D7OE2764(3)A0A7A8A12CE8D0D7OECEA8A12A0A72764(4)8585Vcc74LS138上图为采用全译码法实现的4片2764扩展成32KB程序存储器。8031剩余的高3位地址总线P2.7、P2.6、P2.5通过74LS138译码器形成4个2764的片选信号 第六章 CS-51单片机系统扩展由于采用全译码,每片2764的地址空间都是唯一的。它们分别是:0000000000000

15、00000001111111111111,即0000H1FFFH;001000000000000000011111111111111,即2000H3FFFH;010000000000000000101111111111111,即4000H5FFFH;011000000000000000111111111111111,即6000H7FFFH。6.2.3 数据存储器扩展数据存储器扩展 数据存储器扩展与程序存储器扩展基本相同,只是数据存储器控制信号一般有输出允许信号OE和写控制信号WE,分别与单片机的片外数据存储器的读控制信号RD和写控制信号WR相连,其它信号线的连接与程序存储器完全相同。 下图是两

16、片数据存储器芯片6264与8051单片机的连接。6264是8K8的静态数据存储器芯片,有13根地址线,数据线8根,一根输出允许信号OE和一根写控制信号WE ,两根片选信号CE1和CE2 ,使用时都应为低电平。 第六章 CS-51单片机系统扩展P2.6P2.5P2.4P2.0ALE8051RDEAGP2.774LS373OEA0A7 A8A12CE1D0D7OE2764(1)A0A7 A8A12CE12764(2)D0D7OEP058885885WRWEWE88CE2CE2P2.7为低电平0,两片6264芯片的地址空间为:第一片:010000000000000000101111111111111

17、,即4000H5FFFH;第二片:001000000000000000011111111111111,即2000H3FFFH;P2.7为高电平1,两片6264芯片的地址空间为:第一片:110000000000000001101111111111111,即C000HDFFFH;第二片:101000000000000001011111111111111,即A000HBFFFH;第六章 CS-51单片机系统扩展6.3 输入输入/输出口扩展输出口扩展6.3.1 简单简单I/O口扩展口扩展 通常通过数据缓冲器、锁存器来扩展简单I/O接口。例如:74LS373、74LS244、74LS273、74LS24

18、5等芯片都可以作简单I/O扩展。实际上,只要具有输入三态、输出锁存的电路,就可以用作I/O口扩展。 下图是利用74LS373和74LS244扩展的简单I/O口,其中74LS373扩展并行输出口,74LS244扩展并行输入口。74LS373是一个带输出三态门的8位锁存器,8个输入端D0D7,8个输出端Q0Q7,G为数据锁存控制端,G为高电平,则把输入端的数据锁存于内部的锁存器,OE为输出允许端,低电平时把锁存器中的内容通过输出端输出。74LS244是单向数据缓冲器,带两个控制端1G和2G ,当它们为低电平时,输入端D0D7的数据输出到Q0Q7。 第六章 CS-51单片机系统扩展P0.7P0.6P

19、0.5P0.4P0.3P0.2P0.1P0.08051EAD0D1D2D3D4D5D6D7GOEQ0Q1Q2Q3Q4Q5Q6Q774LS373P2.0RDQ0Q1Q2Q3Q4Q5Q6Q71G2G74LS244+L1L2L3L4L5L6L7L0+5VD0D1D2D3D4D5D6D7K1K2K3K4K5K6K7K0第六章 CS-51单片机系统扩展图中,扩展的输入口接了K0K7 8个开关,扩展的输出口接了L0L7 8个发光二极管,如果要实现K0K7开关的状态通过L0L7发光二极管显示,则相应的汇编程序为:LOOP:MOV DPTR,#0FEFFHMOVX A,DPTRMOVX DPTR,ASJMP

20、LOOP如果用C语言编程,相应程序段为:#include /定义绝对地址访问#define uchar unsigned charuchar i;i=XBYTE0xfeff;XBYTE0xfeff= i;第六章 CS-51单片机系统扩展6.3.2 可编程可编程I/O扩展扩展(8255A)一一8255A的结构与功能的结构与功能数据总线缓冲器读/写控制部件双向数据总线 D0D7 RD WR A1 A0RESETCSB组控制部件A组控制部件A组端口AA组端口CB组端口CB组端口BA组B组PA7PA0PC7PC4PC3PC0PB7PB08位内部总线第六章 CS-51单片机系统扩展 8255A内部有3个

21、可编程的并行I/O端口:PA口、PB口和PC口。其中C口又可分为两个独立的4位端口:PC0PC3和PC4PC7。A口和C口的高四位合在一起称为A组,通过图中的A组控制部件控制;B口和C口的低四位合在一起称为B组,通过图中的B组控制部件控制。 A口有三种工作方式:无条件输入/输出方式、选通输入/输出方式和双向选通输入/输出方式。B口有两种工作方式:无条件输入/输出方式和选通输入/输出方式。当A口和B口工作于选通输入/输出方式或双向选通输入/输出方式时,C口当中的一部分线用作A口和B口输入/输出应答信号线。 数据总线缓冲器是一个8位双向三态缓冲器,是8255A与系统总线之间的接口,8255A与CP

22、U之间传送的数据信息、命令信息、状态信息都通过数据总线缓冲器实现传送。 读写控制部件接收CPU送来的控制信号、地址信号,经译码选中内部的端口寄存器,并指挥从这些寄存器中读出信息或向这些寄存器写入相应的信息。8255A有4个端口寄存器:A寄存器、B寄存器、C寄存器和控制口寄存器,通过控制信号和地址信号对这4个端口寄存器的操作如表所示。 第六章 CS-51单片机系统扩展CSA1A0RDWRI/O操作00001读A口寄存器内容到数据总线00101读B口寄存器内容到数据总线01001读C口寄存器内容到数据总线00010数据总线上内容写到A口寄存器00110数据总线上内容写到B口寄存器01010数据总线

23、上内容写到C口寄存器01110数据总线上内容写到控制口寄存器二二8255A的引脚信号的引脚信号8255A共40引脚,采用双列直插式封装,如下图所示,各引脚信号功能如下:D7D0:三态双向数据线,与单片机的数据总线相连,用来传送数据信息。第六章 CS-51单片机系统扩展CS:片选信号线,低电平有效,用于选中8255A芯片。 RD:读信号线,低电平有效,用于控制从8255A端口寄存器读出信息。WR:写信号线,低电平有效,用于控制向8255A端口寄存器写入信息。PA7PA0:A口的8根输入/输出信号线,用于与外部设备连接。PB7PB0:B口的8根输入/输出信号线,用于与外部设备连接。PC7PC0:C

24、口的8根输入/输出信号线,用于与外部设备连接。RESET:复位信号线。VCC:+5V电源线。GND:地信号线。8255A12345678910111213141516171819204039383736353433323130292827262524232221PA3PA2PA1RDCSGNDA1A0PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB2PA0PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VccPB7PB6PB5PB4PB3第六章 CS-51单片机系统扩展三三8255A的控制字的控制字8255A有两个控制字:工作方式控制字和C口按位置位/复位

25、控制字。 1工作方式控制字工作方式控制字端口A0:输出1:输入端口C高4位0:输出1:输入端口B0:输出1:输入特征位1A组工作方式位00:方式001:方式11X:方式2B组工作方式位0:方式01:方式1端口C低4位0:输出1:输入D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0D7位为特征位。D7=1表示为工作方式控制字。D6、D5用于设定A组的工作方式。D4、D3用于设定A口和C口的高4位是输入还是输出。D2用于设定B组的工作方式。D1、D0用于设定B口和C口的低4位是输入还是输出。第六章 CS-51单片机系统扩展2C口按位置位口按位置位/复位控制字复位控制字特征位0这三位不

26、用位选择位000:C口0位001:C口1位111:C口7位0:复位1:置位D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0D7位为特征位。D7=0表示为C口按位置位/复位控制字。D6、D5、D4这三位不用D3、D2、D1这三位用于选择C口当中的某一位。D0用于置位/复位设置,D0=0则复位,D0=1则置位。第六章 CS-51单片机系统扩展四四8255A的工作方式的工作方式1方式方式0 方式0是一种基本的输入/输出方式。在这种方式下,三个端口都可以由程序设置为输入或输出,没有固定的应答信号。方式0特点如下:(1)具有两个8位端口(A、B)和两个4位端口(C口的高4位和C口的低4位)

27、。(2)任何一个端口都可以设定为输入或者输出。(3)每一个端口输出时是锁存的,输入是不锁存的。 方式0输入/输出时没有专门的应答信号,通常用于无条件传送。例如:下图是8255A工作于方式0的例子,其中A口输入,B口输出。 第六章 CS-51单片机系统扩展8051系统总线8255APA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7+5V+5VK0K7L0L7第六章 CS-51单片机系统扩展2方式方式1 方式1是一种选通输入/输出方式。在这种工作方式下,端口A和B作为数据输入输出口,端口C用作输入/输出的应答信号。A口和B口既可以作输入,也可作输出,输

28、入和输出都具有锁存能力。 方式1输入: 无论是A口输入还是B口输入,都用C口的三位作应答信号,一位作中断允许控制位。 INTE&PC4PC5PC3PC6、PC7PA0PA7STBAIBFAI/OINTRAB口输入INTE&A口输入PC2PC1PC088IBFBSTBBPB0PB7INTRB第六章 CS-51单片机系统扩展各应答信号含义如下:STB:外设送给8255A的“输入选通”信号,低电平有效。 IBF:8255A送给外设的“输入缓冲器满”信号,高电平有效。 INTR:8255A送给CPU的“中断请求”信号,高电平有效。 INTE:8255A内部为控制中断而设置的“中断允许”信号。INTE由

29、软件通过对PC4(A口)和PC2(B口)的置位/复位来允许或禁止。 方式1输出: 无论是A口输出还是B口输出,也都用C口的三位作应答信号,一位作中断允许控制位。 INTE&PC7PC6PC3PC4、PC5PA0PA7ACKAOBFAI/OINTRAB口输出INTE&A口输出PC2PC1PC088OBFBACKBPB0PB7INTRB2第六章 CS-51单片机系统扩展应答信号含义如下:OBF:8255A送给外设的“输出缓冲器满”信号,低电平有效。 ACK:外设送给8255A的“应答”信号,低电平有效。 INTR:8255A送给CPU的“中断请求”信号,高电平有效。 INTE:8255A内部为控制

30、中断而设置的“中断允许”信号,含义与输入相同,只是对应C口的位数与输入不同,它是通过对PC4(A口)和PC2(B口)的置位/复位来允许或禁止。 3方式方式2 方式2是一种双向选通输入/输出方式。只适合于端口A。这种方式能实现外设与8255A的A口双向数据传送,并且输入和输出都是锁存的。它使用C口的5位作应答信号,两位作中断允许控制位。 第六章 CS-51单片机系统扩展&INTE1INTE2&1PC5PC4PC6PC7PC3PA0PA7ACKAOBFAINTRASTBAIBFA五五8255A与与MCS-51单片机的接口单片机的接口1硬件接口硬件接口 8255A与MCS-51单片机的连接包含数据线

31、、地址线、控制线的连接.第六章 CS-51单片机系统扩展VccWRRDP2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.08051ALEEAGNDD7D6D5D4D3D2D2D1DO GQ7Q6Q5Q4Q3Q2Q1Q0WRRDCSA1A0D7D6D5D4D3D2D1GNDVcc+5V+5VPA7-PA0PB7-PB0PC7-PC0OED0第六章 CS-51单片机系统扩展 图中,8255A的数据线与8051单片机的数据总线相连,读、写信号线对应相连,地址线A0、A1与单片机的地址总线的A0和A1相连,片选信号CS与8051的P2.0相连。则8255A的A口、B口、C口和控制口的地址分别是:FEFCH,FEFDH,FEFEH,FEFFH。 2软件编程软件编程如果设定8255A的A口为方式0输入,B口为方式0输出,则初始化程序为:汇编程序段:MOV A,#90HMOV DPTR,#0FEFFHMOVX DPTR,AC语言程序段:#include #include /定义绝对地址访问XBYTE0xfeff=0x90;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号