51单片机程序存储器和数据存储器

发布者:asdfrewqpp最新更新时间:2015-08-17 来源: eefocus关键字:51单片机  程序存储器  数据存储器 手机看文章 扫描二维码
随时随地手机看文章
为了保证程序能够连续地执行下去,CPU必须具有某些手段来确定一条指令的地址。程序计数器PC正是起到了这种作用,所以通常又称其为指令地址计数器。在程序开始执行前,必须将其起始地址。即程序的第一条指令所在的内存单元地址送入PC。当执行指令时,CPU将自动修改PC的内容,使之总是保存将要执行的下一个条指令的地址。由于大多数都是按顺序执行的,所以修改的过程只是简单的加1操作。

下面我们看看8051的存储器系统:(此章非常重要,请仔细理解)

8051序列单片机与一般微机的存储器配置方式不相同。一般微机通常只有一个地址空间,ROM和RAM可以随意安排在这一地址范围内不同的空间,即ROM和RAM的地址同在一个队列里分配不同的地址空间。CPU访问存储器时,一个地址对应唯一的存储单元,可以是ROM也可以是RAM,并用同类访问指令。此种存储器结构称普林斯顿结构。

 

8051的存储器在物理结构上分程序存储器空间和数据存储器空间。有四个存储空间:片内程序存储器和片外程序存储空间以及片内数据存储器和片外数据存储器。这种程序存储器和数据存储器分开的结构形式,称为哈佛结构。但从用户使用的角度,8051存储器地址空间分为三类:

1、片内,片外统一编址0000H—FFFFH的64K字节的程序存储器地址空间,用16位地址;

2、64K字节片外数据存储器地址空间,地址也从0000H—FFFFH,用16位地址;

3、256K字节数据存储器地址空间,用8位地址。

上述三个存储空间地址是重迭的,任何区别这三个不同的逻辑空间呢?8051的指令系统设计了不同的数据传送指令符号:CPU访问片内片外ROM指令用MOVC,访问片外指令用MOVX,访问片内RAM指令用MOV。

一  程序存储器地址空间

8051程序存储器用于存放编好的程序和表格常数。程序存储器通过16位程序计数器PC寻址,寻址能力为64K字节。8051,8751的64程序存储器片内ROM为4K字节,地址为0000H—0FFFH,片外最多可扩至64K字节ROM,地址1000H—FFFFH,片内外是统一编址的。

当引脚EA接高电平时,8051程序计数器PC在0000H—0FFFH范围内,即前4K字节地址执行片内ROM中的程序;当指令地址超过0FFFH后,就自动地转向片外ROM指令。

当引脚EA接低电平时,8051片内ROM不起作用,CPU只能从片外ROMZ中取指令,地址可以从000H开始编址。这种接法特别适用于采用8031单片机的场合,由于8031片内不带ROM,所以使用使必须使EA=0.以便能够从外部扩展EPROM中取指令。

 

     8051从片内程序存储器和片外程序存储器取 值时执行速度相同。程序存储器的某些单元是留给系统使用的。

      存储单元0000H-0002H用作8051上电复位后引导程序存放单元。因为8051上电复位后程序计数器PC的内容为0000H,所以CPU总是从0000H开始执行程序。如果在这三个单元中存有转移指令,那么程序就被引导到转移指令指定的ROM空间去执行。

0003H—0023H单元均匀地分为五段,用作五个中断服务程序的入口,因为这五个入口之间的间隔较小,因此,一般说来这五个入口处都是放的一条跳转指令,而把真正的中断服务程序视情况安排在后面的存储器中。这五个入口分别是:

0003h:

外部中断0的入口地址,当外部中断引脚INT0,即P3.2有效时,引起中断申请,CPU响应中断后自动将地址0003H装入程序计数器PC,程序就被转换到0003H去执行外部中断0的中断服务程序。

000Bh:

定时器0溢出中断的入口地址,当定时器T0产生溢出时,引起中断申请,CPU响应中断后自动将地址000BH装入程序计数器PC, 程序就被转移到000BH去执行定时器0的中断服务程序。

     0013h:

  外部中断1的入口地址,当外部中断引脚INT1,即P3.3有效时,引起中断申请,CPU响应中断后自动将地址0013H装入程序计数器PC, 程序就被转移到0013H去执行外部中断1的中断服务程序。

     001Bh:

定时器1溢出中断的入口地址,当定时器T1产生溢出时,引起中断申请,CPU响应中断后自动将地址001BH装入程序计数器PC, 程序就被转3移到0003H去执行定时器1的中断服务程序。

    0023h:

串行接口中断的入口地址,当串行接口接收或发送完一个数据后,引起中断申请,CPU响应中断后自动将地址0023H装入程序计数器PC,程序就被转移到0023H去串行接口中断服务程序。

 

 二.数据存储器地址空间。

