用keil生成HEX文件

合集下载

Proteus运行Keil编写的C语言步骤

Proteus运行Keil编写的C语言步骤

Proteus运行Keil编写的C语言步骤
Proteus 运行Keil 编写的C 语言步骤1.在Keil 编写好程序以后,在左侧
项目栏中单击鼠标右键,如图
点击Options for TargetTarget1 选项,弹出下列窗口
在Target 标签中将Xtal(MHz)中的晶振频率改为12.0;再在Output 标签中勾选Create HEXFi 复选框。

完成上面两项设置后点击确定。

再点击编译,生成Hex 文件。

再在Proteus 中双击的51 芯片,按下图修改晶振频率,添加hex 文件即可运行。

protues 元件库中英文对照表:7407 驱动门1N914 二极管74Ls00 与非门74LS04 非门74LS08 与门74LS390 TTL 双十进制计数器7SEG 4 针BCD-LED 输出从0-9 对应于4 根线的BCD 码7SEG 3-8 译码器电路BCD-7SEG 转换电路ALTERNATOR 交流发电机AMMETER-MILLI mA 安培计AND 与门BATTERY 电池/电池组BUS 总线CAP 电容CAPACITOR 电容器CLOCK 时钟信号源CRYSTAL 晶振D-FLIPFLOP D 触发器FUSE 保险丝GROUND 地LAMP 灯LED-RED 红色发光二极管tips:感谢大家的阅读,本文由我司收集整编。

仅供参阅!。

流水灯(电路和汇编)-Proteus和Keil仿真演示实例知识讲解

流水灯(电路和汇编)-Proteus和Keil仿真演示实例知识讲解

流水灯(电路和汇编)-P r o t e u s和K e i l仿真演示实例示例要求:在80C51单片机的P2口连接8个发光二极管指示灯,编程实现流水灯的控制,轮流点亮指示灯。

在KEIL 51中编程序,形成HEX文件;在PROTEUS中设计硬件,下载HEX文件,运行看结果。

第1篇:PROTEUS电路设计1、打开PROTEUS的ISIS软件,如图1所示。

新建电路图文件,将文件保存到E:\projectio (新建文件夹projectio)下面,文件基本名为io,扩展名默认。

选择元图1 ISIS窗口图2、在component mode模式下单击选择元件按钮P,打开元件选择对话框,如图2所示。

图2 元件选择窗口在元件选择对话框的keywords窗口中输入元件关键字可换搜索元件,找到元件后,双击元件则可选中元件,添加元件到图3的device列表栏。

在这里依次添加元件单片机80C51、电阻RES、电容CAP、按键BUTTON、晶振CRYSTAL、发光二极管LED-RED,如图3所示。

图3 添加元件的device列表栏3、选择devices元件列表中的元件放到工作窗口,注意放置在工作窗口合适的位置,在元件放置时可对元件进行移动、旋转等操作;如图4所示。

电源(POWER)与地(GROUND):(右键-放置-终端里选)。

图4 放置元件图4、连接导线,如图5所示。

连接后存盘。

图5 连接元件图5、在Keil软件中设计软件程序,形成HEX文件(具体过程见第2篇Keil软件编程)。

保存软件项目到电路文件相同的文件夹E:\projectio下。

6、在PROTEUS电路图中,单击单片机80C51芯片,选中,再次单击打开单片机80C51的属性对话框,在属性对话框中的program file框中选择下载到80C51芯片中的程序。

这里是同一个文件夹下面的shili.hex文件。

如图6所示。

图6 下载程序到单片机7、单击仿真运行按钮play,运行程序。

如何使用Keil生成bin(二进制)格式的文件--详细图文说明

如何使用Keil生成bin(二进制)格式的文件--详细图文说明

技巧总结——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格式的文件了:。

Keil编程软件学习

Keil编程软件学习

慧净电子51编程软件学习笔记(基于HJ-1G学习板)一:安装方法1、打开CD光碟找到目录E:\HJ-1G_V5.0光碟\2、应用软件\2、编程软件\慧净_Keil_中文版。

2、打开后目录后,找到并双击一次,会出现下面的画面。

2、请点击上图的Next出现下面的画面。

3、再点击上图中的Next,出现下面画面软件装在C:\Keil目录下面。

4、点击上图中的Next在下图中输入名字,还有邮箱就可以了5、再点一下上图中的Next,软件就可以自动安装了,装好后出现下面的画面,点击Finish 后完成安装。

