第8章 STC89C52单片机存储器扩展
STC89C52内部EEPROM

STC89C52内部EEPROM单片机运行时的数据都存在于RAM(随机存储器)中,在掉电后RAM 中的数据是无法保留的,那么怎样使数据在掉电后不丢失呢?这就需要使用EEPROM 或FLASHROM 等存储器来实现。
在传统的单片机系统中,一般是在片外扩展存储器,单片机与存储器之间通过IIC 或SPI 等接口来进行数据通信。
这样不光会增加开发成本,同时在程序开发上也要花更多的心思。
在STC 单片机中内置了EEPROM(其实是采用IAP 技术读写内部FLASH 来实现EEPROM),这样就节省了片外资源,使用起来也更加方便。
下面就详细介绍STC 单片机内置EEPROM 及其使用方法。
STC 各型号单片机内置的EEPROM 的容量各有不同,见下表:(内部EEPROM 可以擦写100000 次以上)上面提到了IAP,它的意思是“在应用编程”,即在程序运行时程序存储器可由程序自身进行擦写。
正是是因为有了IAP,从而可以使单片机可以将数据写入到程序存储器中,使得数据如同烧入的程序一样,掉电不丢失。
当然写入数据的区域与程序存储区要分开来,以使程序不会遭到破坏。
要使用IAP 功能,与以下几个特殊功能寄存器相关:ISP_DA T A:ISP/IAP 操作时的数据寄存器。
ISP/IAP 从Flash 读出的数据放在此处,向Flash 写的数据也需放在此处ISP_ADDRH:ISP/IAP 操作时的地址寄存器高八位。
ISP_ADDRL:ISP/IAP 操作时的地址寄存器低八位。
ISP_CMD:ISP/IAP 操作时的命令模式寄存器,须命令触发寄存器触发方可生效。
ISP_TRIG:ISP/IAP 操作时的命令触发寄存器。
当ISPEN(ISP_CONTR.7)=1 时,对ISP_TRIG先写入0x46,再写入0xb9,ISP/IAP 命令才会生效。
单片机芯片型号起始地址内置EEPROM 容量(每扇区512 字节)STC89C51RC,STC89LE51RC 0x2000 共八个扇区STC89C52RC,STC89LE52RC 0x2000 共八个扇区STC89C54RD+,STC89LE54RD+ 0x8000 共五十八个扇区STC89C55RD+,STC89LE55RD+ 0x8000 共五十八个扇区STC89C58RD+,STC89LE58RD+ 0x8000 共五十八个扇区寄存器标识地址名称7 6 5 4 3 2 1 0 初始值ISP_DA TA 0xE2 ISP/IAP闪存数据寄存器11111111ISP_ADDRH 0xE3 ISP/IAP 闪存地址高位00000000ISP_ADDRL 0xE4 ISP/IAP 闪存地址低位00000000ISP_CMD 0xE5 ISP/IAP闪存命令寄存器MS2MS1 MS0 xxxxx000ISP_TRIG 0xE6 ISP/IAP 闪存命令触发xxxxxxxxISP_CONTR 0xE7 ISP/IAP 控制寄存器ISPEN SWBS SWRST WT2WT1 WT0 00xx000B7 B6 B5 B4 B3 B2 B1 B0 命令/操作模式选择保留命令选择-----0 0 0 待机模式,无ISP/IAP 操作-----0 0 1 对用户的应用程序Flash 区及数据Flash 区字节读-----0 1 0 对用户的应用程序Flash 区及数据Flash 区字节编程-----0 1 1 对用户的应用程序Flash 区及数据Flash 区扇区擦除ISP_CONTR:ISP/IAP 控制寄存器。
STC89C52单片机用户手册

