程序存储器以程序计数器PC作为地址指针,通过16位地址总线,可寻址的地址空间为64KB,片内/外统一编址。根据单片机的类型及引脚的电平,CPU可从内部也可从外部程序存储器开始执行。而当EA=0时,内部程序存储器被忽略,程序直接从外部程序存储器的0000H开始执行。64KB程序存储器中有一些特殊的单元,在使用时应加以注意。0023H——串行口的中断服务子程序入口地址。......
2023-11-17
MCS-51单片机的数据存储器从物理结构上可分为片内数据存储器和片外数据存储器,它们分别单独编址。
1.片内数据存储器
片内数据存储器可分为两个不同的块,除内部RAM块外,还有特殊功能寄存器块。对于MCS-51子系列,前者有128B,其编址为00H~7FH;后者有128B,其编址为80H~0FFH;二者连续而不重叠。对于MCS-52子系列,前者有256B,其编址为00H~0FFH;后者有128B,其编址为80H~0FFH;后者与前者高128B的编址是重叠的。由于访问它们所用的指令不同,并不会引起混乱,片内数据存储器的编址如图2-4所示。
图2-4 片内数据存储器编址图
(1)内部RAM
MCS-51单片机内部RAM空间为256B,但实际提供给用户使用的RAM容量随型号而不同,一般为128B(如8031、8051、89C51)或256B(如8032、8052、89C52)。内部RAM从功能和用途方面来划分,可以分成3个不同的区域:工作寄存器区、位寻址区、堆栈或数据缓冲区。
1)工作寄存器区。内部RAM的00H~1FH区域设置为工作寄存器区,该区域又均匀地划分为4个区,每个区由8个工作寄存器R0~R7构成,共占用32个内部RAM单元。程序当前正在使用的工作寄存器区是由程序状态字PSW的第3(RS0)和第4(RS1)位指示的。可以对这两位进行编程,以选择不同的工作寄存器组。工作寄存器组与RS1、RS0的关系及地址见表2-3。
单片机上电复位后,工作寄存器为0组,在程序中可根据实际情况通过改变PSW中的RS0和RS1两位的状态来决定使用哪一个工作寄存器区。这一点可用于在中断程序中保护现场和恢复数据。如果在实际应用系统中不需要4个工作寄存器区,该区域的多余单元可以作为一般的数据缓冲器使用。
表2-3 工作寄存器组与RS1、RS0的关系及地址
2)位寻址区。内部RAM的20H~2FH RAM为位地址区。这16个单元的每一位(16×8)都有一个位地址,位地址范围为00H~7FH。每一位都可以视作一个软件触发器,由程序直接进行位处理,用于存放各种程序标志、位控制变量等。同时,位寻址区的RAM单元还可以作为一般的数据缓冲器使用,按字节进行寻址操作。16个字节的RAM对应的位地址见表2-4。
表2-4 RAM位寻址区地址映像(www.chuimin.cn)
3)堆栈或数据缓冲区。在单片机实际应用中,往往需要一个后进先出的RAM缓冲区用于保护CPU的现场及临时数据,这种以后进先出原则存取数据的缓冲区称为堆栈。栈顶位置由堆栈指针SP给出。进栈时,堆栈指针SP先加1,然后数据进栈(写入SP指出的单元);出栈时,先数据出栈(读出SP指出的单元内容),然后SP再减1。一般在程序初始化时应对SP设一初值来具体设置栈区。
内部RAM中除了作为工作寄存器、位寻址和堆栈区以外的单元都可以作为数据缓冲器使用,存放输入的数据或运算的结果。
(2)特殊功能寄存器
所谓特殊功能寄存器(Special Function Registers,SFR)是区别于通用寄存器而言的,这些寄存器的功能或用途已做了专门的规定,主要是用来对片内各功能模块进行管理、控制、监视的控制寄存器和状态寄存器。
MCS-51内部的CPU寄存器、I/O口锁存器以及定时器、串行口、中断等各种控制寄存器和状态寄存器都是以特殊功能寄存器的形式出现,它们离散地分布在80H~0FFH的特殊功能寄存器地址空间。因为不同型号的单片机内部I/O的功能不同,实际存在的特殊功能寄存器数量差别较大。MCS-51最基本的特殊功能寄存器(8051/8751/8031所具有的SFR)有21个,见表2-5。
表2-5 特殊功能寄存器一览表
在特殊功能寄存器地址空间范围内,还有一些单元未被定义,这些单元是为MCS-51的新型单片机保留的,一些已经出现的新型单片机因内部功能部件的增加而增加了不少特殊功能寄存器。为了使软件与新型单片机兼容,用户不能使用这些空闲的单元。
2.片外数据存储器
当内部RAM不够用时,最多可以外扩64KB的外部数据存储器,即CPU可以寻址64KB的外部数据存储器。但应注意MCS-51对外扩展的RAM和I/O接口是统一编址的,如果同时扩展外部RAM和I/O接口要注意地址分配的问题。CPU对外部RAM和I/O接口的操作使用MOVX指令。
有关单片机基础及应用的文章
程序存储器以程序计数器PC作为地址指针,通过16位地址总线,可寻址的地址空间为64KB,片内/外统一编址。根据单片机的类型及引脚的电平,CPU可从内部也可从外部程序存储器开始执行。而当EA=0时,内部程序存储器被忽略,程序直接从外部程序存储器的0000H开始执行。64KB程序存储器中有一些特殊的单元,在使用时应加以注意。0023H——串行口的中断服务子程序入口地址。......
2023-11-17
数据采集是系统的核心,直接影响系统的测量精度、分辨率、输入阻抗、速度、抗干扰能力等主要指标。图10-2模拟量采集通道结构示意图1)传感器。A/D转换器是模拟量信号采集的核心器件,主要完成模拟量到数字量的转换,其器件的重要技术指标可详细参考A/D转换器的数据手册。设计时应注意如下几点:①数据采集部分与现场被采对象相连,是现场干扰进入的主要通道,是整个系统抗干扰设计的重点部位。......
2023-11-17
C51支持的数据类型分为基本数据类型、构造数据类型和指针类型。C51的基本数据类型如表5-1所示,表中下面的5种数据类型是C51有的而标准C没有的。在MCS-51系列单片机中选择合适的数据类型,对提高运行效率具有特殊的意义。如果在编写C51程序时使用大量的、不必要的数据类型变量,就会导致C51编译器相应地增加了所调用的库函数的数量,以处理大量增加的数据类型变量,会使编译后的程序变得过于庞大。......
2023-11-17
51单片机数据存储器用于存放运算中间结果、数据暂存和数据缓冲、标志位等。CPU在复位后默认选择表3-3中第0组工作寄存器。图3-9 片内RAM地址分配图表3-3 工作寄存器地址列表高128B地址空间,80H~FFH为特殊功能寄存器空间。图3-10 特殊功能寄存器地址分配图表3-4 特殊功能寄存器说明表3-4中论述的特殊功能寄存器需要在程序中处理,实际应用中与硬件操作相结合,需要开发人员按功能需求进行控制。......
2023-11-04
2)数据传送指令,加1、减1指令,逻辑运算指令不影响CY、OV和AC位。标志位的状态是控制转移类指令的判断条件。数据传送类指令是使用最频繁的指令,主要用于数据的复制、保存及交换。数据传送类指令的助记符有MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP。其通用数据传送类指令格式为MOV 目的操作数,源操作数表3-2数据传送类指令注:√表示该指令影响某一标志位。外部RAM或I/O口之间的数据传送指令共有4条。......
2023-11-17
8051有5个中断源,即两个外部中断、两个定时/计数器中断和一个串行发送/接收中断。1.外部中断外部中断是由连接到单片机外部引脚信号变化而引起的中断,反映外部某一事件的发生。CPU是在每个机器周期的S5P2检测P 3.2和P 3.3上的信号,如果是有效信号则对定时器控制寄存器TCON中的IE0或IE1置1,建立中断请求标志。表6-1中断源的主要内容及说明......
2023-11-17
1.基本组成微型计算机的基本组成如图1-2所示。图1-2微型计算机的组成框图中央处理器CPUCPU是计算机的核心部件,它由运算器和控制器组成,完成计算机的运算和控制功能。电池式NVRAM是由CMOS的SRAM、备用电池和切换电路组成,在电源断开或低于某值时切换电路把备用电池接入,对RAM进行写保护,防止意外数据写入和信息丢失。......
2023-11-17
MCS-51单片机的算术运算类指令包括加、减、乘、除、加1、减1等指令。这类指令有ADD、ADDC、INC、SUBB、DEC、DA、MUL、DIV共8种。表3-3算术运算类指令注:√表示该指令影响某一标志位。运算结果对PSW的影响同上述4条ADD指令。6.十进制调整指令十进制调整指令只有以下1条:该指令用于BCD码加法运算时,对BCD码的加法运算结果自动进行调整,但对BCD码的减法运算不能用此指令来调整。在运算过程中,单片机按二进制规则进行运算。......
2023-11-17
相关推荐