二:启动软件1、在桌面找到,双击打开K软件。

在文件中打开授权管理,不会的请看下面的图片。

3、打开光碟里的出现下面的画面。

4、请做以下设置,做好后,直接点Generate就可以了5、点Generate后会出现下面的画面请复制图中的WH7X4-FCWM6-Y7FRN-BYCV2-BAC2A-N252E到刚才打开的K软件上6、输入正版授权ID码(LIC)7、把刚才生成的ID码放到下面的位置上,还要点一下尜加授权就可以了9、出现如下画面完成注册本Keil软件网上收集,请24小时试用后删除,购卖正版软件。

三:打开工程项目1、还是看图,找到慧净光碟中的HJ-1G_V5.0光碟\1、实验源码\配套程序\【实验1】点亮第一个发光管,IO输出项目,直接打开就可以了,提示,可以把光碟里的实验程序复制到你的硬盘上,把只读去掉,再打开项目工程。

2、打开后可以在里面修改程序了3、点下面的可以进行编译四:新建立一个工程序项目1、新建一个工程文件,点击“Project->New Project…”.2、选择工程文件要存放的路径,并且输入工程文件名,这里我们用hlmcu作为工程文件名,这里就不用在后面加.c了。

图片如下:3、点击Save后弹出选择CPU及型号的对话框:4、由于HJ-1G学习板所配的单片是STC公司的,而KEIL中并没有STC公司的产品,不过STC公司的单片机和传统的51单片机是兼容的,所以这里我们就选择Atmel公司的AT89S52。

KEIL uv2软件操作指南

KEIL uv2软件操作指南

Keil uVision2软件使用说明编译软件Keil uVision2的安装:程序开发过程中采用keil uVision2编译器进行编译,这里介绍keil uVision2的基本使用。

您可以用它进行程序的修改。

打开文件夹,点击文件夹,双击进行安装。

1、打开up51v706a.txt记下安装序列号,进入setup目录点击setup.exe进行安装;选择InstallSupport....全新安装,此选项为以前没有安装过或者放弃以前的序列号安装;选择Update Current Installation升级安装,此选项将可以保持原来的序列号,不必再次输入;2、选择Full Version安装;单击Next->Yes(接受版权信息)。

3、选择安装目录->Next->输入序列号、姓名、公司等,除了序列号以外,都随意,可以如实输入你的姓名等。

4、点击Next,一直进行下去,直到安装完毕。

等待进度条结束:Keil uv2的安装完成。

启动keil uv2:安装后在桌面双击如下图标,即可进入keil开发环境。

本文仅以c语言程序介绍其使用方法。

1、点击Project(工程)菜单,选择New Project(新工程),在"文件名"中输入需要创建的项目名称,此例中我们用文件名为"newproject",单击保存后的文件扩展名为uv2,这是KEIL uVision2项目文件扩展名,这时会弹出让你选择单片机型号的对话框,我们选择ATMEL —AT89C51。

在教学板中我们实际使用的是89s51, 它们的资源基本是一致的,不必理会。

接下来开发系统会提示你复制标准8051启动代码,对于C51程序,必须复制,否则稍后编译不通过。

2、源程序文件的建立:点击FILE(文件)菜单中的NEW...(新文件)命令新建一个文本编辑窗口,在里面输入一个程序范例如流水灯程序。

3、点击FILE(文件)菜单中的SAVE(保存)命令保存文件,注意必须输入文件的后缀名.c,例如此例保存为newfile.c。

数码显示实验报告

数码显示实验报告

一、实验目的1. 熟悉数码管的结构和工作原理。

2. 掌握数码管与单片机的连接方法。

3. 学习使用动态扫描显示技术实现多位数码管的显示。

4. 培养动手能力和编程能力。

二、实验原理数码管是一种常用的显示器件,由多个发光二极管组成,通过控制发光二极管的亮与灭来显示数字、字母或符号。

本实验采用共阴极数码管,当对应的段码为低电平时,该段发光。

三、实验设备1. 单片机实验箱一台2. 共阴数码管8位3. 电阻若干4. 连接线若干5. 编译器(如Keil uVision)6. 仿真软件(如Proteus)四、实验内容1. 实验电路搭建根据实验原理图,连接单片机、数码管、电阻等元件。

具体连接方法如下:(1)将单片机的P0口与数码管的段码相连。

