《单片机原理及应用》项目七--MCS–51系统扩展_第1页
《单片机原理及应用》项目七--MCS–51系统扩展_第2页
《单片机原理及应用》项目七--MCS–51系统扩展_第3页
《单片机原理及应用》项目七--MCS–51系统扩展_第4页
《单片机原理及应用》项目七--MCS–51系统扩展_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机原理及应用技术MCS51系统扩展任务一 存储器扩展任务二 74系列芯片扩展I/O任务三 8255A可编程并行输入输出接口Project 7任务1存储器扩展单片机的系统总线one在进行系统扩展中,首先需要面对的问题是如何与外围芯片连接。为了方便解决这一问题,往往利用地址锁存器将单片机形成三总线结构,即地址总线(Address Bus)、数据总线(Data Bus)和控制总线(Control Bus),如图所示。P2口作为地址总线的高8位,在访问16位的地址时,用于输出16位地址的高8位A15A8;P0口分时复用地址/数据总线,地址锁存器用于锁存低8位地址A7A0。提示地址总线的根数决定了单

2、片机可以访问的存储单元数量和I/O端口的数量。n条地址线可以产生2n个地址编码。常用的地址锁存器为74LS373,构成地址总线时,它的8个输入端与P0口相连,其使能端连接单片机的ALE端。ALE信号为1时,P0口输出的数据被地址锁存器锁存,用作地址信号A7A0;ALE信号为0时,P0口用于传输指令或数据(此时地址锁存器中的地址信号保持不变,能够保证数据传输给正确的地址)。地址总线P0口用作数据总线,数据总线是双向的,既可以由单片机传到外部芯片,也可以由外部芯片传入单片机。数据总线控制总线主要负责对芯片的选通以及读/写等控制。引脚功能已在项目二中进行了详细介绍,这里不再赘述。控制总线存储器扩展方

3、法two在项目二中我们已经知道程序存储器和数据存储器分开编址,具有各自的64KB寻址空间,地址都是从0000HFFFFH。对于程序存储器和数据存储器的访问,单片机通过不同的片选信号来确定,PSEN和EA信号用于片外程序存储器的读写控制;WR和RD信号用于片外数据存储器的读写控制。无论是对程序存储器扩展,还是对数据存储器扩展时,我们需要解决的一个首要问题就是地址分配。地址空间的分配实际是16位地址线的具体安排与分配,在外部扩展多片存储芯片时,很多芯片都是“并联”的,即它们的数据总线、地址总线是一一对应地连在一起的,这必然带来问题:单片机通过地址总线发出的地址来选择某一个存储单元时,必须进行两种选

4、择:一是选择出指定的芯片(简称“片选”);二是选择出该芯片的某一个存储单元。对于芯片中存储单元的选择,是通过地址总线进行的;对于“片选”,常用方法有两种:线选法和译码法。1线选法线选法是将多余的地址总线(即除去单片机与存储芯片相连占用的地址总线外)中的某一根地址线作为选择某一片存储芯片的片选信号线。每一块芯片均需占用一根地址线,这种方法适用于存储容量较小,外扩芯片较少的系统,其优点是不需地址译码器,硬件电路简单,成本低;缺点是能够扩展芯片的数量有限,并且地址空间是不连续的。【例7-1】有8个容量为256B的存储芯片用于扩展单片机的存储器,采用线选法进行扩展,其连接如图所示。每个256B芯片均有

5、8条地址线,它们都与单片机的A0A7的地址线连接。单片机的A8A15地址线分别与扩展芯片的片选端相连,用于选择相应的芯片。芯片的地址计算方法如下:芯片1的片选端与A15相连,这里假设片选端为0时信号有效。那么芯片1的地址可以表示为:A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A00 1 1 1 1 1 1 1 X X X X X X X X即7F00H7FFFH相应地,芯片2芯片8的地址范围分别为:BF00HBFFFH、DF00HDFFFH、EF00HEFFFH、F700HF7FFH、FB00HFBFFH、FD00HFDFFH与FE00

6、HFEFFH。2译码法译码法是将剩余的地址总线通过译码器,经译码器输出后的信号用于片选,这样不会产生线选法中对地址编码的浪费。常用的译码芯片有74LS138、74LS139等。其中,74LS138的引脚图如图所示:G2A G2B G1C B A输出(Y0Y7)0 0 10 0 00111 11110 0 10 0 11011 11110 0 10 1 01101 1110 0 10 1 11110 11110 0 11 0 01111 01110 0 11 0 11111 10110 0 11 1 01111 11010 0 11 1 11111 111074LS138的真值表如表所示:【例7

