单片机原理与应用第5章课件_第1页
单片机原理与应用第5章课件_第2页
单片机原理与应用第5章课件_第3页
单片机原理与应用第5章课件_第4页
单片机原理与应用第5章课件_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

1、第5章 MCS-51单片机系统的扩展5.1 系统扩展技术5.2 存储器的扩展5.3 并行I/O接口的扩展5.4 串行I/O接口的扩展5.5 定时器/计数器的扩展目 录本章重点了解存储器的种类; 掌握地址重叠的概念、扩展存储器地址分配、地址线、控制信号(ALE、RD、WR、PSEN、EA等)的连接; 能设计存储器扩展电路图,根据电路图分析地址。 掌握8255A、8253芯片的结构、功能并能在硬件和软件上正确应用。 单片机本身的I/O口可以实现简单的I/O操作,但其功能十分有限。因为在单片机本身的I/O口电路中,只有数据锁存和缓冲功能,而没有状态寄存和命令寄存功能,难以满足复杂的I/O操作要求。因

2、此,往往需要外部存储器及接口芯片的扩展。5.1.1最小应用系统 单片机应用系统的扩展是以基本的最小系统为基础的。实际上,内部带有程序存储器的8051或8751单片机本身就是一个最简单的最小应用系统,许多实际应用系统就是用这种成本低和体积小的单片结构实现了高性能的控制。如果采用的内部无程序存储器芯片的8031单片机,则要用外接程序存储器的方法才能构成一个最小应用系统。5.1 系统扩展概述1.片内带程序存储器的最小应用系统片内带程序存储器的8051、8751单片机本身即可构成一个最小系统,只要将单片机接上时钟电路和复位电路即可,如图所示。单片机片内带程序存储器的最小应用系统1系统有大量的I/O线可

3、供用户使用:P0、P1、P2、P3共4个口都可以作为I/O口使用。2内部存储器的容量有限,只有128 B的RAM和4 KB的程序存储器。3应用系统的开发具有特殊性,由于应用系统的P0、P2口在开发时需要作为数据、地址总线,故这两个口上的硬件调试只能用模拟的方法进行。该系统的特点如下:2.片内无程序存储器的最小应用系统片内无程序存储器的芯片构成最小应用系统时,必须在片外扩展程序存储器。由于一般用做程序存储器的EPROM芯片不能锁存地址,故扩展时还应加一个锁存器,构成一个3片最小系统,如74LS373为地址锁存器,用于锁存低8位地址,如图所示。单片机片内无程序存储器的最小应用系统5.1.2 系统扩

4、展的方法及内容 系统的扩展一般有下列几方面的内容:外部程序存储器扩展;外部数据存储器扩展;并行输入输出口(I/O口)的扩展;串行I/O口的扩展;定时/计数器的扩展等。 MCS-51单片机系统扩展示意图 为了使单片机能方便地与各种扩展芯片连接,常将单片机的外部总线连接为一般的微型计算机三总线结构形式。 MCS-51 单片机三总线扩展结构图 1.系统总线分地址总线、数据总线、控制总线三组。(1)地址总线(Address Bus,简写AB):输出地址信号,以选择存储单元和I/O端口。地址总线的数目决定着可直接访问的存储单元的数目。地址位数123416首单元地址 00000000000000末单元地址

5、 11111111111111寻址单元个数2222324216 (2)数据总线(Data Bus,简写DB):8位双向,用于在单片机与存储器、I/O端口之间相互传递数据。 (3)控制总线(Control Bus,简写CB):是一组控制信号线,对于任意某一根是单向的,可以输入到单片机,也从单片机输出,因此也称为准双向总线。控制信号:ALE:地址锁存的选通信号,输出,高电平有效;PSEN:程序存储器的读选通信号,输出,低电平有效;RD:扩展数据存储器和I/O端口的读选通信号,输出,低电平有效;WR:扩展数据存储器和I/O端口的写选通信号,输出,低电平有效。 5.2 存储器的扩展 MCS-51系列单

6、片机片外数据存储器的空间可达64 KB,而片内的数据存储器空间只有128 B,当片内的数据存储器不够用时,则需进行数据存储器的扩展。单片机的地址译码方法123线选法译码法 (1)完全译码; (2)部分译码。片外体选法。5.2.1 单片机的地址译码方法 在译码电路中常用的译码器芯片有74LS139(双2-4译码器)和74LS138(3-8译码器)等。 (1)74LS139译码器74LS139译码器引脚图输入端输出端使能选择Y0Y1Y2Y3GBA11111000011100110110101101011111074LS139译码器真值表74LS139译码器引脚图(2)74LS138译码器74LS1

