0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何生成HEX文件和最小化系统

Wildesbeast 来源:今日头条 作者:光电客 2020-01-19 11:54 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在开始C语言的主要内容时,我们先来看看如何用KEIL uVISION2来编译生成用于烧写芯片的HEX文件。HEX文件格式是Intel公司提出的按地址排列的数据信息,数据宽度为字节,所有数据使用16进制数字表示, 常用来保存单片机或其他处理器的目标程序代码。它保存物理程序存储区中的目标代码映象。一般的编程器都支持这种格式。我们先来打开第一课做的第一项目,打开它的所在目录,找到test.Uv2的文件就可以打开先前的项目了。然后右击图3-1中的1项目文件夹,弹出项目功能菜单,选Options for Target‘Target1’,弹出项目选项设置窗口,同样先选中项目文件夹图标,这时在Project菜单中也有一样的菜单可选。打开项目选项窗口,转到Output选项页图3-2所示,图中1是选择编译输出的路径,2是设置编译输出生成的文件名,3则是决定是否要创建HEX文件,选中它就可以输出HEX文件到指定的路径中。选好了?好,我们再将它重新编译一次,很快在编译信息窗口中就显示HEX文件创建到指定的路径中了,如图3-3。这样我们就可用自己的编程器所附带的软件去读取并烧到芯片了,再用实验板看结果,至于编程器或仿真器品种繁多具体方法就看它的说明书了,这里也不做讨论。

(技巧:一、在图3-1中的1里的项目文件树形目录中,先选中对象,再单击它就可对它进行重命名操作,双击文件图标便可打开文件。二、在Project下拉菜单的最下方有最近编辑过的项目路径保存,这里可以快速打开最近在编辑的项目。)

项目功能菜单

项目选项窗口

编译信息窗口

