51單片機RAM 數據存儲區學(xué)習筆記
1.RAM keil C語(yǔ)言編程
RAM是程序運行中存放隨機變量的數據空間。在keil中編寫(xiě)程序,如果當前模式為small模式,如果總的變量大小未超過(guò)128B,則未初始化的變量的初值默認為0.如果所有的變量超過(guò)單片機small模式下的128B大小,則必須對變量進(jìn)行初始化,否則超過(guò)RAM大小變量的值是不確定的,在small模式下超過(guò)128B大小的變量也必須在編譯器中重新設定存儲器的存儲模式。
在keil中,可選擇small,compact,large三種方式存儲數據變量:
在keil中可以用“TargetOptions”來(lái)配置這一項:
圖1 選擇數據存儲模式
2.片內數據存儲區
(1) 工作寄存器區
工作寄存器區位于片內數據存儲器中的00H~1FH單元,共32字節( 如此說(shuō)來(lái)每個(gè)單元是一個(gè)字節了 ),分成四組。每組8個(gè)字節,分別記為R0~R7.
程序默認在0區工作寄存器組存放中間運算數據。等待中斷來(lái)時(shí),中斷數據工作寄存器組由0區切換到其它區域。
選擇四組工作寄存器區的哪一組作為R0~R7由位于PSW寄存器的兩位RS1,RS0來(lái)確定.
RS1,RS0稱(chēng)為區開(kāi)關(guān)或組開(kāi)關(guān),兩位就可決定四種狀態(tài).
(2)位尋址區
用戶(hù)存儲區位于片內數據存儲器中的020H~02FH單元,共16個(gè)字節,共128位,每個(gè)字節單元的位都有一個(gè)單獨的地址,分別為00H-07H,如020H.1表示020H單元的bit[1]位。020H~02FH單元可作為位尋址區。這個(gè)范圍內的存儲單元最大的用處就是能進(jìn)行位操作,在C語(yǔ)言中,只能用位操作運算符(、|、^、~、、>>)來(lái)對字節數據進(jìn)行位操作運算。如果用匯編指令就可以直接對此片存儲單片進(jìn)行位操作。
51單片機相關(guān)文章:51單片機教程
c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
評論