7、-2】某芯片的容量为8K,占用13条地址线,使用该芯片对单片机进行64K的容量扩充。这里我们应用译码法将剩余的3条高位地址线(A13A15)分别与译码器的输入端(A、B、C)相连。译码器的8位输出端分别与8个存储芯片的使能端相连,用于片选。译码法的连接如图所示。我们假定按从上到下的顺序,芯片名为芯片1、芯片2芯片8。那么芯片1芯片8的地址范围分别是0000H1FFFH、2000H3FFFH、4000H5FFFH、6000H7FFFH、8000H9FFFH、A000HBFFFH、C000HDFFFH、E000HFFFFH。程序存储器扩展three程序存储器用于固化程序和常数,根据工作原理不同,程

8、序存储器可分为紫外线可擦除EPROM、电可擦除EEPROM、掩膜ROM和可编程PROM几种。在小批量系统的开发中,常采用EPROM和EEPROM芯片;成熟的大批量产品开发中,应采用掩膜ROM或可编程PROM。这里以EPROM为例介绍程序存储器的扩展,常用的EPROM芯片有2764(8KB)、27256(32KB)以及27512(64KB),如图所示,它们都是采用28脚双列直插式封装。下面以2764芯片为例对8031的程序存储器进行扩展,2764各引脚功能说明如下:A0A1213根地址线D0D78根数据线VPP编程电源输入端VCC工作电源输入端(一般为+5V)PGM编程脉冲输入端OE读选通(输出

9、允许)信号输入端,低电平有效CE片选信号端,低电平有效GND接地端(1)线选法使用线选法进行程序存储器扩展的连接方式如图所示:前面我们已经知道8031内部没有程序存储器,所以这里直接将EA/VPP引脚接地,用于选择外部程序存储器。PSEN引脚是专门用作程序存储器扩展的,故2764的OE引脚与单片机的PSEN引脚相连。剩余的高位地址线P2.5用作2764的片选端。锁存器74LS373芯片用于将P0口输出进行数据和地址总线的分离,P0口直接连接到2764的数据线D0D7上,作为数据总线使用;P0口输出低8位地址时,利用74LS373锁存,然后与2764的A0A7引脚相连;P2口的部分输出直接与27

10、64的高位地址线A8A12相连。2764的地址空间范围是:C000HDFFFH。(2)译码法下面我们采用译码法使用多片2764对8031进行存储器的扩展。前面我们已经知道连接2764数据总线和地址总线共用了13根,剩余3根信号线可用于连接译码芯片,经过译码器后,最多可以连接8片2764。这里要求我们只连接4片2764,芯片1芯片4的地址范围分别是0000H1FFFH、4000H5FFFH、8000H9FFFH、C000HDFFFH。首先我们需要对各芯片的地址进行分析:芯片1A15A14A13A12A11A10A9A8A7A0起始地址:000000000结束地址:000111111芯片2A15A

11、14A13A12A11A10A9A8A7A0起始地址:001000000结束地址:000111111芯片3A15A14A13A12A11A10A9A8A7A0起始地址:100000000结束地址:100111111芯片4A15A14A13A12A11A10A9A8A7A0起始地址:110000000结束地址:110111111观察四个芯片高位值A15、A14、A13可知,芯片1芯片4的片选信号分别是000、001、100和110,参照74LS138真值表可以确定各芯片与74LS138的连线。芯片1Y0芯片2Y1芯片3 Y4芯片4 Y6各芯片的连接如图所示:数据存储器扩展four数据存储器常用来

12、存取实时数据、变量和运算结果,目前常用的有SRAM(静态数据存储器)和DRAM(动态数据存储器)两种。SRAM工作速度快,只要电源不撤除,写入SRAM的信息就不会消失,不需要刷新电路,一经写入可多次读出,缺点是集成度较低,功耗较大。DRAM是利用电容端电压的高低来表示“1”和“0”。它的集成度较高,功耗也较低,但缺点是保存在DRAM中的信息会随着电容器的漏电而逐渐消失,一般信息保存时间为2ms左右。因此,为防止信息丢失,采用DRAM进行数据存储器扩展必须配置动态刷新电路。这里我们以SRAM为例来介绍数据存储器的扩展,常见的SRAM芯片有6216(2KB)、6264(8KB)以及62256(32

13、KB),6264芯片的引脚图如左图所示,真值表如右表所示。CS1CS2OEWED7D00101读出0110写入00 xx三态(高阻)11xx10 xxA0A1213根地址线D0D78根数据线WE写允许信号OE读选通(输出允许)信号输入端,低电平有效CS1片选信号1,低电平有效CS2片选信号2,高电平有效数据存储器的扩展与程序存储器的扩展相似,地址总线及数据总线的连接方式相同。所不同的是控制信号的连接。在对数据存储器扩展时,单片机使用WR、RD信号控制6264芯片的读、写操作。这里使用译码法扩展6264芯片,如图所示。任务274系列芯片扩展I/O并行接口输入扩展one进行输入接口扩展通常使用的典

