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,按一下就可以了。在菜单栏里有快捷按钮的。
其实在这个界面也是可调试的。它不过是把程序存储器给列了出来,没有用到的地方全部用空指令补齐。