(2)将单片机的P1口与数码管的位选相连。

(3)将数码管的公共阴极与地相连。

(4)将电阻分别串联在数码管的段码和位选上,用于限流。

2. 编写程序(1)初始化单片机IO口,将P0口设置为输出模式,P1口设置为输出模式。

(2)编写数码管显示函数,根据输入的数字,计算对应的段码,并输出到P0口。

(3)编写动态扫描显示函数,按照一定的时间间隔依次显示各个数码管。

3. 编译程序使用Keil uVision编译器将编写的程序编译成hex文件。

4. 仿真实验使用Proteus软件进行仿真实验,观察数码管显示效果。

五、实验步骤1. 搭建实验电路。

2. 编写程序,实现数码管显示功能。

3. 编译程序,生成hex文件。

4. 在Proteus软件中导入hex文件,进行仿真实验。

5. 观察数码管显示效果,分析实验结果。

六、实验结果与分析1. 实验结果通过仿真实验,数码管能够按照程序的要求显示数字、字母或符号。

2. 实验分析(1)数码管显示原理:数码管通过控制发光二极管的亮与灭来显示数字、字母或符号。

当对应的段码为低电平时,该段发光。

(2)动态扫描显示原理:动态扫描显示是通过依次点亮各个数码管,使多位数码管同时显示。

keil软件的使用方法

keil软件的使用方法

Keil 软件的使用随着单片机开发技术的不断发展,目前已有越来越多的人从普遍使用汇编语言到逐渐使用高级语言开发,其中主要是以C 语言为主,市场上几种常见的单片机均有其C 语言开发环境。

这里以最为流行的80C51单片机为例来学习单片机的C 语言编程技术。

大家都有C 语言基础,但是编单片机程序,大家还得找专门的书来学习一下。

这里我们只介绍Keil 这种工具软件的用法。

学习一种编程语言,最重要的是建立一个练习环境,边学边练才能学好。

Keil 软件是目最流行开发80C51系列单片机的软件,Keil 提供了包括C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(µVision )将这些部份组合在一起。

下面我以一个实验举一个例子,一步一步学习Keil 软件的使用。

首先我们看硬件原理图:很明显,要点亮使发光二极管,必须使单片机的I/O 口P1.0输出低电平。

于是我们的任务就是编程序使P1.0输出地电平。

1. 使用Keil 前必须先安装。

安装过程简单,这里不在叙述。

2. 安装好了Keil 软件以后,我们打开它。

打开以后界面如下:3.我们先新建一个工程文件,点击“Project->New Project…”菜单,如下图,:3.选择工程文件要存放的路径,输入工程文件名LED, 最后单击保存.4.在弹出的对话框中选择CPU 厂商及型号5. 选择好Atmel 公司的AT89S52 后, 单击确定1.在接着出现的对话框中选择“是”。

5.新建一个C51 文件, 单击左上角的New File 如下图所示:6.保存新建的文件,单击SA VE如下图:2.在出现的对话框中输入保存文件名MAIN.C(注意后缀名必须为.C),再单击“保存”,如下图;7.保存好后把此文件加入到工程中方法如下: 用鼠标在Source Group1 上单击右键, 然后再单击Add Files to Group …Source Group 1'如下图:8.选择要加入的文件 , 找到 MAIN.C 后 , 单击 Add, 然后单击 Close9.在编辑框里输入如下代码 :10.到此我们完成了工程项目的建立以及文件加入工程 , 现在我们开始编译工程如下图所示 : 我们先单击编译, 如果在错误与警告处看到 0 Error(s) 表示编译通过;11.生成 .hex 烧写文件,先单击Options for Target,如图;12.在下图中,我们单击 Output, 选中 Create HEX F。

Keil软件使用手册【精选文档】

Keil软件使用手册【精选文档】

Keil软件使用手册(本手册参考keil 4版本)一安装到网上下载一个安装包,里面必须包含以下内容:1:(安装包文件,圈选的文件为安装说明,请务必仔细阅读) 2:(打开安装文件)3:(点击下一步)4:(勾选同意,并点击下一步) 5:(浏览选择到你想安装的地方,然后选择下一步)6:(两个空可以随便打,不重要,填完后点击下一步)7:(正在安装中)8:(点击完成)9:(进入安装的文件夹,点击UV4)10:(打开Keil4的执行文件)11:(点击File,再选择License Management)Pic 12:(复制右上角的ID号)12:(打开注册机文件)13:(将复制的ID号粘贴在此处)14:(点击Generate,在上方会生成一组ID,复制下来)15:(将复制好的ID粘贴在圈选出,并点击Add LIC)16:(当你看见这两组单词,那么恭喜你,注册成功,准备开始你的奇妙程序之旅吧!)二新建工程1.单击Project,选择New Project2.选择保存位置,输入工程的名字3.选择CPU。