STC89C52单片机用户手册一、概述STC89C52 单片机是一款高性能、低功耗的 8 位微控制器,具有丰富的片内资源和强大的功能,广泛应用于各种电子设备和控制系统中。
二、主要特点1、增强型 8051 内核,指令代码完全兼容传统 8051 单片机。
2、工作电压范围宽,可在 38V 55V 之间正常工作。
3、片内集成 8K 字节的 Flash 程序存储器,可反复擦写 1000 次以上。
4、 512 字节的片内数据存储器(RAM)。
5、拥有 32 个可编程的 I/O 口,方便连接外部设备。
6、 3 个 16 位定时器/计数器,可用于定时、计数和脉冲宽度测量等功能。
7、 8 个中断源,包括 2 个外部中断、3 个定时器中断和 2 个串行口中断,具有两级中断优先级。
8、全双工串行通信接口(UART),可方便地与其他设备进行通信。
三、引脚功能1、 VCC:电源正极,接+5V 电源。
2、 GND:电源地。
3、 P0 口:8 位漏极开路双向 I/O 口,作为地址/数据总线分时复用口。
4、 P1 口:8 位准双向 I/O 口,具有内部上拉电阻。
5、 P2 口:8 位准双向 I/O 口,作为高 8 位地址总线。
6、 P3 口:8 位准双向 I/O 口,具有第二功能。
例如,P30 为串行输入口(RXD),P31 为串行输出口(TXD)等。
四、存储结构1、程序存储器STC89C52 单片机的程序存储器空间为 8K 字节,地址范围为0000H 1FFFH。
用于存放用户编写的程序代码。
2、数据存储器数据存储器分为内部数据存储器和外部数据存储器。
内部数据存储器包括低 128 字节的 RAM(地址范围为 00H 7FH)和高 128 字节的特殊功能寄存器(SFR,地址范围为 80H FFH)。
外部数据存储器最大可扩展至 64K 字节。
五、时钟与复位1、时钟电路STC89C52 单片机可以使用内部时钟和外部时钟。
内部时钟通过在XTAL1 和 XTAL2 引脚之间连接晶振和电容来产生时钟信号。
第8章89C51单片机扩展存储器的设计

程序读出
高阻
2、存储器地址空间分配
一个存储器单元对应一个地址 在外扩的多片存储器芯片中,AT89C51要完成这种功能,必 须进行两种选择:
一是必须选中该存储器芯片(或I/O接口芯片),这称为“片 选”,只有被“选中”的存储器芯片才能被AT89C51读出或
写入数据。为了片选的需要,每个存储器芯片都有片选信号
P2.7 P2.6 P2.5 P2.4 0 1 1 1 2732(1) 1 0 1 1 2732(2) 1 1 0 1 6116(2) 1 1 1 0 6116(1)
两片程序存储器的地址范围: 2732(1)的地址范围:7000H~7FFFH; 2732(2)的地址范围: B000H~BFFFH; 6116(1)的地址范围:E800H~EFFFH; 6116(2)的地址范围:D800H~DFFFH。
注意: (1)MCS—51 MOVX MOVX MOVX MOVX 对外部数据存贮器的操作指令 只能寻址较小的外部数据存贮器空间 能对64KB的外部数据存贮器空间寻址 A,@Ri @Ri, A A,@DPTR @DPTR, A
(2)由于89C51采用不同的控制信号和指令 ,尽管ROM与 RAM的地址是重叠的,也不会发生混乱。
P2.7 P2.6 P2.5 1 1 0 1 0 1 0 1 1 选中芯片 地址范围 存储容量 IC1 C000H-DFFFH 8K IC2 A000H-BFFFH 8K IC3 6000H-7FFFH 8K
读片外RAM操作时序
写片外RAM操作时序
译码法
各片62128地址分配 P2.6 P2.7 译码输出 选中芯片 地址范围 存储容量 0 0 YO* IC1 0000H-3FFFH 16K 0 1 Y1* IC2 4000H-7FFFH 16K 1 0 Y2* IC3 8000H-BFFFH 16K 1 1 Y3* IC4 C000H-FFFFH 16K
单片机内部RAM的扩展

STC单片机内部扩展RAM的应用作者:郭天祥来源:原创更新时间:2008-11-27 21:19:35 浏览次数:5803RAM是用来在程序运行中存放随机变量的数据空间,51单片机默认的内部RAM只有128字节,52单片机增加至256字节,STC89C52增加到512字节,STC89C54、55、58、516等增加到1280字节,对于编程者来说,一个芯片的RAM越多,写起程序来就越容易得心应手,不会总考虑RAM不够用而担心这担心那,连过多的变量都不敢定义。
在前面我们写程序时曾讲到过,如果定义一个变量后,不对这个变量进行初始化,这个变量默认的初值就是0,其实这个结论是需要一定的条件的,在用KEIL编写程序时,总程序中所有变量占用的字节之和小于128字节,并且存储器模式为small模式的前提下,对定义的变量不进行初始化时,编译器会默认将变量值设定为0。
一旦程序中的总变量超过128字节,必须对所有变量进行初始化,否则,没有被初始化的变量默认值将是不确定的。
当变量总和超过128字节时,必须还要在编译器中重新设定存储器的存储模式,存储器模式一共有3种,分别为small、compact和large模式,在KEIL编译器中有选项可进行选择,选项表如图4.4.1所示。
它决定了没有明确指定存储类型的变量、函数参数等数据的默认存储区域。
如果在某些函数中需要使用非默认的存储模式,也可以使用关健字直接说明。
下面对这三种模式分别做介绍。
1. small模式small模式中,所有缺省变量参数均装入单片机内部128字节RAM中,当定义类似如:uchar a; float b;等变量时,这些变量都装入内部128字节RAM中。
使用该模式的优点是访问速度快,缺点是空间有限,而且是对堆栈的空间分配比较少,难以把握,碰到需要递归调用的时候需要小心。
所以这种模式只适用于小程序。
2. compact模式compact模式中,所有缺省变量均位于单片机内部256字节RAM中,和在small模式中使用关健字pdata 来定义变量的效果相同,如:uchar pdata a[100];在该种模式下,程序总变量不得超过256字节,对于只有128字节的单片机,使用此模式定义变量超过128字节时,程序将出错。
stc89c52中EEPROM使用方法

