1 / 40

第七章 单片机系统扩展技术

第七章 单片机系统扩展技术. §7-1 程序存储器的扩展 §7-2 数据存储器的护展 §7-3 MCS-51 并行 I/O 口的简单扩展 §7-4 可编程接口电路的扩展. 前 言 单片机特点之一是在芯片内留有一定数量的数据存储器和程序存储器,但容量有限。 MCS-51 系列的 CPU 芯片内部只有很少字节的数据存储器;程序存储器的数量很少,有的芯片中没有,不能满足实际控制的需要,在系统控制中必须扩展外部存储器。

osborn
Download Presentation

第七章 单片机系统扩展技术

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第七章 单片机系统扩展技术 §7-1 程序存储器的扩展 §7-2 数据存储器的护展 §7-3 MCS-51并行I/O口的简单扩展 §7-4 可编程接口电路的扩展

  2. 前 言 单片机特点之一是在芯片内留有一定数量的数据存储器和程序存储器,但容量有限。MCS-51系列的CPU芯片内部只有很少字节的数据存储器;程序存储器的数量很少,有的芯片中没有,不能满足实际控制的需要,在系统控制中必须扩展外部存储器。 外部存储器的扩展包括程序存储器和数据存储器,这两种扩展的实质都是根据单片机的结构特点和寻址能力,把不超过64KB的RAM和ROM存储器芯片按照一定规律连接到单片机的外部电路上去,作为单片机的片外存储器。

  3. 单片机外接程序存储器和数据存储器可以采用两种编址方法:单片机外接程序存储器和数据存储器可以采用两种编址方法: 一种是程序存储器和数据存储器各自独立编址,两者最大编址空间均为64KB,但数据存储器的地址空间有一部分要被单片机扩展的外部设备(I/0端口)所占用; 另一种是程序存储器和数据存储器及其它扩展的I/O器件统一编址,其总地址空间为64KB。 单片机访问外部存储器时,必须同时选通芯片和选中存储单元,才能占据不同存储空间的字节信息进行访问。通常采用两种方法获得芯片选择信号:线选法和通过译码器连接方法。

  4. 1、线选法 线选法就是把8031的地址线直接或通过反相器连接到芯片的选通端( ),以8031送出的地址信号选通芯片,通常用单片机的低位地址线接至存储器芯片的地址输入端,而用余下的高位地址线接片选端。 线选法的连接方法有多种:一线二用、一线一选和综合线选方式。 在使用线选法时要注意以下的问题: 1)地址浮动: 即在扩展芯片时,当芯片的地址线没有16位时,除片选信号线对电平信号有要求外,其余的地址线应给于电平的固定,否则芯片的地址会发生变化(浮动),对存储器的访问会发生错误。

  5. 2)地址的重叠 当不同的芯片在连接时由于共用地址线,它们的地址空间会有相同的情况下,此时,就发生地址重叠,对存储器的访问同样会发生错误。 为避免以上两种情况,在外部扩展时应注意: 1)片选信号的地址线及其有效电平必须是唯一的; 2)对未用的地址线,也不能输出任意的电平信号。 2、地址译码器连接 通过地址译码器,使用较少的地址信号编码产生较多的译码信号,从而实现对多块存储器及I/O器件的选择。

  6. §7-1 程序存储器的扩展 返回 图7-1是8031扩展外部程序存储器的电路图,在通常情况下,扩展程序存储器常用EPROM(光可擦除芯片)。在本例中选用的是2764。 单片机与外部存储器芯片的连接方式采用三总线的连接。 一、数据线的连接(DB) 采用并连方式将各存储器芯片的数据线连接到8031的P0端口。 二、地址线的连接(AB) 2764 地址信号来自单片机的P0口和P2口,低8位地址由P0口分时(地址/数据)送出。为了在访问存储器的整个周期内地址信号保持不变,必须将P0口先输出的低8位地址锁存起来(由锁存器74LS373来完成),在送数据信号时可以让出P0口,并且可以和由P2口送出的高位地址一起实现对存储器内部存储器单元进行访问。

  7. P0口和P2口一起,最大能提供16位地址编码。存储器实际的地址线的数目由存储器芯片容量决定。由图2764所需地址线为13根,剩余的地址线可作为片选控制线使用中,如P2.5,一起组成2764的地址编号。图中2764的地址代号为0000H-3FFFH。(注意:本图中只有一块芯片扩展,没有进行高位地址线的处理,在实际系统中应注意与其它I/O设备及扩展芯片的地址处理)。P0口和P2口一起,最大能提供16位地址编码。存储器实际的地址线的数目由存储器芯片容量决定。由图2764所需地址线为13根,剩余的地址线可作为片选控制线使用中,如P2.5,一起组成2764的地址编号。图中2764的地址代号为0000H-3FFFH。(注意:本图中只有一块芯片扩展,没有进行高位地址线的处理,在实际系统中应注意与其它I/O设备及扩展芯片的地址处理)。 三、控制信号的连接(CB) 存储器的控制信号线可以连接到8031相应的控制信号输出线上,如图中的ALE、 等,在程序存储器扩展时,特别注意芯片的 与 的连接。

  8. 扩展的联接过程如下图所示: 图7-1程序存储器的扩展

  9. §7-2 数据存储器的护展返回 • 图7-2是8031扩展外部数据存储器的电路图,在通常情况下,扩展数据存储器常用RAM芯片。在本例中选用的是6116。 和程序存储器一样,连接方式同样采用三总线的连接。 一、数据线的连接(DB) 采用并连方式将各存储器芯片的数据线连接到8031的P0端口。 二、地址线的连接(AB) 6116 地址信号来自单片机的P0口和P2口,低8位地址由P0口分时(地址/数据)送出,此时的片线信号为P2.3,一起组成6116的地址编号。图中6116的地址代号为0000H-0FFFH。(注意:本图中只有一块芯片扩展,没有进行高位地址线的处理,在实际系统中应注意与其它I/O设备及扩展芯片的地址处理)。 三、控制信号的连接(CB) 存储器的控制信号线可以连接到8031相应的控制信号输出线上,如图中的ALE等,在数据存储器扩展时,特点注意芯片的 、 与 的连接。

  10. 具体的联接图如图7-2所示: 图7-2 数据存储器扩展图

  11. §7-3 MCS-51并行I/O口的简单扩展返回 • MCS-51系列单片机有4个8位I/O口,共32根I/O线,但并不是所有的I/O线都可以供用户使用,因为P0、P2、P3口均有第二功能,在使用时不能仅作为I/O传输口。除非且用8051/8751单片机且不作外部扩展。在实际应用系统中,常使用8031芯片,此时I/O扩展技术成为系统控制能否实现的决定因素。 对于8031的I/O口注意其本身的特性(见第二章)。 I/O扩展方法和单片机的I/O扩展性能有关。扩展的I/O口的寻址方法与扩展的数据存储的寻址方式相同,即编址时与数据存储器统一编址,即CPU视每个I/O口为外部数据存储器中的一个单元,只能用MOVX指令访问I/O口,I/O口的读/写操作分别受 信号控制。

  12. 应用系统扩展时常常需要有各种类型的简单I/O口,此时可能过TTL芯片来扩展单元的简单的I/O口,数据的输入、输出须由单片机的读、写信号控制,I/O口只能分时使用P0口。如果是输入口,则应根据输入数据的特点选择相应的芯片(要求接口电路具有三态缓冲或锁存选通功能);如作输出口,则要求接口电路具有锁存功能。应用系统扩展时常常需要有各种类型的简单I/O口,此时可能过TTL芯片来扩展单元的简单的I/O口,数据的输入、输出须由单片机的读、写信号控制,I/O口只能分时使用P0口。如果是输入口,则应根据输入数据的特点选择相应的芯片(要求接口电路具有三态缓冲或锁存选通功能);如作输出口,则要求接口电路具有锁存功能。 一、用三态口扩展8位并行输入口 当传送的数据的保持时间较长时,可用三态门扩展8们并行输入口。图7-3是用74LS244芯片通过P0口扩展的8位并行输入接口。74LS244是8位三态缓冲器,当 、 端为低平时输出与输入相同;当其为高电平时输出呈高阻态。

  13. 由图可知,当P2.7和 同时为低电平时74LS244才将由输入设备输出的数据送8031的P0口.其中P2.7决定了74LS244的地址.它的地址=0ⅹⅹⅹⅹⅹⅹⅹⅹⅹⅹⅹⅹⅹⅹⅹB,可取7FFFH,该接口的输入操作程序如下: MOV DPTR, #7FFFH ;指向74LS244端口 MOVX A, @DPTR ;输入数据

  14. 二、用锁存器扩展8位并行I/O口 1、扩展输入口 当传送的数据的保持时间较短时,不宜采用上述方法而应采用锁存器扩展8位并行输入口。图7-4是利用74LS373芯片通过P0口扩展8位并行输入接口。74LS373芯片的功能见表7-1,利用中断方式进行数据传送。过程如下:

  15. 表7-1 74LS373 2、扩展输出口 当通过P0口扩展输出口时,要求接口电路具有锁存功能。为增加抗干扰能力,可采用带允许控制端的8D锁存器。图7-5是用74LS377通过P0口扩展的8位并行输出接口,该芯片的功能见表7-2。由于74LS377的G端与P2.6相连,故地址为0BFFFH。用8031单片机的写脉冲信号作为该芯片的时钟,其输出操作程序如下: • MOV A, #DATA ;输出数据送A • MOV DPTR,#0BFFFH ;DPTR指向74LS377 • MOVX @DPTR,A ;P0口经74LS377输出数据

  16. 表7-2 74LS377功能表 • 注:*表示上升沿,ҳ 为任意状态, Q0为建立稳态输入条件前的Q的电平,Z为高阻态

  17. 其电路联接如图7-5所示:

  18. §7-4 可编程接口电路的扩展返回 • 当单片机应用系统中需要较为复杂的I/O口时不能采用§7-3所介绍的方法扩展I/O口,通常采用可编程I/O接口芯片扩展I/O口。下面介绍两种常用标准可编程I/O接口及芯片扩展I/O口的方法。 • 一、可编程并行接口8255A 1、8255A的基本性能 • 可编程外设接口电路(Programmable Peripheral Interface)简称PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。 • 8255A具有三个相互独立的输入/输出通道: • 通道A、通道B、通道C。A,B,C三通道可以联合使用,构成单线、双线或三线联络信号的并行接口,此时C口完全服务于A、B口。

  19. A口有三种工作方式:方式0、方式1、方式2。 • B口有两种工作方式:方式0、方式1。 • 2、8255A内部结构 • 8255A内部结构由以下四部分组成: • 数据端口A、B、C;A组控制和B组控制;读/写控制逻辑电路;数据总线缓冲器。结构如图7-6所示 • 端口A:包括一个 8 位的数据输出锁存/缓冲器和一个 8位的数据输入锁存器,可作为数据输入或输出端口, 并工作于三种方式中的任何一种。 • 端口B: 包括一个 8 位的数据输出锁存/缓冲器和一个 8位的数据输入缓冲器,可作为数据输入或输出端口, 但不能工作于方式2。 • 端口C: 包括一个 8 位的数据输出锁存/缓冲器和一个 8位的数据输入缓冲器, 可在方式字控制下分为两个4位的端口(C端口上和下),每个4位端口都有4位的锁存器, 用来配合端口A与端口B锁存输出控制信号和输入状态信号,不能工作于方式1或2。

  20. A组和B组控制的作用如下: • A组控制逻辑控制端口A及端口C的上半部; • B组控制逻辑控制端口B及端口C的下半部。 • 图7-6 8255结构图

  21. 2、方式选择控制字及工作方式 • 方式选择控制字及各位的意义如图7-7所示。 • 1)方式0 • 是一种基本输入或输出方式,它适用于无需握手信号的简单输入输出应用场合, 端口A、B、C都可作为输入或输出数据使用,输出有锁存而输入无锁存。 • 2)方式1 • 也称选通的输入/输出方式。在这种方式下,无论是输入还是输出都通过应答关系实现, 这时端口A或B用作数据口,端口C的一部分引脚用作握手信号线与中断请求线。 • 若端口A工作于方式1,则B可工作于方式0; • 若端口B工作于方式1,则A可工作于方式0或余下的13位可工作于方式0; • 若端口A和B同时工作于方式1,端口C余下的两位还可用于传送数据或控制信号。

  22. 3)方式2 • 也称选通的双向I/O方式,仅适用于端口A, 这时A口的PA7-PA0作为双向的数据总线,端口C有5条引脚用作A的握手信号线和中断请求线,而B口和C口余下的3位仍可工作于方式0或1。它可以认为是方式1输出和输入的组合但有以下不同: • (1)当CPU将数据写入A口时,尽管OBF变为有效,但数据并不出现在PA7-PA0上,只有外设发出ACKA 信号时,数据才进入PA7-PA0。 • (2)输出和输入引起的中断请求信号都通过同一引脚输出, CPU必须通过查询OBF和IBF状态才能确定是输入引起的中断请求还是输出引起的中断请求。 • (3) ACKA 和STBA 信号信号不能同时有效, 否则将出现数据传送“冲突”。

  23. 控制方式字及格式: • 图7-7 方式控制字及各位的意义

  24. 3、 C端口置1置0控制字: • 端口C的数位常常作为控制位来使用,所以,在设计8255A芯片时,应使端口C中的各位可以用置1置0控制字来单独设置。其具体格式如下图所示。 • 注意:C端口置1置0控制字尽管是对端口C进行操作,但此控制字必须写入控制口,而不是写入C端口。

  25. 4、MCS-51和8255A的接口方法 • 如图所示为MCS-51和8255A的一种接口逻辑。 • PA口、PB口、PC口、控制口的地址分别为:7FFCH、7FFDH、7FFEH、7FFFH。

  26. 假设图中8255A的PA口接一组开关,PB接一组指示灯,假设图中8255A的PA口接一组开关,PB接一组指示灯, • 如果,要将MCS-51的寄存器R2的内容送指示灯显示,将开关状态读入MCS-51的累加器A,则8255初始化和输入/输出程序如下: • ORG 1000H • R8255: MOV DPTR,#7FFFH; • MOV A,#98H • MOVX @DPTR,A • MOV DPTR,#7FFDH • MOV A,R2 • MOV @DPTR,A • MOV DPTR,#7FFCH • MOVX A,@DPTR • RET

  27. 二、可编程接口芯片8155 • 与8255A相比,8155具有更强的功能,可以扩展单片机的I/O口、定时器、外部数据存储器RAM。 • 1、8155芯片的构成 • 1)逻辑结构 • 2)引脚图 • 3)接口信号 • 2、8155的RAM和I/O口地址 • RAM地址----当IO/ M 加低电平: • 此时AD0-AD7上得到的地址值是指8155的某一RAM单元的地址,地址范围是: • 0000 0000--1111 1111 • 分别指向8155 RAM 的256个存储单元。 I/O口地址----当IO/ M 加高电平: • 此时AD0-AD7 (仅用到低三位AD2、AD1、AD0)上得到的地址值是指8155的某一I/O口的地址,具体端口地址分配是: • 8155的RAM和I/O口编址

  28. 8155芯片的内部结构 IO/ M 口A 256B 静态 RAM A 接外设 PA0~PA7 AD0~AD7 接单片机 接外设 CE ALE RD WR RESET B 口B PB0~PB7 口C 接外设 C 定时器 定时器输入 PC0~PC5 定时器输出

  29. PB0-PB7 PA0-PA7 PC0-PC5 AD0-AD7 C口端口线 B口端口线 A口端口线 三态地址/数据线 IO/ M 端口/存储器选择 WR TIMER IN CE RD TIMER OUT 读 ALE 定时器输入 定时器输出 地址锁存允许 写 选片 8155 8155引脚功能 PC3 PC4 PC5 IO/ M CE RD WR ALE AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 Vss Vcc PC2 PC1 PC0 PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 TIMER IN RESET TIMER OUT

  30. 地址编码

  31. 3、 8155的使用 • 1)8155内RAM的使用: • 与一般外部数据存储器的使用基本一样,唯一区别是事先要使IO/ M为低电平。 • 2)8155各端口的使用: • A、B、C各端口可工作于不同的工作方式,使用前要进行初始化(写命令字到命令口) • 4、扩展电路的连接实例 • 利用8155 进行扩展时,方式常见的有如下3种,注意不同方法的连线方式也各有特征: • 1)以高位地址直接作为IO/M信号扩展,接口电路非常简单,基本上是相同信号对接,如图7-8所示; 2)多芯片扩展,如图7-9所示; 3)综合扩展,如图7-10所示。

  32. 8031 8155 RESET RD WR ALE IO/M 口A RESET RD WR ALE P2.4 PA0~PA7 口B P0.0 P0.1 P0.2 P.03 P0.4 P0.5 P0.6 P0.7 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 PB0~PB7 口C PC0~PC5 CE • 1)直接扩展法 • 图7-8 8155扩展实例

  33. P2.2--P2.0 8031 PSEN A0~A7 A8~A10 A0~A7 A8~A10 373 G 2716 OE 6116(2) 6116(1) WE WE P0 CE OE OE ALE D7~D0 D7~D0 CE D7~D0 CE WR RD ALE 8155 PA A B C G2A G2B G1 AD0~AD7 P2.3 P2.4 P2.5 P2.6 P2.7 Y2 RD PB Y1 WE Y0 CE PC +5V P1.0 IO/ M • 2)多芯片扩展 • 图7-9 多芯片扩展

  34. P2.7 ………………… P2.0 P0.7 ………………… P0.0 端口 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (0000H) 命令口 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 (0001H) PA口 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 (0002H) PB口 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 (0003H) PC口 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 (0004H)计数器低 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 (0005H)计数器高 • 上图中的各扩展地址分别为: • 8155: 0000H、0001H、……、0005H • 8031的P2.7-P2.3=00000时,选中8155,在此前提下,当8031的P0口输出地址是XXXXX000-XXXXX101,且IO/ M=1时,选中8155的各端口,即:

  35. 当IO/ M=0时,选中8155的RAM单元,所以: • 其内部RAM地址范围是:0000H--00FFH。 • 6116(1):0800H-0FFFH • 6116(2):1000H-17FFH • 分析: • 根据74LS138,8031的P2.7-P2.3=00001时,选中6116(1),在此前提下,加上P2.2-P2.0,P0.7-P0.0低位地址,既有: • 6116(1) 的地址范围是: • 00001 000 0000 0000-0000 1 111 1111 1111 • 即:8000H-FFFFH。 • 6116(2) 同理可得:1000H-17FFH:

  36. 8031 6116 CE 8255 CS 8155 IO/M CE P2.3 P2.4 P2.0 P2.5 P2.6 P2.7 CE 8253 CS 0832 • 3)综合扩展 • 线选法: • 图7-10 综合扩展

  37. 线选法译码地址

  38. 8031 P2.0 6264 CE 8255 CS 8155 IO/M CE A B C G2A G2B G1 P2.5 P2.6 P2.7 Y0 Y1 Y2 Y3 Y4 138 CE 8253 CS 0832 +5V 译码法

  39. 译码法的各芯片地址如下表所示。

  40. 本章小结 • 1、存储器扩展时的连接方式 • 2、数据存储器、程序存储器扩展的方法 • 3、常用I/O口的扩展 • 4、可编程芯片8255、6155的结构及扩展方法 • 重点:系统功能扩展中的几种典型外围功能接口芯片的结构、功能特性、工作原理、单片机与之连接后地址的确定及相应操作程序设定。 • 难点:单片机系统扩展的连接线路及地址确定。

More Related