7、38译码器引脚图输入端输出端CBAY0Y1Y2Y3Y4Y5Y6Y7000011111110011011111101011011111011111011111001111011110111111011110111111011111111111074LS138译码器真值表 上述必须保证使能E3、E2、E1分别为1、0、0,若为其他组合,输出均为1。掩膜ROM简称为ROM,其编程是由半导体制造厂家完成的,即在生产过程中进行编程。一般在产品定型后使用,可以降低成本。Flash ROM又称快闪存储器,或称快可擦写ROM。Flash ROM是在EPROM、EEPROM的基础上发展起来的一种只读存储器,是一

8、种非易失性、电可擦除型存储器。PROM芯片出厂时并没有任何程序信息,应用程序可由用户一次性编程写入,但只能编程一次。与掩膜ROM相比,有了一定的灵活性。可擦除ROM芯片的内容可以由用户编程写入,并允许反复擦除重新编程写入。掩膜ROM可编程ROM可擦除ROMFlash ROM5.2.2 常用存储器1.程序存储器2.数据存储器 数据存储器RAM可分为静态RAM(static random access memory,SRAM)和动态RAM(dynamic random access memory,DRAM)两种,对RAM既可以进行写操作,又可以进行读操作。3.串行存储器 串行存储器是一种CMOS工

9、艺制成的电可擦除可编程只读存储器。 5.2.3 程序存储器的扩展1.不采用片外译码的单片程序存储器的扩展 由于8031单片机无片内程序存储器,所以必须外接程序存储器以构成最小系统。图中经74LS373输出的是EPROM27128所需的低8位地址; EPROM27128的高6位地址由8031的P2.0P2.5实现;EPROM27128的地址范围是0000H3FFFH。 这种方法常常用于系统中只有一片程序存储器扩展的情况。 8031单片机与EPROM27128连接图2.采用线选法的多片程序存储器的扩展图中采用P2.7(A15)、P2.6(A14)、P2.5(A13)三根地址线分别连接3#、2#、1

10、# EPROM2764芯片的片选信号端,采用线选法的形式选中3个芯片。当P2.7(A15)、P2.6(A14)、P2.5(A13)分别为低电平时,选中各自对应芯片,扩展电路的各存储器地址分别为: (1)1#:C000HDFFFH。 (2)2#:A000HBFFFH。 (3)3#:6000H7FFFH。常用于系统中有多片程序存储器扩展,且要求译码电路简单或尽量不用地址译码器的情况。3.采用地址译码器的多片程序存储器的扩展地址线与各片2764芯片的对应的关系P0.00.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.71#2764XXXXXX0002#2764XXXXXX100A0

11、A7A8A9A10A11A12A13A14A15 根据图表可知,这个扩展电路的两片2764存储器的地址分别为: (1)1#芯片的地址译码的范围是0000H1FFFH; (2)2#芯片的地址译码的范围是2000H3FFFH。 这种方法的特点是存储体地址连续。 5.2.4 数据存储器的扩展 对大多数控制性应用场合,内部RAM已能满足系统对数据存储器的要求。对需要大容量数据存储器的应用系统,如语音录入回放系统中采样数据容量很大,就需要在单片机外部扩展大容量的数据存储器才能满足应用要求。1.大于256B的数据存储器的扩展图中RAM6116芯片的A8A10接MCS-51单片机扩展地址线P2.0P2.2;

12、数据存储器的地址可以为0000H07FFH,也可以是0800H0FFFH等多块空间。如果系统中有多片RAM 6116芯片,则各个芯片的片选信号需接译码器的输出端。2.256B的数据存储器的扩展 市面上并不出售容量为256B的RAM芯片,当单片机扩展256B的数据存储器时,一般采用Intel公司的专用芯片8155作为外扩器件。 3.数据存储器扩展的调试方法 当系统的数据存储器硬件扩展电路设计完成后,往往需要验证是否正确。常用的验证方法为将某些数据写入存储单元,然后读出并与写入的数据进行比较。如果一致,则表明系统的数据存储器硬件扩展正确。 具体的验证程序如下: MOV DPTR,#ADRI ;AD

