51单片机外部存储器的使用
51单片机:存储器
内部 RAM 0000 H
RAM (64K )
007FH
0000 H
数据存储器
引脚接为高电平时,CPU可访问内部和外部ROM,并 且程序自片内程序存储器开始执行,PC值超出片内 ROM容量时,会自动转向片外程序存储器中的程序。 引脚接为低电平时,CPU只 能访问外部ROM,无法使 用片内程序存储器。
(3)EPROM型(Erasable Programmable ROM,可擦除可编程 ROM),其典型外观标志是芯片上有一个紫外线擦除窗口。 这种存储器编程使用一定的直流电源(如+21V电压),而 擦除则用紫外线灯光照射芯片窗口(一般需15~30分钟), 重新编程后用不透明标签将窗口贴覆遮盖住即可。 MCS-51系列单片机8751的片内ROM以及27系列存储器 芯片都属于此类产品。 (4)E2PROM型(Electrically Erasable Programmable ROM,电可擦除可编程ROM)。这种存储器可以直接用电擦 写,比较方便数据的改写,较新型只读存储器,编程速度较 快。擦除、写入和读出电压均为+5V。28系列存储器属于此 类产品。
(二) 存储器的分类
sk ROM 型 OTPROM型
ROM
半导体存储器 (Memory)
EPROM型 E2PROM型 Flash ROM型 SRAM
RAM
DRAM
(1)Mask ROM 型:掩膜ROM。其编程只能由制造商通过 半导体掩膜技术完成,用户无法改写,所以对用户而言, 它是严格意义的只读存储器。如8051中的4KB程序存储器 就是这一种,这种ROM适用于有固定程序且大批量生产的 产品中。 一次可编程ROM(One Time 型:一次可编程 (2)OTPROM型: Programmable ROM)。用户可通过专门设备对其一次性写 入程序,此后便不能改写。这种程序存储器可靠性很高, 适合于存放已调试成功的用户程序,投入规模生产,但调 试阶段不宜用。目前,国内外有很多单片机制造商提供片 内集有OTPROM的单片机产品,可供用户选择。
51单片机结构功能
51单片机结构功能51单片机是指基于Intel的8051微处理器为核心的单片机,其结构功能丰富,被广泛应用于各种嵌入式系统。
一、结构51单片机采用冯·诺依曼结构,具有指令存储器和数据存储器,其中程序存储器(ROM)用于存储程序和表格数据,而数据存储器(RAM)用于存储可变数据。
51单片机还具有特殊功能寄存器(SFR),这些寄存器专门用于控制和设置单片机的各种功能。
二、功能1、运算功能:51单片机具有8位运算器,可以进行算术、逻辑和位运算。
2、控制功能:51单片机具有丰富的控制指令,可以实现如条件转移、跳转、中断等功能,还可以进行定时器和计数器的控制。
3、通信功能:51单片机可以通过串行口实现串行通信,也可以通过并行口实现并行通信。
4、存储功能:51单片机内部具有少量的RAM和ROM存储器,同时还可以外接扩展存储器。
5、定时/计数功能:51单片机内部具有定时器和计数器,可以实现定时和计数的功能。
6、中断功能:51单片机具有多个中断源,可以实现多级中断控制。
7、输入/输出功能:51单片机具有多个输入/输出端口,可以实现多种输入/输出控制。
51单片机以其结构紧凑、功能丰富、易于使用等特点,被广泛应用于工业控制、智能家居、消费电子等领域。
C51单片机寄存器功能湖山网络广播系统设计方案一、概述随着科技的发展和数字化的普及,网络广播系统在各种场所扮演着越来越重要的角色。
湖山网络广播系统设计方案旨在满足湖山地区对高质量、高效的网络广播系统的需求。
该方案旨在构建一个稳定、可靠、易用的网络广播系统,以满足湖山地区在公共广播、紧急通知、日常资讯等方面的需求。
二、系统需求分析1、稳定性:系统应具备高度的稳定性,能够保证长时间的连续运行,避免因设备故障或网络问题导致的广播中断。
2、可靠性:系统应具备可靠的备份机制,确保在主设备出现问题时,备份设备能够迅速接管,保证广播的连续性。
3、易用性:系统应具备良好的用户界面,操作简单易懂,方便管理员进行配置和管理。
51单片机buf用法
51单片机buf用法单片机(Microcontroller)是指将微处理器与外部存储器、输入/输出接口及定时器等外围电路集成在一块芯片上的一种微型计算机系统。
而51单片机则是指来自Intel早期生产的一款经典单片机,即Intel 8051。
在51单片机的编程中,BUF(Buffer)是一种常用的功能模块,用于数据的缓冲、传输和处理等操作。
本文将介绍51单片机BUF的基本用法,以及一些常见的应用案例。
一、BUF的基本概念BUF是一种常见的数据缓冲模块,通常由寄存器和状态控制逻辑构成。
其主要作用是在不同模块之间进行数据的传输和处理,起到缓冲数据的作用。
BUF可以分为输入BUF和输出BUF两种类型。
输入BUF接收外部输入信号,将其缓存在寄存器中,以供后续的处理使用。
而输出BUF则将经过处理后的数据从寄存器中输出,发送给外部器件或其他模块。
BUF的主要功能是防止信号的损失和传输延迟,提高数据的稳定性和可靠性。
二、BUF的用法在51单片机中,通过设置寄存器和相关的逻辑控制,实现对BUF的配置和使用。
以下是BUF的一些常见用法:1. 数据的输入和缓冲首先,通过将BUF的输入引脚与外部输入信号相连,将外部输入数据传递给BUF。
然后,将BUF的输出引脚与寄存器相连,通过设置寄存器的控制位,将输入数据缓存在寄存器中。
例如,假设我们需要从外部输入一个模拟信号,并将其用于后续的数据处理。
我们可以使用一个BUF模块将该模拟信号缓存到寄存器中,以供后续的处理使用。
2. 数据的处理和传输一旦输入数据被缓存在寄存器中,我们可以对其进行各种数据处理操作。
比如,可以进行数据的加减运算、位操作、逻辑运算等。
完成数据处理后,我们可以将处理结果传输到其他模块或输出端口,以实现数据的进一步应用。
通过BUF的输出引脚和寄存器的相关设置,可以将处理结果输出到指定的位置。
3. 数据的输出和发送BUF还可以用于将数据发送到外部器件或其他模块。
通过设置BUF的控制位和输出引脚,可以将寄存器中的数据输出并发送。
内部的ROM与外部RAM的空间分配
内部的ROM与外部RAM的空间分配8051单片机的存储器在物理结构上分为程序存储器空间和数据存储器空间,共有4个存储空间:片内程序存储器、片外程序存储器以及片内数据存储器、片外数据存储器空间。
这种程序存储和数据存储分开的结构形式被称为哈佛结构。
MCS-51使用哈弗结构,它的程序空间和数据空间是分开编址的,即各自有各自的地址空间,互不重叠。
所以即使地址一样,但因为分开编址,所以依然要说哪一个空间内的某地址。
而ARM(甚至是x86)这种冯诺依曼结构的MCU/CPU,它的地址空间是统一并且连续的,代码存储器/RAM/CPU 寄存器,甚至PC机的显存,都是统一编址的,只是不同功能的存储器占据不同的地址块,各自为政。
图1MCS-51单片机存储器的配置特点①内部集成了4K的程序存储器ROM;②内部具有256B的数据存储器RAM(用户空间+SFR空间);③可以外接64K的程序存储器ROM和数据存储器RAM。
从物理结构的角度讲,51单片机的存储系统可以分为四个存储空间:既片内ROM,RAM和片外ROM、RAM。
从逻辑结构上看(既编程的角度),可以分为三个不同的空间:(1)片内、片外统一编址的64KB的程序存储器地址空间:0000H~FFFFH(用16位地址);,其中0000H~0FFFH为片内4KB的ROM地址空间,1000H~FFFFH为外部ROM 地址空间;(2)256B的内部数据存储器地址空间(用8位地址),00H~FFH,分为两大部分,其中00H~7FH(共128B单元)为内部静态RAM的地址空间,80H~FFH为特殊功能寄存器的地址空间,21个特殊功能寄存器离散地分布在这个区域;(3)64KB的外部数据存储器地址空间(用16位地址):0000H~FFFFH,包括扩展I/O地址空间。
上述4个存储空间地址是重叠的,如图1所示。
8051的指令系统设计了不同的数据传送指令以区别这4个不同的逻辑空间:CPU访问片内、片外ROM指令用MOVC,访问片外RAM指令用MOVX,访问片内RAM指令用MOV。
四 MCS-51单片机存储器系统扩展
74LS373引脚
1、控制位OE: OE=0时,输出导通 2、控制位G: 接ALE 3、Vcc=+5V 4、GND接地
1 74LS373为8D锁存器,其主要特点在于:
控制端G为高电平时,输出Q0~Q7复现输入D0~ D7的状态;G为下跳沿时D0~D7的状态被锁存在Q0 ~Q7上。
MOV DPTR, #0BFFFH ;指向74LS373口地址
MOVX A, @DPTR ;读入
MOV @R0, A
;送数据缓冲区
INC R0
;修改R0指针
RETI
;返回
用74LS273和74LS244扩展输入输出接口
地址允许信号ALE与外部地址锁存信号G相连;
单片机端的EA与单片机的型号有关;
存储器端的CE与地址信号线有关。
P... 2.7 P2.0
ALE 8031
P... 0.7 P0.0
EA
PSEN
外部地址
G
锁存器
I...7
O... 7
I0 O0
A... 15
CE
A8
外部程序
存储器
A... 7 A0
D7. . . D0 OE
6264的扩展电路图
图中CS(CE2)和CE引脚均为6264的片选信号,由于该扩展电路 中只有一片6264,故可以使它们常有效,即CS(CE2)接+5V ,CE接地。6264的一组地址为0000H~1FFFH。
存储器地址编码
SRAM6264:“64”—— 8K×8b = 8KB 6264有13根地址线。 地址空间: A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 最低地址: 0 0 0 0 0 0 0 0 0 0 0 0 0 0000H 最高地址: 1 1 1 1 1 1 1 1 1 1 1 1 1 1FFFH MCS-51单片机寻址范围:64KB 26×210 = 216即16位地址线 地址空间: A15A14A13A12A11A10A9A8A7······A0 单片机
51单片机外扩RAM
单片机外部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所示。
其中,H表示高电平,L表示低电平,X表示任意状态由于AT89C51直接外部RAM容量为64K,地址线为16条,其中低8位地址和数据分时复用,因此需要外部地址锁存器和ALE锁存信号来锁存低8位地址。
又由于AT89C51的外部数据和外设地址通用,若扩展外设必然占用数据地址。
因此本系统采用P2.7(A15)口来区分数据和外设:当P2.7(A15)口为高电平时,选择外部数据;P2.7(A15)口为低电平时,则为外设。
51系列单片机教程(共15章) 第8章
在大多数应用的场合,还是并行扩展占主导地位。
8.3 读写控制、地址空间分配和外部地址锁存器 8.3.1 存储器扩展的读写控制 RAM芯片:读写控制引脚,记为OE*和WE* ,与MCS-51 的RD*和WR*相连。 EPROM芯片:只能读出,故只有读出引脚,记为OE* , 该引脚与MCS-51的PSEN*相连。 8.3.2 存储器地址空间分配
口部件的扩展下一章介绍。
系统扩展结构如下图:
MCS-51单片机外部存储器结构:哈佛结构 。 MCS-96单片机的存储器结构:普林斯顿结构。 MCS-51数据存储器和程序存储器的最大扩展空间各为 64KB。 系统扩展首先要构造系统总线。 8.2 系统总线及总线构造 8.2.1 系统总线 按其功能通常把系统总线分为三组: 1.地址总线(Adress Bus,简写AB) 2.数据总线(Data Bus,简写DB) 3.控制总线(Control Bus,简写CB) 8.2.2 构造系统总线
地址锁存器一般采用74LS373,采用74LS373的地址总 线的扩展电路如下图(图8-3)。
1.以P0口作为低8位地址/数据总线。 2.以P2口的口线作高位地址线。 3.控制信号线。 *使用ALE信号作为低8位地址的锁存控制信号。 *以PSEN*信号作为扩展程序存储器的读选通信号。 *以EA*信号作为内外程序存储器的选择控制信号。 *由RD*和WR*信号作为扩展数据存储器和I/O口的 读选通、写选通信号。 尽管MCS-51有4个并行I/O口,共32条口线,但由于系 统扩展需要,真正作为数据I/O使用的,就剩下P1 口和P3口的部分口线。 8.2.3 单片机系统的串行扩展技术
8.3.3 外部地址锁存器
常用的地址锁存器芯片有: 74LS373、8282、74LS573 等。 1. 锁存器74LS373 带有三态门的8D锁存器,其引脚其内部结构如下图。
C51存储器类型MCS-51单片机物理存储器区域
C51存储器类型MCS-51单⽚机物理存储器区域1、 data区空间⼩,所以只有频繁⽤到或对运算速度要求很⾼的变量才放到data区内,⽐如for循环中的计数值。
2、 data区内最好放局部变量。
因为局部变量的空间是可以覆盖的(某个函数的局部变量空间在退出该函数是就释放,由别的函数的局部变量覆盖),可以提⾼内存利⽤率。
当然静态局部变量除外,其内存使⽤⽅式与全局变量相同;3、确保你的程序中没有未调⽤的函数。
在Keil C⾥遇到未调⽤函数,编译器就将其认为可能是中断函数。
函数⾥⽤的局部变量的空间是不释放,也就是同全局变量⼀样处理。
这⼀点Keil C做得很愚蠢,但也没办法。
4、程序中遇到的逻辑标志变量可以定义到bdata中,可以⼤⼤降低内存占⽤空间。
在51系列芯⽚中有16个字节位寻址区bdata,其中可以定义8*16=128个逻辑变量。
定义⽅法是: bdata bit LedState;但位类型不能⽤在数组和结构体中。
5、其他不频繁⽤到和对运算速度要求不⾼的变量都放到xdata区。
6、如果想节省data空间就必须⽤large模式,将未定义内存位置的变量全放到xdata区。
当然最好对所有变量都要指定内存类型。
7、当使⽤到指针时,要指定指针指向的内存类型。
在C51中未定义指向内存类型的通⽤指针占⽤3个字节;⽽指定指向data区的指针只占1个字节;指定指向xdata区的指针占2个字节。
如指针p是指向data区,则应定义为: char data *p;。
还可指定指针本⾝的存放内存类型,如:char data * xdata p;。
其含义是指针p指向data区变量,⽽其本⾝存放在xdata区。
bit是在内部数据存储空间中 20H .. 2FH 区域中⼀个位的地址,或者 8051 位可寻址 SFR 的⼀个位地址。
code是在 0000H .. 0FFFFH 之间的⼀个代码地址。
data是在 0 到 127 之间的⼀个数据存储器地址,或者在 128 .. 255 范围内的⼀个特殊功能寄存器(SFR)地址。
第8章 外部存储器的扩展
Vpp A12 A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 GND
62128
Vcc WE A13 A8 A9 A11 OE A10 CE D7 D6 D5 D4 D3 11
采用线选法外扩3片6264RAM的接口电路
思考一下:3片6264RAM的各自所占的地址空间?
12
采用译码法外扩4片62128RAM的接口电路
Vpp A12 A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 GND
27128
Vcc PGM A13 A8 A9 A11 OE A10 CE D7 D6 D5 D4 D3
Vpp A12 A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 GND
27256
Vcc A14 A13 A8 A9 A11 OE A10 CE D7 D6 D5 D4 D3
目前常用的编程方法主要有两种:一种是使用通用编
程器编程,比如RF1800,另一种是使用下载型编程器进 行编程。下面介绍如何对AT89S51片内的Flash存储器进 行编程。
23
23
AT89C5X与AT89LV5X之间的主要区别: 1.AT89LV5X工作电压为2.7~6V,可在低电压条件下工作。
24 。 2. AT89LV5X振荡器的最高频率为12MHz,而AT89C5X振荡器的最高频率为24MHz
17
MCS-51
P2.7-2.0
P0.7-0.0
ALE
W
R
D R
D7-D0
74LS138
74LS373
A
B
C
G2B
G2A
G
1
G
ቤተ መጻሕፍቲ ባይዱ
第三讲51单片机存储器及寻址方式
TMOD 定时器方式寄存器
部分专用寄存器介绍
1) 程序状态字寄存器PSW C AC F0 RS1 RS0 OV F1 P
C:为进位标志,AC:半进位标志,F0 、 F1为用户标志, RS1和RS0为当前工作寄存器组的选择位,OV 是溢出标志 位, P是奇偶标志位。
2)ACC:累加器 3)DPTR:地址寄存器
B ACC PSW TH2* TL2* RCAP2H* RCAP2L* T2MOD* T2CON* IP P3 专 IE 用 WDTRST 寄 P2 存 SBUF 器 SCON 区 P1 SFR TH1 TH0 TL1 TL0 TMOD TCON PCON DP1H DP1L DPH DPL SP P0
工作寄存器区: 00H~1FH
30H 2FH
用户RAM区
位寻址区:
20H~2FH
20H 1FH 18H 17H
位寻址区 (位地址00H~7FH)
第3组工作寄存器区R0~R7
用户RAM区: 30H~7FH
第2组工作寄存器区R0~R7 10H 0FH 第1组工作寄存器区R0~R7 08H 07H 第0组工作寄存器区R0~R7 00H
二、数据存储器
工作寄存器区
地址:00H~1FH,32B;
4组:每组为8个8位寄存器
R0~R7;
由PSW中的RS1,RS0选择 当前工作寄存器。
RS1RS0与工作寄存器的关系
工作寄存器选择
组
0 1 2
RS1 RS0 R0
0 0 1 0 1 0 00H 08H 10H
R1
01H 09H 11H
假定R1寄存器的内容是 60H,则其功能是以 R1寄存 器的内容60H为地址,将60H地址单元的内容与累加器A 中的数相“与”,其结果仍存放在A中。
51单片机外部存储器的扩展
一、地址线旳译码
存储器芯片旳选择有两种措施:线选法和译码法。
1、线选法。所谓线选法,就是直接以系统旳地址线作为 存储器芯片旳片选信号,为此只需把用到旳地址线与存储 器芯片旳片选端直接相连即可。 2、译码法。所谓译码法,就是使用地址译码器对系统旳 片外地址进行译码,以其译码输出作为存储器芯片旳片选 信号。译码法又分为完全译码和部分译码两种。
ALE
8051
LE OE
P0.7
8D 8Q
P0.6
7D 7Q
P0.5
6D 6Q
P0.4
5D 5Q
P0.3
4D 4Q
P0.2
3D 3Q
P0.1
2D 2Q
P0.0
1D 1Q
74HC573 地址总线扩展电路
OE:输出允许端,为0
时芯片有效。
A7
LE:锁存控制端,高电
A6 平时,锁存器旳数据输出端
A5 Q旳状态,与数据输入端D
(1)完全译码。地址译码器使用了全部地址线,地址与存储 单元一一相应,也就是1个存储单元只占用1个唯一旳地址。
(2)部分译码。地址译码器仅使用了部分地址线,地址与存 储单元不是一一相应,而是1个存储单元占用了几种地址。
❖ 二、扩展存储器所需芯片数目旳确定
❖
若所选存储器芯片字长与单片机字长
一致,则只需扩展容量。所需芯片数目按下式
07~00 I0~I7
× 8 )
扩
锁存器
展
74 HC 573 D0~D7
8位数据
RD
OE
WR
GND WE
图2.2-13 8031与6264的连接
at98s51单片机存储器的结构特点和使用注意事项
at98s51单片机存储器的结构特点和使用注意事项1.引言a t98s51单片机是一种常用的存储设备,它具有独特的结构特点和使用注意事项。
本文将介绍at98s51单片机存储器的结构特点和使用注意事项,以帮助用户更好地理解和使用该设备。
2. at98s51单片机存储器结构特点a t98s51单片机的存储器结构具有以下特点:2.1存储单元a t98s51单片机的存储器由多个存储单元组成,每个存储单元能够存储一定的信息。
这些存储单元以字节为单位进行编址,可以通过地址来访问。
2.2存储器单元类型a t98s51单片机的存储器包含多种类型的存储单元,主要包括:-R AM(R an do mA cc es s Me mo ry)随机存储器:用于存储程序运行时的临时数据,具有读写功能,但断电后数据将消失。
-R OM(R ea d-On ly Me m or y)只读存储器:用于存储程序的指令和常量数据,具有只读功能,断电后数据不会丢失。
-E EP RO M(El ec tr ic a ll yE ra sa bl eP rog r am ma bl eR ea d-O n ly Me mo ry)可擦写可编程只读存储器:可重复擦写的存储器,用于存储一些需要频繁更新或修改的数据。
2.3存储器的地址范围a t98s51单片机的存储器地址范围取决于其数据总线的位数,以及具体型号的不同。
常见的a t98s51单片机的存储器地址范围为0x00至0x FF。
3. at98s51单片机存储器的使用注意事项在使用a t98s51单片机存储器时,需要注意以下事项:3.1内存管理合理地利用a t98s51单片机的存储器是提高效率的重要因素。
用户应根据具体的应用需求,合理分配存储器空间,避免出现存储器空间不足或浪费的情况。
3.2存储器读写顺序在a t98s51单片机中,读写数据的顺序对程序的正确性和性能有着重要影响。
在设计程序时,要根据具体情况选择合适的存储器读写顺序,尽量减少存储器操作次数,提高程序的执行效率。
51单片机的程序存储器和数据存储器
一、51单片机的程序存储器结构1.内部结构单片机内部的程序存储器用于存储单片机工作时候的程序,单片机内部专门设置一个16位的程序计数器(PC),用于知识下一时刻单片机要执行的程序在ROM 空间中的地址位置,即可以存储64Kb空间大小。
程序存储器物理上可以分为片内程序存储器和片外存储器,不同单片机型号有不同的片内程序存储器空间大小。
例如8051单片机片内有4Kb的ROM,那当控制线取0时,PC访问的前4kb空间是片内的ROM;当控制线为0时候,PC访问的是片外的ROM。
2.程序存储器的7个特殊地址51单片机复位后,PC的内容是0000H,即为系统程序的启动地址。
51单片机内部有6个中断源,6个中断源介绍及地址如下所示:中断源之间只间隔8个存储单元,这是不足以存放中断程序的,所以这是中断入口地址,后续有中断服务函数。
二、51单片机的数据存储器数据存储器(RAM)存储单片机运行期间所需要的数据和临时生成的数据。
从物理上分为片内RAM和片外RAM(片外RAM是通过16位的地址总线访问,所以片外RAM也是64kb)。
1.片内数据存储器厂家根据不同的任务要求和需求定义不同的任务块,如下所示:工作寄存器组:一共有32个字节,也被称为通用寄存器,用于临时寄存8个信息,工作寄存器组分为4个组别,每组有R0-R7一共8个数据信息。
位寻址区:一共有16个字节,128位,该区域每一位可按照位于方式使用,这128位会重新分配工作地址。
一般RAM区域:用户编程可以使用的RAM,当然,前两个单元未使用的空间,用户也可以使用。
堆栈区和堆栈指针:先进后出、后入先出的原则进行管理的一段存储区域函数的调用就是一个堆栈操作,如下图所示:为实现堆栈“先入后出,后入先出”数据处理,51单片机内部设置了一个堆栈指针SP。
特殊功能寄存器:专用于控制、管理片内算术逻辑部件等功能模块工作,用户编程时可以直接给特殊功能寄存器设定值。
51单片机内部有包括PC在内19个特殊功能寄存器,如下所示:CPU专用寄存器:累加器A(E0H),寄存器B(F0H),程序状态寄存器PSW(D0H),堆栈寄存器SP(81H),数据指针DPTR(82H、83H)2.片外数据存储器51单片机内部RAM空间不够时候,就通过总线来扩展片外ram,最多可以扩展64KB.。
单片机教程 第5章-存储器
MOS存储器按工作特点、作用以及制造工艺可分为: 存储器按工作特点、作用以及制造工艺可分为: 存储器按工作特点
动态DRAM 数据存储器 动态 RAM Random Access Memory 静态SRAM 静态 MOS存储器 存储器 掩膜ROM — Read Only Memory 非易失 掩膜 ROM 现场可编程 现场可编程PROM — Programmable ROM 程序存储器 可擦可编程EPROM — Erasable PROM 可擦可编程 电可擦可编程E 电可擦可编程 2ROM — Electrically EPROM 闪速存储器 — Flash Memory
第5章:半导体存储器
本章基本要求: 本章基本要求:
1、存储器基本概念 2、RAM、ROM存储器工作原理RAM、ROM存储器工作原理 存储器工作原理51单片机系统外部存储器的连接 单片机系统外部存储器的连接* 3、51单片机系统外部存储器的连接*
单极性MOS存储器分类 存储器分类 单极性
易失
双极性存储器有TTL、ECL
5.1
半导体存储器基础
1、单译码编址存储器 如图:注意地址译码器、存储器阵列。 如图:注意地址译码器、存储器阵列。
5.1
半导体存储器基础
2、双译码编址存储器 如图:注意它的译码与选中单元的过程。 如图:注意它的译码与选中单元的过程。
5.2
只读存储器ROM 只读存储器
特点: 存放的信息是固定的, 特点 : 存放的信息是固定的 , 不会随停电而 丢失。在使用过程中,其信息只可以读取, 丢失 。 在使用过程中 , 其信息只可以读取 , 不可 以改写。 以改写。 常用的ROM种类有: ROM种类有 常用的ROM种类有: 掩模ROM 由制造厂家写入信息。 ROM, 1、掩模ROM,由制造厂家写入信息。 PROM,由用户一次性写入信息。 2、PROM,由用户一次性写入信息。 EPROM,多次可改写ROM ROM, 3、EPROM,多次可改写ROM,可由用户使用紫外线 灯擦除再次写入信息。 灯擦除再次写入信息。 EEPROM,可用电脉冲擦除, 4、EEPROM,可用电脉冲擦除,并再次由用户写入 信息。 信息。
51单片机外部存储器的扩展
一、地址线的译码
存储器芯片的选择有两种方法:线选法和译码法。
1、线选法。所谓线选法,就是直接以系统的地址线作为 存储器芯片的片选信号,为此只需把用到的地址线与存储 器芯片的片选端直接相连即可。 2、译码法。所谓译码法,就是使用地址译码器对系统的 片外地址进行译码,以其译码输出作为存储器芯片的片选 信号。译码法又分为完全译码和部分译码两种。
MCS-51系列单片机片内外程序存储器的空 间可达64KB,而片内程序存储器的空间只有 4KB。如果片内的程序存储器不够用时,则需 进行程序存储器的扩展。
MCS-51存储器的扩展
存储器扩展的核心问题是存储器的编址 问题。所谓编址就是给存储单元分配地址。
由于存储器通常由多个芯片组成,为此 存储器的编址分为两个层次:
扩展数据存储器常用静态RAM 芯片: 6264(8K×8位)、62256(32K×8位)、 628128(128K×8位)等。
MCS-51存储器的扩展
P2.7~P2.0
ALE P0.0~P0.7 8031
EA PSEN
A15~A8 高8位地址
CLK Q7~Q0 A7~A0 I0~I7 地址锁存器
D0~D 7
二、以P2口作为高8位的地址总线
P0口的低8位地址加上P2的高8位地址就可以形成16位的 地址总线,达到64KB的寻址能力。
实际应用中,往往不需要扩展那么多地址,扩展多少用 多少口线,剩余的口线仍可作一般I/O口来使用。
三、控制信号线 ALE:地址锁存信号,用以实现对低8位地址的锁存。 PSEN:片外程序存储器读选通信号。 EA:程序存储器选择信号。为低电平时,访问外部程序存储 器;为高电平时,访问内部程序存储器。
51单片机外设功能及应用
漏极开路电路,若驱动NMOS或其它拉流负载
时,需要外接上拉电阻。P0的输出级可驱动8
个LSTTL负载。
地址/数据 VCC
读锁存器
控制
内部总线 写锁存器
DQ CLK Q
T1
P0.n P0口
T2
引脚
MUX
读引脚
P0口作为通用输入
P0口作为输入口使用时,即为读引脚情况。所谓读 引脚就是直接读取P0.X引脚的状态,这时在“读引 脚”信号的控制下把缓冲器打开,将端口引脚上的
关于扩展I/O端口,将在系统扩展的相关章节中介 绍。
80C51单片机一般有4个8位的双向并行I/O 口,分别记作P0、P1、P2和P3。既可以作输 入口,又可以作输出口。因此,P0~ P3口在 结构和特性上有相同之处,但又各具特色。 它们的电路设计非常巧妙。熟悉它们的逻辑 电路,不但有利于正确合理使用这四个并行I/ O口,而且会对设计单片机外围逻辑电路有 所启发。
读锁存器
地址 控制 VCC
内部总线 写锁存器
DQ CLK Q
R
P2.n P2口
T
引脚
MUX
读引脚
P2口作为通用I/O口
在P2口作为一般I/O口使用时,与P1口类似, 用于输出时不需要外接上拉电阻,当用于输入 时,仍需要向锁存器先写入“1”,然后再读取。
读锁存器
内部总线 写锁存器
地址 控制 VCC
读锁存器
控制
内部总线 写锁存器
DQ CLK Q
T1
T2 MUX
P0.n P0口 引脚
读引脚
P0口作为地址/数据总线使用
应当指出,P0口在作为一般输入口使用时在读取管 脚之前还应向锁存器写入“1”,使上下两个场效应 管均处于截止状态,使外接的状态不受内部信号的
51单片机引脚介绍
P0口有三个功能:1、外部扩展存储器时,当数据总线。
2、外部扩展存储器时,当地址总线。
3、不扩展时,可做一般的i/o使用,但内部没有上拉电阻,做为输入输出时应在外部接上上拉电阻。
P1口只做I/0口使用,其内部有上拉电阻。
P2口有两个功能:1、扩展外部存储器时,当作地址总线使用。
2、做一般I/O口使用时,其内部有上拉电阻。
P3口也有两个功能:1、除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置。
2、有内部EPROM的单片机芯片,为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚的形式提供的。
RST/VPD:1、复位,当在此引脚加上两个机器周期的高电平时,面实现复位操作。
2、备用电源,当外接电源下降到下限值时,备用电源就会经第二功能的方式由些引脚引入,以保护内部RAM中的信息不会丢失。
ALE/PROG地址锁存控制信号:在系统扩展时,ALE用于控制把P0口的输出低8位地址送锁存器锁存起来,以实现低位地址的数据的隔离。
例如,ALE与74LS373锁存器的G相连接,当CPU对外部进行存取时,用以锁住地址的低位地址,即P0口输出,ALE有可能是高电平也有可能是低电平,当ALE是高电平时,允许地址锁存信号,当请问外部存储器时,ALE负跳变,将P0口上低8位地址信号送入锁存器,当ALE是低电平时,P0口上的内容和锁存器输出一致。
在没有访问外部存储器期间,ALE以1/6振荡周期频率输出,当访问外部存储器以1/12振荡周期输出,从这里我们可以看到,当系统没有进行扩展时ALE会以1/6振荡周期的固定频率输出,因此可以做为外部时钟,或者外部定时脉冲使用。
PROG为编程脉冲的输入端:单片机内部有一个4K或8K的程序存储器ROM。
R OM的作用是用来存放用户需要运行的程序,而PROG就是将这些程序写到ROM中的脉冲输入端。
PSEN外部程序存储器读选通信号:在读外部ROM时PSEN低电平有效,以实现外部ROM单元的读操作,内部ROM读取时,PSEN不动作,外部ROM读取时,在每个机器周期会动作两次。
51单片机外部存储器扩展
式。
二、地址译码器法 经过地址译码器,使用较少旳地址信号编码产生较多旳译码信
号,从而实现对多块存储器及I/O器件旳选择。
第410章章 M51单CS片-5机1单外片部机存系储统器功扩能展的扩展
10.3 外部存储器扩展 外部存储器旳扩展涉及程序存储器和数据存储器,这两种扩展
第410章章 M51单CS片-5机1单外片部机存系储统器功扩能展的扩展
10.1.1 I/O口扩展概述
因为MCS-51旳外部数据存储器RAM和I/O口是统一编址旳, 所以,顾客能够把外部64KB旳数据存储器RAM空间旳一部分作为 扩展外围I/O旳地址空间。这么,单片机就能够像访问外部RAM 存储器那样访问外部接口芯片,对其进行读/写操作。
第410章章 M51单CS片-5机1单外片部机存系储统器功扩能展的扩展
第10章 51单片机外部存储器扩展
10.1 外部I/O旳扩展 10.2 存储器概述 10.3 外部存储器扩展
第410章章 M51单CS片-5机1单外片部机存系储统器功扩能展的扩展
第10章 51单片机外部存储器扩展 10.1 外部I/O旳扩展
InteL企业常用外围器件如表10-1所示。
器件型号 8255A
8155/8156 8243 8279 8251 8253
器件名称 可编程外围并行接口 可编程RAM/IO扩展接口
I/O扩展接口 可编程键盘/显示接口
可编程通信接口 可编程定时/计时器
第410章章 M51单CS片-5机1单外片部机存系储统器功扩能展的扩展
SCL
起始/停止时序 写周期时序
SDA
ACK
程序存储器
程序存储器
程序存储器(ROM)是存放程序的电路。
单片机在编程时,一般先在计算机中用软件编写程序,再通过编程器将编好的程序写入到程序存储器中,单片机通过执行程序存储器中的程序来产生各种信号,从而实现各种控制。
1.程序存储器的使用MCS-51系列单片机可以使用内部程序存储器,也可以使用外部程序存储器。
MCS-51系列单片机使用内部程序存储器还是外部程序存储器,受31脚端的控制。
当A端=0时,单片机只能使用外部程序存储器,无法使用内部程序存储器。
8031、8032单片机内部无程序存储器,只能使用外部程序存储器,因此端必须接地。
当EA端=1时,单片机先使用内部程序存储器,容量不够时将会自动使用外部程序存储器。
2.程序存储器的地址编号
8x51(如8051、8751)单片机内部有4KB的程序存储器(该存储器内有4096个存储单元,每个单元存储1B),存储单元的地址编号是0000H~0FFFH,当进行扩展外接程序存储器时,可外接60KB的程序存储器,外部程序存储器的地址编号是1000H~FFFFH。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
纠结了这么久,现在总算有点儿头绪了,先把它整理到这里先,有几点还是j经常被弄糊涂:地址和数据,地址/数据复用,地址的计算,总线的概念,执行指令跟脉冲的关系,哎呀呀,看来计算机组成和原理不看不行啊,得找个时间瞧瞧,过把瘾了解了解。
使用ALE信号作为低8位地址的锁存控制信号。
以PSEN信号作为扩展程序存储器的读选通信号,在读外部ROM是PSEN是低电平有效,以实现对ROM 的读操作。
由RD和WR信号作为扩展数据存储器和I/O口的读选通、写选通信号。
ALE/PROG: 当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
当访问外部存储器时,ALE作为锁存扩展地址的低8位字节的控制信号。
当访问外部数据存储器时,ALE以十二分之一振荡频率输出正脉冲,同时这个引脚也是EPROM编程时的编程脉冲输入端。
]
当非访问外部数据存储器时,ALE以六分之一振荡频率固定输出正脉冲,8051一个机器周期=6个状态周期=12个振荡周期,若采用6MHz的晶体振荡器,则ALE会发出1MHz的固定的正脉冲。
因此它可以用来做外部时钟或定时。
如果我们把这个功能应用与实际,可能给我们的设计带来简化,降低生产成本。
ALE脚是在使用MOVX、MOVC指令时才会变成有效(这些指令都使用到外部RAM或ROM 的地址。
这些指令都有一个特点:地址和数据分时出现在P0口)。
使用C写程序时,要使用它有效,可用访问内部RAM地址的方法。
如:uVariable=*((char *)0x12C),把0x12C地址的内容给uVariable变量。
这个过程有效的脚为ALE、RD。
这个信号线的信号生成是MCU硬件电路实现的,不可以人工控制。
在某些内置TOM的MCU里,可以关闭ALE信号输出,以降低EMI。
ALE/PROG(30脚):
以系统时钟fosc 的1/6的频率,周期性输出方波脉冲。
1系统扩展时,作为外部存储器低八位地址的锁存信号;
2可为系统提供一个频率为fosc/6 的方波信号;
EPROM型单片机编程时编程输入脉冲(第二功能)
PSEN(29脚):外部程序程序存储器的选通输出信号。
当单片机使用外部程序存储器时,此脚在一个机器周期内产生两次负脉冲,作为外部程序存储器ROM的选通信号;
访问外部数据存储器RAM 时,此信号无效。
关于出栈和进栈
关于外部数据存储器:
WR:外部数据存储器写信号RD:外部数据存储器读信号
怎么来扩展存储器呢?
首先必须知道的是总线结构扩展系统:
先看看怎么扩展外部程序存储器的扩展:
锁存地址芯片74ls273(低8位地址不能保持一个机器周期,所以要用到锁存器,而高8为能保持一个机器周期):
瞧瞧简单的扩展外部ROM的电路图(PSEN在一个机器周期内产生两次负脉冲,作为外部程序存储器ROM的选通信号,访问外部数据存储器RAM 时,此信号无效):
访问外部ROM的时序图(P0口呢在一个机器周期内时,首先在第一次ALE下降沿送P0的地址(有74ls373锁存能保持一个机器周期),在第二次ALE下降沿锁存数据,而高8位地址
在P2口,能保持一个机器周期,所以不用锁存器):
想想PSEN就是在B时间段拉低的,故就能把数据给送出去了(O(∩_∩)O哈哈哈~,真NB,谁设计的啊,赞一个,嗯,了解硬件内部结构很重要,所以不要仅仅局限于软件的编程,更需要在有硬件思维的基础上编程)
两片构成64KROM的方法:
多片扩展跟多的ROM呢,没错就是用到了译码器:
懂了扩展ROM,扩展RAM也是一样的;。