| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 51单片机存储器原理 -> 正文阅读 |
|
[嵌入式]51单片机存储器原理 |
一、 80C51单片机的存储器结构80C51单片机的存储器包括两类:程序存储器和数据存储器。 程序存储器用来存放用户程序和常用的表格、常数,采用只读存储器(ROM)作为程序存储器。 数据存储器用来存放程序运行中的数据、中间计算结果等,采用随机访问存储器(RAM)作为数据存储器。 从物理地址上看,MCS-51系列单片机有4个存储器空间,即片内程序存储器和片外程序存储器、片内数据存储器和片外数据存储器。 ?二、片内数据存储器80C51单片机的内部存储器分为内部程序存储器和内部数据存储器,这种程序与数据分开存放的存储器结构称为“哈佛”结构。(所谓哈弗就是数据与程序分开存储,这也是51单片机的缺点:速度不快;对应的是冯诺依曼结构,是数据与程序存储一块。) 因为80C51单片机的内部数据存储器有256个单元,所以单元地址用8位二进制数表示。但这256个单元并不完全是作为数据存储器来使用的,其中低128个单元(地址范围为00H~7FH)是对用户开放的; 高128个单元(80H~FFH)中分散地分布了21个特殊功能寄存器。 片内RAM低128个单元按其用途可分为3个不同的区域,即工作寄存器区、位寻址区和用户RAM区。 工作寄存器区?????????????? 在此区域中共有32个存储单元,其地址范围是00H~1FH,分成4个通用寄存器组,即通用寄存器组0~通用寄存器组3,每组有8个存储单元,构成通用寄存器R0~R7。各组通用寄存器的名称与单元地址的对应关系见表从表可以看出,每个通用寄存器组都包含相同的通用寄存器R0~R7,它们只是地址不同,所以这4个通用寄存器组是不能同时使用的,可以使用程序状态字寄存器(PSW)中的RS1和RS0位来选择当前使用的通用寄存器组,在单片机的初始状态下,当前使用的通用寄存器组为通用寄存器组0。 ? ?
位寻址区位寻址区位于工作寄存器区之上,它的地址范围是20H~2FH,共16个单元。这16个单元都有单元地址(也称字节地址),可以按单元地址访问其内部存储的8位二进制数,称为单元寻址。另外,这16个单元中的每一位都有一个位地址,也可以按位地址访问所存储的一位二进制数,称为位寻址。所以,位寻址区的单元既可以按单元寻址,也可以按位寻址。这128位的位地址范围是00H~7FH。
?用户RAM区从地址30H至7FH共80个单元,把这一存储区域称为用户RAM区。对这个区域的使用,不做任何规定和限制,一般把堆栈设置在此区域。 特殊功能寄存器(SFR,Special Function Register) 80C51单片机有21个特殊功能寄存器,它们分散地分布在80H~FFH地址范围内的21个单元中,剩余的存储单元用户不能使用。 程序存储器在MCS-51系列单片机中,有些单片机内部含有程序存储器,例如80C51单片机内部含有4KB程序存储器; 无论内部有无程序存储器,外部都可以再扩展程序存储器,扩展的最大容量为64KB,下面以80C51单片机为例加以说明。80C51内部含有4KB ROM,其地址范围是0000H~FFFH。它的外部可以再扩展64KBROM,其地址范围是0000H~FFFFH。从两者的地址对比可以看出,内部程序存储器的地址和外部存储器的低4K地址重叠,地址范围都是0000H~0FFFH。解决的办法就是利用引脚的状态来区分。如果引脚接地,即=0时,就使用64KB的外部程序存储器;如果引脚接高电平,即=1时,就使用4KB的内部程序存储器和外部程序存储器的高60KB空间,如图2.3所示。总之,CPU可访问的程序存储器的最大容量为64KB。注意:由于80C31单片机内部不含有程序存储器,要在片外外接程序存储器,因此它的引脚必须接地。 单片机的程序存储器中有两个具有特殊功能的区域。
|
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 18:44:28- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |