51单片机存储器结构介绍(1)

发布者:PeacefulOasis最新更新时间:2016-02-25 来源: eefocus关键字:51单片机  存储器  结构介绍 手机看文章 扫描二维码
随时随地手机看文章
MCS-51单片机在物理结构上有四个存储空间:
1、片内程序存储器
       2、片外程序存储器
       3、片内数据存储器
       4、片外数据存储器
但在逻辑上,即从用户的角度上,8051单片机有三个存储空间:
1、片内外统一编址的64K的程序存储器地址空间(MOVC)
       2、256B的片内数据存储器的地址空间(MOV)
       3、以及64K片外数据存储器的地址空间(MOVX)
在访问三个不同的逻辑空间时,应采用不同形式的指令(具体我们在后面的指令系统学习时将会讲解),以产生不同的存储器空间的选通信号。
 
程序内存ROM
寻址范围:0000H ~ FFFFH 容量64KB
        EA = 1,寻址内部ROM;
 EA = 0,寻址外部ROM
        地址长度:16位
        作用: 存放程序及程序运行时所需的常数。
        七个具有特殊含义的单元是:
         0000H —— 系统复位,PC指向此处;
         0003H —— 外部中断0入口
         000BH —— T0溢出中断入口
         0013H —— 外中断1入口
         001BH —— T1溢出中断入口
         0023H —— 串口中断入口
         002BH —— T2溢出中断入口
 
内部数据存储器RAM
      物理上分为两大区:00H ~ 7FH即128B内RAM 和 SFR区。
      作用:作数据缓冲器用。
下图是8051单片机存储器的空间结构图



程序存储器
    一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行之。那么设计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器(ROM)。程序相当于给微处理器处理问题的一系列命令。其实程序和数据一样,都是由机器码组成的代码串。只是程序代码则存放于程序存储器中。
        MCS-51具有64kB程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。对于内部无ROM的8031单片机,它的程序存储器必须外接,空间地址为64kB,此时单片机的端必须接地。强制CPU从外部程序存储器读取程序。对于内部有ROM的8051等单片机,正常运行时,则需接高电平,使CPU先从内部的程序存储中读取程序,当PC值超过内部ROM的容量时,才会转向外部的程序存储器读取程序。
       当#EA=1时,程序从片内ROM开始执行,当PC值超过片内ROM容量时会自动转向外部ROM空间。
       当#EA=0时,程序从外部存储器开始执行,例如前面提到的片内无ROM的8031单片机,在实际应用中就要把8031的引脚接为低电平。
        8051片内有4kB的程序存储单元,其地址为0000H—0FFFH,单片机启动复位后,程序计数器的内容为0000H,所以系统将从0000H单元开始执行程序。但在程序存储中有些特殊的单元,这在使用中应加以注意:
        其中一组特殊是0000H—0002H单元,系统复位后,PC为0000H,单片机从0000H单元开始执行程序,如果程序不是从0000H单元开始,则应在这三个单元中存放一条无条件转移指令,让CPU直接去执行用户指定的程序。
        另一组特殊单元是0003H—002AH,这40个单元各有用途,它们被均匀地分为五段,它们的定义如下:
     0003H—000AH 外部中断0中断地址区。
     000BH—0012H 定时/计数器0中断地址区。
     0013H—001AH 外部中断1中断地址区。
     001BH—0022H 定时/计数器1中断地址区。
     0023H—002AH 串行中断地址区。
    可见以上的40个单元是专门用于存放中断处理程序的地址单元,中断响应后,按中断的类型,自动转到各自的中断区去执行程序。从上面可以看出,每个中断服务程序只有8个字节单元,用8个字节来存放一个中断服务程序显然是不可能的。因此以上地址单元不能用于存放程序的其他内容,只能存放中断服务程序。但是通常情况下,我们是在中断响应的地址区安放一条无条件转移指令,指向程序存储器的其它真正存放中断服务程序的空间去执行,这样中断响应后,CPU读到这条转移指令,便转向其他地方去继续执行中断服务程序。
  下图是ROM的地址分配图:


    从上图中大家可以看到,0000H-0002H,只有三个存储单元,3个存储单元在我们的程序存放时是存放不了实际意义的程序的,通常我们在实际编写程序时是在这里安排一条ORG指令,通过ORG指令跳转到从0033H开始的用户ROM区域,再来安排我们的程序语言。从0033开始的用户ROM区域用户可以通过ORG指令任意安排,但在应用中应注意,不要超过了实际的存储空间,不然程序就会找不到。
关键字:51单片机  存储器  结构介绍 引用地址:51单片机存储器结构介绍(1)

上一篇:51单片机复位电路介绍
下一篇:51单片机存储器结构介绍(2)

推荐阅读最新更新时间:2024-03-16 14:45