紧接着,Keil C51提示您选择CPU器件。

8051内核片机最早是由Intel公司发明的,后来其他厂商如Philips、Atmel、Winbond等先后推出其兼容产品,并在8051的基础上扩展了许多增强功能,根据芯片的实际情况,选择相应的器件(本例程选择Atmel公司下的AT89C52),如图:注:选择8051也可以,8051与8052有一点的差别,可以说8052是8051的升级版,主要有以下不同:1.内部RAM,8051单片机为128Byte(00H—7FH),8052单片机为56 Byte (00H—0FFH)2. 内部ROM,8051单片机为4KB,8052单片机为8KB3. 8051有两个Timer:T0和T1。

8052除了有T0和T1以外,还有一个Timer2 4。

8051有5个中断源8052有6个。

keil4与ARM仿真(支持断点和单步运行)

keil4与ARM仿真(支持断点和单步运行)

初学ARM7,想在仿真的基础上学习ARM编程,就下载了Keil的ARM版本——MDK。

程序都是网上下载的最简单的最基础的点LED的程序,用的Keil自动生成的Startup.s,编译后生成hex文件放到Proteus的MCU中,但是灯却不亮。

打开别人的例程(uV2版本的),把hex文件放到Proteus中,可以仿真;但是用我的uV4编译后,重载hex文件后,仿真失败。

看来是新版本编译器的问题。

后来在网上看到有人也遇到和我一样的问题,解决方法有2种,我都试了下能成。

方法1:把生成的*.axf文件复制一份,修改后缀名*.elf。

然后把这个elf文件加载到MCU中。

方法2:用记事本打开生成的*.hex文件,删除倒数第2行,保存。

然后把这个hex 文件加载到MCU中(MDK较高版本不用删除也行)。

实验1使用Keil输入和调试程序

实验1使用Keil输入和调试程序

实验一使用Keil输入和调试程序(一)实验目的:通过实验掌握Keil C51集成开发环境输入程序和调试程序的方法。

(二)实验仪器:计算机一台STC12学习板一套STC单片机仿真器一套USB连接电缆一根(三)实验内容及步骤:Keil C51 IDE又叫Keil集成开发环境或Keil C51μVision3。

实验要求使用Keil集成开发环境完成实验程序的输入、调试。

Keil是以工程项目的方法管理文件。

所有的文件(源程序文件、头文件和各种技术文档)都是放在工程项目里的统一管理。

下面通过一个实验程序学习使用Keil IDE建立应用程序和调试程序的步骤:✓新建一个工程项目。

✓为工程项目选择目标器件。

✓建立源程序文件,输入程序代码并保存。

将源程序文件添加到工程项目里。

✓为工程项目设置软件、硬件的调试环境。

✓输入、调试和运行实验程序。

要创建的工程项目是:设计一个程序,使学习板上的LED1灯闪亮,电路图如图2-1所示(在第14页)。

该实验工程项目的建立过程如下:1、启动Keil C51的IDE开发环境并建立一个工程项目双击计算机桌面上的Keil C51 IDE图标即可启动Keil C51 IDE开发环境。

如果以前已经建立了工程项目,Keil51 IDE启动后会直接显示原来打开的工程项目。

也可以打开原来已经存在的工程项目。

打开已经存在的项目方法是,从“Project”菜单中选择“Open Project”菜单项,从弹出的对话框中选择要打开的项目。

新建项目文件时,从“Project”菜单中选择“New Project”菜单项,将打开“Create New Project”对话框。

如图1-1所示。

在“Create New Project”对话框中做以下的工作:✧为工程项目选择一个存放路径,在此选择STC51文件夹(若计算机中没有STC51文件夹,则需要建立它)。

✧在文件名输入框里输入,这是为实验工程项目取的工程项目文件名(扩展名是.uv2)。

Keil生成HEX文件