14、型芯片为74LS244,该芯片是8位的三态数据缓冲器。如图所示为该芯片的引脚示意图。G1、G2引脚为芯片的选通信号,当两者同为低电平时,输入端A与输出端Y状态相同;当G1和G2同为高电平时,输出呈高阻状态。MCS-51的数据总线是公用的总线,不能够被独占,因此我们在进行扩展时,首先要求扩展芯片必须具备“三态”,即当输入设备被选通时,能够使输入设备的数据线和单片机的数据总线直接接通;当输入设备没有被选通时,能够隔离数据源和数据总线(即三态缓冲器为高阻抗状态)。 使用74LS244进行I/O扩展的线路图如图所示。单片机的P2.7和RD引脚同为低电平时,74LS244才能被选通,将输入设备的数据送到

15、MCS-51的P0口。这里使用线选法连接芯片,引脚P2.7决定了74LS244的地址为:0 (“”代表任意电平)不难看出,共有从0000H7FFFH共32K个地址都可以访问这个单元。不过,作为一种习惯,通常选择其中的最高地址作为这个芯片的地址来写程序,即7FFFH。MOVDPTR,#7FFFH;将接口地址存入DPTRMOVXA,DPTR;将接口地址中的内容送AMOV40H,A;将输入设备发送的数据存入40H单元接口的输入操作程序如下:MOVX类指令用于访问外部数据存储器,由于外部I/O与外部数据存储器是同一接口,所以本条指令也可以对外部I/O设备进行操作。执行MOVX类指令时,单片机在RD(输

16、入命令)或WR(输出指令)引脚产生一个下降沿,这个下降沿与P2.7相“或”,在或门的输出口会产生一个下降沿,这个下降沿使得74LS244的输入与输出接通,单片机可以从总线上读取输入设备的数据,如图所示。在数据输出处理中,数据总线的状态会因为需要变化,因此,进行输出扩展时,一般会连接数据锁存器用于锁存数据。常用芯片74LS377是一个8位锁存器,其引脚如图所示,当CLK引脚信号(时钟信号)处于上升沿时锁存数据。并行接口输出扩展two使用74LS377对并行接口进行输出扩展时,其连接如图所示。其中,单片机的WR信号与74LS377的CLK信号相连,P2.7引脚用于连接芯片使能端。MOVDPTR,#

17、7FFFH;将接口地址存入DPTRMOVA,40H;将待发送的数据(40H单元内容)送入累加器MOVXDPTR,A;将待发送数据送出,将被74LS377锁存当WR信号由低变高时,CLK信号有效,且P2.7引脚输出低电平,G有效,此时数据被锁存。相关程序如下:同时扩展输入与输出口three综合前面的知识,对单片机同时进行输入和输出扩展。输入扩展芯片仍为74LS244,输出扩展芯片使用74LS273,当MR端信号为高电平时,数据被锁存。这里我们将两个芯片设为相同地址,线路如图所示,输入端的按键闭合后,输出端相应的LED灯将亮起。 MOVDPTR,#7FFFH;将接口地址存入DPTRLOOP1:MO

18、VXA,DPTR;将输入设备中的待发送数据送入A中MOVXDPTR,A;将A中数据送入输出设备LJMPLOOP1;循环执行指令相关程序如下:任务38255A可编程并行输入输出接口8255A结构图8255A引脚图8255A的结构和引脚功能one1组成结构并行端口PA、PB、PC:3个8位的并行端口A、B、C,都可被编程为输入或输出两种方式,但它们在结构和功能上有差异。PA口有一个8位数据输出锁存器/缓冲器和一个8位数据输入锁存器,可编程为输入/输出或双向寄存器;PB口有一个8位输入/输出锁存/缓冲器和一个8位数据输入缓冲器(不锁存),可编程为输入或输出,但不能双向输入/输出;PC口有一个8位数据

