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

    文章

    7642

    浏览量

    144601
  • keil
    +关注

    关注

    69

    文章

    1224

    浏览量

    171802
  • HEX
    HEX
    +关注

    关注

    0

    文章

    37

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    往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 1210次阅读

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

    确保信号适当缩放以适应ADC的范围。使用保持信号在显示屏上而不削波的最小垂直刻度是实现更精细测量分辨率而不使ADC饱和同时保持测量完整性的最佳方式。泰克6系列MSO
    的头像 发表于 08-20 08:56 447次阅读
    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

    如何使用.hex进行远程更新文件

    使用 .hex 进行远程更新 文件
    发表于 04-21 06:53

    求助,与生成的.hex文件相关的问题求解

    两台 PC 中使用相同的项目(代码),当我比较那里的十六进制文件时,我可以看到新 PC 中生成的十六进制文件中的前几行发生了变化。我可以看到第一行中添加了零,而不是某个数字,并附加了相同的快照。 我是否搞砸了新 PC 中的任何设
    发表于 03-17 07:45

    STM32使用ISp烧录HEX文件运行,代码重新编译之后的产生的新hex文件选择全片擦除就没办法正常运行,为什么?

    我有一套代码需要使用ISp烧录HEX文件运行,代码有一个老的HEX,无论是全片擦除还是擦除重要部分再下载都没有问题。但是代码重新编译之后的产生的新hex
    发表于 03-10 07:42

    stm32cubeide编译的时候报错,无法生成hex文件怎么解决?

    stm32cubeide编译的时候报错,并且无法生成hex文件怎么办急急急!
    发表于 03-07 08:17

    自动报表生成:水库水雨情监测系统的数据可视功能

    在现代水库管理中,水雨情监测系统不仅承担着实时监测水情、降水、气象等数据的任务,同时还通过数据可视功能将复杂的水文信息呈现为易于理解的图表、报表等,极大提升了水库管理的决策效率和准确性。自动报表
    的头像 发表于 12-25 15:52 1116次阅读
    自动<b class='flag-5'>化</b>报表<b class='flag-5'>生成</b>:水库水雨情监测<b class='flag-5'>系统</b>的数据可视<b class='flag-5'>化</b>功能

    HK32F030MF4P6最小系统板原理图及PCB文件

    方便验证 HK32F030MF4P6 性能的最小系统板原理图和PCB文件,所有IO都有引出,适合需要验证单片机性能但不想要画板的小伙伴。原理图:PCB 预览:注意:因为IO口都是直接引出,请不要将其接到超过额定电压承受范围的电路上!
    发表于 12-23 18:00 4次下载

    RK3588主板/开发板Android12系统APK签名文件生成的方法,干货满满

    本文介绍瑞芯微RK3588主板/开发板Android12系统下,APK签名文件生成方法。触觉智能RK3588开发板演示,音视频接口、通信接口等一应俱全,帮助企业提高产品开发效率,缩短上市时间,降低成本和设计风险。
    的头像 发表于 12-12 10:38 1280次阅读
    RK3588主板/开发板Android12<b class='flag-5'>系统</b>APK签名<b class='flag-5'>文件</b><b class='flag-5'>生成</b>的方法,干货满满