版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六章第六章 80C51单片机的系统扩展单片机的系统扩展 通常情况下,由于80C51片内有4KROM及128BRAM, 可构成一个最小应用系统,它具有体积小、成本低的优点。但在许多情况下,最小应用系统不能满足要求,需对它进行扩展。即在片外连接相应的外围芯片(EPROM、RAM、A/D、D/A、I/O口等),以满足应用系统的要求。本章将介绍一些扩展电路芯片与扩展方法。6. 1 概述概述 对于单片机系统的扩展方法有并行扩展法和串行扩展法。并行扩展法:利用单片机的三总线(数据、地址、控制总线) 进行系统 扩展。它传递速度快,但占口线多。串行扩展法:利用SPI(串行外围接口)3 线总线线总线 及及 I
2、2C 双线总线双线总线进行 系统扩展。它占口线少,接口器件体积小,但传递速 度较慢。这种方法的应用日渐增多。6. 1. 1 外部并行扩展性能外部并行扩展性能 1。80C51系列单片机的片外总线结构系列单片机的片外总线结构 为了满足系统扩展的要求,80C51的芯片引脚可以构成 如如P180图图61所示的三总线结构所示的三总线结构。所有外部芯片都通过这三组总线(AB, DB 和 CB) 进行扩展。 (见P180 图图61)图图61(1)地址总线)地址总线:由P0口经锁存器提供低8位、P2 口提供高8位地址。 由于P0口是数据与地址的复用总线,只能分时用作地址线,故P0口输出的低8位地址必须用锁存器
3、锁存。锁存器的控制信号为ALE,在它的下降沿将P0口输出的地址信息锁存(尔后P0口送数据信息)。 P2口具有输出锁存功能,不需外加锁存器。P0、P2 口用作地址总线后,在扩展系统中就不能再作为一般的I/O口使用。 由P0、P2 口组成的地址总线为16位,可寻址范围是21664KB。(2)数据总线)数据总线:数据总线由P0口提供,其宽度为8位。P0口作为数据总线为三态双向口,但在同一时间里只能有一个是有效的数据传送通道。哪个芯片的数据通道有效,则由地址线控制各个芯片的片选线来选择。 (3)控制总线)控制总线:系统的扩展控制线有ALE、PSEN、EA、WR、RD。ALE:输出(输出(fosc /
4、6)。它在P0口输出低8位地址时由高电平变为低 电平。从而利用其下降沿控制地址锁存。/PSEN:输出输出。用于片外程序存储器EPROM的“读”控制。/EA:输入。输入。用于片内或片外程序存储器的选择。当 /EA=0时,只访 问片外程序存储器(此时片内ROM无效);若 /EA1时,低 于 4KB的程序存储器访问片内,高于4KB的访问片外。/RD 、 /WR :输出输出。用于片外数据存储器RAM的读、写控制。当执行 MOVX 指令时,这两个控制信号自动生成。2。80C51系列单片机的系统并行扩展能力系列单片机的系统并行扩展能力:ROM、RAM各64KB。片外的ROM和RAM地址重叠,靠不同的指令和
5、和控制信号来区分。 片内和片外数据存储器RAM低地址部分重叠,可利用指令不同加以区分(片外只能用MOVX,片内用MOV)。 而片内与片外程序存储器ROM的区分靠硬件( /EA )结构实现。 为了扩展外围设备需要占用I/O口,80C51的扩展I/O口,它们与片外的数据储存器统一编址,因此当扩展较多的I/O口时,将占用大量的外部RAM地址。 若若 超过超过64KB的存储器地址,可利用译码器(如:的存储器地址,可利用译码器(如:24 译码器,译码器,见见 P181 图图62)来解决)来解决。图中,P1.0=1, 指向第64K;P1.0=0, 指向第64K(扩大成2个64KB)。6. 1 . 2 外部
6、串行扩展性能外部串行扩展性能 80C51系列的串行总线包括: SPI(串行外围接口)3 线总线及I2C公用双总线两种。利用串行中断 (1)SPI 三线总线结构三线总线结构: 它是一个同步外围接口,允许MCU与各种外围设备以串行方式进行通信。一个完整的SPI系统有如下特性: 全双工、三线同步传送; 主、从机工作方式; 可程控的主机位传送频率、时钟极性和相位; 发送完成中断标志; 写冲突保护标志。在多数场合,使用一个MCU作为主机,控制数据向一个或几个外围器件(从机)的传送。一般SPI系统使用4 个个I/O 引脚:串行数据线(MISO、MOSI):主机输入 / 从机从机输出数据线MISO和主机输出
7、/从机输入数据线MOSI,用于串行数据的传输,先高位后低位。串行时钟线(SCLK):用于同步从MISO和MOSI引脚输入和输出的数据传送。在SPI设置为主机方式时,SCLK为输出,设置为从机方式时,SCLK为输入(主出从入主出从入) 。主机启动一次传送时,自动在SCLK脚产生8个时钟周期。而SPI器件在SCLK信号的一个跳变时进行数据移位,数据稳定后的另一个跳变时进行采样。 对于一个完整的SPI系统,串行数据和串行时钟之间有四种极性和相位关系,如 P182图63 所示。主、从机间传送的定时关系必需相同。从机选择(SS):从机为输入端,用于使能数据传送;主机的SS一般由外部置为高电平。通过SPI
8、可以扩展各种I/O功能,如A/D、D/A、实时时钟、RAM、E2PROM及并行I/O接口等。在把SPI与一片或几片串行扩展芯片相连时,只需按要求连接SCLK、MOSI、MISO三根线即可。 对于某些 I/O 扩展芯片,它们有/CS 端,这些芯片应该用一根I/O口线来控制它们的片选端 /CS 。 80C51的串行口方式0,提供了简化的简化的SPI 同步串行通信。只是其串行时钟的极性和相位是固定的(由TXD输出);无从机选择SS端;串行输入/输出线是同一根线由软件设置其传输方向;数据传送是先低位后高位。因此,80C51系列的SPI只有两根引脚: RXD(P3.0):用作 MOSI / MISO T
9、XD(P3.1):用作SCLK 若由于串行通信口已占用或用串行口方式0作为SPI感到不方便,则可以利用一般I/O口线通过软件仿真来模拟 SPI 操作。(2)I2C公用双总线结构公用双总线结构 在IC器件之间,使用两根信号线(SDA和SCL)串行的方法进行信息传送,并允许若干兼容的器件共享的双总线,称为I2C总线。 SDA线称为串行数据线,用它传送双向数据; SCL线称为串行时钟线,用它发送时钟信号,用于同步串行数据线上的数据。I2C总线上的器件,SDA和SCL引脚都是一个漏极开路端,因此在I2C总线上的所有器件的SDA端引脚需连接在一起,并通过电阻与电源连接;SCL引脚也要连在一起,并通过电阻
10、与电源连接 (P183 图64) 。 挂接在I2C总线上的器件,根据其功能可分为 两种两种:主控器件主控器件:产生串行时钟SCL信号,并产生启动传送和结束传送的 器件,它控制总线的存取,称为 主器件主器件。至少有一个。从控器件从控器件:在总线上被主控器件寻址的器件,它们根据主控器件的 命令来接收和发送数据,称为 从器件从器件。可以有多个。由若干器件组成的I2C总线系统是一个允许多主的系统, 对于某一个器件对于某一个器件来说,有四种工作方式:来说,有四种工作方式:主发送、主接收、从发送、从接收主发送、主接收、从发送、从接收方式。I2C 总线数据传输协议总线数据传输协议:只有当总线不忙时,数据传输
11、才能开始;数据传送期间,无论何时串行时钟线为高,串行数据线必须保持稳定;当串行时钟线为高时,串行数据线将认为是传送的开始或停止。 根据以上协议定义以下总线条件总线条件:总线不忙:串行时钟线SCL和数据线SDA保持高电平。开始数据传送:时钟线SCL为高电平,数据线SDA由高变低。停止数据传送:时钟线SCL为高电平,数据线SDA由低变高。 P184图65数据有效(D)如P185图66 所示。在开始条件以后,串行时钟线保持高电平(SCL=1)的周期期间,当串行数据线(SDA)稳定时,串行数据线的状态表示数据线是有效的。而在串行时钟线保持低电平(SCL=0)的周期期间,串行数据线上的数据应该改变。每位
12、数据需要一个时钟脉冲。(详见P185图66) 每次数据传送在起始信号(S)下启动,在停止信号下(P)结束。重复的起始信号将结束前一个传送过程,但不释放I2C总线,可接着进行下一个传送过程。 在I2C总线上数据传送有两种方式,它们由起始信号后的第一个字节的最低位(即方向位R/W)决定。方向位为0是主发送到从接收;方向位为1是从发送到主接收。主发送到从接收主发送到从接收: (详见P185图67)主器件产生起始信号后,发送的第一个字节为从地址(该字节的高7位为从器件的地址片选信号,最低位为决定数据传送方向的方向位,此时该位为0),随后再发送数据字节。发送的数据可以是单字节也可以是一串数据。由主器件决
13、定。从发送到主接收从发送到主接收:从器件在接收到主器件发送的从地址和为1的方向位后,返回一个应答信号(ASK=0),接着由从器件发送数据到主器件,主器件每收到一个字节,都返回一个应答信号(ASK=0)。 在接收从器件最后一个字节后,主器件发送一个非应答信号( ASK=1 ),即即终止从器件继续发送。终止从器件继续发送。从器件发送的数据可以是单字节也可以是一串数据。 综上所述, I2C总线的主要功能有 : (P186) 在主控器件和从控器件之间双向传送数据; 无中央主控器件的多主总线; 多主传送时,不发生错误; 可以使用不同的位速率; 串行时钟作为交接信号; 可用于测试和诊断目的。 在有I2C总
14、线的单片机中,可以直接利用I2C总线来进行串行扩展;但对于80C51系列的单片机,大多数没有I2C总线的接口功能,而是采用软件模拟双向数据传送协议的方法,来实现系统的串行扩展。 在单片机应用系统中,单主结构占大多数。在单主系统中, I2C总线的数据传送状态要简单得多,没有总线竞争和同步问题,只有作为主器件的单片机对I2C总线器件的读/写操作,这就简化了模拟软件的设计工作。2。两种总线的性能比较: 各有所长,具体见P186表61。 I2C总线适用于抗噪声性能、I/O口线受限制的场合,或要求一条指令将多个字节存入缓冲器的场合。 I2C规程较复杂。 SPI三总线规程适用于高时钟频率要求,或16位数据
15、的场合。6. 2 单片机的外部并行扩展单片机的外部并行扩展 常用芯片介绍(补充)常用芯片介绍(补充)27xx的引脚的引脚型号:型号:6264 前两位数前两位数62, 表示表示SRAM 后两位后两位648=8k 字节容量字节容量62128 有有1288=16k 字节容量字节容量62256 有有2568=32k 字节容量字节容量地址锁存器芯片地址锁存器芯片74LS373与与74LS573只是引脚布置的不同。只是引脚布置的不同。74LS273的的11脚脚G逻辑与以上相反。逻辑与以上相反。地址译码器:地址译码器:74LS1386. 2 单片机的外部并行扩展单片机的外部并行扩展6. 2. 1 程序存储器
16、的扩展程序存储器的扩展 1。程序存储器扩展时的总线功能和操作时序 (1)/EA1,80C51的片内程序存储器有效。当PC内容为0000H到0FFFH时,对片内程序存储器寻址,此时P0、P2口及/PSEN都没有信号输出;只有当PC值超出此范围时,才有信号输出。 (2) /EA0, 80C51的片内程序存储器无效,只能访问片外程序存储器。单片机访问片外程序存储器取指令操作的时序如 P188的 图68 所示。 即: ALE, PCL有效,锁存之; /PSEN, 指令字数据总线, /PSEN,指令字指令寄存器。2。扩展片外程序存储器的硬件电路: 如 P188图69 所示。片外程序存储器可以用EPROM
17、,也可用E2PROM。作为低8位地址锁存用的锁存器,使用最多的有8D锁存器74LS273和8D锁存缓冲器74LS373 。(74LS273要加一反向器, 见P188图610 )。3。扩展EPROM片外程序存储器的方法 (1)扩展4K8位片外程序存储器的电路,如P189 图图611所示。图中/EA接+5V,片外2732EPROM有A0A11共12根地址线(4K), 地址范围地址范围为1000H1FFFH。而小于0FFFH的低4K 访问片内程序存储器。(2)扩展两片)扩展两片8K8位片外程序存储器的电路位片外程序存储器的电路,如P190图图612。因是8031,无片内ROM,/EA接地接地。片外2
18、764EPROM用A0A12共13根地址线(各8K), 利用P2.5接片选/CE, 当P2.50时,选通左边的2764,地址范围是0000H1FFFH; 当P2.51时,选通右边的2764,地址范围是2000H3FFFH。共16K程序存储器。不同芯片用不同芯片用线选法线选法。(3)扩展多片)扩展多片8K8位片外程序存储器的电路位片外程序存储器的电路,如 下图下图仍是8031,/EA接地。每片2764有A0A12 13根地址线(8K), 8片 2764 EPROM采用38译码器来选通,当P2.5、 P2.6、 P2.7为000时,选中最下面的2764,为111时,选中最上面的2764。共64K
19、EPROM。本例采用地址译码器法。(也可只用一片27512来实现64K EPROM) 以上扩展EPROM的/OE脚都要接单片机的/PSEN引脚。6. 2. 2 片外数据存储器的扩展片外数据存储器的扩展 1。片外数据存储器扩展时的总线功能和读、写操作时序片外数据存储器的读写操作的指令有两组4条。其中(1)MOVX A , DPTR 和和 MOVX DPTR , A 的操作时序见P191图图613 。 注意: P2口的时序与内容(PCH、DPH,此时不能作I/O口用)。 (2) MOVX A , Ri 和和 MOVX Ri,A 的操作时序 见 P192 图图614。注意: P2口此时的内容 ( P
20、2口特殊功能寄存器内容口特殊功能寄存器内容,即作为即作为I/O口用口用 )。 2。扩展片外数据存储器的硬件电路。扩展片外数据存储器的硬件电路 如 P192 图615 所示。 注意:单片机的 /RD 和 /WR 的接法。 书中P192 图616 、 P194图图617 分别介绍了扩展2K8位、 16K8位位的片外数据存储器的方法,除了它们是利用/RD和/WR来选通外,其它扩展方法与EPROM类似,请注意比较(自学)。 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 A7 A6 A5 A4 A3 A2 A1 A0P2.7 P2.6 P2.5 P2.4 P2.3 P2
21、.2 P2.1 P2.0 A7 A6 A5 A4 A3 A2 A1 A0 : 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 =C000H =C000H 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 DFFFHDFFFH : 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 =A000H =A000H 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1
22、 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 BFFFH BFFFH :0110110 0000 0000 00000 0000 0000 00000110111 1111 1111 11111 1111 1111 1111 =6000H =6000H7FFFH 7FFFH 6. 2. 3 同时扩展片外程序存储器和片外数据存储器同时扩展片外程序存储器和片外数据存储器 1。分别扩展片外程序存储器和片外数据存储器。分别扩展片外程序存储器和片外数据存储器 (P195图图618)在此电路中,EPROM和RAM 的地址都由P2口提供高8位,P0口提供低8位,两者共处于同一地址空间,即地
23、址重复,但两者的选通方法不同(EPROM是/PSEN;RAM是RD/WR),访问时不会发生总线冲突。 2。统一编址扩展片外程序存储器和数据存储器。统一编址扩展片外程序存储器和数据存储器 (P195图图619)某些应用中,例如程序的开发器,为了调试方便,需要把程序也放在RAM中,此时将利用RAM来统一扩展片外程序和数据存储器。它们的地址是连在一起的,利用/PSEN和/RD经“与”门形成一个混合的读选通信号读选通信号去控制各芯片的 /OE 端。当执行RAM中的程序时,此时由/PSEN选通读出;当执行MOVX 指令时,将产生 /RD 或 /WR 信号,此时可实现对RAM 的 读 / 写 选通。图6-
24、18扩展片外程序存储器和片外数据存储器的电路6. 2. 4 通过并行总线扩展通过并行总线扩展 I /O 口口实现I / O口功能的扩展,可以利用简单的TTL或或CMOS电路电路, 也可以利用结构较为复杂的可编程芯片可编程芯片(如8155、8255、8253、8279等)。INTEL公司提供的这类可编程芯片,由于与80C51的信号体制相同,给使用带来很大方便,我们将在后续课程介绍。这里,我们主要介绍利用简单的TTL或CMOS电路扩展I/O口的方法。1。利用。利用MOVX指令扩展输入指令扩展输入 / 输出口输出口 详见 P196 表表62扩展口类型使用指令选通信号流向数据状态使用器件输入口MOVX
25、 A, RiMOVX A,DPTR/RD电平外设 累加器采样静态数据输入缓冲74LS24474LS373输出口MOVX Ri, A MOVX DPTR,A/WR累加器外设保持瞬间数据输出锁存74LS27374LS377 2。扩展简单。扩展简单I /O口方法口方法 根据有无片外数据存储器, 分为两种方法两种方法:(1)无片外数据存储器时的扩展 P197图620表示扩展8个输入口的方法。图中,利用38译码器74LS138将地址锁存器74LS373来的A0A2译码为8个选通信号(Y0Y7),138的控制端 /G2与 /RD连接,用连接,用于于控制只在“读读” 时才选通该138译码器。数据输出用74L
26、S244 。P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0WRRDCLRS15 V1G1803174LS27374LS244G2CPD0D1D2D3D4D5D6D7Q0Q1Q2Q3Q4Q5Q6Q7Q0Q1Q2Q3Q4Q5Q6Q7D0D1D2D3D4D5D6D7LED0LED1LED2LED3LED4LED5LED6LED7S0S2S3S4S5S6S71 上述扩展口使用MOVX A , Ri 输入数据时为8位寻址,口地址为00H07H、10H17H、直至0F8H0FFH , 有多个地址。通常用低端。 (2)有片外数据存储器时的扩展)有片外数据存储器时的扩展 这时应加一根
27、I/O口线来选择IO或RAM。其扩展电路如 P197图623 所示。 图中,使用74LS373为输入的接口芯片。当P1. 0 = 0时,选通片外数据存储器6264,其寻址范围0000H1FFFH;当P1. 0 = 1时,选通扩展的输入口373,其口地址范围是0000H1FFFH的任一个地址。其中外设的选通信号连接373的锁存允许LE 端,同时接单片机的/INT0。因此,在该选通信号低电平期间,将发来的数据锁存,同时向CPU申请中断,在中断服务程序中由P0口把锁存的数据读入。 相应的初始化程序及中断服务子程序见 P198 。 6. 3. 2 串行扩展串行扩展I/O接口接口 1。利用。利用SPI
28、扩展扩展I/O接口接口 (1)扩展并行输出口: 硬件接口示意图如P215图638所示。图中使用了8位移位寄存器4094(串转并)芯片。它和我们前面讲过的利用74LS164及串行通信方式0的发送原理一样。程序见P215 。MOV R7 ,#2MOV R0,#20HCLR P1.7 ; 置4094于串行移位工作方式MOV SCON,#00H ;置串行口于工作方式0OUT1: MOV A, R0 MOV SBUF,A ;将20H单元的数写入SBUF,启动发送 JNB TI,$ ;检测串行口发送数据是否完毕,未完等待 CLR TI ;发送完毕后清RI标志 INC R0 DJNZ R7,OUT1 SETB P1.7 ;为使4094并行输出数据,软件产生一个脉 冲上升沿 RET (2)扩展并行输入口: 硬件接口示意图如P215图639所示。图中使用了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论