Keil生成HEX文件
这个记录里的16BYTE的数据的起始地址就是0x0000 + 0x0004 = 0x0004.
第3条记录的长度为00,LOAD OFFSET为0000,TYPE = 01,校验和为FF。说明这个是一个END OF FILE RECORD,标识
文件的结尾。
+---------------------------------------------------------------+
| RECORD | RECLEN | LOAD | RECTYPE | INFO or DATA | CHKSUM |
| MARK ':' | | OFFSET | '00' | | |
+---------------------------------------------------------------+
01 ----文件结束记录
02 ----扩展段地址记录
04 ----扩展线性地址记录
dd 是数据域,表示一个字节的数据,一个记录可能有多个数据字节,字节数目可以
查看ll域的说明
cc 是效验和域,表示记录的效验和,计算方法是将本条记录冒号开始的所有字母对
详见INTEL 官方文档。
第1条记录的长度为02,LOAD OFFSET为0000,RECTYPE为04,说明该记录为扩展段地址记录。数据为0000,校验和为
FA。从这个记录的长度和数据,我们可以计算出一个基地址,这个地址为0X0000。后面的数据记录都以这个地址为基
地址。
第2条记录的长度为10(16),LOAD OFFSET为0004,RECTYPE为00,说明该记录为数据记录。

如何在keil中生成hex文件

如何在keil中生成hex文件

在keil中编写完程序后,要将程序通过烧录器烧写到单片机中,这时就需要在keil中产生一个hex格式的文件,只有通过这种格式,烧录器才能将程序烧写到单片机中。

hex文件格式是Intel公司提出的按地址排列的数据信息,数据宽度为字节,所有数据使用16进制数字表示, 常用来保存单片机或其他处理器的目标程序代码。

它保存物理程序存储区中的目标代码映象。

一般的编程器都支持这种格式。

如何才能产生这种格式的文件呢?
在keil中对其进行如下设置,便能产生hex文件:
点击菜单“Option for Tagret '...'” ---> 选择“Output”页--->钩选“Create HEX File”--->重编译
如果程序无误,在Project的当前目录即会产生HEX 文件。

KEIL怎样生成HEX文件和相关设置

KEIL怎样生成HEX文件和相关设置

KEIL怎样生成HEX文件和相关设置学习51单片机的朋友面对着全英文的KEIL肯定会有这样的疑问“KEIL如何生成HEX文件?”,“生成的HEX文件在哪里?”下面就简单介绍一下生成HEX 的方法工具/原料∙keil uv2 uv3∙winXP新建项目1. 1先打开KEIL软件,点击“project”菜单2. 2点击“new project”新建一个项目。

如果不新建项目是没法生成HEX文件的3. 3在接下来的对话框中,选一个目录,然后为这个项目起一个名字。

名字可以随便起,这里以“测试项目”为例4. 4接下来出现一个对话框,要为项目选一个CPU。

点击左侧的树状目录滚动条,点开“ATMEL”选中“AT89C51”,单击确定5. 5这个对话框问是否把启动文件加进项目,选“是”6. 6要生成HEX文件还要设置一下。

单击下图中的设置图标7.7切换到“output”选项卡,勾选下图中“create HEX file”。

如果要改变HEX 文件的保存位置,可以点左上角的“select flolder for objects”选一个新的文件夹完成设置后选确定END添加源文件并生成HEX文件1. 1接下来添加源文件,源文件可以是用C语言或者是汇编语言,现在以C语言为例。

在下图的图标点右键2. 2在弹出的菜单中点击“add files to group source group 1”3. 3选中要加入的C文件,C文件可以是从别处复制过来,也可以自己写4. 4点“add”后可以看到C文件出现在左侧的目录中。

这时要点击“close”关闭对话框5. 5源程序添加进来后可以点击图中编译图标生成HEX文件6. 6然后在底下的状态框中可以看到结果,出现下图表示HEX文件已经生成了7.7打开文件夹可以看到,HEX文件已经生成了END注意事项第1步:打开Keil uVision2/3第2步:新建工程project->new project将弹出creat new project框,写入工程名称,例如test。

hex文件

hex文件

hex文件解析Keil开发环境编程时对源程序进行编译链接后都可以成一个可执行文件即hex文件,但是有不完全是一个可执行文件。

然后可以通过烧录工具烧写到对应的单片机的flash中,当然也还有其他方法可以进行烧录。

