单片机外部RA扩展
- 格式:doc
- 大小:48.50 KB
- 文档页数:4
51 单片机资源扩展:扩展片外RAM
上一文中扩展了单片机的程序存储器,4KB 存储空间提升到64KB。
其
实,4K 的代码空间还凑合,但是51 自带的256B 数据存储空间使用起来还
真紧张,其中留给用户的连128B 都不到,所以不得不扩展片外RAM。
扩展RAM 方法和扩展ROM 差不多,都是占用P0/P2 口做地址线,同时P0 用锁
存器74373 分时复用地址和数据信号。
以前扩展RAM 是用汇编语言访问存储器,好处是定位精准,指哪打哪,
坏处就是:程序规模一大就有点难维护了,所以还得改用C 实现。
对应于汇编语言用R1,R0/DPTR 访问外部RAM,keil C 扩展了存储类型,增加了如pdata(等同用movx @Rn 访问方式)/xdata(等同于movx @DPTR 访问方式)存储类型用于访问片外ram。
同时,还提供了绝对地址访问的宏,
如PBYTE/XBYTE,查看定义:
[cpp] view plain copy#define PBYTE((unsigned char volatile pdata*)0);
#define XBYTE((unsigned char volatile xdata*)0);。
用51单片机外部扩展两片2764,两片6264.
1.51单片机的数据线P0.0---P0.7与外部拓展的2764与6264的D0---D7相连。
2.51单片机的地址线第8位P0.0---P0.7要经过锁存器74LS373输出与外部拓展的2764与6264 的地址输入线A0---A7相连。
3.锁存器连接:OE为数据输出允许信号需要接低电平,数据从锁存器的输入线到输出线。
接高电平呈高阻态。
LE接51单片机ALE。
Q0---Q7接扩展片的A0---A7.
4.2764连接(ROM): OE为读选通信号与51单片机PSEN相连
2764仅用到了13根地址线,A8---A12与单片机P2.0---P2.4相连
单片机要片选两片2764用CE与单片机P2.5.P2.6(未用的地址线)相连,当P2.5或P2.6为低电平时片选。
5.6264连接(RAM):WR与RD为写和读选通信号与单片机的WR与RD相
连(低电平有效)。
CS接高电平与CE为低电平共同作用才能选中。
CE分别
与P2.5,P2.6相连片选。
以上四片芯片的地址范围是2764 C000H~DFFFH A000H~BFFFH
6264 C000H~DFFFH A0000H~BFFFH
上面是用线选方法进行的片选。
下面用2—4译码器片选
P2.7与E相连低电平允许译码
P2.5,P2.6接A,B进行选择
Y0---Y3端分别接外部扩展四片的CE端片选(低电平有效)
四片芯片的地址范围是: 2764 0000H~1FFFH
2000H~3FFFH
6264 4000H~5FFFH
6000H~7FFFH。
如何进行单片机的外部设备扩展单片机是一种集成电路,通常包含处理器、内存和输入/输出接口。
然而,单片机的内部资源是有限的,如果需要连接更多的外部设备,就需要使用外部设备扩展。
外部设备扩展为项目提供了更多的功能和灵活性,让单片机适应不同的任务需求。
本文将介绍如何进行单片机的外部设备扩展。
首先,进行外部设备扩展,我们需要选择合适的外部设备。
这可以根据项目的需求来确定。
一些常见的外部设备包括传感器、显示器、通信模块等。
在选择外部设备时,需要考虑以下几个因素:1. 功能需求:确定需要什么功能的设备,比如温度传感器、光照传感器、液晶显示器等。
2. 接口兼容性:外部设备的接口必须与单片机的接口兼容。
常见的接口包括GPIO、SPI、I2C等。
确保外部设备的接口与单片机的接口能够正常通信。
3. 电源要求:考虑外部设备的电源需求,确定单片机能够为其提供足够的电源。
4. 数据处理能力:外部设备的数据处理需求也需要考虑。
单片机需要具备足够的处理能力来处理外部设备所产生的数据。
5. 可靠性和成本:选择可靠性高、成本适中的外部设备。
选择好外部设备之后,就需要将其与单片机连接起来。
这通常需要通过电气接口来实现。
常见的电气接口有如下几种:1. GPIO(通用输入/输出):单片机的通用引脚可以用作输入或输出。
它可以连接到外部设备的信号线,实现数据的输入和输出。
例如,可以将数字传感器的输出连接到单片机的GPIO引脚上,通过读取引脚的电平来获取传感器的数据。
2. SPI(串行外设接口):SPI接口是一种串行通信协议,可用于连接多个外部设备。
它使用一根主通信线(MOSI)、一根从通信线(MISO)和一根时钟线(SCLK),以及一个选择线(SS)来进行通信。
通过配置单片机的SPI控制器,可以通过SPI接口与外部设备进行数据交换。
3. I2C(串行接口):I2C接口也是一种串行通信协议,可以连接多个外部设备。
它使用两根通信线:串行数据线(SDA)和串行时钟线(SCL)。
单片机扩展电路(二)引言概述:在单片机应用中,扩展电路是必不可少的,它能够有效地提升单片机的功能和性能。
本文将介绍单片机扩展电路的设计原则和一些常用的扩展电路,旨在帮助读者更好地理解和应用单片机的扩展电路。
正文内容:一、IO扩展电路1. 使用74HC595芯片进行8位输出扩展2. 使用PCF8574芯片进行8位输入扩展3. 使用双向移位寄存器实现输入输出模式切换4. 使用IO扩展板实现大量IO口的扩展5. 使用IO扩展芯片实现I2C总线扩展二、ADC和DAC扩展电路1. 使用ADC0804芯片进行模拟量采集2. 使用MAX11615芯片进行多通道模拟量采集3. 使用DAC0832芯片进行模拟量输出4. 使用R-2R网络实现更高精度的模拟量输出5. 使用PWM信号和低通滤波器实现模拟量输出三、串口扩展电路1. 使用MAX232芯片进行RS232电平转换2. 使用USB转串口模块实现USB接口扩展3. 使用蓝牙模块实现无线串口扩展4. 使用WiFi模块实现无线串口扩展5. 使用以太网模块实现网络串口扩展四、定时器和计数器扩展电路1. 使用74HC161芯片进行多位计数2. 使用74HC4040芯片进行二进制计数3. 使用CD4541B芯片进行定时器功能扩展4. 使用定时器模块实现精确的时间测量5. 使用定时器和中断实现实时时钟功能五、存储器扩展电路1. 使用24CXX系列芯片进行I2C存储器扩展2. 使用AT24C256芯片进行大容量存储器扩展3. 使用SD卡进行存储器扩展4. 使用EEPROM芯片进行非易失性存储器扩展5. 使用Flash芯片进行可擦写存储器扩展总结:单片机扩展电路的设计具有很大的灵活性,可以根据具体应用需求选择不同的扩展电路。
本文对IO扩展电路、ADC和DAC扩展电路、串口扩展电路、定时器和计数器扩展电路以及存储器扩展电路进行了详细介绍,希望读者能够通过学习掌握单片机扩展电路的设计方法和应用技巧,为自己的项目开发提供更多的选择和可能性。
外部扩展与扩展总线在单片机中的应用简介随着科技的快速发展,单片机作为一种重要的嵌入式系统,广泛应用于各个领域。
然而,由于单片机本身资源有限,有些应用需要更多的IO口或者与外部设备进行通讯。
为了满足这些需求,外部扩展和扩展总线技术应运而生。
本文将介绍外部扩展和扩展总线在单片机中的应用和原理。
一、外部扩展硬件1. IO口扩展单片机的IO口是与外部设备通讯的重要接口。
当IO数量不够用时,可以通过外部扩展来增加IO口的数量。
常见的扩展芯片有74595、74HC595等。
这些芯片采用串行输入并行输出的方式,可以将单片机的几个IO口扩展为更多的输出口。
2. AD/DA转换器模拟信号的输入和输出对很多嵌入式系统来说是必不可少的。
单片机内部带有的AD/DA转换器通常数量有限,而某些应用需要更多的模拟信号接口。
这时可以通过外部AD/DA转换器来实现扩展。
常见的外部AD/DA转换芯片有MCP3008、ADS1115等。
3. 存储器扩展单片机内部的闪存或RAM容量有限,有些应用需要更多的存储空间来存储数据或者程序。
可以通过外部存储器扩展来满足这一需求。
常见的外部存储器有EEPROM、SD卡等。
这些外部存储器可以通过SPI、I2C等接口与单片机进行通讯。
二、扩展总线技术1. I2CI2C(Inter-Integrated Circuit)是一种常见的扩展总线技术,广泛应用于单片机系统中。
它通过两根线来实现多个设备的串行通讯,其中一根线是数据线SDA,另一根线是时钟线SCL。
每个设备都有一个独立的7位地址,单片机通过写入或读取这些地址来与相应的设备通讯。
2. SPISPI(Serial Peripheral Interface)是另一种常见的扩展总线技术。
与I2C不同,SPI使用四根线进行通讯,包括一个主时钟线、一个主输出线(MOSI)、一个主输入线(MISO)和一个从机选择线(SS)。
SPI总线可以同时连接多个设备,每个设备有一个从机选择线,通过选择相应的从机选择线来与特定设备通讯。
单片机外部存储器与扩展器原理解析现代科技的快速发展使得数字设备的普及程度不断提升,人们对存储器的要求也越来越高。
单片机外部存储器和扩展器正是应运而生的解决方案,能够满足我们对存储器容量和速度的需求。
本文将对单片机外部存储器和扩展器的原理进行详细解析,帮助读者更好地了解和应用这些技术。
首先,我们先来看看什么是单片机外部存储器。
单片机是一种集成了处理器、存储器和各种外设接口于一体的微型计算机,它的内部存储器容量有限。
当我们需要存储大量数据时,内部存储器显然无法满足需求,这时就需要使用外部存储器扩展单片机的存储容量。
外部存储器是单片机外部连接的一种存储器设备,它可以是RAM(随机存取存储器)或ROM(只读存储器)。
单片机外部存储器的连接通常通过总线进行。
总线是计算机系统中连接各种设备的一种数据传输路径,它有数据总线、地址总线和控制总线三种类型。
单片机与外部存储器之间的通信主要是通过这些总线来进行的。
单片机通过地址总线向外部存储器发送地址信号,以确定要读写的存储单元位置。
地址总线的位数决定了单片机可以寻址的存储单元数量。
控制总线用于传输读写控制信号,以控制外部存储器的读写操作。
数据总线则用于传输实际的数据。
为了实现单片机对外部存储器的读写操作,我们需要使用一些芯片和电路来连接单片机和外部存储器。
其中一个关键芯片是存储器地址译码器,它可以将单片机的地址信号转换为外部存储器的地址信号。
存储器芯片也是非常重要的组成部分,它们可以是静态RAM(SRAM)或动态RAM(DRAM)芯片。
在实际应用中,我们可以根据需求选择适合的存储器芯片。
除了外部存储器,扩展器也是一种常用的存储器扩展技术。
扩展器是一种通过串口或并口方式与单片机连接的设备,它通常具有独立的存储器容量,并通过与单片机的通信实现数据的读写操作。
扩展器与外部存储器相比,具有更高的灵活性和扩展性。
扩展器的工作原理与外部存储器有所不同。
首先,扩展器需要与单片机通过串口或并口进行连接,通过通信协议进行数据传输。
单片机系统的扩展方法 - 单片机作为一个最基本的系统,应包括程序存储器、数据存储器、键盘、显示器等电路。
在测量系统中,还包含模数转换器、数模转换器。
MCS-51系列的单片机由于其良好的可扩展性,可依据系统的具体要求构成1个紧凑的独立系统。
在设计系统之前,应对系统所需的资源、处理的速度等问题做综合的考虑,然后对系统的资源进行安排。
MCS-51单片机的存储器分为程序存储器和数据存储器。
程序存储器具有独立于数据存储器的64K寻址范围,在设计时,应尽量接受内含程序存储器的器件,依据程序的容量,可选择内含4K、8K程序存储器的器件。
MCS-51单片机在复位后程序指针为0000H,而5个中断入口地址为0003H、000BH、0013H、001BH、0023H,因此应分别在0000H和各类中断的入口地址单元按排跳转指令。
MCS-51单片机的数据存储器包含了内部和外部数据存储器,内部存储器的使用应依据堆栈、位操作单元、数据单元的次序依次考虑。
应保留足够的单元用于堆栈,在使用子程序、中断、堆栈操作指令时,都会影响堆栈指针,在估量堆栈容量时,应考虑到子程序的调用、中断的嵌套而引起堆栈大量使用的状况。
在MCS-51单片机中规定了内部RAM的20H~2FH为128个位寻址单元,可对这些位执行位操作指令,因此在安排存储器时,应将标志类的单元安排在这一区域。
数据存储器一般安排在30H和堆栈之间,00H~1FH为4个区的R0~R7单元。
如内部数据存储器不能满足系统设计的要求,可通过P0、P2口扩展外部数据存储器。
外部数据存储器的寻址范围为64K,但由于I/O地址接受了存储器映射寻址的方法,因此应将存储器单元的安排和I/O单元的安排做统一的考虑。
外围设备的扩展应依据下述次序依次考虑,在外围接口中如有I2C、SPI总线的器件,而通信速度无特殊要求,可用P1口的位操作方法模拟串行接口,其他的接口可依据需要和存储器地址的统一考虑安排地址。
单片机外部RAM 扩展模块MCS-51系列单片机外部RAM 为64K ,在一些特殊场合下,远不能满足需要,本文就AT89C51讨论MCS-51系列单片机大容量RAM 的扩展方法。
首先介绍128K 随机读取RAM HM628128。
HM628128是32脚双列直插式128K 静态随机读取RAM ,它具有容量大、功耗低、价格便宜、集成度高、速度快、设计和使用方便等特点。
如若在系统中加入掉电保护电路,保护数据有很高的可靠性,可以和EEPROM 相媲美。
技术特性:(1) 最大存取时间为120ns ;(2) 典型选通功耗75mW ;典型未选通功耗10uW ;(3) 使用单一5V 电源供电; (4) 全静态存储器,不需要时钟及时序选通信号;(5) 周期时间与存取时间相等;(6) 采用三态输出电路,数据输入和输出端公用;(7) 所有输入和输出引脚均与TTL 电平直接兼容;(8) 有两个片选端,适合于低功耗使用,即为了保存信息,用电池作为后备电源。
保存信息的最低电源电压Vcc=2V 。
引脚安排及功能表:图6是HM628128的外部引脚排列图,各引脚名称及功用分别如下:A0~A16是17条地址线;I/O0~I/O7是8条双向数据线;CS1是片选1,低电平有效,CS2是片选2,高电平有效;WR 是写控制线,当CS1为低电平,CS2为高电平时,WR 的上升沿将I/O0~I/O7上的数据写到A0~A16选中的存储单元中;OE 是读出允许端,低电平有效。
HM628128的功能表如表3所示。
图6 HM628128外部引脚由于AT89C51直接外部RAM 容量为64K ,地址线为16条,其中低8位地址和数据分时复用,因此需要外部地址锁存器和ALE 锁存信号来锁存低8位地址。
又由于AT89C51的外部数据和外设地址通用,若扩展外设必然占用数据地址。
因此本系统采用P2.7(A15)口来区分数据和外设:当P2.7(A15)口为高电平时,选择外部数据;P2.7(A15)口为低电平时,则为外设。
使用SRAM6264进行片外RAM扩展(2008-11-14 11:04:42)转载标签:分类:单片机c51sram外部扩展6264杂谈MCS-51单片机在扩展RAM的地址空间为0000H--FFFFH共64KB,读写外部RAM时用MOVX指令,用RD选通RAM OE端,用WR选通RAM WE端。
扩展外部RAM芯片一般采用静态RAM,6264具有8KB空间,它需要13位地址(A0-A12),使用P0,P2.0-P2.4作为地址线,P2.7作为片选线。
6264的全部空间为0000H-1FFFH。
Intel 6264芯片6264是一种8K×8的静态存储器,其内部组成如图2.5(a)所示,主要包括512×128的存储器矩阵、行/列地址译码器以及数据输入输出控制逻辑电路。
地址线13位,其中A12~A3用于行地址译码,A2~A0和A10用于列地址译码。
在存储器读周期,选中单元的8位数据经列I/O控制电路输出;在存储器写周期,外部8位数据经输入数据控制电路和列I/O控制电路,写入到所选中的单元中。
6264有28个引脚,如图2.5(b)所示,采用双列直插式结构,使用单一+5 V电源。
其引脚功能如下:(1)Intel 6264的特性及引脚信号Intel 6264的容量为8KB,是28引脚双列直插式芯片,采用CMOS工艺制造A12~A0(address inputs):地址线,可寻址8KB的存储空间。
D7~D0(data bus):数据线,双向,三态。
OE(output enable):读出允许信号,输入,低电平有效。
WE(write enable):写允许信号,输入,低电平有效。
CE1(chip enable):片选信号1,输入,在读/写方式时为低电平。
CE2(chip enable):片选信号2,输入,在读/写方式时为高电平。
VCC:+5V工作电压。
GND:信号地。
图2.5 6264的内部结构图及引脚图6264的工作方式如表2.2所示。
单片机外部RAM扩展模块
MCS-51系列单片机外部RAM为64K,在一些特殊场合下,远不能满足需要,本文就AT89C51讨论MCS-51系列单片机大容量RAM的扩
展方法。
首先介绍128K随机读取RAM HM628128。
HM628128
是32脚双列直插式128K静态随机读取RAM,它具有容
量大、功耗低、价格便宜、集成度高、速度快、设计和
使用方便等特点。
如若在系统中加入掉电保护电路,保
护数据有很高的可靠性,可以和EEPROM相媲美。
技术特性:
(1)最大存取时间为120ns;
(2)典型选通功耗75mW;典型未选通功耗10uW;
(3)使用单一5V电源供电;
(4)全静态存储器,不需要时钟及时序选通信号;
(5)周期时间与存取时间相等;
(6)采用三态输出电路,数据输入和输出端公用;
图6 HM628128外部引脚(7)所有输入和输出引脚均与TTL电平直接兼
容;
(8)有两个片选端,适合于低功耗使用,即为了保存信息,用电池作为后备电源。
保存信息的最低电源电压Vcc=2V。
引脚安排及功能表:
图6是HM628128的外部引脚排列图,各引脚名称及功用分别如下:
A0~A16是17条地址线;I/O0~I/O7是8条双向数据线;CS1是片选1,低电平有效,CS2是片选2,高电平有效;WR是写控制线,当CS1为低电平,CS2为高电平时,WR的上升沿将I/O0~I/O7上的数据写到A0~A16选中的存储单元中;OE是读出允许端,低电平有效。
HM628128的功能表如表3所示。
WR CS1 CS2 OE 工作方式
X H X X未选中
X X L X未选中
H L H H 输出禁止
H L H L 读
L L H H 写
其中,H表示高电平,L表示低电平,X表示任意状态由于AT89C51直接外部RAM容量为64K,地址线为16条,其中低8位地址和数据分时复用,因此需要外部地址锁存器和ALE锁存信号来锁存低8位地址。
又由于AT89C51的外部数据和外设地址通用,若扩展外设必然占用数据地址。
因此本系统采用P2.7(A15)口来区分数据和外设:当P2.7(A15)口为高电平时,
选择外部数据;P2.7(A15)口为低电平时,则为外设。
因此,直接外部数据容量和外设数量都为32K ,可用地址线为15条。
本系统外部扩展RAM 为256K ,地址线18条。
要达到18条地址线,则必须扩展。
理论上可行方法很多,如以P1口的某几位作为最高位地址输出、外加锁存器锁存高位地址等。
本系统采用后者,以保留P1口,况且外设空间充裕。
扩展电路如图7所示:
图7 RAM 地址扩展电路
当读写外部数据时,首先应往高位地址锁存器中送入高位地址,然后再以DPTR 为间接地址访问外部数据,注意最高位地址应为1,即数据区最低地址为8000H 。
以下程序段演示了外部数据的读写。
……
MOV DPTR ,#0020H ;0020H 为高位地址锁存器的地址
MOV A ,#00H ;00H 表示第一个32K 空间
MOVX @DPTR ,A ;写入地址数据
MOV DPTR ,#8000H ;8000H 为每个32K 的第一个字节地址
MOVX A ,@DPTR ;从地址单元读取数据
……
若最后一句换为:
MOVX @DPTR ,A
则为向RAM 中写数据。
同时作者还利用HM628128的数据保持特性为其加入了掉电保护电路。
当主电源关闭时,备用电源发挥作用,这样RAM 内的数据就不会丢失。
其特性如表4所示。
译码器
地址总线
CS1 0V
图8 CS2控制数据保持时序
根据表4和图8可知,只要在系统上电或断电期间保证使HM628128的CS2立即变为低电平(CS2≤0.2V )或WR 立即变为高电平就可使其中的数据维持不变,图9可实现这一功能。
≥Vcc-0.2V
图9掉电保护电路
其原理如下:当系统正常时,电流通过D1向HM628128供电,同时向电池BT 充电,当系统电源切断时,将由电池供电。
上电时,系统电源对C1充电,在此期间CS2是输入要经过一定的延时后才能变为高电平,同时,由于U1、U2的电源是由系统电源对C2充电来建立的,这就保证了在上电时HM628128处于写静止状态。
在系统掉电瞬间,由于U1、U2由Vs供电,仍处于工作状态,电源掉电致使U1的输入立即变低,WR端变为低电平,从而禁止对HM628128的写入。
同时C1也通过D2和R2放电,从而使CS2变为低电平。
因此在掉电瞬间和掉电后,HM628128也处于写禁止状态。
经实践证明,本电路工作可靠,RAM中数据保存完整。