260 likes | 581 Views
MCS-51 单片机原理及应用教程. 清华大学出版社 刘迎春 主编. 第 8 章 MCS-51 单片机的系统扩展. 程序存储器的扩展 数据存储器的扩展 外部 I/O 的扩展. 8.1 程序存储器的扩展. 8.1.1 外部程序存储器的操作时序 MCS-51 系列单片机扩展外部程序存储器的硬件电路如图 8.1 所示。. 图 8.2 单片机访问外部程序存储器的时序图. 8.1.2 地址锁存器及 EPROM,EEPROM 芯片介绍. 1. 地址锁存器. 图 8.3 为几种常用的地址锁存器的管脚图。.
E N D
MCS-51 单片机原理及应用教程 清华大学出版社 刘迎春 主编
第8章 MCS-51单片机的系统扩展 • 程序存储器的扩展 • 数据存储器的扩展 • 外部I/O的扩展
8.1 程序存储器的扩展 8.1.1 外部程序存储器的操作时序 MCS-51系列单片机扩展外部程序存储器的硬件电路如图8.1所示。
8.1.2 地址锁存器及EPROM,EEPROM芯片介绍 1. 地址锁存器 图8.3为几种常用的地址锁存器的管脚图。
图8.4是这几种常用的锁存器与单片机的连接图。图8.4是这几种常用的锁存器与单片机的连接图。
2. EPROM与EEPROM扩展电路 紫外线擦除电可编程只读存储器EPROM,以前常用作MCS-51系列单片机的外部程序存储器,常见的型号有:2764(8K×8),27128(16K×8),27256(32K×8),27512(64K×8)等。管脚分布如图8.5所示 。
8.2 数据存储器的扩展 8.2.1 外部数据存储器的操作时序 如图8.9所示为单片机片外数据存储器的读时序 。
如图8.10所示为单片机片外数据存储器的写时序。如图8.10所示为单片机片外数据存储器的写时序。
8.2.2 常用的单片机外部数据存储器 常用的单片机外部数据存储器有6116(2K×8)、6264(8K×8)、62256(32K×8位)、62512(64K×8)及628128(128K×8)等多种,图8.11为6116和6264的管脚图。
下面的程序为向6116内写入00~FFH的数据。 ORG 0000H ;单片机上电复位地址 AJMP MAIN ;转移至以MAIN为标记的地址 ORG 0040H ;以MAIN为标志的程序段放在的起始地址 MAIN: MOV SP, #60H ;程序内容,将堆栈首地址设置为60H单元 MOV DPTR, #0000H ;给外部数据指针DPTR赋首地址0000H MOV R2, #0FFH ;设置循环次数 MOV A, #00H ;给A赋初值00H LOOP: MOVX @DPTR, A ;((DPTR))←(A) INC DPTR ;外部数据指针地址加1 INC A ;A内的数据加1 DJNZ R2, LOOP ;R2是否为零?否,转向LOOP END ;否则程序停止 以上程序段是将数据写入外部数据存储器的例程,如将数据读出单片机外,只需将: LOOP: MOVX @DPTR, A 改写为: LOOP: MOVX A, @DPTR
8.3 外部I/O的扩展 8.3.1 I/O口扩展概述 常用的单片机外围器件有:82C55、81C55、82C53、82C54、82C52、8279等芯片。 8.3.2 I/O口地址译码方法 1. 线选法 图8.13为采用线选法的实例。
线选法的优点是硬件结构简单,不需要应用译码芯片,但由于所用片选线都是位于P2口的高位线,它们的权值较大,地址空间没有充分地利用,造成单片机地址资源的浪费,并且芯片之间的地址也不连续。线选法的优点是硬件结构简单,不需要应用译码芯片,但由于所用片选线都是位于P2口的高位线,它们的权值较大,地址空间没有充分地利用,造成单片机地址资源的浪费,并且芯片之间的地址也不连续。
2. 全地址译码法 它将低位地址作为芯片的片内地址,而用译码器对高位地址线进行译码,译出的信号作为片选线。一般采用74LS138(3-8),74LS154(4-16),或CPLD等来实现译码。下面以74LS138为例来讲述其应用方法。
8.3.3 82C55可编程并行I/O口 1. 82C55芯片介绍 82C55的管脚图如图8.15所示,其内部结构如图8.16所示。
表8.4 82C55内部的单元地址 82C55 控制字格式
82C55的三种工作模式: • 工作模式0 • 工作模式1 • 工作模式2 图8.18 82C55 C口位操作控制字
2. 8051与82C55的接口举例 在8051单片机的I/O上扩展82C55芯片,其接口逻辑相当简单,如图8.25所示。
例程如下: ORG 0000H ;上电复位程序入口 AJMP MAIN ;转移到以MAIN为标号的程序入口; ORG 0040H ;主程序存放在以0040H单元开始的空间内 MAIN: MOV SP, #60H ;将堆栈调至60H单元处 MOV DPTR, #0FEFFH ;将82C55的控制字节地址赋给数据指针 MOV A, #8BH ;将数据8BH传送给A MOVX @DPTR, A ;由A将8BH这个控制字写入82C55的控制单元 MOV DPTR, #0FEFCH ;数据指针指向A端口 MOV A, #3FH ;将3FH这个数传送给A MOVX @DPTR, A ;由A将数据传送到DPTR制定的字节地址 MOV DPTR, #0FEFDH ;将B口的地址传送给数据指针 MOVX A, @DPTR ;将B口的数据传送给A MOV 30H, A ;通过A将B口内的数据传送到30H单元内 MOV DPTR, #0FEFEH ;把端口C的地址赋予数据指针 MOVX A, @DPTR ;把C内的数据传送给A MOV 31H, A ;通过A把数据传送到31H单元内 END ;整个程序结束
8.3.4 81C55可编程并行I/O口 1. 81C55芯片简介 图8.26为81C55芯片的管脚和内部结构示意图。
2. 8051与81C55的接口举例 图8.29描述了一个8051与81C55连接的电路图。
设通过8051向81C55中RAM的第30H单元送入数87H,则例程如下。设通过8051向81C55中RAM的第30H单元送入数87H,则例程如下。 ORG 0000H AJMP MAIN ORG 0040H MAIN: MOV SP, #60H MOV DPTR, #7E30H MOV A, #78H MOVX @DPTR, A END
8.4 思考练习题 (1)简述单片机系统扩展的基本原则和实现方法。 (2)什么是RAM?有什么特点? (3)线选法和全地址译码法有什么区别? (4)在一个8051应用系统中扩展64K EPROM,并扩展两片82C55和一片6264,试画出其线路原理图,并说明各自的地址范围。 (5)设采用一片8051和一片81C55设计一个24位的定时器/计数器。 (6)某厂生产的酒瓶盖原采用称重装箱的方式,现要改为按数量装箱的方式,设其每箱要求装满5000只,试应用8051单片机设计其应用系统。 (7)由于8051内部有4K的程序存储器,有人考虑采用控制EA端的方式来给程序加密,试讨论该办法的可行性。 (8)试讨论在不加其他逻辑芯片的情况下,一片8051和一片81C55可提供多少输入/输出的端口。