日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當(dāng)前位置:首頁 >> 技術(shù)中心 >> 單片機(jī)入門 >> 51單片機(jī)RAM 數(shù)據(jù)存儲區(qū)學(xué)習(xí)筆記

51單片機(jī)RAM 數(shù)據(jù)存儲區(qū)學(xué)習(xí)筆記

作者:admin 來源:不詳 發(fā)布時間:2018-05-08  瀏覽:18

1.RAM keil C語言編程


RAM是程序運(yùn)行中存放隨機(jī)變量的數(shù)據(jù)空間。在keil中編寫程序,如果當(dāng)前模式為small模式,如果總的變量大小未超過128B,則未初始化的變量的初值默認(rèn)為0.如果所有的變量超過單片機(jī)small模式下的128B大小,則必須對變量進(jìn)行初始化,否則超過RAM大小變量的值是不確定的,在small模式下超過128B大小的變量也必須在編譯器中重新設(shè)定存儲器的存儲模式。


在keil中,可選擇small,compact,large三種方式存儲數(shù)據(jù)變量:


1.jpg


在keil中可以用“TargetOptions”來配置這一項:


2.jpg


圖1 選擇數(shù)據(jù)存儲模式


2.片內(nèi)數(shù)據(jù)存儲區(qū)


(1) 工作寄存器區(qū)


工作寄存器區(qū)位于片內(nèi)數(shù)據(jù)存儲器中的00H~1FH單元,共32字節(jié)( 如此說來每個單元是一個字節(jié)了 ),分成四組。每組8個字節(jié),分別記為R0~R7.


3.jpg


程序默認(rèn)在0區(qū)工作寄存器組存放中間運(yùn)算數(shù)據(jù)。等待中斷來時,中斷數(shù)據(jù)工作寄存器組由0區(qū)切換到其它區(qū)域。


選擇四組工作寄存器區(qū)的哪一組作為R0~R7由位于PSW寄存器的兩位RS1,RS0來確定.


RS1,RS0稱為區(qū)開關(guān)或組開關(guān),兩位就可決定四種狀態(tài).


4.jpg


(2)位尋址區(qū)


用戶存儲區(qū)位于片內(nèi)數(shù)據(jù)存儲器中的020H~02FH單元,共16個字節(jié),共128位,每個字節(jié)單元的位都有一個單獨(dú)的地址,分別為00H-07H,如020H.1表示020H單元的bit[1]位。020H~02FH單元可作為位尋址區(qū)。這個范圍內(nèi)的存儲單元最大的用處就是能進(jìn)行位操作,在C語言中,只能用位操作運(yùn)算符(&、|、^、~、<<、>>)來對字節(jié)數(shù)據(jù)進(jìn)行位操作運(yùn)算。如果用匯編指令就可以直接對此片存儲單片進(jìn)行位操作。


如 SETB, 020H.1 就將020H的bit[1]置為了1.


除了RAM此片能進(jìn)行位尋址的用戶存儲區(qū)以外,還有一些特殊的功能寄存器( SFR )也能進(jìn)行位尋址。


(3)數(shù)據(jù)緩沖區(qū)


51系列數(shù)據(jù)緩沖區(qū)地址為30H-7FH,共80字節(jié)。只能字節(jié)尋址,不能位尋址。由于工作寄存器和位尋址區(qū),數(shù)據(jù)緩沖區(qū)是統(tǒng)一編址的,所以這三者都可以用作數(shù)據(jù)緩沖區(qū)。


(4)堆棧


棧:由系統(tǒng)自動分配釋放,存局部值。


堆:一般由程序員分配和釋放。


堆棧指針SP:8位寄存器,堆棧最大可達(dá)128單元,只可在片內(nèi)RAM中進(jìn)行堆棧操作。


堆棧作用:用來保存地址、數(shù)據(jù)信息、具有先進(jìn)后出特性,也是一種能存放二進(jìn)制數(shù)據(jù)的空間。


MC51堆棧采用滿頂法向上生成的軟件堆棧。


軟件堆棧:借助SP進(jìn)行控制操作。


堆棧向上生長:新壓棧的數(shù)據(jù)成為堆棧頂。


堆棧向下生長:新壓入的數(shù)據(jù)遠(yuǎn)離堆棧頂。


地址大小還得看存儲方式。


(5)專用寄存器區(qū)


專用寄存器區(qū),也稱特殊功能寄存器區(qū) SFR


SPECIAL FUNCTIONREGISTER


尋址地址離散地分布在80H~FFH,共128字節(jié)的空間.而實際有用的只有21個字節(jié),即在這一空間里只有18個專用功能寄存器,其中有3個專用功能寄存器占用了兩個字節(jié).SFR主要用于片內(nèi)硬件的管理,通常只能以字節(jié)為單位借助于MOV指令直接尋址,但也有一些專用功能寄存器可以位尋址。


包含程序狀態(tài)字PSW、數(shù)據(jù)指針寄存器DPTR、端口地址P0-P0、其它專用寄存器(累加器A、B)


3.片外數(shù)據(jù)存儲區(qū)


片外RAM區(qū):可尋空間為共64K 0000H~FFFFH,


總是使用MOVX類指令尋址


借助于工作寄存器R0或R1間接尋址時,可尋256字節(jié)


從片外RAM區(qū)取數(shù)據(jù): MOVX A,@Ri i=0-1


向片外RAM區(qū)存數(shù)據(jù): MOVX @Ri,A


借助16位的數(shù)據(jù)指針DPTR間接尋址,可尋64K字節(jié):


從片外RAM區(qū)取數(shù)據(jù): MOVX A,@DPTR


向片外RAM區(qū)存數(shù)據(jù): MOVX @DPTR,A


區(qū)分是訪問內(nèi)部存儲器還是外部存儲器地址靠指令來區(qū)分。

編輯:admin  最后修改時間:2018-05-08

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

安达市| 宁南县| 北宁市| 增城市| 定安县| 宜章县| 启东市| 霍林郭勒市| 扬州市| 南平市| 玉田县| 灵山县| 南召县| 陈巴尔虎旗| 台北市| 利津县| 高淳县| 图片| 江陵县| 桦南县| 弥渡县| 汪清县| 巫山县| 新平| 贵溪市| 深圳市| 陆河县| 略阳县| 舟曲县| 和静县| 资中县| 开远市| 遂溪县| 新巴尔虎左旗| 丰都县| 祁东县| 米易县| 镇江市| 浮梁县| 山西省| 南木林县|