欢迎来到天天文库
浏览记录
ID:21246164
大小:144.50 KB
页数:12页
时间:2018-10-20
《单片机存储空间区》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单片机存储空间区分单片机自身带有4KBROM程序存储器,128BRAM数据存储器。程序存储器:单片机有16位的地址总线即可寻址空间为64KB(216=210x26=64KB0x0000~0xFFFF)内部数据存储器:单片机有256B的内部数据存储器:128B(0x00~0x7F)为内部随机存储器;128B(0x80~0xFF)的特殊功能寄存器SFR(分散到各个功能部件中,并没有统一到一个128B的存储器中,所以这128B寄存器物理上不存在,除了定义的特殊寄存器地址外,其他地址不能使用)。单片机存储空间区分单片机存储空间区分数据缓存器位寻址区4组工作寄存器区单片机存储空间区分
2、SP单片机存储空间区分内部数据存储器RAM全局变量:在静态存储区分配空间,作用于全局局部变量(auto):在堆栈里分配空间,作用于局部静态(static)局部变量:在静态存储区分配空间,作用于局部(只在定义该变量的函数内有效)静态全局变量:在静态存储区分配空间,作用于局部(只在定义该变量的源文件内有效)单片机存储空间区分voidB(){Inta,b;}voidA(){Inta,b;B();}单片机存储空间区分Code中实际例子voidKey_ScanKeypad(void){BYTEkeypadStatus=0;staticBYTEkeypadStatus2=0;stati
3、cBYTEkey_debounce_count=0;if(CheckeDownKeyStatus()){}}单片机存储空间区分关键字物理空间寻址方式寻址范围运行速度1.Data片内RAM直接寻址片内128B快2.Idata片内扩展RAM寄存器间接寻址片内256B中3.Pdata片外扩展RAMP2口寻址256B页面慢4.Xdata片外扩展RAM数据指针寻址64KB慢5.Code片内/外ROM数据指针寻址64KB慢6.BANK0~BANK31内存区间参数表data固定指向单片机内部存储器128BRAM中0x00~0x7F,速度最快生成的代码最小,由于受到空间大小的限制,一般存放
4、局部变量,因为局部变量的空间是可以覆盖的(某个函数的局部变量占用的空间在退出该函数时就被释放了,由别的函数的局部变量覆盖)。★Keilc里遇到未调用的函数,编译器就将其认为可能是中断函数,函数里面的局部变量占用的空间就不释放,同全局变量一样处理。Idata固定指向单片机内部存储器256RAM中0x00~0xFF,前128B与data完全相同只是访问的方式不同00H~FFH(IDATA)=00H~7FH(DATA)+80H~FFH(IDATA)单片机存储空间区分Pdata外部扩展RAM的低256BXdata外部扩展RAM指外部0x0000~0xFFFF,外部扩展RAM通常是内
5、置于单片机内部的,所以xdata的数据存放于单片机内部的外部扩展RAM,这里的外部扩展RAM是相对于内部RAM来说,而不是相对于单片机来说的。单片机存储空间区分单片机存储空间区分Code此关键字用于将数据存放于片外ROM区0000H~FFFFH,程序区(ROM)的数据在程序运行时不能改变的,所以code用于存放占用空间较大,不需改变的数据。同理data存放于数据区。BANK分组代码区:codebanking技术最大可扩展访问32x64KB。每段代码空间(每个bank)中必须留出一段公用代码区域,用于存放一直需要访问的函数和数据常量,例如中断,切换bank相关部分。在编译时,
6、KeilC51将公用程序复制到每个代码的公用代码区域中。单片机存储空间区分
此文档下载收益归作者所有