51单片机最简LED驱动
得到8盏LED交替亮灭的实验效果 #include reg51.h void Delay10ms(unsigned int c); // 延时10ms void main() { while(1) { P0 = 0x00; // 设置 P0 为低电平 Delay10ms(50); // 延时 P0 = 0xff; // 设置 P0 为高电平 Delay10ms(50); // 延时 } } void Delay10ms(unsigned int c) { unsigned char a, b; for (; c 0; c--) { for (b = 38;
[单片机]
51单片机系列——定时/计数器
51单片机有2个16位定时器/计数器:定时器0(T0为P3.4)和定时器1(T1为P3.5) 这里所说的16位是指定时/计数器内部分别有16位的计数寄存器。分别为低8位寄存器和高8位寄存器。 定时器模式 当工作在定时模式时,每经过一个机器周期内部的16位计数寄存器的值就会加1,当这个寄存器装满时溢出。 我们可以算出工作在定时模式时最高单次定时时间为 65535*1.085us=时间(单位us) 定时器作用:可以用于精确事件定时,PWM脉宽调制,波形发生,信号时序测量的方面。 计数器模式 当工作在计数器模式时,T0(P3.4引脚),T1(P3.5引脚)。每来一个脉冲,计数寄存器加1。 使用51定时/计数器步骤
[单片机]
<font color='red'>51单片机</font>系列——定时/计数器
带有存储器功能的数字温度计
1. DS1624基本原理 DS1624是美国DALLAS公司生产的集成了测量系统和存储器于一体的芯片。数字接口电路简单,与I2C总线兼容,且可以使用一片控制器控制多达8片的DS1624。其数字温度输出达13位,精度为0.03125℃。DS1624可工作在最低2.7V电压下,适用于低功耗应用系统。 (1). DS1624基本特性 ◆ 无需外围元件即可测量温度 ◆ 测量范围为-55℃~+125℃,精度为0.03125℃ ◆ 测量温度的结果以13位数字量(两字节传输)给出 ◆ 测量温度的典型转换时间为1秒 ◆ 集成了256字节的E2PROM非易性存储器 ◆ 数据的读出和写入通
[单片机]
带有<font color='red'>存储器</font>功能的数字温度计
基于51单片机制作的波形发生器Proteus仿真程序
仿真原理图如下 单片机源程序如下: #include reg51.h sbit wr=P3^6; sbit rd=P3^2; sbit key0=P1^0; sbit key1=P1^1; sbit key2=P1^2; sbit key3=P1^3; sbit key4=P1^4; unsigned char flag;//flag为0、1、2、3、4时分别为正弦波、方波、三角波、梯形波、锯齿波 unsigned char const code ZXB_code ={ 0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2, 0xa5,0xa8
[单片机]
基于<font color='red'>51单片机</font>制作的波形发生器Proteus仿真程序
51单片机连接ESP8266串口WiFi模块
  51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。   51单片机区别   同样的一段程序,在各个单片机厂家的硬件上运行的结果都是一样的,如ATMEL的89C51(已经停产)、89S51, PHILIPS,和WIN
[单片机]
<font color='red'>51单片机</font>连接ESP8266串口WiFi模块
延长Flash存储器使用寿命的研究
  引 言   随着嵌入式系统在数码相机、数字摄像机、移动电话、MP3音乐播放器等移动设备中越来越广泛的应用,Flash存储器已经逐步取代其他半导体存储元件,成为嵌入式系统中主要数据和程序载体。Flash存储器又称闪存,是一种可在线多次擦除的非易失性存储器NVM(Non-Volatile Memo-ry),即掉电后数据不会丢失。Flash存储器还具有体积小、功耗低、抗振性强等优点,是嵌入式系统的首选存储设备。   世面上常用的Flash存储设备有两种:NOR Flash和NAND Flash。根据存储容量,NOR一般为1~16 MB,而NAND为8~512 MB,现在的大容量NAND已经可以达到4 GB;读取速度NOR较NAND
[单片机]
延长Flash<font color='red'>存储器</font>使用寿命的研究
51单片机 (3)定时器和计数器
注:定时器与计数器原理与使用方法相似、此处计数器知识为基础普及、后面详讲 2个定时器(寄存器)、定时器0、定时器1、(计数器0、计数器1) TMOD: 定时器 /计数器模式控制寄存器 详见 百度百科TMOD 每经过一个机器周期、寄存器+1 TF:定时器溢出标志。溢出时自动置1。中断时硬件清零否则必须软件清零。 TR:定时器运行控制位。置1开始计时、清零停止计时。 C/T:该位为0时用作计时器、该位为1时用作计数器。 溢出时时间-开始计时时间=预设定时时间 一个机器周期共有12个振荡脉冲周期 若设定时为0.02s,则: 12*(65535-X)/11059200=0.02s 定时器作“加1”次数:X=4710
[单片机]
51单片机红外遥控解码
红外遥控发射芯片采用PPM编码方式,当发射器按键按下后,将发射一组108ms的编码脉冲。遥控编码脉冲由前导码、8位用户码、8位用户码的反码、8位操作码以及8位操作码的反码组成。通过对用户码的检验,每个遥控器只能控制一个设备动作,这样可以有效地防止多个设备之间的干扰。编码后面还要有编码的反码,用来检验编码接收的正确性,防止误操作,增强系统的可靠性。前导码是一个遥控码的起始部分,由一个9ms的低电平(起始码)和一个4. 5ms的高电平(结果码)组成,作为接受数据的准备脉冲。以脉宽为0. 56ms、周期为1. 12ms的组合表示二进制的“0”;以脉宽为1. 68ms、周期为2. 24ms的组合表示二进制的“1”。如果按键按下超过108m
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved