如何使用Keil生成bin(二进制)格式的文件--详细图文说明
keil编译操作步骤

keil编译操作步骤第1步:打开Keil uVision2/3第2步:新建工程project->new project将弹出 creat new project框,写入工程名称,例如 test。
为了便于集中管理建议新建一个文件夹(上面第二个图标)。
点击确定后弹出一个芯片选择项,你可以选一个。
例如选atmel AT89C51。
很多单片机,上面可能没有列举,我们任意选一个即可,51单片机选AT89C51代表即可。
然后弹出一个框,选择“否”第3步:新建文件。
file--new将弹出一个文本框,你可以写入程序。
例如#includemain(){P1=0XAA;}然后保存这个文件file--save弹出框save as 填写你要保存的文件名。
例如main.c。
注意一定要带上后缀.c。
切记第4步:加载程序。
把我们编写的c文件加载进入看到左边source group1,点击右键,选择倒数第四项“add files....”进入add框,选择你刚才保存的main.c文件,然后add看到左边source group1下面是不是加载上main.c了第5步:编译。
编译前要进行一个重要的操作。
生成HEX文件。
右边 target 1 右键弹出框,找到output,再找到creat hex fi:前面复选框选中 OK开始编译了,project--build target或者按F7或者看到上面图标(一个图标有两个方向向下的箭头)编译的时候,你会发现最先面编译结果,0 Errors恭喜你,你已经成功编译了程序。
打开你先前建立的test文件夹,你会发现有个test.hex文件记住步骤,慢慢就很熟练了,用快捷方式或图标更方便祝好。
keil软件生成HEX文件的具体操作步骤

keil软件生成HEX文件的具体操作步骤
一.下载安装keil软件
图1
二.打开keil软件
图2 三.新建工程
1.单击文件,选择新建——新建工程
图3
2.弹出图4对话框,选择新工程的存储位置及为新工程命名,然后点保存
图4
3.保存后弹出图5窗口,单击atmel前面的加号弹出图6对话框,在图6对话框中选择要编程的芯片点击确定。
下面我们以51系列单片机为列。
图7
2.单击文件,单击另存为,弹出图9对话框,输入文件名,文件名后加点C。
单击保存按扭。
图8
图9
五.添加文件到源代码组
1.单击目标前面的加号,出现源代码组1,右击源代码组出现窗口图10,单击添加文件到“源代码1”组出现图11,选择C文件然后单击Add最后关闭桌口。
图10
图11
六.编绎当前文件,创建目标,如图12两个快捷按钮
图12
七.生成HEX文件
1.单击目标前面的加号,右击目标,出现图13对话框,单击“目标1”设置选项,出现图14对话框,在产生HEX文件前打对号,单击确定按扭。
图13
图14
2.单击创建新目标按键,生成HEX文件如图15
图15。
keil 支持2进制

KEIL C51二进制数输入宏2008年11月09日星期日 13:33KEIL C51二进制数输入宏在C语言中有十进制,十六进制,八进制;没有二进制的定义,在C51中使用十六进制表示有时不太直观,下面介绍几种方法表示二进制[均来自网络]方法一#define _BIN(a,b,c,d,e,f,g,h) ((a<<7)+(b<<6)+(c<<5)+(d<<4)+(e<<3)+(f<<2)+(g<<1)+(h<<0))#define _bin _BIN // _bin,_BIN均可Example:i = _bin(1,1,1,1, 0,0,0,0); // i=0xF0i = _bin(1,0,1,0, 1,0,0,1); // i=0xA9方法二#define LongToBin(n) (((n>>21)&0x80)|((n>>18)&0x40)|((n>>15)&0x20)|((n>>12)&0x10)|((n>>9)\ & 0x08)|((n>>6)&0x04)|((n>>3)&0x02)|((n)&0x01))#define bin(n) LongToBin(0x##n##l)在实际应用中:比如要用置P1为0x0f 可以这样写:P1=bin(00001111);//then P1=0X0f方法三/*------------binary.h----------------*/#define B00000000 0x00#define B00000001 0x01#define B00000010 0x02#define B00000011 0x03#define B00000100 0x04#define B00000101 0x05#define B00000110 0x06#define B00000111 0x07#define B00001000 0x08#define B00001001 0x09#define B00001010 0x0A#define B00001011 0x0B#define B00001100 0x0C#define B00001101 0x0D#define B00001110 0x0E#define B00001111 0x0F#define B00010000 0x10#define B00010001 0x11#define B00010010 0x12#define B00010011 0x13#define B00010100 0x14#define B00010101 0x15#define B00010111 0x17 #define B00011000 0x18 #define B00011001 0x19 #define B00011010 0x1A #define B00011011 0x1B #define B00011100 0x1C #define B00011101 0x1D #define B00011110 0x1E #define B00011111 0x1F#define B00100000 0x20 #define B00100001 0x21 #define B00100010 0x22 #define B00100011 0x23 #define B00100100 0x24 #define B00100101 0x25 #define B00100110 0x26 #define B00100111 0x27 #define B00101000 0x28 #define B00101001 0x29 #define B00101010 0x2A #define B00101011 0x2B #define B00101100 0x2C #define B00101101 0x2D #define B00101110 0x2E #define B00101111 0x2F#define B00110000 0x30 #define B00110001 0x31 #define B00110010 0x32 #define B00110011 0x33 #define B00110100 0x34 #define B00110101 0x35 #define B00110110 0x36 #define B00110111 0x37 #define B00111000 0x38 #define B00111001 0x39 #define B00111010 0x3A #define B00111011 0x3B #define B00111100 0x3C #define B00111101 0x3D #define B00111110 0x3E#define B01000000 0x40 #define B01000001 0x41 #define B01000010 0x42 #define B01000011 0x43 #define B01000100 0x44 #define B01000101 0x45 #define B01000110 0x46 #define B01000111 0x47 #define B01001000 0x48 #define B01001001 0x49 #define B01001010 0x4A #define B01001011 0x4B #define B01001100 0x4C #define B01001101 0x4D #define B01001110 0x4E #define B01001111 0x4F#define B01010000 0x50 #define B01010001 0x51 #define B01010010 0x52 #define B01010011 0x53 #define B01010100 0x54 #define B01010101 0x55 #define B01010110 0x56 #define B01010111 0x57 #define B01011000 0x58 #define B01011001 0x59 #define B01011010 0x5A #define B01011011 0x5B #define B01011100 0x5C #define B01011101 0x5D #define B01011110 0x5E #define B01011111 0x5F#define B01100000 0x60 #define B01100001 0x61 #define B01100010 0x62 #define B01100011 0x63 #define B01100100 0x64 #define B01100101 0x65 #define B01100110 0x66 #define B01100111 0x67#define B01101001 0x69 #define B01101010 0x6A #define B01101011 0x6B #define B01101100 0x6C #define B01101101 0x6D #define B01101110 0x6E #define B01101111 0x6F#define B01110000 0x70 #define B01110001 0x71 #define B01110010 0x72 #define B01110011 0x73 #define B01110100 0x74 #define B01110101 0x75 #define B01110110 0x76 #define B01110111 0x77 #define B01111000 0x78 #define B01111001 0x79 #define B01111010 0x7A #define B01111011 0x7B #define B01111100 0x7C #define B01111101 0x7D #define B01111110 0x7E #define B01111111 0x7F#define B10000000 0x80 #define B10000001 0x81 #define B10000010 0x82 #define B10000011 0x83 #define B10000100 0x84 #define B10000101 0x85 #define B10000110 0x86 #define B10000111 0x87 #define B10001000 0x88 #define B10001001 0x89 #define B10001010 0x8A #define B10001011 0x8B #define B10001100 0x8C #define B10001101 0x8D #define B10001110 0x8E #define B10001111 0x8F#define B10010000 0x90#define B10010010 0x92 #define B10010011 0x93 #define B10010100 0x94 #define B10010101 0x95 #define B10010110 0x96 #define B10010111 0x97 #define B10011000 0x98 #define B10011001 0x99 #define B10011010 0x9A #define B10011011 0x9B #define B10011100 0x9C #define B10011101 0x9D #define B10011110 0x9E #define B10011111 0x9F#define B10100000 0xA0 #define B10100001 0xA1 #define B10100010 0xA2 #define B10100011 0xA3 #define B10100100 0xA4 #define B10100101 0xA5 #define B10100110 0xA6 #define B10100111 0xA7 #define B10101000 0xA8 #define B10101001 0xA9 #define B10101010 0xAA #define B10101011 0xAB #define B10101100 0xAC #define B10101101 0xAD #define B10101110 0xAE #define B10101111 0xAF#define B10110000 0xB0 #define B10110001 0xB1 #define B10110010 0xB2 #define B10110011 0xB3 #define B10110100 0xB4 #define B10110101 0xB5 #define B10110110 0xB6 #define B10110111 0xB7 #define B10111000 0xB8 #define B10111001 0xB9 #define B10111010 0xBA#define B10111100 0xBC #define B10111101 0xBD #define B10111110 0xBE #define B10111111 0xBF#define B11000000 0xC0 #define B11000001 0xC1 #define B11000010 0xC2 #define B11000011 0xC3 #define B11000100 0xC4 #define B11000101 0xC5 #define B11000110 0xC6 #define B11000111 0xC7 #define B11001000 0xC8 #define B11001001 0xC9 #define B11001010 0xCA #define B11001011 0xCB #define B11001100 0xCC #define B11001101 0xCD #define B11001110 0xCE #define B11001111 0xCF#define B11010000 0xD0 #define B11010001 0xD1 #define B11010010 0xD2 #define B11010011 0xD3 #define B11010100 0xD4 #define B11010101 0xD5 #define B11010110 0xD6 #define B11010111 0xD7 #define B11011000 0xD8 #define B11011001 0xD9 #define B11011010 0xDA #define B11011011 0xDB #define B11011100 0xDC #define B11011101 0xDD #define B11011110 0xDE #define B11011111 0xDF#define B11100000 0xE0 #define B11100001 0xE1 #define B11100010 0xE2 #define B11100011 0xE3#define B11100101 0xE5 #define B11100110 0xE6 #define B11100111 0xE7 #define B11101000 0xE8 #define B11101001 0xE9 #define B11101010 0xEA #define B11101011 0xEB #define B11101100 0xEC #define B11101101 0xED #define B11101110 0xEE #define B11101111 0xEF#define B11110000 0xF0 #define B11110001 0xF1 #define B11110010 0xF2 #define B11110011 0xF3 #define B11110100 0xF4 #define B11110101 0xF5 #define B11110110 0xF6 #define B11110111 0xF7 #define B11111000 0xF8 #define B11111001 0xF9 #define B11111010 0xFA #define B11111011 0xFB #define B11111100 0xFC #define B11111101 0xFD #define B11111110 0xFE #define B11111111 0xFF。
图文教程之Keil如何生成bin文件