单片机STC89C52RC内部EEPRO M单片机运行时的数据都存在于RAM(随机存储器)中,在掉电后RAM中的数据是无法保留的,那么怎样使数据在掉电后不丢失呢?这就需要使用E EPROM或FLASHR OM 等存储器来实现。
在传统的单片机系统中,一般是在片外扩展存储器,单片机与存储器之间通过II C 或SPI 等接口来进行数据通信。
这样不光会增加开发成本,同时在程序开发上也要花更多的心思。
在STC 单片机中内置了EEPROM(其实是采用ISP/IAP 技术读写内部F LASH 来实现EEPR OM),这样就节省了片外资源,使用起来也更加方便。
下面就详细介绍ST C 单片机内置EE PROM 及其使用方法STC 各型号单片机内置的EEPR OM 的容量最小有2K,最大有16K,基本上很好地满足项目的需要,更方便之处就是节省了周边的E EPROM器件,达到节省成本的目的,而且内部EEP ROM 的速度比外部的EEPROM的速度快很多。
STC 各型号单片机内置的EEPR OM 是以512 字节为一个扇区,EEPROM的起始地址=FALSH 容量值+1,那么STC89C52RC的起始地址为0x2000,第一扇区的起始地址和结束地址0x2000~0x21FF,第二扇区的起始地址和结束地址0x2200~0x23FF,其他扇区如此类推。
深入重点:�传统的EEPR OM 是电可擦可编程只读存储一种掉电后数据不丢失的存储芯片。
�STC89C52RC 的EEPROM是通过ISP/IAP 技术读写内部F LASH 来实现EEPR OM。
�STC89C52RC 的EEPROM起始地址为0x2000,以512 字节为一个扇区,EERPOM的大小为2K字节。
STC89C52RC 与EEPORM实现的寄存器有6 个,分别是ISP_DATA、ISP_ADD RH、ISP_ADD RLISP_TRI G、ISP_CMD、ISP_CON TR。
第8章 STC89C52单片机存储器扩展