19、输出锁存/缓冲器和一个8位数据输入缓冲器,可分为两个4位口使用,它除了作为输入输出口外,还可作为PA、PB口工作于选通方式时的状态控制信号。各端口功能如表所示。工作方式端口A端口B端口C0基本输入/输出端口,输出锁存,输入三态基本输入/输出端口,输出锁存,输入三态基本输入/输出端口,输出锁存,输入三态1应答式输入/输出端口,输入、输出均锁存应答式输入/输出端口,输入、输出均锁存作为端口A和B的控制位和状态位2应答式输入/输出端口,输入、输出均锁存作为端口A的控制位和状态位控制寄存器:包括A组控制电路和B组控制电路,用于控制接收来自CPU的控制命令,控制端口A、B、C的工作方式。其中,A组控制电

20、路用来控制端口A和端口C的高4位(PC7C4),B组控制电路用来控制端口B和端口C的低4位(PC3PC0)。数据总线缓冲器:三态、双向、8位寄存器,用于与系统数据总线相连,是8255A与CPU进行信息传送的通道,可用来传送数据、控制命令和状态信息。读/写控制逻辑:包括读出信号RD、写入信号WR、片选信号CS和端口选择信号A1、A0,用于控制8255A内部寄存器的读/写操作,如表所示。CS RD WR A1 A0端口选择和读/写操作0 0 1 0 0读出端口A数据0 0 1 0 1读出端口B数据0 0 1 1 0读出端口C数据0 0 1 1 1非法操作0 1 0 0 0数据写入端口A0 1 0

21、0 1数据写入端口B0 1 0 1 0数据写入端口C0 1 0 1 1命令写入控制寄存器2引脚功能D7D0:三态、双向数据线,与CPU数据总线相连,用于传送数据。CS:片选信号,由CPU输入,低电平有效。该信号有效时,表示8255A被选中,允许与CPU交换信息。RD:读信号,输入,用于控制数据流的读出,低电平有效。该信号有效时,表示允许CPU从8255A端口中读取数据或状态信息。WR:写信号,输入,用于控制数据的写入。该信号有效时,表示允许CPU向8255A中写入数据。A1和A0:端口选择信号,输入信号。8255A有3个独立的8位并行I/O端口A、B、C和一个控制寄存器,具有数据控制和锁存功能

22、,利用该信号可以寻址各端口,如表所示。A1 A0选择端口0 0端口A0 1端口B1 0端口C1 1控制寄存器RESET:复位信号,输入信号,高电平有效。当该信号有效时,8255A复位,所有控制寄存器内容被清零,所有端口被置为输入方式。 PA7PA0:端口A的输入/输出信号。PB7PB0:端口B的输入/输出信号PC7PC0:端口C的输入/输出信号8255A的控制字two1工作方式控制字工作方式控制字用于确定各口的工作方式及数据传送的方向,其特征是最高位为1,如图所示。D7:控制字标志位,恒为1。D6和D5:设置A组的工作方式。D6D500为方式0,D6D501为方式1,D6D51x为方式2。D4

23、:设置端口A的数据传送方式。D41为输入,D40为输出。D3:设置PC7PC4的数据传送方向。D31为输入,D30为输出。D2:设置B组的工作方式。D21为方式1,D20为方式0。D1:设置端口B的数据传送方式。D11为输入,D10为输出。D0:设置PC3PC0的数据传送方向。D01为输入,D00为输出。【例7-1】若要求8255A的工作方式为:PA口设置为方式0输入,PB口设置为方式1输出,PC4PC7为输出,PC0PC3为输入。MOVDPTR,#7FFFHMOVA,#95HMOVXDPTR,A根据要求,对照方式控制字的格式及各位的功能,写出方式控制字为10010101B,即95H。设控制寄

24、存器地址为DFFFH。设置工作方式控制字可执行如下程序:D0D70:标志位 无关D6D5D4D3D2D11:置位0:复位位 选 择D3D2D1C口000011111PC1PC3PC5000000001111111PC0PC2PC4PC6PC72PC口位操作控制字PC口位操作控制字用于对C口的任意位进行置位和复位,各位的功能如图所示。D7:状态字标志位,恒为0。D6D4:无关,通常设置为0。D3D1:端口C的位选择,000111分别对应表示PC0PC7。D0:置位或复位端口C的指定位。D01为置位,D00为复位。【例7-2】若置PC5=1,则C口位操作控制字为0XXX1011,即0BH。设置C口

25、位控制字的操作与设置工作方式控制字相同。MOVDPTR,#7FFFHMOVA,#0BHMOVXDPTR,ADB8RDWR8448A口A组C口B口B组PA0PA7PC4PC7PC0PC3PB0PB78255A的工作方式three1方式0方式0是8255A的基本输入/输出方式,其特点是无需设置联络信号,8255A就可以直接与外设进行简单的无条件数据传送。方式0适用于无条件数据传送或查询式数据传送。在这种方式下,3个端口都可以设置为输入/输出端口,但不能同时既作为输入又作为输出。其中,端口A和B为8位端口,输入、输出均有锁存能力;端口C可分为两个4位端口(高4位和低4位),仅对输出有锁存能力。方式0