图文教程之Keil如何生成bin文件
——羽墨
辛辛苦苦的写完程序之后,满怀信心的点击了编译按钮,却没有生成想要的bin文件,这是怎样的一种心情啊……
不用着急,只是你的配置出了一点小小的问题,具体如何配置,请看下文。
一、选中你的Project文件;
二、右键单击,选择Options for Target或者使用快捷键Alt+F7调出;
三、选择User选项卡;
四、找到Run User Programs After Build/Rebuild,即下图所示的模块;
五、在Run #1 后的空白栏里填上下面的语句并在Run #1 前的方框里打勾,即选中该选项;fromelf.exe --bin --output=.\obj\output\BLE.bin .\obj\BLE.axf,效果如下:
六、点击左下方的OK按钮,确定;
七、重新编译,会多出下图方框里的内容;
八、找到工程文件所在目录,打开obj文件夹;
九、打开obj文件夹后你会惊奇的发现多出了一个output文件夹;
十、双击output文件夹,没错,这里就是你朝思暮想的bin文件!。
(完整版)Keil创建一个汇编程序的步骤

Keil创建一个汇编程序的步骤1、在C盘新建文件夹“实验一”,启动Keil2、建立一个新工程,单击Project菜单,在弹出的下拉菜单中选中New Project选项,如图1-1所示。
图1-13、然后选择你要保存的路径“C:/ 实验一”,输入工程文件的名字“实验一”,然后点击保存。
4、这时会弹出一个对话框,要求你选择单片机的型号,这里选择Atmel 89C51,如图1-2所示,选择89C51之后,右边栏是对这个单片机的基本的说明,然后点击确定。
完成后,屏幕如图1-3所示。
图1-2图1-35、在图1-3中,单击“File”菜单,再在下拉菜单中单击“New”选项。
新建文件后屏幕如图1-4所示。
图1-46、此时光标在编辑窗口里闪烁,这时可以键入应用程序了,建议首先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“Save As”选项单击,屏幕如1-5图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名如”Text1.asm”,然后,单击“保存”按钮。
图1-57、回到编辑界面后,单击“Target 1”前面的“+”号,然后在“Source Group 1”上单击右键,并单击“Add File to Group ‘Source Group 1’”选项,在出现的对话框1-6中选中“Text1.asm”,此时出现对话框如图1-7所示,在Type 选择栏中选择第二项“Assembly Language File”,确定文件类型为汇编语言。
8、然后得到如图1-8所示的操作界面,注意比对左侧编辑框项目是否和图1-8一致,下面可以在右侧空白栏中编写汇编程序了。
图1-6图1-7图1-8实验一汇编语言实验一、实验目的1.利用单片机的P1 口作I/O 口,掌握P1 口同时作为输入和输出的用法。
2.掌握汇编语言程序编写方法。
二、实验设备(仪器)PC 微机一台,Keil软件三、实验内容1.寻址方式实验。
2. 单片机I/O口实验。
第2章 keil软件使用说明

