家电维修班,手机维修班,电脑维修班,电工班,焊工班,液晶电视维修班,电动工具维修班、电动车摩托车维修班、网络营销培训、网站设计培训、淘宝培训---全国招生 家电维修班,手机维修班,电脑维修班,电工班,焊工班,液晶电视维修班,电动工具维修班、电动车摩托车维修班、网络营销培训、网站设计培训、淘宝培训---全国招生
您的位置:网站首页 > 电工技术 > 正文

51单片机RAM 数据存储区学习笔记

文章导读:51单片机RAM 数据存储区学习笔记具体内容是:1.ramkeilc语言编程ram是程序运行中存放随机变量的数据空间。在keil中编写程序,如果当前模式为small模式,如果总的变量大小未超过128b,则未初始化的变量的初值默认为0.如果所有的变量超过单片机small模式下的128b大…

作者:来源: 日期:2013-12-29 11:17:40 人气:标签:

1.ram keil c语言编程


ram是程序运行中存放随机变量的数据空间。在keil中编写程序,如果当前模式为small模式,如果总的变量大小未超过128b,则未初始化的变量的初值默认为0.如果所有的变量超过单片机small模式下的128b大小,则必须对变量进行初始化,否则超过ram大小变量的值是不确定的,在small模式下超过128b大小的变量也必须在编译器中重新设定存储器的存储模式。


在keil中,可选择small,compact,large三种方式存储数据变量:


1.jpg


在keil中可以用“targetoptions”来配置这一项:


2.jpg


图1 选择数据存储模式


2.片内数据存储区


(1) 工作寄存器区


工作寄存器区位于片内数据存储器中的00h~1fh单元,共32字节( 如此说来每个单元是一个字节了 ),分成四组。每组8个字节,分别记为r0~r7.


3.jpg


程序默认在0区工作寄存器组存放中间运算数据。等待中断来时,中断数据工作寄存器组由0区切换到其它区域。


选择四组工作寄存器区的哪一组作为r0~r7由位于psw寄存器的两位rs1,rs0来确定.


rs1,rs0称为区开关或组开关,两位就可决定四种状态.


4.jpg


(2)位寻址区


用户存储区位于片内数据存储器中的020h~02fh单元,共16个字节,共128位,每个字节单元的位都有一个单独的地址,分别为00h-07h,如020h.1表示020h单元的bit[1]位。020h~02fh单元可作为位寻址区。这个范围内的存储单元最大的用处就是能进行位操作,在c语言中,只能用位操作运算符(&、|、^、~、<<、>>)来对字节数据进行位操作运算。如果用汇编指令就可以直接对此片存储单片进行位操作。


如 setb, 020h.1 就将020h的bit[1]置为了1.


除了ram此片能进行位寻址的用户存储区以外,还有一些特殊的功能寄存器( sfr )也能进行位寻址。


(3)数据缓冲区


51系列数据缓冲区地址为30h-7fh,共80字节。只能字节寻址,不能位寻址。由于工作寄存器和位寻址区,数据缓冲区是统一编址的,所以这三者都可以用作数据缓冲区。


(4)堆栈


栈:由系统自动分配释放,存局部值。


堆:一般由程序员分配和释放。


堆栈指针sp:8位寄存器,堆栈最大可达128单元,只可在片内ram中进行堆栈操作。


堆栈作用:用来保存地址、数据信息、具有先进后出特性,也是一种能存放二进制数据的空间。


mc51堆栈采用满顶法向上生成的软件堆栈。


软件堆栈:借助sp进行控制操作。


堆栈向上生长:新压栈的数据成为堆栈顶。


堆栈向下生长:新压入的数据远离堆栈顶。


地址大小还得看存储方式。


(5)专用寄存器区


专用寄存器区,也称特殊功能寄存器区 sfr


special functionregister


寻址地址离散地分布在80h~ffh,共128字节的空间.而实际有用的只有21个字节,即在这一空间里只有18个专用功能寄存器,其中有3个专用功能寄存器占用了两个字节.sfr主要用于片内硬件的管理,通常只能以字节为单位借助于mov指令直接寻址,但也有一些专用功能寄存器可以位寻址。


包含程序状态字psw、数据指针寄存器dptr、端口地址p0-p0、其它专用寄存器(累加器a、b)


3.片外数据存储区


片外ram区:可寻空间为共64k 0000h~ffffh,


总是使用movx类指令寻址


借助于工作寄存器r0或r1间接寻址时,可寻256字节


从片外ram区取数据: movx a,@ri i=0-1


向片外ram区存数据: movx @ri,a


借助16位的数据指针dptr间接寻址,可寻64k字节:


从片外ram区取数据: movx a,@dptr


向片外ram区存数据: movx @dptr,a


区分是访问内部存储器还是外部存储器地址靠指令来区分。


【看看这篇文章在百度的收录情况】
友情链接: 手机维修培训 监控安装培训 手机维修学校 液晶维修学校 焊工技术学校 家电维修学校 电脑维修学校 电脑维修培训 手机维修培训 电动工具学校 家电维修学校 家装电工培训 电工培训学校 手机维修学校 焊工培训学校 电动工具维修学校 液晶电视维修培训 电动工具维修培训 家电维修培训 家电维修学校 学家电维修 学电脑维修 学手机维修 学电动车摩托车维修 学电工技术 家电维修技术学校 阳光电子学校 学家电维修学校 学电脑维修学校 摩托车维修学校 焊工技术学校 空调维修学校 知识问答网 电动车摩托车维修学校 电工考证学校 电动车摩托车维修培训 摩托车维修学校 电动车维修学校 电器维修学校 电器维修培训 电工焊工学校 电焊工学校 摩托车维修培训 电动车维修培训 电动车摩托车维修学校 空调维修培训学校 笔记本维修培训 维修培训网 中学试卷网 有问必答网 一问三知网 阳光招生网 计算机维修培训学校 更多>>
阳光-中国电工焊工培训品牌倡导者
点击这里给我发消息 点击这里给我发消息 点击这里给我发消息
电工培训学校 电动车维修学校 摩托车维修学校 摩托车维修培训 手机维修培训 家电维修培训 电脑维修培训 电动工具维修培训 液晶电视维修培训 安防监控培训 空调维修培训 网络营销培训 网站设计培训 淘宝网店培训 电器维修培训 家电维修学校 电工培训 焊工培训 电工学校