13、RI为某单元地址 MOV A,#DATA ;DATA为验证数据 MOVX DPTR ,A ;写验证数据数据 MOVX A,DPTR ;读验证数据 XRL A,#DATA ;验证数据比较 JNZ EROOR ;正确 EROOR: ;错误 某些控制系统,由于实时控制的需要,系统既需要扩展程序存储器,又需要同时扩展数据存储器,此时,可采用线选法或译码法,将数据存储器与程序存储器等同看待,但注意CPU对数据存储器与程序存储器的控制信号不同,所以数据存储器与程序存储器地址可以重叠。5.2.5 存储器的综合扩展存储器综合扩展连接图(1)存储器综合扩展连接图(2) MCS-51单片机有4个并行I/O接口,其

14、中,只有P1端口具有单一的输入/输出功能,P0端口和P2端口在外部扩展时需提供地址总线和数据总线复用功能,P3端口作为双功能口,也常使用第二功能。因此,在MCS- 51应用系统中经常遇到I/O接口扩展问题。 扩展I/O接口的方法主要有两种: 用数据缓冲器或数据锁存器构成简单的并行I/O接口; 另一种利用专用芯片如8255A等扩展I/O接口。 5.3 并行I/O接口的扩展 按照“输入三态,输出锁存”与总线相连的原则,选择74LS系列的TTL或MOS电路即能组成简单的I/O扩展口。 【例】采用8位三态缓冲器74LS244组成输入口,采用8D锁存器74LS273、74LS373、74LS377等组成

15、输出口。 、CPU与外设交换信息所采用的指令为:输入操作: MOV DPTR,0FEFFH MOVX A,DPTR 输出操作: MOV A,DATA MOV DPTR,0FDFFH MOVX DPTR,A5.3.1 简单并行I/O接口的扩展 5.3.2 可编程并行I/O接口8255A1.引脚说明8255A共有40个引脚,采用双列直插式封装,各引脚功能如下:PA7PA0:A口输入/输出线。PB7PB0:B口输入/输出线。PC7PC0:C口输入/输出线。D7D0:三态双向数据线,与单片机数据总线连接,用来传送数据信息。A1A0:地址线,与单片机的地址总线相连,用来选择8255A内部端口或控制寄存器

16、。CS:片选信号线,低电平有效,表示芯片被选中。RESET:复位信号线。复位后,8255A内部寄存器全部清零,PA、PB、PC口呈高阻态。RD:读选通信号线,低电平有效,控制数据的读出。WR:写选通信号线,低电平有效,控制数据的写入。Vcc:+5 V电源。2.内部结构1)并行输入/输出端口A,B,C A口是一个8位数据输出锁存器/缓冲器和一个8位数据输入锁存器。 B口是一个8位数据输出锁存器/缓冲器和一个8位数据输入缓冲器(输入不锁存)。 C口是一个8位数据输出锁存器/缓冲器和一个8位数据输入缓冲器。 通常A口、B口作为数据输入/输出端口。C口作为控制/状态信息端口,它在“方式控制字”的控制下

17、可分为两个4位端口。每个端口有一个4位锁存器,分别与A口和B口配合使用,作为控制信号输出端口或状态信息输入端口。2)工作方式控制电路 工作方式控制电路有两个,一个是A组控制电路,另一个是B组控制电路。这两组控制电路具有一个控制命令寄存器,用来接收CPU发来的控制字,以决定两组端口的工作方式,也可以根据控制字的要求将C口的对应位置1或者清零。 A组控制电路用来控制A口和C口的高4位(PC7PC4),B组控制电路用来控制B口和C口的低4位(PC3PC0)。3)读/写控制逻辑电路 读/写控制逻辑电路用来接收CPU送来的读/写命令和所选的端口地址,也向两个控制组发布命令。用于统管数据及控制字或状态字的

18、所有内外传送,控制对8255A的读/写。4)数据总线缓冲器 数据总线缓冲器是一个8位双向三态数据缓冲器,作为8255A与系统总线之间的接口部件,其对外的引脚是D7D0。当单片机执行对8255A的输入或输出指令时,该缓冲器负责传送数据或控制信息。3.工作方式选择8255A有3种基本工作方式: (1)方式0:基本输入/输出方式。基本输入/输出方式为无条件数据传送方式,A、B、C三个端口均可使用这种工作方式用做输入/输出端口,但端口不能既输入又输出。 (2)方式1:选择输入/输出方式。方式1主要用于中断和查询数据传送方式,只有A口和B口可以选择这种工作方式。(3)方式2:双向传送方式。只有A口可以使

