存储器配置
哈佛结构MCS-51单片机
程序存储器和数据存储器分开设计。
普林斯顿结构微机
只有一个地址空间,程序和数据可以随意安排在这一地址范围内不同的空间。
程序存储器(ROM)
指令、常数掉电不失
数据存储器(RAM)
数据可用程序改写
在单片机内部,程序存储器和数据存储器存贮器是分开制造的。通常,程序存储器的容量较大,数据存储器的容量较小,这是单片机用作控制的一大特点。
物理上有4个存储空间
片内程序存储器
片外程序存储器
片内数据存储器
片外数据存储器
逻辑上有3个存储空间
片内外统一编址的程序存储器
MOVC
片内数据存储器
MOV
片外数据存储器
MOVX
图存储器配置
程序存储器
_____
EA
输入引脚
E___A___ = 0 访问片外程序存储器
E___A___ = 1 访问片内程序存储器
程序计数器PC
16位程序地址寄存器,专门用来存放下一条需要执行指令的地址,能自动加1。
PC指示程序执行的位置
PC中存放的是程序存储器的地址
PC中存放下一条将要执行的指令的地址
复位后 PC = 0000H
寻址范围:0000H ~ 0FFFFH
64KB 65536B
入口地址
T0000BH
_________0013H
INT1
T1001BH
串行口0023H
T2002BH
通常,在入口地址处写一条跳转指令,跳转至服务程序。
0000H
0003H
000BH
0030H
1000H
2000H
MOVC
MOV DPTR, #2000H
MOV A, #08H
MOVC A, @A+DPTR
片外数据存储器
最大64KB
0000H ~ 0FFFFH
只可用MOVX指令
间接寻址方式访问
读:
MOV DPTR, #2008H
MOVX A, @DPTR
写:
MOV A, #12H
MOV DPTR, #2008H
MOVX @DPTR, A
片外数据存储器与片外I/O设备统一编址(如A/D、D/A、I/O芯片等)
片内数据存储器(低128B)
地址范围:00H ~ 7FH
通用数据区 (30H~7FH)
80个字节
用于存放的用户数据或作堆栈区使用。
读:
MOV A, 30H ;直接寻址
MOV R0, #30H
MOV A, @R0 ;间接寻址
INC R0
MOV A, #12H
MOV 30H, A
位寻址区 (20H~2FH)
16个字节
即可按字节寻址,又可按位寻址
8 × 16 = 128位
用途:
开关决策、逻辑电路仿真、实时控制
位地址空间:00H ~ 7FH
位操作指令:
SETB
CLR
CPL
JB
JNB
2FH字节的位地址:
D7D0
将2FH字节的最高位置“1”
不能影响其它位
SETB 7FH
ORL 2FH, #10000000B
MOV 2FH, #10000000B
最高位清“0”
CLR 7FH
ANL 2FH, #01111111B
若 2FH 字节的最高位为“1”,
则跳转到LED_ON
JB 7FH, LED_ON