230 likes | 424 Views
程序存储器 ROM 的扩展. 数据存储器 RAM 的扩展. 并行 I/O 口的扩展. 第 章 单 片 机 系统扩展. Single Chip Microcomputer. 本章内容. 在单片机应用系统的设计中 , 往往出现 RAM, ROM 或者 I/O 口不够的情况,怎么办?. ROM 的扩展. RAM 的扩展. 并行 I/O 口的扩展. 问题的提出. 8051 有片内 ROM 的容量:4 K 片外最大可扩展64 K ROM。 有关的管脚: EA. 可用来扩展的存储器芯片:
E N D
程序存储器ROM的扩展 数据存储器RAM的扩展 并行I/O口的扩展 第章单片机系统扩展 Single Chip Microcomputer 本章内容
在单片机应用系统的设计中,往往出现RAM, ROM或者I/O口不够的情况,怎么办? ROM的扩展 RAM的扩展 并行I/O口的扩展 问题的提出
8051有片内ROM的容量:4K • 片外最大可扩展64K ROM。 • 有关的管脚:EA 可用来扩展的存储器芯片: EPROM:2716(2K*8),2732,2764,27256等 EEPROM:2816 (2K*8) ,2864,28128等 • 还要用到锁存器芯片:例74LS373。 6.1 程序存储器ROM的扩展 片内资源
A11 A8 A7 A0 2732 O7 O0 OE CE ``` ``` P2.3 P2.0 P0.7 8031 P0.0 ALE PSEN 12根地址线 ``` ``` 8根数据线 . . . 控制线 EPROM扩展实例----在8031单片机上扩展4KB EPROM D7 Q7 373 D0 Q0 G
ALE PSEN 读外部程序存储器时序 一个机器周期 送地址 取出指令 注意:上述时序是在取指令过程中自动产生
地址范围的确定 • 取决于CE(片选)和地址线的接法,本例中CE接地。请确定地址范围(教材P141) • 试根据电路图,确定其中EPROM的地址范围。 • 注意:实训电路中CE的连接,当同时扩展多片ROM时,可采用译码法或线选法来分别选中芯片,每个芯片分配的地址范围不同。
认识芯片 • 可用来扩展的存储器芯片:SRAM 6116,6264,62256等 也要用到锁存器芯片:例74LS373。 6.2 数据存储器RAM的扩展 片内资源 • 8031片内RAM的容量:128B • 片外最大可扩展64K RAM。 实训电路图
举一反三——RAM的扩展 • 6264RAM的地址范围可与2764ROM的相同 因为不同的指令访问——将产生不同的控制信号 ROM:MOVC指令及取指令操作—— 有效, 、 无效 RAM:MOVX——无效, / 有效 MOVX A,@DPTR; 读操作,产生 低电平信号 MOVX @DPTR , A; 写操作,产生 低电平信号 • 试确定图中的EEPROM芯片2864是作为程序存储器 还是数据存储器使用?——看控制线
ALE PSEN 访问ROM,取出MOVX指令 送地址 访问RAM读/写数据 读/写外部数据存储器时序 一个机器周期 一个机器周期 RD/WR 注意:上述红色线时序是在执行MOVX 指令情况下
扩展I/O口与外部RAM统一编址 使用同样的指令MOVX访问——控制总线RD/WR 扩展I/O口与外部RAM统一编址 使用同样的指令MOVX访问——控制总线RD/WR 扩展I/O口与外部RAM统一编址 使用同样的指令MOVX访问——控制总线RD/WR 扩展I/O口与外部RAM统一编址 使用同样的指令MOVX访问——控制总线RD/WR 扩展I/O口与外部RAM统一编址 使用同样的指令MOVX访问——控制总线RD/WR 扩展I/O口与外部RAM统一编址 使用同样的指令MOVX访问——控制总线RD/WR 扩展I/O口与外部RAM统一编址 使用同样的指令MOVX访问——控制总线RD/WR 6.3 并行I/O口的扩展 • 51单片机有4组并口P0-P3,为什么还要扩展I/O口? 常用的扩展方法有: • 简单的I/O口扩展 • 可编程I/O口芯片 • 利用串行口扩展并行口
简单I/O口扩展 • 用并行口扩展I/O口 选择TTL电路或MOS电路即能组成简单的扩展I/O口。 如:用8位三态缓冲器74LS244可扩展输入口; 用8D锁存器74LS273、74LS373、74LS377 等可组成输出口。
口地址的确定及编程应用 • 因为74LS273和74LS244都是在P2.0为0时被选通,所以二者地址都可以为FEFFH。 • 两个芯片的地址虽然相同,但可以通过读写操作来区别 • 编程应用如下: • MOV DPTR,#0FEFFH ;指向口地址 • MOVX A,@DPTR ;指向74LS244读入数据,检测按键 • MOVX @DPTR,A ;指向74LS273输出数据,驱动LED • SJMP $
可编程I/0芯片的使用 • 可编程I/O芯片是指芯片功能可由指令来确定,即需要对其编程。 • 常用的I/O口芯片有8255和8155。
8155的结构和技术性能 在8155内部具有: • (1)256字节的静态RAM • (2)三个通用的输入/输出口 • (3)一个14位的可编程定时/计数器 • (4)地址锁存器和数据总线
做扩展I/O口使用:CE=0, IO/M=1 做片外RAM使用: CE=0, IO/M=0 命令/状态寄存器:0400H PA:0401H PB:0402H PC:0403H MCS-51单片机与8155的接口与操作 片内RAM——0000H~00FFH
控制字 (只写不读) TM2 TM1 IEB IEA PC2 PC1 PB PA 00 方式1:A、B口基本I/O,C口输入 11 方式2:A、B口基本I/O,C口输出 01 方式3:A口选通I/O, B口基本I/O 10 方式4:A、B口选通I/O 00:空操作 01:停止计数 10:计满后停止 11:开始计数 计数器方式 设置8155工作方式 TM2 TM1 IEB IEA PC2 PC1 PB PA (A/B口方式):0—输入,1—输出 (A/B口中断):0—禁止中断,1—允许中断
设置8155工作方式示例 在实训电路板中,扩展了8155用于连接8个LED显示和键盘 为此需设置A、B口为基本输出方式,C口为基本输入方式。 设置方法: MOV DPTR,#CWR ;设CWR为命令寄存器的地址。 MOV A,#03H ;A、B口为基本输出方式,C口 ;为基本输入方式 MOVX @DPTR,A ;写控制字 NOTE: 在使用8155前必须设置好工作方式,否则将无法正常工作。
2732地址范围:0000H~0FFFH 共212个单元,即容量=212=4096=4KB
A10 A8 A7 A0 6116 O7 O0 RD WR CE P2.2 P2.0 P0.7 8051 P0.0 ALE RD WR P2.7 . . RAM扩展实例----在8051单片机上扩展2K RAM D7 Q7 373 D0 G Q0