19、用方式2,既可以输入数据,也可以输出数据,此时C口中的PC3PC7用做A口的控制和联络信号。 8255A的3种工作方式由写入控制字寄存器的方式控制字来决定。方式控制字的格式如图所示。3个端口中C口被分为两个部分,上半部分随A口称为A组,下半部分随B口称为B组。其中A口可工作于方式0、1和2,而B口只能工作在方式0和1。8255A的方式控制字格式 8255A的C口各位还具有位控制功能。8255A工作在方式1和方式2时,C口的某些位通常是控制联络信号。为了实现控制功能,可通过置位/复位控制字将C口的任意一位置1或者清零。C口按位置位/复位控制字的格式如图所示。C口按位置位/复位控制字格式4.实例编

20、程 在实际的应用系统中,必须根据外围设备的类型选择8255A的操作方式,并在初始化程序中把相应控制字写入控制口。下面根据下图举例说明8255A的编程方法。如要求8255A工作在方式0,且A口作为输入,B口、C口作为输出,则程序如下: MOVA,90H ;A口方式0输入,B口、C口输出的方式控制字A MOVDPTR,OFF7FH;控制寄存器地址DPTR MOVXDPTR,A;方式控制字控制寄存器 MOVDPTR,OFF7CH;A口地址DPTR MOVXA,DPTR;从A口读数据 MOVDPTR,OFF7DH;B口地址DPTR MOVA,DATA1;要输出的数据DATA1AMOVXDPTR,A;将

21、DATA1送B口输出MOVDPTR,OFF7EH ;C口地址DPTR MOVA,DATA2;DATA2A MOVXDPTR,A;将DATA2送C口输出 8255A的C口8位中的任一位,均可用指令来置位或复位。例如,如果想把C口的PC5置1,相应的控制字为00001011B0BH(关于8255A的C口置位/复位的控制字说明参见图518),程序如下: MOVDPTR,#OFF7FH;控制口地址DPTR MOVA,0BH;控制字A MOVXDPTR,A;控制字控制口,PC5=15.4 串行I/O接口的扩展 常用的标准51单片机内部仅含有一个可编程的全双工串行通信接口,具有UART的全部功能。该接口电

22、路不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。当以此类型单片机构成分布式多级应用系统时,器件本身的串口资源就不够用了,就必须对串口进行扩展。另外当单片机的串行口在方式0(移位寄存器方式)下,也可使用移位寄存器芯片扩展一个或多个并行I/O口。采用串口扩展芯片如SP2538、ST16C550、ST16C554、MAX3110等虽然成本高,但系统可靠性高,适用于数据量较 大、串口需求较多系统。采用分时切换方法将一个串口扩展与多个串口设备通信,采用分时复用的方法,成本低。但只适用于数据量不大场合,并且只能由这个单片机主动和多个设备通信,实时性差。用软件模拟方法扩展串口其优势也是成本

23、低、实时性好,但要占用一些CPU时间。一般软件模拟扩展串口方法,使用1个I/O端口、1个INT外部中断和定时器。5.4.1 串口的扩展该方法扩展串口有两个缺点: 由于使用了INT外部中断,故只能使用2个INT外部中断扩展2个串口; 文中发送和接收数据效率比较低,占用了CPU大量时间,不能与其他任务同时进行,所以使用范围有限。5.4.2 用串行口扩展并行I/O口 1.用74LS165扩展并行输入口 74LS165是8位并入/串出移位寄存器。当移位/置入( )由高到低跳变时,并行输入端的数据被置入寄存器; 当 =1,且时钟禁止端(15引脚)为低电平时,允许时钟输入,这时在时钟脉冲的作用下,数据将由

24、SIN到 方向移位。利用该器件可方便的扩展输入口。 【例】采用两片74LS165扩展两个8位并行输入口。 2.用74LS164扩展并行输出口 74LS164是8位串入并出移位寄存器。 当MCS-51单片机片内串行口工作在方式0发送状态时,串行数据由P3.0(RXD)送出,移位时钟由P3.1(TXD)送出。在移位时钟的作用下,串行口发送缓冲器的数据一位一位地移入74LS164中。 由于74LS164无并行输出控制端,因而在串行输入过程中,其输出的状态会不断变化,在某些应用场合,在74LS164的输出端应加接输出三态门控制,以便保证串行输入结束后再输出数据。将RAM缓冲区30H、31H的内容经串行

25、口由74LS164并行输出。解:对应子程序如下:START: MOV R7,#02H ;设置要发送的字节个数 MOV R0,#30H ;设置地址指针 MOV SCON,#20H ;设置串行口为方式0 SEND: MOV A,R0 MOV SBUF,A ;启动串行口发送数据 WAIT: JNB TI,WAIT ;一帧数据未发送完,循环等待 CLR TI INC R0 ;取下一个数 DJNZ R7,SEND RET5.5 定时/计数器的扩展 MCS-51的内部有两个16位定时/计数器,能满足绝大多数应用场合的需要。在特殊情况下,若需要更多的定时/计数器,则可采用Intel公司生产的8253可编程定

