×

51单片机内存的一些问题讲解

消耗积分:1 | 格式:pdf | 大小:0.05 MB | 2019-04-23

分享资料个

  关于51单片机内存问题,一直是个疑惑大家的问题,因为51单片机是个很另类的单片机。

  下面我给楼主讲解一下:

  51单片机之所以另类,是因为,他寻址内存的空间,不是靠总线,是用指令的方式。

  51单片机有以下几个内存模块组成:

  1】ROM或者Flash,叫程序存储区,你写的程序是存在这里面的,上电后从这里面执行。程序存储区也分为片内和片外,一般来说,现在的51很多已经做到了64K,所以很少有外扩片外Flash或者片外的Rom了,Flash或者Rom不管是片内还是片外的,只能用来定义常量,是用code来修饰,也就是说,用code来修饰的东西,在程序运行过程中,不能修改;

  2】RAM有------内部RAM的低128位(00-7F),对应C语言就是data,比如我定义一个变量, data unsigned char Var = 0; 那么,这个Var变量就是放在内部的低128位Ram中 -------内部RAM的高128位(80-FF),对应C语言就是idata,比如我定义一个变量, idata unsigned char Var = 0; 那么,这个Var变量就是放在内部的高128位Ram中 -------特殊功能寄存器(SFR)(80-FF),对应C语言就是Sfr比如我定义一个变量, Sfr unsigned char Var = 0x90; 那么,这个Var变量就是放在内部的特殊功能寄存器中,这是你对Var操作,相当于操作一个特殊的寄存器,但是小心,不能随便定义Sfr变量,很危险 ------外部RAM 64K(0000-FFFF)外部的RAM可以扩展到65536个,但是前256个算是一页,这一页比较特殊,是用 pdata来修饰的,当然,也可以用xdata来修饰。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !