1. 51單片機程序的大小怎麼看好想不是看hex文件的大小的。
keil編譯後,可以看到
如 Program Size: data=14.0 xdata=0 code=177
data區是14個位元組 code區 177個位元組
2. 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
3. 51單片機程序長度有限制嗎 程序存儲
51單片機理論上最大支持64K的程序定址空間,但實際上現在有些51核心的單片機可以通過BANK的切換支持到256K的程序。但實際上的單片機空間都不會這么大,有2K,4K,8K等等很多規格,具體要查你所使用的單片機手冊。
另外,HEX文件的大小與BIN文件是不一樣的,因為HEX文件中還包含了實際數據的地址,長度,校驗等信息,而BIN中只有實際數據,所以HEX肯定要比BIN大了。程序的長度要看BIN的大小為准。HEX而BIN是可以互相轉換的,網上有很多轉換的小工具。
4. 51單片機C語言程序大小
STC89C51最大支持4k大小的程序HEX,建議換大點的程序存儲器的51器件. 還有STC8905X,X表示程序存儲器大小,為4*X KB,還要注意內部RAM的空間大小,這直接決定數據存儲的大小!
不會吧!有點旋啊,你編譯 能通過么?
一般.C文件14K的話,HEX不會超過8K,52肯定是夠的!
5. 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的,否則編譯時肯定會報錯的。
6. 用Keil C51編寫單片機程序,怎麼看程序多少行
1.怎麼看程序寫了多少行:點擊Edit-configuration...,選擇Editor標簽,在該標簽的左下角,選中Show
Line
Number,這樣在編輯界面就會有行數了.若果你想看匯編有多少行,只需要反匯編一下.
2.怎麼看程序佔了多大的內存:程序編譯成功後,在編譯器界面下方的build窗口中,會給出程序佔用的存儲大小,比如:Program
Size:
data=13.0
xdata=0
code=298
,說明ROM被佔用了298位元組.也可以查看你工程文件夾下的.map文件,在該文件的最後給出了ROM和RAM的詳細使用情況,比如:
=====================================================================
Total
RO
Size
(Code
+
RO
Data)
6320
(
6.17kB)
Total
RW
Size
(RW
Data
+
ZI
Data)
1328
(
1.30kB)
Total
ROM
Size
(Code
+
RO
Data
+
RW
Data)
6388
(
6.24kB)
=====================================================================
補充:⊙﹏⊙,你用的那個版本的keil
c51,我的keil
3,keil
4在菜單Edit都有configuration...選項.你現在用的至少也得是keil
3吧!
7. 51單片機的程序大小問題
1、4K容量的程序Flash空間,肯定是無法裝載燒寫5K代碼的。
2、HEX文件在編程器軟體打開後,可以看到實際程序容量(機器碼)大小。文件大小會稍大。
3、模擬可能是沒有代碼限制的。
4、解決方法:去掉STARTUP.A51文件。在編譯選項中,改變優化代碼等級為9。並選擇Favor size。重新編譯程序試試。完成項目要求前提下,節省一些code常量定義。