26、时/计数器接口电路。 8253可编程定时/计数器芯片内有3个独立的16位计数器。每个计数器的最高计数频率可达2.6MHz。它所有的计数方式、操作方式都通过编程控制。由于它的功能强,且能很方便地与其他型号的微机系统相配,所以近年来得到了广泛的应用。 1.8253的组成结构2.内部结构及引脚说明 8253的3个计数器完全相同,都可以按二进制计数或BCD码计数。 每个计数器都有3根I/O线。 控制字寄存器用来寄存CPU写入的控制字,每一个计数器都单独有一个控制寄存器,以控制该计数器的操作方式,且控制寄存器只能写入,不能读出。 8253与CPU的接口控制逻辑同8255A相仿。如图5-26中所示,825

27、3共有24个引脚。 8255A引脚说明(1)D7-D0:三态双向数据线,与单片机数据总线连接,用 来传送数据信息。(2)A1-A0:地址线,与单片机的地址总线相连,用来选择 8253内部计数器端口或控制寄存器。 (3)CS:片选信号,输入低电平有效。(4)RD:读信号,输入低电平有效。(5)WR:写信号,输入低电平有效。(6)CLK:时钟输入线,即为计数脉冲输入端。(7)OUT:计数器输出信号线。当计数器减为零时,OUT输出相应信号。(8)GATE:门控制信号线。用于启动或禁止计数器的操作。(9)VCC:+5V电源。 (10)GND:地线。3.8253的控制字和工作方式 8253计数器工作方式

28、是由CPU编程设定的。CPU将控制字写入控制寄存器,选择每一个计数器的操作方式。8253控制字的格式如下:SC1SC0RL1RL0M2M1M0BCDD7 D6 D5 D4 D3 D2 D1 D0SClSC0选择计数器RLlRL0操作类型00计数器0 00计数器闩锁操作 01计数器101只读/写高位字节10计数器210只读/写低位字节11非法11先读写低位后读写高位字节 8253有3个独立的控制寄存器,SCl、SC0两位为计数器选择位,可确定该控制字写入哪一个计数器所对应的控制寄存器。SCl、SC0功能选择如表所示: M2、M1、MO三位用来设定计数器的操作方式,8253的计数器共有6种操作方式

29、。 1)方式0 方式0在计数器减为0时,输出线升高,向CPU发出中断请求。方式控制字写入后,输出线OUT为低电平,计数器初值写入后,计数器开始计数,计数期间输出仍为低电平。直至CPU写入新的控制字或者写入新的计数值为止。若在计数过程中CPU对计数器进行写操作,则写入第一个字节时中止计数,写入第二个字节时开始新的计数。 8253方式0计数定时波形 2)方式1 方式1输出单拍负脉冲信号,脉冲宽度可编程设定。在设定工作方式和写入计数值后,0UT输出高电平。在触发信号GATE上升为高电平时,OUT输出低电平,并开始计数。在计数器减为0时,输出变为高电平。在输出保持低电平期间,如果写入一个新的计数值,则

30、对低电平的持续时间不受影响,只有当下一个触发脉冲到来时,才使用新的计数值。如果计数尚未结束时,又出现新的触发脉冲,则从新的触发脉冲上升沿之后开始重新计数,因此使输出负脉冲的宽度延长。 8253方式1计数定时波形 3)方式2 方式2为脉冲发生器方式,产生连续的负脉冲信号。OUT输出的负脉冲的宽度等于一个时钟周期。脉冲周期等于写入计数器的计数值的时钟周期的乘积。因此,脉冲周期可由软件编程设定。 若CPU写入新的计数值,则随后的脉冲周期受影响。当门控GATE输入低电平时,OUT输出高电平。当门控GATE输入高电平时,计数器便从最新计数值开始工作。因此,GATE可以作为使计数器同步启动的控制信号。此外,由于计数器在方式置位后的输出一直保持高电平,故只有在写入计数值之后,才开始计数并输出脉冲信号。因此也可以利用软件使计数器同步启动。 8253方式2计数定时波形 4)方式3 方式3计数时,计数器输出为方波。若计数值为偶数,则在前n/2计数期间OUT输出高电平,后n/2计数期间OUT输出低电平。如果计数值为奇数,则(n+1)/2计数期间输出高电平,(n-1)/2计数期间输出低电平。其余的特性和方式2相同。 8253方式3计数定

温馨提示

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

评论

0/150

提交评论