導航:首頁 > 操作系統 > 51單片機程序大小怎麼算

51單片機程序大小怎麼算

發布時間:2022-10-01 05:47:11

㈠ 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的,否則編譯時肯定會報錯的。

㈡ 51單片機程序長度有限制嗎 程序存儲

51單片機理論上最大支持64K的程序定址空間,但實際上現在有些51核心的單片機可以通過BANK的切換支持到256K的程序。但實際上的單片機空間都不會這么大,有2K,4K,8K等等很多規格,具體要查你所使用的單片機手冊。
另外,HEX文件的大小與BIN文件是不一樣的,因為HEX文件中還包含了實際數據的地址,長度,校驗等信息,而BIN中只有實際數據,所以HEX肯定要比BIN大了。程序的長度要看BIN的大小為准。HEX而BIN是可以互相轉換的,網上有很多轉換的小工具。

㈢ 怎麼知道自己在51單片機內編的C程序有多大,因為各種單片機內存不同,要根據程序大小來選機子。謝謝

一般情況下,根據你編譯的hex的大小就可以確定了,STC89S58一般肢體模仿動作的超大程序都可以寫進去,這點你也可以放心,而且STC公司出了一款類似ARM晶元的單片機,自帶AD,你可以看看這一款。STC90C516RD+

㈣ 51單片機C語言程序大小

STC89C51最大支持4k大小的程序HEX,建議換大點的程序存儲器的51器件. 還有STC8905X,X表示程序存儲器大小,為4*X KB,還要注意內部RAM的空間大小,這直接決定數據存儲的大小!

不會吧!有點旋啊,你編譯 能通過么?
一般.C文件14K的話,HEX不會超過8K,52肯定是夠的!

㈤ 51單片機的程序大小問題

1、4K容量的程序Flash空間,肯定是無法裝載燒寫5K代碼的。
2、HEX文件在編程器軟體打開後,可以看到實際程序容量(機器碼)大小。文件大小會稍大。
3、模擬可能是沒有代碼限制的。

4、解決方法:去掉STARTUP.A51文件。在編譯選項中,改變優化代碼等級為9。並選擇Favor size。重新編譯程序試試。完成項目要求前提下,節省一些code常量定義。

㈥ 51單片機long,double,float,int范圍是多大,各多少位元組

在keilC51或者iar for c8051編譯器下:

一、int 占兩個位元組 范圍:-32768~+32767

二、long佔四個位元組 范圍:-2147483648~+2147483647

三、float佔四個位元組 范圍:3.40E+38 ~ +3.40E+38

四、double佔8個位元組 范圍:-1.79E+308 ~ +1.79E+308

51單片機是對所有兼容Intel 8031指令系統的單片機的統稱。該系列單片機的始祖是Intel的8004單片機,後來隨著Flash rom技術的發展,8004單片機取得了長足的進展,成為應用最廣泛的8位單片機之一。

(6)51單片機程序大小怎麼算擴展閱讀:

51單片機功能特性

1、可以模擬63K程序空間,接近64K 的16位地址空間;

2、可以模擬64Kxdata 空間,全部64K 的16位地址空間;

3、可以真實模擬全部32 條IO腳;

4、完全兼容keilC51 UV2 調試環境,可以通過UV2 環境進行單步,斷點, 全速等操作;

5、可以使用C51語言或者ASM匯編語言進行調試 ;

6、可以非常方便地進行所有變數觀察,包括滑鼠取值觀察,即滑鼠放在某 變數上就會立即顯示出它此的值;

7、可選 使用用戶晶振,支持0-40MHZ晶振頻率;

8、片上帶有768位元組的xdata,您可以在模擬時選 使用他們,進行xdata 的模擬;

9、可以模擬雙DPTR 指針;

10、可以模擬去除ALE 信號輸出. ;

11、自適應300-38400bps 的所有波特率通訊;

12、體積非常細小,非常方便插入到用戶板中.插入時緊貼用戶板,沒有連接電纜,這樣可以有效地減少運行中的干擾,避免模擬時出現莫名其妙的故障;

13、模擬插針採用優質鍍金插針,可以有效地防止日久生銹,選擇優質園腳IC插座,保護模擬插針,同時不會損壞目標板上的插座. ;

14、模擬時監控和用戶代碼分離,不可能產生不能模擬的軟故障;

15、RS-232介面不計成本採用MAX202集成電路,串列通訊穩定可靠,絕非一般三極體的簡易電路可比。

㈦ 如何計算單片機的程序存儲空間

1.單片機的位數取決於其CPU寄存器一次能處理的數據寬度,比如51單片機是8位的,因為其ACC是8位,一次只能處理8位數據,STM32的R寄存器是32位的,一次能處理最大32位的數據,所以是32位單片機。

2.程序存儲空間在在嚴格意義上講是取決於其程序計數器(PC)的寬度,比如51單片機的PC是16位的,所以就是64KB存儲空間。像STM32單片機的PC是32位的,所以可以有4G的存儲空間,但實際上使用只是其中很小的,幾百KB的空間。

㈧ 51單片機程序的大小怎麼看好想不是看hex文件的大小的。

keil編譯後,可以看到
如 Program Size: data=14.0 xdata=0 code=177
data區是14個位元組 code區 177個位元組

㈨ 51單片機 用匯編語言怎麼編程:幾個有符號數的比較大小

51單片機中,沒有專門的有符號數比較指令,只能通過一些變通的方法來實現,比如:
比較30H和40H中有符號數的大小,結果放在R2中,大於則為1,等於為0,小於為128:
CMPDAT:
MOV A,30H
JB ACC.7,CMPF1
MOV B,A
MOV A,40H
JB ACC.7,CMPZ2 ;30H正,40H負所以30H>40H
CJNE A,B,CMPZ1 ;均為正,比較大小
MOV R2,#0
RET
CMPZ1:
JC,CMPZ2
CMPZ11:
MOV R2,#128
RET
CMPZ2:
MOV R2,#1
RET
CMPF1:
ANL A,#7FH
MOV B,A
MOV A,40H
JNB ACC.7,CMPF3 ;30H負,40H負
SJMP CMPZ11 ;30負,40H正,所以30H<40H
CMPF3:
ANL A,#7FH
CJNE A,B,CMPF10 ;兩個均為負數
MOV R2,#0
RET
CMPF10:
JC CMPZ2 ;30H<40H(負數小者大)
SJMP CMPZ11 ;30H>40H

閱讀全文

與51單片機程序大小怎麼算相關的資料

熱點內容
程序員用得到數字區嗎 瀏覽:174
python求商 瀏覽:477
ipad能用c語言編譯器嗎 瀏覽:561
軟泥解壓球最新版 瀏覽:998
4萬程序員辭職創業 瀏覽:759
thinkingphp 瀏覽:597
安卓相冊移動文件夾 瀏覽:6
耳朵清潔解壓聲控99的人都睡得著 瀏覽:205
叉車出租網站源碼 瀏覽:874
共享單車的app是什麼 瀏覽:408
不帶gui的伺服器什麼意思 瀏覽:373
金剛經及PDF 瀏覽:102
php中冒號 瀏覽:358
php5432 瀏覽:352
命令在哪使用 瀏覽:172
php獲取網頁元素 瀏覽:708
為什麼需要硬體驅動編譯 瀏覽:885
pm編程怎樣看導柱孔對不對稱 瀏覽:138
農業大學選課找不到伺服器怎麼辦 瀏覽:660
路由配置網關命令 瀏覽:935