Ⅰ 51單片機程序空間大小
AT89C52的程序空間是8KB是確認無疑的,但指的是存放純二進制的機器碼,就是二進制數。而KeilC編譯的HEX代碼文件並不是純二進制數,是以ASCII碼格式存放的文件,而且其中還有一些編譯信息,如地址、校驗和等。所以,不能看HEX文件的大小來確定下載到單片機內的真正的程序空間大小,也就是說HEX文件的大小並不是真正下載的單片機的程序大小。而下載到單片機的代碼空間大小要看Keilc編譯時給出的代碼數的提示,才是真正要下載到單片機內的代碼空間。舉個例子,下圖是一個程序編譯後的提示,真正的二進制代碼是337個位元組,而HEX文件卻是1KB。這里還有一個誤區,你看到的HEX文件的大小是操作系統給出的大小吧,它是取整KB的,就是說HEX文件不足1KB時,也顯示是1KB。
再明確一點說吧,假如編譯後的代碼是750418,用純二進制數(即BIN格式,有些匯編程序的編譯器輸出的就是BIN格式)的代碼保存就是3個位元組,而用HEX格式保存就是6個位元組,因為要用6個ASCII碼來表示。這來算來,HEX文件大小是BIN文件的二倍,加上一些地址信息,是大於二倍的。
好,回到你的問題來,你的HEX文件是19KB,你看一下編譯後的代碼大小提示,肯定是不會超過8KB的,否則編譯時肯定會報錯的。
Ⅱ c51單片機的數據存儲空間是多大的,求大蝦!!!!!!
不同型號的數據存儲空間不同。基本型號一般有128或256位元組,某些擴展型號片內具有512、768、1024乃至更多的SRAM。
另外通過片外擴展,51單片機可以實現64kB乃至理論上無窮大的外部數據訪問空間。
Ⅲ 51單片機的程序大小問題
1、4K容量的程序Flash空間,肯定是無法裝載燒寫5K代碼的。
2、HEX文件在編程器軟體打開後,可以看到實際程序容量(機器碼)大小。文件大小會稍大。
3、模擬可能是沒有代碼限制的。
4、解決方法:去掉STARTUP.A51文件。在編譯選項中,改變優化代碼等級為9。並選擇Favor size。重新編譯程序試試。完成項目要求前提下,節省一些code常量定義。
Ⅳ 51系列單片機的內存各是多大
51單片機僅有128 Byte內部RAM
52單片機有256 Byte內部RAM
但現在多數51兼容單片機總RAM為512B至1K
超過256 Byte部分為外部RAM
Ⅳ C51單片機內部RAM多大,有的書上說128B,有的書上說256B,弄得我暈了都。
在 51 系列單片機內部的位元組單元,共有 256 個地址。
分為低 128 位元組、高 128 位元組。
其中:
低 128 位元組,是「片內 RAM」;
高 128 位元組,是「特殊功能寄存器 SFR」,必須「直接定址」。
-------
對於 52 系列,在高 128 位元組,增加了「片內 RAM」,則必須「間接定址」。
-------
SFR,其地址與「高 128 的片內 RAM」地址相同,
但是,定址方法不同,操作的目的地,就不同。
所以,SFR,不屬於片內 RAM。
Ⅵ mcs51單片機外形尺寸大小
如圖片中這種單片機,STC公司DIP40封裝的51單片機,它的外形尺寸見下圖: