"51单片机存储程序和数据的机理" 单片机是怎样存储程序和数据的?这是一篇关于51单片机存储机理的文章,通过对MCS-51的结构和工作原理的分析,来了解单片机是怎样存储程序和数据的。 MCS-51使用哈弗结构,它的程序空间和数据空间是分开编址的,即各自有各自的地址空间,互不重叠。程序存储器有片内和片外两部分,而片内程序存储器和片外程序存储器的地址是共享的。如果片内4k ROM的话,地址就是0x0000-0x0FFF,从0x1000-0xFFFF就是外部ROM的地址空间。 对于数据存储器,则分为内部数据存储器(IDATA/RAM)和外部数据存储器(XDATA)两个部分,但这两个存储器就不像code存储器那样共享地址空间的了。内部RAM只有128B,从0x00-0x7F,而从0x80-0xFF则是SFR(CPU工作寄存器和各种外设寄存器都在此)的区域。外部RAM(XDATA),地址也是从0x0000-0xFFFF的,这里0x0000和内部RAM的0x00是不同的,是完全独立的两个空间。 MCS-51读写IDATA区的速度是最快的,而且访问方法也是最多的。访问XDATA区的速度相对就要慢很多。MCS-51的堆栈要优先开辟在IDATA区中,并且在IDATA区中开辟的堆栈,可以使用栈指针寄存器SP来控制。如果栈实在太大,只能开辟在XDATA区中,那么CPU的SP寄存器就很难借力,只能由我们自己来构造堆栈结构和堆栈指针。 在实际应用中,外部程序空间和数据空间都是0-64K(0x0000-0xFFFF),那么我实际上可以为了省事/方便改写程序等原因,外部的CODE和DATA就可以共用一个可擦写存储器了(比如各种RAM什么可擦可写的)。只是此时本来完全独立的CODE和DATA空间,因为在硬件芯片上共用了一个MEMORY,所以他们之间就可能互相影响了,程序就能自己改写程序了。 单片机存储空间是一个逻辑上的概念,是人为划分出来的两个相互独立的空间。而硬件电路上的MEMORY芯片则是现实中的概念,单片机的存储空间最终会落实在电路层面的芯片上,所以逻辑上的存储空间会因为物理上的电路连接而发生重叠。但是在逻辑层面上,这两个空间还是完全独立的。 51单片机存储程序和数据的机理是通过MCS-51的结构和工作原理来实现的,它的程序空间和数据空间是分开编址的,并且有内部和外部两部分。了解单片机的存储机理,可以帮助我们更好地使用单片机,提高程序的效率和可靠性。
- 粉丝: 3
- 资源: 874
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助