单片机应用技术项目教程项目五任务课件1_第1页
单片机应用技术项目教程项目五任务课件1_第2页
单片机应用技术项目教程项目五任务课件1_第3页
单片机应用技术项目教程项目五任务课件1_第4页
单片机应用技术项目教程项目五任务课件1_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、项目五 存储系统设计任务1 并行存储器的扩展设计任务内容 利用存储器芯片6264设计一个外部RAM扩展系统,并完成数据的存取。学习目标了解单片机三总线接口掌握并行存储器芯片扩展的接口电路设计了解读写外部RAM、外部ROM的信号时序巩固C51中存储类型和存储区域的对应关系掌握C51中绝对地址的访问方法。知 识 点知识点一 三总线接口及其扩展性能知识点二 EPROM程序存储器概述知识点三 单片EPROM程序存储器的扩充知识点四 并行RAM的扩展知识点五 C51的指针知识点六 C51中绝对地址的访问知识点七 多片存储器的扩展 单片机通过三总线结构,即地址总线(AB)、数据总线(DB)、控制总线(CB

2、),进行系统扩展。知识点一 三总线接口及其扩展性能1地址总线(AB) 地址总线用来传送存储单元或外部设备的地址。 AT89C51由P0口提供低8位地址线。由于P0口同时又作为数据口,地址数据是分时控制输出,所以低8位地址必须用锁存器锁存。也就是在P0口加一个锁存器,锁存器的输出就是低8位地址。锁存器的锁存控制信号由单片机ALE控制信号提供,在ALE下降沿将低8位地址锁存。 地址总线高8位由P2口直接输出。P0、P2口在作为地址总线使用时就不能再用作一般的I/O口,这在系统扩展时一定要注意。 地址总线的宽度是16位,其寻址范围是216=64 KB,地址范围是0000HFFFFH。知识点一 三总线

3、接口及其扩展性能2数据总线(DB) 数据总线用来传送数据和指令码,AT89C51由P0口提供数据线,其宽度为8位。3控制总线(CB) 控制线用来传送各种控制信息。AT89C51用于系统扩展的控制线有/WR、/RD、/PSEN、ALE、/EA 。 /WR、/RD 信号用于扩展片外数据存储器的读写控制。 /PSEN用于扩展片外程序存储器的读控制。 ALE的下降沿使P0口输出的地址锁存。 /EA用于选择片内或片外程序存储器。/EA=0时,只访问外部程序存储器; /EA=1时,系统从内部程序存储器开始执行程序。知识点一 三总线接口及其扩展性能 目前程序和数据一般保存在单片机的片内程序存储器和数据存储器

4、中,早期的单片机,如8031等,由于内部没有程序存储器或程序存储器和数据存储器容量小,而需要外部扩展。 51系列单片机的地址线是A0-A15,共16根,因此最大外部扩展范围是64KB,程序存储器一般采用EPROM进行扩展,数据存储器一般采用RAM进行扩展。知识点二 EPROM程序存储器概述EPROM 27C1627C512的芯片引脚配置图知识点二 EPROM程序存储器概述引脚功能: A0A15:地址线。 O0O7:数据线。 /CE:芯片片选端。低电平允许芯片工作,高电平时禁止工作。 /OE/Vpp:输出使能信号/编程电压。正常操作时,低电平允许输出,通常与单片机的读控制信号相连。编程方式下,此

5、引脚接编程电压。 /PGM :编程脉冲输入端。知识点二 EPROM程序存储器概述注意:(1)地址总线的连接 (2)数据总线的连接 (3)存储器片选端的连接 (4)/OE端的连接知识点三 单片EPROM程序存储器的扩充注意:(1)地址总线的连接 (2)数据总线的连接 (3)存储器片选端的连接 (4)/OE、/WE端的连接知识点四 并行RAM的扩展 片外RAM的读写由单片机的/RD(P3.7)和 /WR(P3.6)信号控制,而片外ROM的输出允许/OE端由单片机的读选通/PSEN信号控制。地址空间可以重叠。 下图为片外扩展64KB EPROM和32KB RAM系统。知识点四 并行RAM的扩展 指针