•
本书讲解时把单片机系统的地址线笼统地分为低位地
址线和高位地址线,片选都是使用高位地址线。实际上,
16条地址线中的高、低位地址线的数目并不是固定的,只
是习惯上把用于 “单元选择”的地址线,都称为低位地
址线,其余的为高位地址线。
第41课 地球在宇宙中的位置
常用的存储器地址空间分配方法有两种:线性选择法 (简称线选法)和地址译码法(简称译码法)。
➢ STC89C52单片机属于总线型结构,片内各功能部件都是按 总线关系设计并集成为整体的。
➢三总线:地址总线(AB) 、数据总线(DB)、控制总线(CB). 第4➢1单课 片地机球系在统宇宙扩中展的主位要置包括存储器扩展和I/O接口部件扩展。
第8章 单片机接口技术
STC89C52单片机与外部设备连接有两种方式:
使用的控制信号如下: ➢PSEN 作为外扩程序存储器的 读选通控制信号。
EA
➢WR 和RD 为外扩数据存储器 和 I/O的读、写选通控制信号。 ➢ALE作为P0口发出的低8位地址 锁存EA控制信号。 ➢ 为片内外程序存储器的选 STC89C52为减少引脚数量,采用了复用择P0口方案,即P0口兼作数据线 和低8位地址线,为了将地址和数据信控息区制分信开号来。,需要在P0口外部增
总线方式
总线方式——采用片外RAM指 令访问外设
I/O口方式(非总线方
例如:MOVX A, @DPTR (片外RAM 0~0FFFFH)
I/O口方式——采用片内RAM指 令访问外设
例如:MOV A,P0
STC89C52单片机没有专用总线引脚,而是采用了I/O引脚兼作
第4总1课线引地脚球在的宇方宙案中。的位置
P2口输出高8位地址信号+ 373输出低8位地址信号 →同时产生பைடு நூலகம்6位地址信号 +8位数据信号
单片机最小系统拓展板(89c52单片机)

方法二是执行“Edit”(编辑)菜单下的“Delete”命令,然后将光标移到待删除的元件上,单击鼠标左键即可迅速删除光标下的元件,然后单击鼠标右键退出删除状态。
如图2.12所示:
图2.12元件的删除
点击ctrl+delete,就可以将元件删除。
工具栏中的 将所需要的字母标在图中,先点击 移至图中,后按键盘上的Tab键,会出现图2.15所示对话框。
通过工具栏中的 将所需要的字母标在图中,先点击 移至图中,然后双击鼠标左键,也会弹出如图2.16所示的对话框。其中“Global”键可以对设计的图中所有标注进行设置。
图2.16“Net Label”对话框
图2.14原理图例
(1)单击导线工具 。
(2)将鼠标指向欲连接端点,使其出现小圆点,按住鼠标左键拖拽出一根导线并指向欲连接另一个端点,使其出现小圆点,放开鼠标键,则完成连线。
(3)通过这种方法,将需要的元件一个一个用线连接起来,图中需要有节点的地方只需要用鼠标在需要节点的地方双击就可以形成节点了,节点的符号是 最后可以形成图2.14。
(3)在元件列表内找出并单击放置所需的元件。
2.在放置元件操作过程中,一般优先安排原理图中核心元件的位置。在如图所示的电路中,核心元件是NPN三极管。因此,通过滚动元件列表窗内的上下滚动按钮,在元件列表窗口内找到并单击“2N2222A”元件。
3.按同样方法,将电容、电阻等元件的电气图形符号粘贴、固定在编辑区内。如图2.11所示:
单片机按键复位电路
功能简介:为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般微机电路正常工作需要供电电源为5V±5%,即4.75~5.25V。由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。
第8章___89C51单片机扩展存储器的设计

25
第8章 89C51单片机扩展存储器的设计
例8-3 采用译码器法扩展2片8KB EPROM,2片8KB RAM。EPROM选
用2764,RAM选用6264。共扩展4片芯片。扩展接口电路见图8-21。
26
第8章 89C51单片机扩展存储器的设计
27
第8章 89C51单片机扩展存储器的设计
9
第8章 89C51单片机扩展存储器的设计
G1 G2A* G2B* C B A Y7 Y6 Y5Y4 Y3 Y2Y1Y0
由表当译码器的输入为某一固定编码时,其输出仅有一个固定的引 脚输出为低电平,其余的为高电平。而输出为低电平的引脚就作为 某一存储器芯片的片选端的控制信号。
10
第8章 89C51单片机扩展存储器的设计
4
第8章 89C51单片机扩展存储器的设计
3.控制信号线 2. 以P2口的口线作为高位地 1.以P0口作为低8位地址/数
(1)PSEN*信号作为外扩程序 址线 据总线
存储器的读选通控制信号。 P2口的全部8位口线用作高位 AT89C51由于受引脚数目的限 (2)RD*和WR*信号作为外扩 地址线,再加上P0口经地址锁 制,数据线和低8位地址线复
20
第8章 89C51单片机扩展存储器的设计
8.4.3
AT89C51与RAM的接口电路设计
图8-18为线选法扩展外部数据存储器的电路。
21
第8章 89C51单片机扩展存储器的设计
地址线为A0~A12,故8031剩余地址线为三根。用线选法可扩展3 片6264。3片6264对应的存储器空间如表8-7。
例 要扩8片8KB的RAM 6264,如何通过74LS138把64KB空间分配给
STC89C52单片机存储器扩展

8.1 系统扩展结构 8.2 地址锁存与地址空间分配 8.3 程序存储器的扩展 8.4 数据存储器的扩展 8.5 EPROM和RAM的综合扩展
8.1 系统扩展结构
为减少连接线,简化组成结构,可把具有共性的连线归并成 一组公共连线,即总线——传送信息的公共通道(BUS)。
STC89C52为减少引脚数量,采用了复用P0口方案,即P0口兼作数据 线和低8位地址线,为了将地址和数据信息区分开来,需要在P0口外 部增加地址锁存器,即将地址信息的低8位锁存后输出。
STC89C52RC的4个并行I/O口,由于系 统扩展的需要,能够真正作为数字I/O使用, 就剩下P1和P3的部分口线了。
STC89C52单片机发出的地址码用于选择某个存储器 单元,在这个过程中单片机必须进行两种选择:一是选 中该存储器芯片,称为“片选”,未被选中的芯片不能 被访问。二是在“片选”的基础上再根据单片机发出的 地址码来对“选中” 芯片的某一单元进行访问,即“单 元选择”。为实现片选,存储器芯片都有片选引脚。同 时也都有多条地址线引脚,以便进行单元选择。注意, “片选”和“单元选择”都是单片机通过地址线一次发 出的地址信号来完成选择的。
I/O口方式(非总线方式 )
例如:MOVX A, @DPTR
I/O口方式——采用片内RAM
(片外RAM 0~0FFFFH) 指令访问外设
例如:MOV A,P0
STC89C52单片机没有专用总线引脚,而是采用了I/O引脚兼
作总线引脚的方案。
STC89C52单片机的存储器扩展即包括程序存储 器扩展又包括数据存储器扩展。AT89S51单片 机采用程序存储器空间和数据存储器空间截然 分开的哈佛结构。扩展后,系统形成了两个并 行的外部存储器空间。
第8章 89C51片机扩展存储器的设计第8章 89C51单片机扩展存储器的设计

8.3 程序存储器EPROM的扩展
采用只读存储器,非易失性。 1 掩膜ROM 在制造过程中编程。成本较高,因此只适合于大批量生产。 2 可编程ROM(PROM) 用独立的编程器写入。但PROM只能写入一次,且不能再修改。 3 EPROM 电信号编程,紫外线擦除的只读存储器芯片。 (4)E2PROM( EEPROM) 电信号编程,电信号擦除的ROM芯片。读写操作与RAM几乎没什
所以,在扩展程序存储器设计时,应尽量采用大容量芯片。
1.常用的EPROM芯片 27系列EPROM芯片的引脚如图8-11所示,参数见表8-4(P143
略)。
图8-11中的引脚功能如下: A0~A15:地址线引脚。数目决定存储容量来定,用来进行单
元选择。 D7~D0:数据线引脚 CE*:片选输入端 OE* :输出允许控制端 PGM*:编程时,加编程脉冲的输入端
如果用74LS138把64K空间全部划分为每块4KB,如何划分呢? 由于4KB空间需要12条地址线进行“单元选择”,而译码 器的输入有3条地址线(P2.6~P2.4),P2.7没有参加译码 ,P2.7发出的0或1决定了选择64KB存储器空间的前32KB还 是后32KB,由于P2.7没有参加译码,就不是全译码方式这 样前后两个32KB空间就重叠了。
图8-3
表8-1 74LS138译码器真值表
输入
G1 G2A* G2B* Y0*
CBA
输出
Y7* Y6* Y5* Y4* Y3* Y2* Y1*
(2)74LS139 74LS139是双2-4译码器。两个译码器完全独立,分别有各自
的数据输入端、译码状态输出端以及数据输入允许端。其 引脚如图8-4所示,真值表如表8-2所示(见P138)。
1.线选法 直接利用系统的高位地址线作为存储器芯片(或I/O接口
第9章 STC89C52单片机IO扩展与设计

7
5. I/O接口电路种类 我们根据总线结构分并行接口和串行接口。 单片机的并行总线扩展,就是利用三总线AB(地址总 线)、DB(数据总线)、CB(控制总线)进行的系
统扩展,该扩展方法不再是单片机系统唯一的扩展结 构,除并行总线扩展技术之外,近年又出现串行总线 扩展技术。例如:我们介绍Philips公司的I2C串行总 线接口、DALLAS 公司的单总线(1-Wire)接口和 Motorola公司的SPI串行外设的串行接口。 返回本节
25
Hale Waihona Puke 2. 确定82C55端口地址 根据图9-6所示,82C55只有3条线与STC89C52地址 线相接,片选端、端口地址选择端A1、A0,分别接于 地址总线A7A1A0,其它地址线全悬空。显然只要保证 A7为低电平时,即可选中82C55;若A1A0再为“00”, 则选中82C55的PA口。同理A1A0为“01”、“10”、
1
9.1 I/O接口概述 9.2 TTL电路扩展并行接口 9.3 可编程接口芯片82C55扩展并行接口 9.4 串行扩展总线接口 9.4.1单总线串行扩展 9.4.2 SPI总线串行扩展 9.4.3 IIC总线串行扩展 9.5 小 结
2
9.1 I/O接口概述
I/O接口定义:单片机与外设传送数据桥梁。 分类:串行接口和并行接口 串行接口:采用逐位串行移位方式传输数据。 并行接口:采取多位数据同时传输数据。 设置接口的原因:大多数情况下,外设速度很 慢,无法跟上微秒级的单片机速度,为了保证 数据传输的安全,可靠,必须设计合适的单片 机与外设的I/O接口电路。
由B数据到A总线,该引脚为低电平,则P1.0=0
第9章STC89C52单片机IO扩展与设计

1. I/O接口功能
(1)数据传输速度匹配 (2)输出数据锁存功能 (3)输入数据三态缓冲功能 (4)信号和电平转换 (5)设备选择功能
2. I/O接口与端口的区别 I/O接口:是CPU与外界的链接电路,是CPU 与外界进行数据交换的通道,CPU发出命令和 输出运算结果以及外设输入数据或状态信息都 是通过I/O接口电路。 I/O端口:是CPU与外设直接通信的地址,通 常是I/O接口电路中能够被CPU直接访问的寄 存器地址称端口。 CPU通过这些端口发送命令、读取状态或传输 数据。 一个接口电路可以有一个或多个端口。例如: 可编程并行接口芯片8255A包含一个命令/状态 端口和3个数据端口,有些端口只读不写,有 些端口只写不读。
7
5. I/O接口电路种类 我们根据总线结构分并行接口和串行接口。)、DB(数据总线)、CB(控制总线)进行的系
统扩展,该扩展方法不再是单片机系统唯一的扩展结 构,除并行总线扩展技术之外,近年又出现串行总线 扩展技术。例如:我们介绍Philips公司的I2C串行总 线接口、DALLAS 公司的单总线(1-Wire)接口和 Motorola公司的SPI串行外设的串行接口。 返回本节
问端口时如同访问片外数据存储器单元那样进行读写操作。
STC89C52单片机对I/O端口采用的是统一编址。
6
6
4. 单片机与外设间的数据传输方式 单片机与外设间的数据传输方式有中断、同步、异步三种。 (1)中断传输方式 是利用自身的中断资源实现数据传送。当外设数据准备就绪时,向单片 机发出数据传输的中断请求,触发单片机中断。单片机中断响应后,进入 中断服务程序,实现单片机与外设间数据传输。采用中断方式可以大大提 高单片机工作效率,实现实时控制。 (2) 同步传输方式
第8章 89C51单片机的系统扩展

任意
H L H
高阻
DIN DOUT
正脉冲
L L
高阻
注:L:TTL低电平;H:TTL高电平;DOUT:数据输出; DIN:数据输入。
2、2732EPROM存储器 2732是4K×8紫外线擦除电可编程只读存储 器。单一+5V供电,最大工作电流为100mA, 维持电流为35mA,读出时间为250ns。引脚如 图8-2。
CE
OE WE RDY/BUSY N.C.
写入使能
器件忙闲状态指示 空脚
图8-6 2817A引脚图
2817A的3种工作方式见表8-6。
表8-6 2817A工作方式选择(VCC = +5V)
方 引
式 读 维持 字节写入 字节擦除 脚
CE (20) L OE (22) L WE (27) H 任意 L
输入/输出
(11~13,15~19) DOUT
×
H
高阻
DIN DOUT
L L
L
注:DATA查询为数据查询方式。
8.1.3 典型程序存储器的扩展方法
1、程序存储器扩展方法
i=N-8
P2.0~P2.i
N~7 A8~AN
ALE 89C51 +5V EA 8 P0 PSEN
锁 存 器
8 A0~A7 EPROM 8 CE D0~D7 OE
VCC
输出
(28) (11~13,15~19) 5V 5V 6V 6V 6V DOUT
任意
H L 任意
任意
L H 任意
高阻
DIN DOUT
L
L H
编程检验 编程禁止
高阻
单片机存储器扩展

引言概述:单片机存储器扩展是指通过扩展外部存储器的容量和功能,提升单片机的数据存储能力和处理能力。
在嵌入式系统中,存储器扩展对于应用程序的开发和数据处理至关重要。
本文将对单片机存储器扩展进行详细的介绍和分析。
正文内容:一、存储器扩展的背景1.单片机存储器的局限性2.存储器扩展的必要性3.存储器扩展的优势和应用领域二、存储器扩展的原理1.外部存储器的介绍2.存储器扩展的工作原理3.存储器扩展的硬件接口和协议三、存储器扩展的方案选择1.存储器类型的选择(闪存、SD卡、EEPROM等)2.存储器容量的选择3.存储器速度和功耗的考虑四、存储器扩展的设计与实现1.存储器扩展的硬件设计a.存储器接口电路设计b.总线控制电路设计c.存储器地质和数据线的设计2.存储器扩展的软件设计a.存储器访问的驱动程序设计b.存储器管理的数据结构设计c.存储器扩展的应用程序开发五、存储器扩展的应用案例1.嵌入式系统中的存储器扩展a.扩展存储器实现数据存储和处理的案例b.存储器扩展用于图像处理的案例c.存储器扩展用于音频处理的案例2.其他领域中的存储器扩展应用a.存储器扩展在智能家居中的应用b.存储器扩展在工业控制中的应用c.存储器扩展在医疗设备中的应用总结:单片机存储器扩展是提升嵌入式系统存储容量和处理能力的重要方案。
通过选择合适的存储器类型、容量和速度,设计合理的硬件和软件方案,实现存储器扩展的目标。
应用案例表明,存储器扩展在多个领域都有广泛应用的潜力。
通过对存储器扩展的研究和开发,将为未来的嵌入式系统提供更强大的数据存储和处理能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Tankertanker Design
第8章 单片连接有两种方式:
Tankertanker Design
8.3 程序存储器的扩展 外部程序存储器的种类单一,常采用只读存储器。只 读存储器简称ROM(Read Only Memory)。ROM中的信息一 旦写入,就不能随意更改,特别是不能在程序运行过程中 写入新的内容。ROM在电源关断后,仍能保存程序(我们 称此特性为非易失性的),在系统上电后,CPU可取出这 些指令重新执行。 向ROM中写入信息称为ROM编程。根据编程方式不同 ,分为以下几种。
Tankertanker Design
•
本书讲解时把单片机系统的地址线笼统地分为低位地 址线和高位地址线,片选都是使用高位地址线。实际上, 16条地址线中的高、低位地址线的数目并不是固定的,只 是习惯上把用于 “单元选择”的地址线,都称为低位地 址线,其余的为高位地址线。
Tankertanker Design
Tankertanker Design
•
由于超大规模集成电路制造工艺的发展,芯片集成 度愈来愈高,扩展程序存储器时使用的ROM芯片数量越来 越少,因此芯片的选择多采用线选法,而地址译码法用的 渐少。并且目前许多单片机生产厂家生产的8051内核的单 片机,在芯片内部集成了数量不等的Flash ROM,如 STC89C51RC/RD+系列单片机内部集成了8KB~64KB的Flash ROM,能满足绝大多数用户的需要,性价比高。
Tankertanker Design
STC89C52单片机P0口与74LS373的连接
Tankertanker Design
2.锁存器74LS573 是一种带有三态门的 8D锁存器,功能及内部结 构与74LS373完全一样,只 是其引脚排列与74LS373不 同。与74LS373相比, 74LS573的输入D端和输出Q 端依次排列在芯片两侧, 为绘制印制电路板提供方 便。
STC89C52单片机的存储器扩展即包括程序存储 器扩展又包括数据存储器扩展。AT89S51单片 机采用程序存储器空间和数据存储器空间截然 分开的哈佛结构。扩展后,系统形成了两个并 行的外部存储器空间。
Tankertanker Design
数据总线——P0口 地址总线——P0+P2 控制总线——P3口+控制引脚
跳变时,数据锁存到锁存器中。
74LS373的引脚 373功能表
• OE :数据输出允许信号,低电平 有效。当该信号为低电平时,三 态门打开,锁存器中数据输出到 数据输出线。当该信号为高电平 时,输出线为高阻态。
Tankertanker Design
373的工作过程: 1、P0口先将低8位地址信号锁 存在373中; 2、373的输出端与输入端(P0 口)隔离; 3、P0口输出8位数据信号+ P2口输出高8位地址信号+ 373输出低8位地址信号 →同时产生16位地址信号 +8位数据信号
常用的存储器地址空间分配方法有两种:线性选择法
(简称线选法)和地址译码法(简称译码法)。 1.线选法----一般只适用于外扩少量的片外存储器和 I/O接口芯片。 线选法是指直接利用单片机系统的某一高位地址线 作为存储器芯片(或I/O接口芯片)的“片选”控制信 号。为此,只需要把用到的高位地址线与存储器芯片 的“片选”端直接连接即可。 线选法的优点是电路简单,不需要另外增加地址译 码器硬件电路,体积小,成本低。缺点是可寻址的芯 片数目受到限制,芯片之间地址不连续,地址空间没 有充分利用。
总线方式
总线方式——采用片外RAM 指令访问外设
例如:MOVX A, @DPTR (片外RAM 0~0FFFFH)
I/O口方式(非总线方式 )
I/O口方式——采用片内RAM 指令访问外设
例如:MOV A,P0
STC89C52单片机没有专用总线引脚,而是采用了I/O引脚兼 作总线引脚的方案。
Tankertanker Design
Tankertanker Design
STC89C52RC的4个并行I/O口,由于系 统扩展的需要,能够真正作为数字I/O使用 ,就剩下P1和P3的部分口线了。
Tankertanker Design
8.2 地址锁存与地址空间分配 8.2.1 地址锁存 目前,常用的地址锁存器芯片有74LS373、 74HC373,74LS573等。在每个机器周期,ALE两次有效, 可以利用地址锁存器在ALE的下降沿将P0口输出的地址信 息锁存,当ALE转为低电平时,P0输出8位数据信息。 1.锁存器74LS373----带有三态输出门的8D触发器
•
在片内集成的Flash ROM满足要求的情况下 ,用户没有必要再扩展外部程序存储器。
Tankertanker Design
8.3.1 外扩程序存储器的操作时序 STC89C52单片机访问片外扩展的程序存储器时,所用 的控制信号有以下3种。 1.ALE :用于低8位地址锁存控制。 2.PSEN :片外程序存储器“读选通”控制信号。它接 外扩EPROM的引脚。 3. EA :片内、片外程序存储器访问的控制信号。当 EA =1时,在单片机发出的地址小于片内程序存储器最大地址 时,访问片内程序存储器;当 EA=0时,只访问片外程序 存储器。
Tankertanker Design
第八章 STC89C52单片机存储器的扩展
8.1 系统扩展结构 8.2 地址锁存与地址空间分配 8.3 程序存储器的扩展 8.4 数据存储器的扩展 8.5 EPROM和RAM的综合扩展
Tankertanker Design
8.1 系统扩展结构
为减少连接线,简化组成结构,可把具有共性的连线归并成 一组公共连线,即总线——传送信息的公共通道(BUS)。
Tankertanker Design
当一个选通端为G1为高电平,且 另外两个选通端 G2A和 G2B 为低电平时, 可将输入端C、B、A的二进制编码在一 个对应的引脚输出端以低电平译出,其 余引脚输出均为高电平。此时,可将输 出为低电平的引脚作为某一存储器芯片 的片选信号。
138真值表
Tankertanker Design
Tankertanker Design
导通 锁存 隔离
结构:内部由8路D触发器和8个三态缓冲器组成。 原理:/OE端为低电平时,D端信号在 G端正脉冲作用下实 现“接通-锁存-隔离”功能。
引脚说明:
Tankertanker Design
• D7~D0:8位数据输入线, • Q7~Q0:8位数据输出线。 • G:数据输入锁存选通信号。当 加到该引脚的信号为高电平时, 外部数据选通到内部锁存器,负
(2)74LS139 双2线-4线译码器。这两个译码器完全独立,分别有各自的 数据输入端、译码状态输出端以及数据输入允许。
Tankertanker Design
例:若需外扩8片8KB的RAM 6264,如何通过74LS138把64KB 全地址译码, 空间分配给各个芯片? 地址有重叠吗?
P2.7、P2.6、P2.5(高3位地址线)分别接74LS138的C、B、A端,由 于对高3位地址译码,这样译码器有8个输出分别接到8片6264的各 “片选” 端,实现8选1的片选。 低13位地址(P2.4~P2.0,P0.7~P0.0)完成对选中的6264芯片中的 各个存储单元的“单元选择”。
Tankertanker Design
8.2.2 地址空间分配 实际系统设计中,既需要扩展程序存储器,又需要 扩展数据存储器,如何把片外的两个64KB地址空间分配 给各个程序存储器、数据存储器芯片,使一个存储单元 只对应一个地址,避免单片机发出一个地址时,同时访 问两个单元,发生数据冲突。这就是存储器地址空间分 配问题。 STC89C52单片机发出的地址码用于选择某个存储 器单元,在这个过程中单片机必须进行两种选择:一是 选中该存储器芯片,称为“片选”,未被选中的芯片不 能被访问。二是在“片选”的基础上再根据单片机发出 的地址码来对“选中” 芯片的某一单元进行访问,即 “单元选择”。为实现片选,存储器芯片都有片选引脚。 同时也都有多条地址线引脚,以便进行单元选择。注意, “片选”和“单元选择”都是单片机通过地址线一次发 出的地址信号来完成选择的。
Tankertanker Design
(1)掩模ROM。在制造过程中编程,是以掩模工艺实现的,因此称为掩 模ROM。这种芯片存储结构简单,集成度高,但由于掩模工艺成本较 高,因此只适合于大批量生产。 (2)可编程ROM(PROM)。芯片出厂时没有任何程序信息,用独立的编 程器写入。但PROM只能写一次,写入内容后,就不能再修改。 (3)EPROM。用紫外线擦除,用电信号编程。在芯片外壳的中间位置有 一个圆形窗口,对该窗口照射紫外线就可擦除原有的信息。使用编程 器可将调试完毕的程序写入。 (4)E2PROM(EEPROM)。一种用电信号编程,也用电信号擦除的ROM芯 片。对E2PROM的读写操作与RAM存储器几乎没有什么差别,只是写入 的速度慢一些,但断电后仍能保存信息。
Tankertanker Design
2.译码法---适合于多芯片扩展. 使用译码器对AT89S51单片机的高位地址进行译码,译 码输出作为存储器芯片的片选信号。 译码法的优点是能够有效地利用存储器空间. 常用的译码器芯片有74LS138、74LS139和74LS154。若 全部高位地址线都参加译码,称为全译码;若仅部分高位 地址线参加译码,称为部分译码。部分译码存在着部分存 储器地址空间相重叠的情况。 (1)74LS138 3线-8线译码器,有3个数据输入端,经译码产生8种 状态。
EA
使用的控制信号如下: PSEN作为外扩程序存储器的 读选通控制信号。 WR 和 RD为外扩数据存储器和 I/O的读、写选通控制信号。 ALE作为P0口发出的低8位地址 锁存控制信号。 EA 为片内外程序存储器的选择 控制信号。