26、的功能图如图所示。外设STBBIBFBINTRBINTEBD7D0外设STBAIBFAINTRAI/OPC6、PC7PC3&PC4PC5INTEAPA7PA0D7D0&PC2PC1PB7PB0PC0RDRD2方式1方式1是一种选通式输入/输出工作方式,其特点是与外设传送数据时,需要设置联络信号。在这种方式下,端口C的部分位用作选通控制信号,控制端口A和B的数据输入输出。8255A在方式1时的输入信号如图所示,功能分别如下:STB:选通信号,由外设输入,低电平有效。当该信号有效时,将外设输入的数据锁存到端口A或B的输入锁存器中。对于端口A来说,由端口C的PC4来接收STB信号;对于端口B来说,由

27、端口C的PC2来接收STB信号。IBF:输入缓冲器满信号,向外设输出,是对STB的响应信号,高电平有效。当该信号有效时,表示由外设输入的数据已送到该端口的输入锁存器中。INTR:中断请求信号,向CPU输出,用于请求以中断方式传送数据,高电平有效。INTE:中断允许信号。由于INTE没有外部引出端,但可通过软件对C口置1或清0,实现对中断的控制。若PC41,则端口A的中断允许信号INTE1;若PC40,则端口A的INTE0。如果PC21,则端口B的中断允许信号INTE1;若PC20,则端口B的INTE0。当INTE为1时,表示允许中断;为0时,表示禁止中断。D7D0WRRDINTRA外设OBFA

28、ACKASTBAIBFAI/OPC2PC0PC4PC5INTE2INTE1&PA7PA0PC3PC7PC612内部结构8255A在方式2时的引脚信号如图所示,PA7PA0为8位双向数据输入/输出端口,PC7PC3提供5个控制信号,PC2PC0作为基本I/O线。其中,PC7和PC6分别定义为输出缓冲器满信号OBF和输出应答信号ACK;PC5和PC4分别定义为输入选通信号STB和输入缓冲器满信号IBF;PC3定义为中断请求信号INTR。另外,输入和输出合用一个引脚PC3向CPU发出中断请求信号,但中断允许信号有两个,即INTE1为输出中断允许信号,其状态由PC6决定;INTE2为输入中断允许信号,

29、其状态由PC4决定。方式2是一种双向输入/输出工作方式,即同一端口的信号线既可以输入又可以输出。8255A只允许端口A工作于方式2下,此时端口A作为双向数据端口,既可以发送数据又可以接收数据。8255A与MCS-51的典型连接four提示关于8255A芯片及端口A、B、C地址的确定:根据前面已讲述的线选法,由于8255A的片选端(低电平有效)与P2.7相连,8255A的地址为0111 1111 1111 1111,即7FFFH。A1、A0与单片机的Q1、Q0相连,端口A、B、C的地址由A1、A0决定:A口地址为:0111 1111 1111 1100,即7FFCH(A1、A0为00时,选择端口

30、A)。B口地址为:0111 1111 1111 1101,即7FFDH(A1、A0为01时,选择端口B)。C口地址为:0111 1111 1111 1110,即7FFEH(A1、A0为10时,选择端口C)。8255A的A1、A0与经74LS373锁存的地址Q1、Q0相连。8255A的数据线D0D7与单片机的数据总线P0.0P0.7相连。8255A的读写信号WR、RD与单片机的WR、RD信号相连。8255A的片选端CS与单片机P2的某根地址线相连(图中与P2.7相连),用来决定8255A的地址。8255A的复位信号RESET与单片机的复位信号RESET相连。8255A应用举例five【例7-3】在任务二中我们使用74LS273和74LS244芯片进行输入和输出的扩展,这里我们只使用8255A芯片就可以解决问题。硬件连接将PB口用作输入,与按键相连;将PA口用作输出,与LED信号灯相连。如图所示。硬件连接将PA口设置为输出,PB口设置为输入,均工作于方式0,由此可以写出控制字为:100001,这里将无关位取1,即8BH。程序内容如下:ORG0000HJMPSTARTSTART:MOVA,#8BH;将控制字送AMOVDPTR,#0DFFFH;将8255A的地址送DPTRMOVXDPTR,A;将控制字送8255ALOOP1:MOVDPTR,#0DFFDH;将B口地

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论