初学51总是会有这样的疑问,从电脑下载程序到开发板后,程序去哪了? c51中,用户或应用程序,系统程序和数据都是存放在哪的?
51单片机从物理结构上,可分为片内,片外程序存储器,片内片外数据存储器。
51单片机从功能上,有程序存储器,片内数据存储器,特殊功能寄存器,位地址空间,片外数据存储器。
程序存储器
51单片机的程序存储器用于存储代码和一些固定表格常数。
可寻址的程序存储器空间为64kb。
51单片机的从物理角度上可分为:片内,片外程序存储器,作为编址空间,编址规律是:先片内,后片外,片内片外连续,不重叠。
如图:为51单片机程序存储器编址图。
单片机如何执行指令?
如图:
无论片内程序存储器,还是片外程序存储器,他们的地址是共享的。如果片内4krom的话,地址就是0x0000-0x0fff,从0x1000-0xffff就是外部rom的地址空间。可外部rom的0x0000-0x0fff的这一部分是否使用呢,这取决于单片机ea引脚的电平值。ea=1时就是使用内部rom的这一部分,外部rom的这一部分浪费不用;ea=0时就是使用外部rom的这一部分,内部rom浪费不用。从code段读取数据要使用汇编的movc指令,单片机会根据movc指令、ea状态、要读取的地址值,来自动地判断从什么存储器里取数据。
程序地址空间一般可以根据用户需要任意安排使用,但是cpu执行特殊程序的入口地址,用户必须按照规定存放相应的程序。
特殊程序入口地址如图:
数据存储器
51单片机内外数据存储器是两个独立的地址空间,应单独编址。
片内数据存储器地址空间00h-ffh,ram地址空间“00h-7fh”特殊功能寄存器sfr地址空间“80h-ffh”
片外数据存储器地址空间“0000h-ffffh”
如图:
为了使片内数据存储器的存储空间合理运用,对低128字节的ram划分了不同的功能区。
如图:
位寻址区,地址空间20h-2fh,16个单元,共128位。
数据缓冲区,地址空间30h-7fh,共80个单元。
特殊功能寄存器
特殊功能寄存器(sfr,special function registers)别称专用寄存器,主要用于管理,控制,片内逻辑部件,并行i/o口,串行i/o口,定时器/计数器,中断系统等功能模块的工作。
总结:对于数据存储器,则分为内部数据存储器(idata/ram)和外部数据存储器(xdata)两个部分,但这两个存储器就不像code存储器那样共享地址空间的了。一般的8051芯片,内部ram只有128b,从0x00-0x7f,而从0x80-0xff则是sfr(cpu工作寄存器和各种外设寄存器都在此)的区域。对于8052来说,内部ram有256b,所以0x80-0xff是高128b的ram在使用。可这部分不是sfr专用的吗?是sfr专用,但注意,sfr的访问只能使用“直接寻址方式”(使用特定的汇编指令来实现),区别就在这里。只有通过直接寻址访问的地址才是sfr,否则就是普通的ram。至于外扩的ram(xdata),地址也是从0x0000-0xffff的,而且这里的0x0000和内部ram的0x00是不同的,是完全独立的两个空间。他们的访问方法也是不同的。mcs-51使用movx指令,来读写xdata区。而且,访问xdata区,是需要dptr寄存器来辅助的。因为只有dptr才能装得下十六位的xdata地址。参考:
特殊功能寄存器
特殊功能寄存器(sfr,special function registers)别称专用寄存器,主要用于管理,控制,片内逻辑部件,并行i/o口,串行i/o口,定时器/计数器,中断系统等功能模块的工作。
51单片机中,专用寄存器与片内ram统一编址,且作为直接寻址使用。
51单片机有18个专用寄存器,其中3个是双字节寄存器,占用21个字节。
在sfr块的地址空间80h-ffh中,仅仅只有21个字节作为特殊功能寄存器离散分布在这128个字节范围中,其余字节无定义,但是用户不能对这些字节进行“读写操作”
下图为特殊功能寄存器的名称,表示符,地址一览表。
FPGA系统的集成式电源管理单元简化
3D建模服务三维扫描测量CAD画图服务
西门子变频器与S7-300/400 的PROFIBUS-DP通讯过程
纸张表面瑕疵检测系统的工作原理及功能
一位前端工程师的迷离人生
51单片机存储程序和数据
单片机c语言教程第十一章--C51复合语句和条件语句
大功率超声波塑料金属焊接电源发生器设计
Allseated 推出全新创新技术平台 Prismm,进入发展新纪元
小米手环3首次更新,将加入“手机静音”功能
鸿蒙的数据库知识点学习
无缝拼接屏能做到没有拼缝吗
怎样取出iPhone里的SIM卡
嵌入式必懂的CAN总线讲解
2022年有哪些好用的蓝牙耳机推荐?盘点四款实用的蓝牙耳机
六相微机继电保护测试仪的技术参数与面板说明
多款VR/AR产品集成了Leap Motion的手部追踪传感器
R3754B网络分析仪
Linux内核之伙伴分配器
陆芯Gen2 IGBT产品通过AEC-Q101认证