数据存储器RAM用于存放运算中的中间结果,数据暂存,缓冲,标志位等。数据存储器空间也分为片内和片外两部分,即片内RAM和片外RAM。

   8051片外数据存储器空间为64K,从0000H—FFFFH;片内存储器空间为256字节,地址从0000H—00FFH。

(一)片外RAM

   片外数据存储器与片内数据存储器空间低地址0000H—00FFH是重迭的,如何区分片内,片外RAM空间呢?8051有MOV和MOVX两种指令,用于区分片内片外RAM空间。片内RAM使用MOV指令,片外64KRAM空间专门为MOVX指令使用。

 

(二)片内RAM数据存储器最大可寻址256个单元,它们又分为两个部分:

低128字节,00H—7KH,是真正的RAM区。高128字节,80H—FFH,为特殊功能寄存器区。

  低128字节RAM ,00H—1FH地址安排为四组寄存器区,每组有八个工作寄存器,即R0-R7,,共占32个单元。通过对程序状态字PSW中RS1,RS0两位的设置,每组寄存器可选作CPU的当前工作寄存器组。若程序中并不需要四组,那么其余可用作一般RAN单元。CPU复位后,选中第0组工作寄存器。

工作寄存器区后的16字节单元,即20H—2FH,可以位寻址方式访问其各位,这128个位的地址为00H—7FH。低128字节RAM单元地址范围也是00H—7FH,8051采用不同寻址方式加以区分,即访问128个位地址用位寻址方式。访问低128字节单元用直接寻址或间接寻址,这样就可以区分开00H—7FH是位地址还是字节地址,寻址方式以后再讲。通过执行指令可直接对某一位操作,如置1,请0或判1,判0等,可用作软件标志位或用于位处理。

     高128字节RAM,特殊功能寄存器,8051片内高128字节RAM中,除程序计数器PC外,有21专用寄存器,也称特殊功能寄存器,它们离散地分布在80H—FFH的RAM空间中。在21个特殊功能寄存器中,有11个特殊功能寄存器具有位寻址能力,它们的字节地址正好能被8整除,下面介绍部分特殊功能寄存器,其余将在后面讲述:

(1)累加器ACC

累加器ACC是8051最常见,最繁忙的八位特殊功能寄存器,许多指令的操作数取自于ACC,许多运算结果也存放于ACC中。在指令系统中采用A作为累加器ACC的助记符。

(2)寄存器B

在乘,除指令中,用到了8位B寄存器。乘法指令的两个操作数分别来自A和B,乘积存放于B,A两个8位寄存器中。除法指令中,A中存放被除数,B中放除数,商存放于A中,B中存放余数。在其他指令中,B可作为一般通用寄存器或一个RAM单元使用。

 

(3)程序状态寄存器PSW

PSW是一个8位特殊功能寄存器,它的各位包含了程序执行后的状态信息,供程序查询或判别之用。各位的含义及其格式如下:

 PSW除有确定的字节地址DOH外,每一位均有位地址。

PY,PSW.7,进位标志位。在执行加法或减法运算指令时,如果运算结果最高位即位7,向前有进位或借位,CY位由硬件置1,如运算结果最高位无进位或借位,则CY清0。CY也是8051在进行位操作时的累加器。

AC,PSW.6半标记位,也称辅助进位标志。当执行加法或减法操作时,其运算结果产生由低半字节,即位3向高半字节有半进位或借位时AC位将被硬件自动置1,否则AC被自动清0。

PSW.5,用户标志位。用户可以根据自己的需要对FO位赋予一定含义,由用户置位,复位,系统没有规定它的意义。

RSO,和RS1,PSW.4,和PSW.5,工作寄存器组选择控制位。这两位的值决定选择哪一组工作寄存器为当前工作寄存器组。由用户用软件改变RS1和RS0值的组合,以切换当前选用的工作寄存器组。

当RS1=0,RS0=0时,工作寄存器组定位在00到07单元,即此时R0就是00,R1就是01,R2就是02,R3就是03,R4就是04,R5就是05,R6就是06,R7就是07。

当RS1=0,RS0=1时,工作寄存器组定位在08到0F单元;

       当RS1=1,RS0=0时,工作寄存器组定位在10到17单元;

       当RS1=1,RS0=1时,工作寄存器组定位在18到1F单元;

8051上电复位后, RS1=0,RS0=0,工作寄存器组定位在00到07单元;

根据需要,可利用传送指令对PSW整字节操作或用位操作指令改变RS1和RS0的状态,以切换当前工作寄存器组。这样的设置对程序中保护现场提供了方便。