或许您已把编译好的文件烧到了芯片上,如果您购买或自制了带串口输出元件的学习实验板,那您就可以把串口和PC机串口相联用串口调试软件或Windows的超级终端,将其波特率设为1200,就可以看到不停输出的“Hello World!”字样。也许您还没有实验板,那这里先说说AT89C51的最小化系统,再以一实例程序验证最小化系统是否在运行,这个最小化系统也易于自制用于实验。图3-4便是AT89C51的最小化系统,不过为了让我们可以看出它是在运行的,我加了一个电阻和一个LED,用以显示它的状态,晶振可以根据自己的情况使用,一般实验板上是用11.0592MHz或12MHz,使用前者的好外是可以产生标准的串口波特率,后者则一个机器周期为1微秒,便于做精确定时。在自己做实验里,注意的是VCC是+5V的,不能高于此值,否则将损坏单片机,太低则不能正常工作。在31脚要接高电平,这样我们才能执行片内的程序,如接低电平则使用片外的程序存储器。下面,我们建一个新的项目名为OneLED来验证最小化系统是否可以工作(所有的例程都可在我的主页下面下载到,网址:http://cdle.yeah.net 或http://www.cdle.net )。程序如下:

#include 《AT89X51.h》 //预处理命令

void main(void) //主函数名

{

//这是第一种注释方式

unsigned int a; //定义变量a为int类型

/*

这是第二种注释方式

*/

do{ //do while组成循环

for (a=0; a《50000; a++); //这是一个循环

P1_0 = 0; //设P1.0口为低电平,点亮LED

for (a=0; a《50000; a++); //这是一个循环

P1_0 = 1; //设P1.0口为高电平,熄灭LED

}

while(1);

}

AT89C51最小化系统

这里先讲讲KEIL C编译器所支持的注释语句。一种是以“//”符号开始的语句,符号之后的语句都被视为注释,直到有回车换行。另一种是在“/*”和“*/”符号之内的为注释。注释不会被C编译器所编译。一个C应用程序中应有一个main主函数,main函数可以调用别的功能函数,但其它功能函数不允许调用main函数。不论main函数放在程序中的那个位置,总是先被执行。用上面学到的知识编译写好的OneLED程序,并把它烧到刚做好的最小化系统中。上电,刚开始时LED是不亮的(因为上电复位后所有的IO口都置1引脚为高电平),然后延时一段时间(for (a=0; a《50000; a++)这句在运行),LED亮,再延时,LED熄灭,然后交替亮、灭。第一个真正的小应用就做完,呵呵,先不要管它是否实用哦。如果没有这样的效果那么您就要认真检查一下电路或编译烧写的步骤了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    183

    文章

    7646

    浏览量

    146123
  • keil
    +关注

    关注

    69

    文章

    1232

    浏览量

    173139
  • HEX
    HEX
    +关注

    关注

    0

    文章

    37

    浏览量

    17472
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【教程】CW32之使用J-Link烧录.hex文件

    在平时调试时,我们也可以使用DAP-Link、ST-Link等进行烧录和Debug,使用方法和STM32类似。然而当我们手头只有hex文件(或bin文件)时,可以尝试使用J-Link进行烧录。
    的头像 发表于 04-01 16:56 3184次阅读
    【教程】CW32之使用J-Link烧录.<b class='flag-5'>hex</b><b class='flag-5'>文件</b>

    DAB变换器环流优化:基于移相控制的电感电流有效值最小化技术

    倾佳杨茜-死磕固变-SST固态变压器等基于SiC模块构建的DAB变换器环流优化:基于移相控制的电感电流有效值最小化技术 核心背景与技术挑战的物理映射 在现代直流配电网、电动汽车(EV)超充基础设施
    的头像 发表于 03-30 08:49 303次阅读
    DAB变换器环流优化:基于移相控制的电感电流有效值<b class='flag-5'>最小化</b>技术

    微电网经济调度理论:成本最小化与效益最大化的优化模型

    构建微电网经济调度优化模型,需先明确模型的核心构成要素,包括目标函数、约束条件与优化变量,三者相互关联、相互制约,共同决定了优化模型的科学性与实用性。其中,目标函数是模型的核心导向,明确成本最小化
    的头像 发表于 03-12 11:05 217次阅读
    微电网经济调度理论:成本<b class='flag-5'>最小化</b>与效益最大化的优化模型

    最小化ARM Cortex-M CPU功耗的方法与技巧分享

    能够通过使用更少时钟周期完成相同任务,节省了能耗;同时也能够通过占用极少的Flash存储空间,减少Flash存储器访问次数,实现终能耗节省的目标(除此之外,更小的应用代码也使得系统可以选择更小的Flash
    发表于 01-21 06:19

    请问怎么把.hex文件转化为.c文件吗?

    怎么把.hex文件转化为.c文件吗?
    发表于 01-05 07:12

    如何将Primus生成的波形文件导入MATLAB

    VCD 文件及其查看器,如 GTKWave,擅长记录和展示波形,而 MATLAB 擅长对复杂数据进行计算、分析和可视。在项目设计开发阶段,有时候,我们需要将 EDA 工具生成的波形数据,导入到 MATLAB 中进行更深入的分析
    的头像 发表于 12-23 14:22 1111次阅读

    请问有没有最小化系统程序,编程时可以快速设置?

    请问有没有最小化系统程序,编程时可以快速设置
    发表于 12-23 08:16

    往flash里面烧写的是.elf文件还是.hex文件?裸机应该没办法识别.elf文件

    往flash里面烧写的是.elf文件还是.hex文件?裸机应该没办法识别.elf文件吧?
    发表于 11-05 07:02

    使用env生成的keil文件好多文件找不到路径,为什么?

    使用env生成文件,使用了 scons —target=mdk5 —dist命令生成文件 但是用mdk打开后全是报错 请问大佬有遇到这种情况吗
    发表于 09-23 06:41

    智能体AI和生成式AI的区别

    生成式 AI 的核心是“生成内容” —— 比如用大模型写报告,是对输入指令的被动响应。而智能体 AI(Agentic AI)的关键是 “自主决策”:它像一个有经验的助理,能感知环境、记忆习惯、规划
    的头像 发表于 08-25 17:24 1884次阅读

    6系列和6系列B MSO示波器上削波警告如何帮助最小化削波影响(下)

    确保信号适当缩放以适应ADC的范围。使用保持信号在显示屏上而不削波的最小垂直刻度是实现更精细测量分辨率而不使ADC饱和同时保持测量完整性的最佳方式。泰克6系列MSO
    的头像 发表于 08-20 08:56 865次阅读
    6系列和6系列B MSO示波器上削波警告如何帮助<b class='flag-5'>最小化</b>削波影响(下)

    AICube生成部署文件失败的原因?怎么解决?

    我按照网上的方法安装了dotnet,和AICube,并且我是安装在非中文路径,但是尝试了一天了,都不能成功的生成部署文件,我使用软件自带的样例,但是就是不能生成部署文件 期待结果和实际
    发表于 08-05 06:26

    HighTec编译的HEX文件烧录进去开发板时,程序并没有在运行是怎么回事?

    我目前正在使用DAvE2 + HighTec + Memtools等工具正在对TC1796的开发版进行测试,但我发现,HighTec编译的HEX文件烧录进去开发板时,程序并没有在运行,RST指示灯
    发表于 08-01 07:46

    PanDao:实际约束条件下成像系统的初始结构的生成

    的一款建模软件工具,可读取透镜数据并确定最佳制造链,在考虑约360种制造技术的前提下实现制造成本与风险最小化。为展示FTR与PanDao协同工作的独特能力,我们选用机器视觉镜头进行验证(文件
    发表于 05-07 08:57

    HEX2BIX Fx2lp图像太大怎么解决?

    大家好 我正在使用 keilu v4 和 hex2bix 工具将 hex 转换为适用于我的 fx2lp 设备的 iic 文件。 我当前的命令是“.Binhex2bix-i -e -f 0xC2 -o
    发表于 04-30 06:37