
内存是一种常见的产品,存在于各种需要记忆功能的设备中。本文中,边肖将介绍单片机内部的主要存储器:程序存储器、数据存储器和特殊功能寄存器。
一、程序存储器
程序是控制计算机动作的一系列命令,单片机只知道由“0”和“1”代码组成的机器指令。如前所述,用助记符书写的命令MOVA,#20H被机器识别的代码74H和20H代替:(用二进制书写,是01110100B和00100000B)。在单片机解决问题之前,必须事先将编译好的程序、表格、常数汇编成机器码,然后存储在单片机的存储器中,称为程序存储器。程序存储器可以放置在片上或片外,或者片上和片外。因为PC程序计数器是16位,程序存储器可以使用16位二进制地址,所以内部和外部存储器的地址范围最多可以从0000H到FFFFH。
8051内部有4k字节的ROM,占用0000H~0FFFH最低4k字节。此时片外扩展程序存储器的地址号应该从1000H开始。如果用8051作为8031,不使用片内4kROM和全片外存储器,地址号仍然可以从000h开始。但此时8051的第{ 31 }脚(即EA脚)要保持低电平。当EA为高电平时,用户在0000H至0 ffh范围内使用内部ROM,当大于0 ffh时,MCU CPU自动访问外部程序存储器。
二、数据存储
单片机的数据存储器由读写存储器RAM组成。其最大容量可扩展至64k,用于存储实时输入数据。8051有256个单元的内部数据存储器,其中00H~7FH是内部随机存取存储器RAM,80H~FFH是专用寄存器区。在实际使用中,首先要充分利用内存。从使用的角度来看,了解内部数据存储器的结构和地址分配非常重要。因为它们将来会经常用在学习指令系统和编程中。
8051内部数据存储器从00H到FFH的地址空间为256字节,分为两部分,其中内部数据RAM的地址为00H~7FH(即0 ~ 127)。用作特殊功能寄存器的地址是80H~FFH。在这256个字节中,还有一个所谓的“位地址”区,不仅可以按字节寻址,也可以按位寻址。对于那些需要位操作的数据,可以存储在这个区域。从00H到1FH排列四组工作寄存器,每组占用8个RAM字节,记为R0 ~ R7。选择哪组寄存器由上述标志寄存器中的RS1和RS0选择。通过在这两个位中放置不同的二进制数,可以选择不同的寄存器组。
三、特殊功能寄存器
特殊功能寄存器(SFR)的地址范围是80HFFH。在MCS-51中,除程序计数器PC和四个工作寄存器区外,其余21个特殊功能寄存器都在这个SFR块中。其中5个是双字节寄存器,占用26个字节。特殊功能寄存器的符号和地址见表2。其中*可以被寻址。特殊功能寄存器反映8051的状态,实际上是8051的状态字和控制字寄存器。CPU的Psw就是一个典型的例子。这些特殊功能寄存器一般分为两类,一类与芯片的管脚有关,另一类用于控制芯片上的功能。
与芯片管脚相关的特殊功能寄存器是P0 ~ P3,实际上是四个八位锁存器(每个I/O端口一个),每个锁存器都附加了相应的输出驱动器和输入缓冲器,组成一个并行端口。MCS-51有4个这样的并口P0 ~ P3,可以提供32条I/O线,每条都是双向的,大部分都有第二种功能。在用于芯片控制的其它寄存器中,累加器A、标志寄存器PSW、数据指针DPTR等的功能。其他寄存器的功能将在后面的相关部分进一步介绍。责任编辑:抄送