6、是C语言中一种重要的数据类型,合理地使用指针,可以有效地表示数组等复杂的数据结构,直接处理内存地址。KEIL C51语言除了支持C语言中的一般指针外,还根据51系列单片机的结构特点,提供了一种新的指针数据类型存储器指针。 KEIL C51支持一般指针和存储器指针。知识点五 C51的指针1. 一般指针定义格式: 数据类型 *存储区域 变量名; 其中,数据类型是指针指向对象的数据类型,存储区域是指针本身的存储区域,缺省状态下则按照编译器指定的默认区域存放。例1:long *ptr ; / 定义ptr为一个指向long型数据的指针,而ptr本身则依存储模式存放例2: char *xdata Xptr

7、; / 定义Xptr为一个指向char型数据的指针,而Xptr本身则存放xdata区域中知识点五 C51的指针2. 存储器指针 基于存储器的指针在说明时即可以指定指针本身的存储区域,也可以指定指针所指向变量的存储区域。存储器指针的定义格式如下: 数据类型 存储区域1 *存储区域2 变量名;其中:“存储区域1”为指针所指向变量的存储区域; “存储区域2”为指针本身的存储区域。例1: char data * str;/ 定义str指向data区中的char型变量,其本身按默认模式存放例2: int xdata * data pow; / 定义pow指向xdata区中的int型变量,本身存放在dat

8、a区中知识点五 C51的指针 KEIL C51语言允许在程序中指定变量存储的绝对地址,常用的绝对地址的定义方法有三种:采用关键字“_at_”定义变量的绝对地址;采用存储器指针指定变量的绝对地址;利用头文件absacc.h中定义的宏来访问绝对地址。知识点六 C51中绝对地址的访问1. 采用关键字_at_ 格式:数据类型 存储区域 标识符 _at_ 地址常数其中:“地址常数”为所定义变量的绝对地址,它必须位于有效的存储区域内。例1:int xdata FLAG _at_ 0 x8000; / 定义int型变量FLAG存储在片外RAM中,首地址为0 x8000使用绝对变量时的注意点 绝对变量必须是全

9、局变量,即只能在函数外部定义; 绝对变量不能被初始化; 函数及bit型变量不能用“_at_”进行绝对地址定位。知识点六 C51中绝对地址的访问2. 采用存储器指针 方法是先定义一个存储器指针变量,然后对该变量赋以指定存储区域的绝对地址值。例1:char xdata *cx_ptr; /定义指向片外RAM中char类型变量的指针char data *cd_ptr; /定义指向片内RAM中char类型变量的指针cx_ptr = 0 x2000; /指针cx_ptr指向片外2000H单元cd_ptr = 0 x35; /指针cd_ptr指向片内35H单元*cx_ptr = 0 xbb;/对片外200

10、0H单元赋值bbH*cd_ptr = 0 xaa; /对片外35H单元赋值aaH知识点六 C51中绝对地址的访问3采用头文件absacc.h中定义的宏 在Keil C51中,用“#include ”即可使用其中定义的宏来访问不同存储区域的绝对地址。包括CBYTE、DBYTE、PBYTE、XBYTE、CWORD、DWORD、PWORD、XWORD,分别对应code、data、pdata、xdata区的字节、字变量。例1:XBYTE0 x0002=0 x01;/对外部RAM的0002H单元赋值为1知识点六 C51中绝对地址的访问 不管是RAM还是ROM,多片存储器的扩展只需对片选进行处理即可。常用

11、的是线选法和地址译码法。知识点七 多片存储器的扩展1线选法 例:27C16是2K字节的存储器,所以它的地址线是A0A10,共11根,与16根地址线的AT89C51相连,还剩五根高位地址线。这五根高位地址线可以分别用来连接27C16的片选端。这样最多可接五片27C16。每片都有自己的寻址范围且地址不会重叠。如果不需要扩展,多余的高位地址线也可以空着不连。知识点七 多片存储器的扩展2地址译码法 地址译码法只需在线选法的基础上加译码器就可以了,例如利用74LS138扩展存储器芯片时,最多能接八个芯片的片选端。74LS138芯片引脚和真值表如下图所示。知识点七 多片存储器的扩展例:采用27C16扩展3片外部程序存储器,画出原理图,写出各芯片地址范围。知

温馨提示

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

最新文档

评论

0/150

提交评论