第2章Keil软件使用说明2.1 Keil工程的建立2.2 工程的设置2.3 编译和链接2.4 调试2.1 Keil1)进入Keil界面单击自己安装的Keilμvision2的图标。
进入Keil后,屏幕显示如图2-2所示。
图2-2 起动Keil软件时的界面2)建立一个工程选择菜单【Project】│【New Project】,界面如图2-3所示。
图2-3 新建工程文件界面3)保存工程选择工程要保存的路径,输入工程名。
例如,建立的文件夹名为“流水灯”,工程名也命名为“流水灯”,然后单击“保存”按钮。
此时,该工程已经建立,扩展名为.uv2,即项目名为“流水灯.uv2”,如图2-4所示。
图2-4 “保存新工程”对话框4)选择系统要用的单片机保存文件后弹出对话框,如图2-5所示,要求选择所设计系统要用的单片机,在此选择AT89C51单片机。
图2-5 “选择单片机”对话框4)选择系统要用的单片机在选择某个单片机,单击“确定”后,弹出如图2-6所示的对话框。
图2-6 “添加启动文件”对话框上述任务完成后,显示2-7所示的界面。
5)建立文件图2-8 新建文件界面选择菜单【File】│【New】,出现如图2-8界面。
在光标所在的窗口输入编写的源程序。
6)文件保存待录入源程序后,选择【File】│【Save】,保存文件为“流水灯.c”,和原来建立的项目放在同一个文件夹下。
如果源文件为汇编语言编写的,则扩展名为“.ASM”。
7)添加文件图2-9 添加文件中出现的菜单在项目窗口下,单击“Target1”前面的“+”,然后在“Source Group 1”选项上单击右键,弹出如图2-9所示对话框。
7)添加文件图2-10 “添加文件”对话框选择“Add Files to Group ‘Source Group 1’”选项,弹出要求添加进本项目的对话框。
如图2-10所示。
7)添加文件图2-11 添加了文件后的窗口将刚建立的“流水灯.c”选中,单击“Add”按钮或鼠标左键双击即可将本文件添加进本项目。
KeilC中直接使用二进制数的方法

Keil C中直接使用二进制数的方法Keil C51中直接使用二进制数的方法在Keil C51中数不能直接以二进制形式赋值,虽然在8051的汇编中是可以的。
二进制数虽然书写长,易出错,但是由于是一位位写的,所以程序设计者能够很明确的看到每一位的状态,看得比较直观。
于是很多人怀念了8051的汇编,很想在C51中使用二进制。
没猜错的话搜到本篇日志的人很可能就是来找这种解决办法的,下面两种办法都是不错的选择。
方法一:建立一个头文件,将所有的二进制数宏定义列举出来,用的时候直接使用宏定义,头文件定义:binary(右键>>“目标另存为”>>下载)。
方法二:做一个带参数宏定义,将输入的类二进制数变换为对应的16进制数,整个定义和使用实例请见下文,可以直接使用,如果想研究原理又看不懂带参宏定义的朋友们请参考谭浩强的《C程序设计》预处理命令一章内容(第三版在P204-P211)。
#define LongToBin(n) \(\((n >> 21) & 0x80) | \((n >> 18) & 0x40) | \((n >> 15) & 0x20) | \((n >> 12) & 0x10) | \((n >> 9) & 0x08) | \((n >> 6) & 0x04) | \((n >> 3) & 0x02) | \((n ) & 0x01) \)#define Bin(n) LongToBin(0x##n##l)void main(void){ unisigned char c; c = Bin(10101001); //相当于c = 0xA9}上面预处理指令中使用了反斜杠\,这里解释一下:每一条预处理语句总是以"#"字符开始,并且不能超过一行,一旦遇到换行符语句就被当做结束,唯一的一种能将预处理语句扩展到多行的办法就是在换行符之前加一个反斜杠('\')。
编译软件Keil的使用