OV,PSW.2,溢出标志位。当进行补码运算时,如有溢出,即当运算结果超出-128到+127的范围时,OV位由硬件自动置1;无溢出时,OV=0,

PSW.1,为保留位,8051未用,8052为F1用户标志位。P, PSW.0,奇偶检验标志位。每条指令执行后,该位始终跟踪指示累加器A中1的个数。如结果A中有奇数个1,则置P=1,否则P=0.常用于校验串行通讯中的数据传送是否出错。

 

(4)堆栈指针SP

堆栈指针SP为8位特殊功能寄存器,SP的内容即堆栈指针可指向8051片内00H—7FH RAM的任何单元。系统复位后,SP初始化为07H,即指向07H的RAM单元。下面介绍一下堆栈的概念。

   8051同一般微机处理器一样,设有堆栈。在片内RAM中专门开辟出一个区域,数据的存取是以“后进先出”的结构方式处理的。这种数据结构方式对于中断,调用子程序都非常方便。堆栈的操作有两种:

一种叫数据压入,即PUSH;另一种叫数据弹出,即POP。栈顶由堆栈指针SP自动管理。每次进行压入或弹出操作以后,堆栈指针便自动调整以保持指示堆栈顶部的位置。在使用堆栈之前,先给SP赋值,以规定堆栈的起始位置,称为栈 底。

当数据压入堆栈后SP自动加1以指出当前栈顶位置。8051的堆栈指针SP是一个双向计数器。在压栈时SP内容自动增值,出栈时自动减值,存取信号必须按照“后进先出”的原则。

 

(5)数据指针DPTR

DPTR是一个16位的特殊功能寄存器,其高位字节寄存器用DPH表示,地址83H,低位字节寄存器用DPL表示,地址82H。DPTR既可以作为一个16位寄存器来处理,也可以作为一个16寄存器来处理,也可以作为两个独立的8位寄存器DPH和DPL使用。

 

(6)IO端口PO,P1,P2,P3.

PO,P1,P2,P3.为四个8位特殊功能寄存器,分别是四个并行IO端口的锁存器。它们都是有字节地址,每一个锁存器还有位地址,所以每一个IO线独立地作输入或输出时,数据可以锁存,作输出时数据可以缓冲。8051的中断源包括:定时计数器0,定时计数器1,外中断0,外中断1,串口中断,除上述资源外8051还有40条引脚(关于这40条引脚,请查看相关资料)。

关键字:51单片机  程序存储器  数据存储器 引用地址:51单片机程序存储器和数据存储器

上一篇:keil软件中C语言嵌套汇编
下一篇:霍尔传感器信号采集与显示系统设计

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

