51微控制器內部ram

2021-06-18 00:31:07 字數 1157 閱讀 3007

51微控制器預設的內部ram只有128位元組,52微控制器增加至256位元組,stc89c54、55、58、516等增加到1280位元組。

微控制器內部ram,共256個單元,使用者使用前128個單元,用於存放可讀寫資料,後128個單元被專用暫存器占用。現在新出的51微控制器都在內部擴充套件了外部ram,通常的情況是256b+1024b的ram組合,不過在晶元內部之所以還叫外部ram是因為是用外部匯流排連線的,訪問方式還是movx。

51微控制器內部ram分配如下:

位址0x80~0xff

高128位元組,用於sfr

0x30~0x7f

資料緩衝區

0x20~0x2f

16個位元組(28位)可位定址bdata區

0x1f

第四組暫存器r0~r7

0x10~0x17

第三組暫存器r0~r7

0x08~0x0f

第二組暫存器r0~r7

0x00~0x07

第一組暫存器r0~r7

可位定址bdata區unsigned char bdata test;

sbit test0=test^0;就可以單獨使用test的第0位

資料緩衝區unsigned char data test;

外部儲存區a=xbyte[0x8100];從位址8100h讀乙個位元組

b=*((char xdata *)0x0000);從位址0000h讀乙個位元組

在keil->option->target->memorymode中有三種儲存器模式:small、compact、large。

small:變數儲存在內部的ram。

large:變數儲存在外部ram裡。

一般都使用small來儲存變數,微控制器優先把變數儲存在內部ram,如果內部ram不夠再到外部ram裡,而large則先將變數儲存到外部ram。

採用small方式,unsigned char xdata a;指定變數a儲存在外部ram

unsigned char a;變數預設儲存在內部ram裡

採用large方式,unsigned char xdata a;變數儲存在外部ram

unsigned char a;變數預設儲存在外部ram

微控制器內部擴充套件RAM

51微控制器內部只有128位元組的ram 8051 而8052有256位元組的ram,低128位元組ram直接或間接定址都可以,高128位元組ram與srf特殊功能暫存器共用位址,sfr只能直接定址,高128位元組ram只能間接定址。所以通常用匯流排方式擴充套件一片ram。一般用62256 32kx...

51微控制器內部資源

運算器 功能 1 從儲存器中取出下一條要執行的指令 取指 2 對取出的指令進行解碼 解碼 3 指揮運算器運算或控制資料傳送 指揮 1 pc是乙個16位專用暫存器,由cpu控制提供下一條執行指令的首位址 2 程式執行時自動加1 按順序執行 3 復位時值為0000h,程式從0開始 4 可被指令修改功能實...

51微控制器內部EEPROM的應用

51微控制器內部eeprom的應用 stc89c51 52內部都自帶有2k位元組的eeprom,54 55和58都自帶有16k位元組的eeprom,stc微控制器是利用iap技術實現的eeprom,內部flash擦寫次數可達100,000 次以上,先來介紹下isp與iap的區別和特點。表1 isp ...