大家在编程时是否对生成的hex文件有这样的疑问:1、当hex文件的大小大于单片机的flash时烧录工具还是可以把hex文件烧写到flash中呢;2、单片机运行的是二进制指令和数据,那么hex文件的内容是否都是二进制数呢;3、烧录工具是根据什么把程序指令和数据烧写到flash固定的位置呢。

我们就带着这三个疑问深入学习hex文件,想深入理解hex文件必须从内容入手。

查看hex 文件的很简单,用文本随便打开一个文件都可以看到hex文件的内容。

例如::020*********F2:1000000080040020690100087101000873010008E4:1000100000000000000000000000000000000000E0:100020000000000000000000000000007501000852:1000300000000000000000007701000879010008BE``````````````````````````````:1005E0002001000800000000006CDC020*********:1005F00000000000010203040607080900000000D3:04000005080000C12E:00000001FF上面就是一个hex文件内容首尾的一部分数据,从内容中很明显可以看出这不是二进制数据。

Hex文件是用ASCII来表示二进制的数值,十六进制数组成的指令或者数据,每一行就是一个hex记录。

由于单片机执行的只能是二进制指令和数据,而hex文件是十六进制数,所以烧录器的工作必然有一个进制转换机制。

具体机制怎么实现暂时可以不管,知道是烧录器处理的就行了。

用keil生成hex文件

用keil生成hex文件

用keil生成hex文件
1、建立mcs51源文件,选择new project建立管理项目
2、选择被仿真的51器件
3、建立源文件
输入汇编语言源程序
4、点击如图图标,对源程序进行编译、链接
在下面的图形中,会显示是否有语法错误,如有着调入源程序改正,如没有则可进行下一步,生成扩展名为“hex”的二进制文件。

5、生成“hex”文件
1)鼠标指向项目文件夹
2)压下鼠标右件,选择如图中的选项,进入
3)在下图中选择,“output”
将Creat HEX File打勾建立“hex”文件,在Name of Executable 给可执行文件取名,在Select Folder for Objects 选择存放路径,然后确定。

4)点击图标再次进行汇编,汇编后即可得到扩展名为“hex”的可执行二进制文件。

Keil生成的Hex文件详解

Keil生成的Hex文件详解

Keil HEX文件是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。

在Intel HEX文件中,每一行包含一个HEX记录。

这些记录由对应机器语言码和/或常量数据的十六进制编码数字组成。

Intel HEX文件通常用于传输将被存于ROM或者EPROM中的程序和数据。

大多数EPROM编程器或模拟器使用Intel HEX文件。

记录格式Intel HEX由任意数量的十六进制记录组成。

每个记录包含5个域,它们按以下格式排列::llaaaatt[dd...]cc每一组字母对应一个不同的域,每一个字母对应一个十六进制编码的数字。

