1. 8051单片机内部程序存储器和内部数据存储器的寻址范围是多少
呵呵 楼上答案是错误的阿 还是俺来替你解答吧
1 8051单片机内部程序存储器:
为4K掩膜程序存储器 寻址范围为:0000H~0FFFH
51单片机的片内片加上片外的总的寻址才是:0000H~FFFFH
2 8051单片机内部数据存储器只有128个单元:
寻址范围为:00H~7FH
80H~FFH 为特殊寄存器区
呵呵 满意就给加分喽
2. MCS-51单片机片内256B的数据存储器可分为几个区分别起什么作用
MCS-51 单片机片内数据存储器可分为二个区: 00H~7FH 单元组成的低128B 的片内RAM区、80H ~FFH单元组成的高128B 的专用寄存器区。其中低128B的RAM区又分为: 00H~1FH 单元为工作寄存器区、20H~2FH 单元为位寻址区、30H~7FH单元为用户RAM区。
工作寄存器区可作通用寄存器用,用户RAM区可作堆栈和数据缓冲用。专用寄存器区又称特殊功能寄存器,使用80H~FFH单元。
(2)单片机编程存储器扩展阅读
存储器空间在物理结构上可划分为:MCS-51存储器是采用将程序存储器和数据存储器分开寻址的结构,其存储器空间在物理结构上可划分为如下四个空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。
MCS-51单片机的P0~P3四个I/O端口在结构上的异同以及使用时应注意的事项:MCS-51单片机的四个端口在结构上相同之处: P0~P3 都是准双向I/O 口,作输入时,必须先向相应端口的锁存器写入“1”。
不同之处;P0口的输出级与P1~P3口不相同,它无内部上拉电阻,不能提供拉电流输出,而P1~P3 则带内部上拉电阻,可以提供拉电流输出。
当P0口作通用I/O口输出使用时,需外接上拉电阻才可输出高电平;但作地址/数据总线时,不需要外接上拉电阻。P1~P3口IO输出时,均无需外接上拉电阻。
3. 单片机存储器主要由哪几个部分组成,如何使用
存储器由存储体、地址译码器和控制电路组成。
1)存储体是存储数据信息的载体。由一系列存储单元组成,每个存储单元都有确定的地址。存储单元通常按字节编址,一个存储单元为一个字节,每个字节能存放一个8位二进制数。就像一个大仓库,分成许多房间,大仓库相当于存储体,房间相当于字节,房间都有编号,编号就是地址。
2)地址译码器将CPU发出的地址信号转换为对存储体中某一存储单元的选通信号。相当于CPU给出地址,地址译码器找出相应地址房间的钥匙。通常地址是8位或1 6位,输入到地址译码器,产生相应的选通线,8位地址能产生28=256根选通线,即能选通256字节。16位地址能产生216=65536=64K根选通线,即能选通64K字节。当然要产生65536根选通线是很难想象的,实际上它是分成256根行线和256根列线,256 X 256=65536,合起来能选通65536个存储单元。
3)存储器控制电路包括片选控制、读/写控制和带三态门的输入/输出缓冲电路。
①片选控制确定存储器芯片是否工作。
②读/写控制确定数据传输方向;若是读指令,则将已被选通的存储单元中的内容传送到数据总线上;若是写指令,则将数据总线上的数据传送到已被选通的存储单元中。
③带三态门的输入/输出缓冲电路用于数据缓冲和防止总线上数据竞争。数据总线相当于一条车流频繁的大马路,必须在绿灯条件下,车辆才能进入这条大马路,否则要撞车发生交通事故。同理,存储器的输出端是连接在数据总线上的,存储器中的数据是不能随意传送到数据总线上的。例如,若数据总线上的数据是“1”(高电平5V),存储器中的数据是“0”(低电平OV),两种数据若碰到一起就会发生短路而损坏单片机。因此,存储器输出端口不仅能呈现“1”和“O”两种状态,还应具有第三种状态“高阻"态。呈“高阻"态时,它们的输出端口相当于断开,对数据总线不起作用,此时数据总线可被其他器件占用。当其他器件呈“高阻"态时,存储器在片选允许和输出允许的条件下,才能将自己的数据输出到数据总线上。
4. 分析at89s52单片机的存储器结构
1.程序存储器
设计人员编写的程序存放在微处理器的程序存储器中。
at89s52具有64kb程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息,程序存储器的结构如图1所示。
图1 at89s52程序存储器的结构
at89s52片内片外的程序存储器在统一逻辑空间中,地址从0000h~ffffh,共有64k字节范围。引脚接高电平时,程序从片内程序存储器0000h开始执行,即访问片内存储器。当pc值超出片内rom容量时,会自动转向片外程序存储器空间执行。引脚接低电平时,迫使系统全部执行片外程序存储器0000h开始存放的程序。
2.数据存储器
at89s52 有256 字节片内数据存储器。地址为00h~ffh。这256个单元共分为两部分。其一是地址从00h~7fh单元(共128个字节)为用户数据ram。从80h~ffh地址单元(也是128个字节)为特殊寄存器(sfr)单元。高128 字节与特殊功能寄存器重叠,也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。
在00h~1fh共32个单元中被均匀地分为四块,每块包含八个8位寄存器,均以r0~r7来命名,称这些寄存器为通用寄存器。这四块中的寄存器都称为r0~r7,利用psw的第3和第4位(rs0和rs1),即可选中这四组通用寄存器。
内部数据存储器的20h—2fh单元为位寻址区,可作为一般单元用字节寻址,也可对它们的位进行寻址,位寻址区地址如表1所示
表1 ram位寻址区地址表
3. 中断服务程序的入口地址
在程序存储区中,为中断服务程序保存了一段中断服务程序的入口地址:其中一组特殊单元是0003h—0032h,各个单元各有用途,它们被分为六段,每个段8个字节,专门留给中断服务程序使用,被称为中断矢量区。at89s52共有8个中断源,6个中断矢量,它们的定义如下表2所,
表2 中断服务程序的入口地址
4.特殊功能寄存器sfr(special? function register)
特殊功能寄存器是指有特殊用途的寄存器集合,也称为专用寄存器,本质上是一些具有特殊功能的片内ram单元,反映单片机的运行状态,很多功能也通过特殊功能寄存器来定义和控制程序的执行。
at89s52单片机内部高128(80~ffh)地址分配给特殊功能寄存器。这个地址空间和芯片内数据存储器的高128字节地址完全重叠,但两者在物理硬件上是完全独立的,用寻址方式来区分这个完全重叠的地址空间。使用直接寻址方式访问这个地址空间时,访问的是特殊功能寄存器;使用间接寻址方式访问这个地址空间时,访问的是数据存储器。
at89s52有32个特殊功能寄存器,它们被离散地分布在内部ram的80h~ffh地址中,这些寄存的功能已作了专门的规定,用户不能修改其结构。
5.几个注意问题
(1)地址的重叠性
单片机中的所有存储器都必须分配地址,可以寻址的地址范围为64kb,数据存储器与程序存储器都占用相同的地址。
程序存储器中片内片外0000h~0ffffh低4kb地址完全重叠,但是我们使用引脚进行区分:=0时,选择片外,=1时,选择片内,这样就完全区分开来了。
数据存储器中片内外0000h~00ffh的256个单元地址完全重叠,片内外数据的访问采用不同指令来区分:mov指令访问片内数据存储器,movx指令访问片外数据存储器。
(2)程序存储器(rom)与数据存储器(ram)的区分
程序存储器(rom)与数据存储器(ram)的区分在使用上是严格区分的,程序存储器只能放置程序指令及常数表格,对程序存储器中数据的访问只可以使用movc指令。而数据存储器则存放数据,片内外的操作指令分别用mov,movx进行操作。
(3)位地址空间的区域划分
片内ram中的20h~2fh的128位,以及sfr中的位地址,这些位寻址单元与位指令集构成了位处理器系统