1.1编译软件Keil的使用在使用Keil软件之前,要保证在用户的计算机上装有一套稳定可靠的软件,在这里我们讲解的Keil版本为Keil uVision4。
Keil软件是一款编译软件,即我们使用Keil编写程序进行编译后无错误并生成单片机识别的文件,下载到单片机中,就可看到单片机执行我们要看到的现象了。
1.1.1Keil软件的安装打开资料里的Keil uVision4文件夹,如图 1.4-1所示。
图 1.4-1Keil uVision4文件夹打开后界面如图 1.4-2所示。
图 1.4-2打开Keil安装包后的界面打开安装说明.txt,按照安装说明进行安装,如图 1.4-3所示。
图 1.4-3安装说明1.1.2Keil工程的建立进入Keil后,屏幕如图 1.4-4所示,紧接着出现编辑界面,如图 1.4-5所示。
图 1.4-4启动Keil软件时的屏幕图 1.4-5进入Keil软件后的编辑界面建立一个新工程单击【Project】菜单中的【New uVision4Project…】选项,如图 1.4-6所示。
图 1.4-6新建工程选择工程要保存的路径,输入工程文件名。
Keil的一个工程里通常含有很多小文件,为了方便管理,通常我们将一个工程放在一个独立文件夹下,比如保存到my project文件夹,工程文件名为my project,如图 1.4-7所示,然后单击【保存】按钮。
工程建立后,此工程明变为my project.uvproj。
图 1.4-7保存工程这时会弹出一个对话框,要求用户选择单片机的型号,可以根据用户使用的单片机来选择。
Keil C51几乎支持所有的51内核的单片机,我们用的是STC15L104E,对话框中找不到这个型号的单片机。
因为51内核单片机具有通用性,所以我们在这里可以任选一款89C51就行,Keil软件的关键是程序代码的编写,而非用户选择什么硬件,在这里我们选择Atmelde89C51来说明,如图1.4-8所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
技巧总结——Keil如何生成bin文件
使用过Keil的同鞋都知道,现在Keil中默认可以输出.axf的调试文件和可以通过钩选输出的.hex可执行文件,没有bin(二进制)文件的输出选项。
可是偏偏某些时候需要或者习惯性的使用.bin文件来进行烧写,下面各举一例:
1.一直使用ADS的用户习惯性的使用.bin文件;
2.某些烧写器带的应用软件只支持.bin文件;
3.正如笔者遇到的情况,我在使用STM32公司提供的网络更新固件程序的例程时,需要用到.bin文件(.hex文件通过网络更新后遇到某些问题,而且用Hex2Bin软件转换后的也不行)。
其实Keil也自带了工具软件,只要进行适当配置便可以输出bin文件了,不过在介绍具体方法前,请仔细阅读下面这一段关于Keil中自带的fromelf.exe工具说明:该工具的语法为:fromelf[options]input_file
其中options中的选项及说明如下:
讲完了工具的语法,下面就讲如何在Keil中运用该自带的工具,以使在工程编译后能生成.bin格式的文件:
1.打开一个建好的工程文件,就不举例说明了。
2.打开OptionsforTarget‘工程名称’对话框,可直接点图标,如下图:
3.选择User标签页,并进行如下图一样的配置:
4.根据User页的配置还要配置Output页面,具体如下:
5.点击OK确定,然后再重新编译则会按照上图中的配置路径生成.bin格式的文件了:。