51單片機存儲器內(nèi)存詳解
51單片機當(dāng)中的存儲器從功能性上來劃分可以分為程序存儲器與數(shù)據(jù)存儲器,例如新唐的單片機,一般可分為LPROM與APROM。一般來說單片機存儲器的存儲空間是能夠進(jìn)行存儲空間拓展的,但是如何進(jìn)行拓展則需要根據(jù)不同的存儲器類型進(jìn)行選擇,本文就將為大家針對這個問題進(jìn)行講解。
訪問存儲空間時,需要用到兩個指針變量,為DPTR和PC。其中pc為程序計數(shù)器,指向下一條需要執(zhí)行的指令的地址,DPTR為數(shù)據(jù)指針寄存器,這兩個變量的長度都為16位,這是51單片機內(nèi)部結(jié)構(gòu)決定的,無法改變。所以這兩個指針的尋址能力都為64K。這樣看來,兩類存儲器的擴展能力都為64K。但是,如果實際擴展過存儲器,就可以發(fā)現(xiàn)程序存儲器的擴展能力并沒有64K。
為什麼會這個樣子呢?這得從51單片機的存儲空間的編址說起。這里僅作簡單說明,具體可以看教科書。簡單地說,內(nèi)部程序存儲器和外部程序存儲器是一起編址的,它們分別占用64K地址的一部分,所以外部擴展時要減去內(nèi)部的地址空間,當(dāng)然要小于64K。而數(shù)據(jù)存儲器是內(nèi)外部分別編址,內(nèi)外部數(shù)據(jù)存儲器用不同的指令進(jìn)行訪問,所以不用擔(dān)心單片機會混淆內(nèi)外部數(shù)據(jù)存儲器,所以外部數(shù)據(jù)存儲器擴展能力有64K。
編輯:admin 最后修改時間:2019-06-14