每一个域由至少两个十六进制编码数字组成,它们构成一个字节,就像以下描述的那样:: 每个Intel HEX记录都由冒号开头.ll 是数据长度域,它代表记录当中数据字节(dd)的数量.aaaa 是地址域,它代表记录当中数据的起始地址.tt 是代表HEX记录类型的域,它可能是以下数据当中的一个:00 –数据记录01 –文件结束记录02 –扩展段地址记录04 –扩展线性地址记录dd 是数据域,它代表一个字节的数据.一个记录可以有许多数据字节.记录当中数据字节的数量必须和数据长度域(ll)中指定的数字相符.cc 是校验和域,它表示这个记录的校验和.校验和的计算是通过将记录当中所有十六进制编码数字对的值相加,以256为模进行以下补足.数据记录Intel HEX文件由任意数量以回车换行符结束的数据记录组成.数据记录外观如下::10 2462 00 464C5549442050524F46494C4500464C 33其中:10 是这个记录当中数据字节的数量.2462 是数据将被下载到存储器当中的地址.00 是记录类型(数据记录)464C…464C是数据.33 是这个记录的校验和.扩展线性地址记录(HEX386)扩展线性地址记录也叫作32位地址记录或HEX386记录.这些记录包含数据地址的高16位.扩展线性地址记录总是有两个数据字节,外观如下::02000004FFFFFC其中:02 是这个记录当中数据字节的数量.0000 是地址域,对于扩展线性地址记录,这个域总是0000.04 是记录类型04(扩展线性地址记录)FFFF 是地址的高16位.FC 是这个记录的校验和,计算方法如下:01h + NOT(02h + 00h + 00h + 04h + FFh + FFh).当一个扩展线性地址记录被读取,存储于数据域的扩展线性地址被保存,它被应用于从Intel HEX文件读取来的随后的记录.线性地址保持有效,直到它被另外一个扩展地址记录所改变. 通过把记录当中的地址域与被移位的来自扩展线性地址记录的地址数据相加获得数据记录的绝对存储器地址.以下的例子演示了这个过程..来自数据记录地址域的地址2462扩展线性地址记录的数据域+ FFFF------------绝对存储器地址FFFF2462扩展段地址记录(HEX86)扩展段地址记录也叫HEX86记录,它包括4-19位数据地址段.扩展段地址记录总是有两个数据字节,外观如下::020*********EA其中:02 是记录当中数据字节的数量.0000 是地址域.对于扩展段地址记录,这个域总是0000.02 是记录类型02(扩展段地址记录)1200 是地址段.EA 是这个记录的校验和,计算方法如下:01h + NOT(02h + 00h + 00h + 02h + 12h + 00h).当一个扩展段地址记录被读取,存储于数据域的扩展段地址被保存,它被应用于从Intel HEX 文件读取来的随后的记录.段地址保持有效,直到它被另外一个扩展地址记录所改变.通过把记录当中的地址域与被移位的来自扩展段地址记录的地址数据相加获得数据记录的绝对存储器地址.以下的例子演示了这个过程..来自数据记录地址域的地址2462扩展段地址记录数据域+ 1200---------绝对存储器地址00014462文件结束(EOF)记录Intel HEX文件必须以文件结束(EOF)记录结束.这个记录的记录类型域的值必须是01.EOF记录外观总是如下::00000001FF其中:00 是记录当中数据字节的数量.0000 是数据被下载到存储器当中的地址.在文件结束记录当中地址是没有意义被忽略的.0000h是典型的地址.01 是记录类型01(文件结束记录)FF 是这个记录的校验和,计算方法如下:01h + NOT(00h + 00h + 00h + 01h).:02 0000 04 0800 F2:10 0000 00 7806002051040008690200086B020008 0D注意:地址是大开端,0800+0000 = 0x0800000078060020是MSP初始值,其实为0x20000678,是小开端。

新手入门keilMDK5建立STM32工程

新手入门keilMDK5建立STM32工程

新⼿⼊门keilMDK5建⽴STM32⼯程keil uvison 是⽤来开发单⽚机的,Keil mdk 是⽤来开发 ARM 的。

芯⽚型号是:STM32F103RB61,新建⼯程配置属性晶振为8M 根据实际晶振选择⽣成 HEX ⽂件,选中2,复制启动⽂件,头⽂件,这⾥为了简单,全部放在了项⽬⽂件夹中,不像有的教程,要建这个,配置那个,新⼿容易头⼤。

启动⽂件在,STM32F10x_StdPeriph_Lib_V3.5.0.rar ⾥⾯,解压LIB库⽂件。

复制 STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport ⾥⾯的 core_cm3.h core_cm3.c 到项⽬⽂件夹中。

复制 STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x ⾥⾯的 3个⽂件 stm32f10x.h system_stm32f10x.c system_stm32f10x.h 到项⽬⽂件夹中。

复制启动⽂件 STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm ⾥⾯的 startup_stm32f10x_md.smd hd ld 根据芯⽚FLASH 容量决定⽤哪个。

16K < FLASH < 32K ld64K < FLASH < 128K md256K < FLASH < 512K hd⽂件复制好以后就是这个样⼦。

双击,添加⽂件到项⽬中。

新建⼀个 main.c ⽂件,并添加到项⽬中。

1 #include "stm32f10x.h"2 #include "bitband.h"34void delay()5 {6int i=30000;7while(i--);8 }910int main(void)11 {12//初始化引脚13//PA2 接 BEEP14//初始化 PA 时钟15 RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;16//配置引脚模式17 GPIOA->CRL &= ~(0x3<<(4*2+2));18 GPIOA->CRL |= 0x3<<(4*2);1920while(1)21 {22 GPA_ODR(2) = 1;23 delay();24 GPA_ODR(2) = 0;25 delay();26 }27return0;28 }bitband.h 是⼀个 bit 位映射功能操作时简单,不⽤⽐较位,节省时间。

利用keil c51生成hex如何设置ROM

