keil編譯是十六進制嗎
1. keil編寫程序的時候,16進制的H能省略嗎比如MOV A,#30H與MOV A,#30有區別嗎
#30H的等價是0x30 這兩個都是十六進制,換算成十進制是48
而#30就是十進制30的意思。
綜上,有區別
2. 如何使用Keil生成bin(二進制)格式的文件
Keil生成的是HEX的文件,即是十六進制的代碼文件,不是bin二進制的,但這兩種格式的文件是等價的,都是用來給單片機下載的。
是Keil uVision4 嗎?附件是我的共享空間的文件,下載看下吧。要是其它版本的,可以做參考,方法相似的。
3. 在單片機編程中,keil產生的文件中.C , .H , .HEX , .UV2 之間是什麼關系
.c
是
C語言源程序,具體的代碼
.h
是
C語言頭文件,宏定義一些函數、變數
.HEX
是生成的十六進制文件,燒寫文件,最終下載到單片機的。
.UV2
是工程文件,用keil打開這個文件,就打開了整個工程(包含.c、.h)
4. keil 有更好的方法來表示二進制嗎
//Keil作為C語言平台,好像不支持二進制,一般寫代碼用十六進制。
//如果一定要寫二進制,可以用一些有特徵的字元來宏定義,
//以達到像二進制一樣的視覺效果。
//比如:字母M看起來比較黑,下劃線看起來比較白,於是可以定義一些宏:
#define_0MMM0x01
#define_0___0x00
#define_1MMM0x02
#define_1___0x00
#define_2MMM0x04
#define_2___0x00
#define_3MMM0x08
#define_3___0x00
#define_4MMM0x10
#define_4___0x00
#define_5MMM0x20
#define_5___0x00
#define_6MMM0x40
#define_6___0x00
#define_7MMM0x80
#define_7___0x00
//寫常數時這樣:比如定義chara為(00110100)B,可以這么寫:
chara=(_7___|_6___|_5MMM|_4MMM|_3___|_2MMM|_1___|_0___);
//看起來就有點二進制的效果了。
5. keil c為何把十六進制當做變數
1.是0(零)而不是O(英文字母「歐」),要注意區分~
2.或者可以去掉0x,在數字後面加上H,也可以被編譯器認為是十六進制數
6. keil中0x9表示什麼
前面加0x表示是16進制數,其實這樣寫並不規范的,應該寫成0x09。但寫成0x9也是16進制數的9。那十六進制數的9與十進制數的9是一樣的,結果都是9。
7. Keil 不同存儲模式生成的十六進制
簡單說一下關系吧。
用keil編譯器編譯,是用命令行編譯的「超集」。keil提供的命令行參數是用戶在編譯時的可選參數,當然真正為編譯做出功勞的,還是keil本身的編譯器。
當然,用戶一般選擇默認的參數用keil自帶的編譯器進行編譯即可,某些場合需要改變一些參數(比如LZ提到的數據模式等)。
從我使用的經驗來說,keil的編譯器是比較優秀的,當然keil本身還集成編輯、調試、輸出等其他功能,是51內核編寫和調試軟體個人強烈推薦的IDE。
8. keil 中是否有十六進制轉成ASCII碼的函數
十六進制數轉成ASCII碼,一個位元組的十六進制數,轉成ASCII碼後,變成了兩個位元組。
如6BH,ASCII碼是36H和42H,這很簡單,自己寫一個小函數就行了。
9. keil編譯就成了16進制代碼,就像這樣,看不懂,怎樣操作能讓他運行時顯示的還是寫的代碼呀
你是在調試的時候這樣顯示嗎?如果是的話,選擇View->disassembly window,按一下就可以了。在菜單欄里有快捷按鈕的。
其實在這個界面也是可調試的。它不過是把程序存儲器給列了出來,沒有用到的地方全部用空指令補齊。