解析80C51单片机中的cpu、存储器配置以及并行输入/输出口
单片机按存储结构可分为二类:一类是哈佛结构,另一类是普林斯顿结构。 ①哈佛结构所谓哈佛结构是指程序存储器地址空间与数据存储器地址空间分开的单片机结构,如80C51单片机采用哈佛结构,所以80C51单片机的程序存储器地址空间与数据存储器地址空间是分开的,各有64K存储空间。 ②普林斯顿结构所谓普林斯顿结构是指程序存储器地址空间与数据存储器地址空间合并的单片机结构,如MCS-96单片机采用普林斯顿结构,所以MCS-96单片机的程序存储器地址空间与数据存储器地址空间是合并的,共有64K存储空间。 1.单片机的CPU 图1是80C51单片机的内部结构框图。若除去图中的存储器电路和I/O部件,剩下的便是CPU。它可以分为运算器和控制
[单片机]
解析80C<font color='red'>51单片机</font>中的cpu、<font color='red'>存储器</font>配置以及并行输入/输出口
51单片机遥控解码通过电脑串口显示--C51源代码
/* 晶振:11.0569MHz */ #include REGX52.h #define uchar unsigned char uchar data IRcode ; //定义一个4字节的数组用来存储代码 uchar CodeTemp; //编码字节缓存变量 uchar i,j,k; //延时用的循环变量 sbit IRsignal=P3^2; //HS0038接收头OUT端直接连P3.2(INT0) /**************************延时0.9ms子程序**********************/ void Delay0_9ms(void) {
[单片机]
51单片机串口通信
这节我们主要讲单片机上串口的工作原理和如何通过程序来对串口进行设置,以及根据所给出的实例实现与PC 机通信。 一、原理简介 51 单片机内部有一个全双工串行接口。什么叫全双工串口呢?一般来说,只能接受或只能发送的称为单工串行;既可接收又可发送,但不能同时进行的称为半双工;能同时接收和发送的串行口称为全双工串行口。串行通信是指数据一位一位地按顺序传送的通信方式,其突出优点是只需一根传输线,可大大降低硬件成本,适合远距离通信。其缺点是传输速度较低。 与之前一样,首先我们来了解单片机串口相关的寄存器。 SBUF 寄存器:它是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据,可通过指令对SBUF 的读写来区别是对接收缓冲器
[单片机]
<font color='red'>51单片机</font>串口通信
详解51单片机的复位电路
51单片机采用高电平复位。以当前使用较多的AT89系列单片机来说,电路图如下。在复位脚加高电平2个机器周期可使单片机复位。复位后的主要特征是各IO口呈现高电平,程序计数器从零开始执行程序。 复位方式有两种。 1.上电复位:上电后,电容两端电压不能突变,VCC通过复位电容(10μF电解)给单片机复位脚施加高电平5V,同时,通过10KΩ电阻向电容器充电,使复位脚电压逐渐降低。经一定时间后(约10毫秒)复位脚变为0V,单片机开始工作。 2.手动复位:按下复位按钮,复位脚得到VCC的高电平,单片机复位,按钮松开后,单片机开始工作。
[单片机]
详解<font color='red'>51单片机</font>的复位电路
51单片机学习三步走
回想起我初学单片机到现在已经有六年了。学习期间使用了51单片机、飞思卡尔单片机、STM16、STM32等单片机。每次接触新的单片机我首先会熟悉它的基本开发,然后再通过项目的实现去深入的了解它。 大家都知道51单片机是最容易学习的,不仅因为它的编程简单,还因为网上的资料非常丰富,查找起来非常的方便。因此,想从事单片机开发的人,一般将51单片机作为入门开发的首选。而我也不例外,我在学习51单片机的时候,基本上是按照这个思路来学习的。 第一步(熟悉流程):因为我是学电子专业的,最开始我先是用面包板自己做了一个51的最小体统,为了更直观的去感受单片机我就加了一个数码管上去。 至于编程方面开始的时候我并没有刻意去背,主要
[单片机]
基于51单片机的简易电梯系统的设计
1系统概述 1.1设计要求 根据所学的知识以及技能,利用MCS-51系列单片机为中心设计一个简易电梯系统,实现四层电梯的无故障运行,并用数码管和指示灯显示对应楼层和运行方向等基本信息。设计所用的单片机为STC89C52为主要的控制器,自带AD转换,当一边有按键按下时,另一边以数字的形式在数码管上显示出相应的数字信息。 选择合适的芯片进行驱动电路的设计; 运行状态精确显示; 平层误差不超过±1cm。 总体设计 总的设计框图如图1-1所示,由单片机模块、矩形按键模块以及系统信息模块三个大模块构成,它们的作用分别为: 单片机模块:数据输入输出的处理。 矩形按键模块:通过按键,将相关信息送入单片机处理。 系统信息模块:用若干
[单片机]
51单片机STC89C54波特率以及双时钟探讨
最近公司老大让我尝试STC89C54单片机的最高波特率,经过一下午的尝试,基本可以搞清楚了。 在11.0592M的晶振下,若单片机工作在12T模式下(即一个机器周期为12个时钟周期),波特率最高可为57600.而若工作在6T模式下(即一个机器周期为6个时钟周期),则波特率最高可为115200. /*/ 在这里再简单介绍一下,如何实现12T和6T的转换,目前我只知道利用STC的下载软件可以修改,程序里的寄存器就不清楚了,估计改不了。设置过程见下图: 若想设置为双时钟6T模式,则可以选择6T,打开你选中的文件即可下载。 // 但要特别注意的是,6T和12T在交叉下载时,应烧写2次,即以前你的单片机是12T
[单片机]
<font color='red'>51单片机</font>STC89C54波特率以及双时钟探讨
基于C8051F060单片机和K9F2808UOC存储器实现数据采集系统的设计
从上个世纪九十年代起,电子技术在钻井井下得到应用。但井下钻具的振动会给很多传感器带来不利影响。 特别是对测量井下钻头姿态的惯性导航传感器影响巨大,在随钻振动环境中,如果对信号不作处理,根本就不能测量出正确的井斜角和方位角,也就无法实现井眼轨迹随钻控制的要求。本文介绍应用SoC芯片中的DMA技术对振动的高速采集和存储功能的实现方法,并给出了钻井环境中测试的结果。 1 方法的提出 传统的数据采集方法采用CPU直接控制的方式进行数据采集,数据传送需要经过CPU的中转才能存入存储器,传送速度慢且采集速率受到CPU的限制,极大影响了系统的采样频率,不能满足对振动信号高速采集的要求。而在DMA传送方式下,数据传送不经过CPU,由DMA
[单片机]
基于C8051F060单片机和K9F2808UOC<font color='red'>存储器</font>实现<font color='red'>数据</font>采集系统的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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