利用keil c51生成hex如何设置ROM

利用keil c51 生成hex 如何设置ROM我使用at89s52(256RAM,8K 的ROM),程序编译后显示program Size: data=56.0 xdata=0 code=3529。

我的电路中无外部ROM,为了使生成的hex 代码只存储在该片at89s52,我怎么设置呢?选small 肯定不行,因为我的代码大于2K;若选compact,代码能放在64K 的程序空间,而我s52 只有8K 的ROM,代码不会放在我的8K 之外吧,那样肯定会出错的。

若我选择Use on-chip ROM(0x0-0xFFF),有什么影响? 求高手帮忙了。

附帖:为了说明问题,提供一下Small、Compact 及Large 的说明(尽管知道有此三种设置,但还是不会运用,不知在什么情况下做何设置),在keil C51 编译环境中,能提供:设置ROM 空间的使用,有3 个选择项,Small、Compact 及Large。

1.Small:只用低于2K 的程序空间,适用于AT89C2051 这些芯片,2051 只有2K 的代码空间,所以跳转地址只有2KB,编译的时候会使用ACALL AJMP 这些短跳转指令,而不会使用LCALL LJMP 指令。

如果代码地址跳转超过2K,那么会出错。

pact:单个函数的代码量不能超过2K,整个程序可以使用64K 程序空间。

rge:可用全部64K 空间,表示程序或子函数代码都可以大到64KB,使用code bank 还可以更大。

通常都选用该方式。

选择Large 方式速度不会比Small慢很多,所以一般没有必要选择Compact 和Small 方式。

Use on-chip ROM(0x0-0xFFF)选择项,表示使用片上的ROM (选中该项并不会影响最终生成的目标代码量),该选项取决于单片机应用系统,如果单片机的EA 接高电平,则选中这个选项,表示使用内部ROM,如果单片机的EA 接低电平,表示使用外部ROM,则不选中该选项。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

keil软件的使用
有关“Keil uVision2”软件的使用:
开发单片机的第一步就是用Keil软件编写汇编程序,并形成最终的“*.hex”目标文件,然后用编程器将该文件烧写到单片机中就行了,最后将烧写好的单片机插到电路板上,一接通电源就可以工作了。

下面以编写小灯闪烁的程序为例介绍KILL软件的使用方法:
1、双击桌面上的图标,打开以下窗口:
点“工程”,新建工程:
给工程起一个名字,我用“xiaodeng”就是小灯的意思,然后点保存:
选择你使用的芯片型号,我用的是Atmel公司生产的89s51,双击Atmel:
在下面找到At89S51后,点击它,然后确定:
点击确定后,接下来再为你的工程新建一个文件
弹出以下窗口:
在弹出的窗口里面写入你的汇编程序:
然后点文件,另存为:
为你的文件起一个名字,我这里名字为“xiaodeng.asm”。

注意文件的扩展名不能省略,而且必须是“.asm”:
点击保存,出现以下界面:
将左边Target 1前面的“+”号展开,在它下面的字符“Source Group 1”上点击鼠标右键,再点击增加文件到组:
在文件类型中点击asm源文件:
在文件中找到你刚才新建的xiaodeng.asm文件,然后点击Add加入:
只需要加入一次就够了,如果再次加入,将出现以下画面,不要紧,点确定就好了:
这时候,左边的文件夹“Source Group 1”前面就有了一个“+”号:
点击该“+”号展开后,下面就出现了一个名为“Xiakdeng.asm”的文件,说明已经将文件加进来了。

接下来将鼠标移到“Target 1”上,点击右键,再点击“目标‘Target 1’属性”:
弹出以下窗口:
点“输出”,在新弹出的窗口中,一定要确保“E生成 HEX文件”前面的小方格内有一个勾“√”,即选中该项,然后再点击“确定”:
最后点击下面的符号:
即“构造所有目标文件夹”,当出现以下画面时,说明目标文件“xiaodeng.hex”文件已经生成了:
这个“xiaodeng.hex”文件就是往单片机89s51里面写的文件。

有了这个文件,就可以用编程器将该文件烧写到89S51单片机中了,一个廉价的通用编程器要300元左右,我自己制作的仅花费了几十元,如果没有编程器,也可以找修理电脑主板的那些师傅代为烧写,他们应该都有的,因为这是烧写“BIOS” 的常用工具。

相关文档
最新文档