c语言教程第二课 C51HEX文件的生成和单片机最小系统
上一篇建立了第一个单片机C语言项目,但为了让编译好的程序能通过编程器写入51芯 片中,要先用编译器生成HEX文件,下面来看看如何用KEIL uVISION2来编译生成用于烧写芯片的HEX文件。HEX文件格式是Intel公司提出的按地址排列的数据信息,数据宽度为字节,所有数据使用16进制数字表示, 常用来保存单片机或其他处理器的目标程序代码。它保存物理程序存储区中的目标代码映象。一般的编程器都支持这种格式。
我们先来打开第一个项目,打开它的所在目录,找到test.Uv2的文件就能打开先前的项目了。然后右击图2-1中的1项目文件夹,弹出项目功能菜单,选Options for Target’Target1’,弹出项目选项设置窗口, 同样先选中项目文件夹图标,这个时候在Project菜单中也有一样的菜单可选。打开项目选项窗口, 转到Output选项页图2-2所示,图中1是选择编译输出的路径,2是设置编译输出生成的文件 名,3则是决定是否要创建HEX文件,选中它就能输出HEX文件到指定的路径中。选好了? 好,我们再将它重新编译一次,很快在编译信息窗口中就显示HEX文件创建到指定的路径 中了,如图2-3。这样我们就可用自己的编程器所附带的软件去读取并烧到芯片了,再用实 验板看结果,至于编程器或仿真器品种繁多具体方法就看它的说明书了,这里也不做讨论。
(技巧:一、在图2-1中的1里的项目文件树形目录中,先选中对象,再单击它就可对它进 行重命名操作,双击文件图标便可打开文件。二、在Project下拉菜单的最下方有最近编辑过
的项目路径保存,这里能快速打开最近在编辑的项目。)
图2-1项目功能菜单
图2-2 项目选项窗口
图 2-3 编译信息窗口
或许您已把编译好的文件烧到了芯片上,如果您购买或自制了带串行口输出元件的学习实 验板,那您就能把串行口和 PC 机串行口相联用串行口调试软件或 Windows 的超级终端,将其波特 率设为1200,就能看到不停输出的“Hello World!”字样。如果您还没有实验板,那这 里先说说 AT89c51 的最小化系统,再以一实例程序验证最小化系统是否在运行,这个最小化 系统也易于自制用于实验。图 2-4 便是 AT89c51 的最小化系统,不过为了让我们能看出它 是在运行的,加了一个电阻和一个 LED,用以显示它的状态,晶体震荡器能根据自己的情况使用, 一般实验板上是用 11.0592MHz 或 12MHz,使用前者的好外是能产生标准的串行口波特率,后 者则一个机器周期为 1 微秒,便于做精确定时。在自己做实验里,注意的是 VCC 是+5V 的, 不最新电子行业资讯、教程以及开发板样片申请,请关注“云汉电子社区”官方微信公众号ickeybbs ,或者登录云汉电子社区官网:bbs.ickey.cn能高于此值,不然将损坏单片机,太低则不能正常工作。在 31 脚要接高电平,这样我们 才能执行片内的程序,如接低电平则使用片外的程序存储器。下面建一个新的项目名为 OneLED 来验证最小化系统是否能工作(所有的例程都可在笔者的主页下面下载到,程序如下:
#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);
}
图 2-4 AT89c51 最小化系统
这里先讲讲 KEIL C 编译器所支持的注释语句。一种是以“//”符号开始的语句,符号之后 的语句都被视为注释,直到有回车换行。另一种是在“/*”和“*/”符号之内的为注释。注 释不会被 C 编译器所编译。一个 C 应用程序中应有一个 main 主函数,main 函数能调用别
的功能函数,但其它功能函数不允许调用 main 函数。不论 main 函数放在程序中的那个位置, 总是先被执行。用上面学到的知识编译写好的 OneLED 程序,并把它烧到刚做好的最小化系 统中。上电,刚开始时 LED 是不亮的(因为上电复位后所有的 IO 口都置 1 引脚为高电平), 然后延时一段时间(for (a=0; a<50000; a++)这句在运行),LED 亮,再延时,LED 熄灭, 然后交替亮、灭。第一个真正的小实验就做完,如果没有这样的效果那么您就要认真检查一下电路或编译烧写的步骤了。
最新电子行业资讯、教程以及开发板样片申请,请关注“云汉电子社区”官方微信公众号ickeybbs ,或者登录云汉电子社区官网:bbs.ickey.cn
用uVision生成HEX文件烧录到单片机(2)
用uVision的源程序如何生成单片机识别的文件呢,来一步一步看一下。
1、打开自己的小项目(小鸡窝)
2、编译通过之前,点击project,然后选择options for.........。看黑框
3、选择output,把HEX那个钩打上点击OK,然后回去编译通过就生成了HEX文件
4、在这里,在你的工程文件夹里面,这个HEX可以烧录到单片机里, 搭建好外设,你就可以玩单片机了。单片机烧录器淘宝有,相应安装驱动在烧录HEX文件。
5、里面是这样的,其实这个可以看懂是啥,就看你厉害不厉害了(我暂时看不太懂,慢慢研究)。这些是指令的执行代码,如果你可以反编译再倒回去编出源程序,那好多事情都好办了,你就是大牛,哈哈。
相关问答
单片机 怎么 生成hex 格式?单片机常常使用汇编语言编写程序,完成对硬件的控制和数据处理等功能。将汇编程序转换为单片机可以执行的目标代码并最终生成HEX格式的过程为烧录。HEX格式是一...
51 单片机 怎么 生成hex 文件?有软件的吧我记得kiel还是啥的能把汇编C语言转化成hex再烧录到单片机中。有软件的吧我记得kiel还是啥的能把汇编C语言转化成hex再烧录到单片机中。
单片机 :在keil里从新建工程——书写程序——编译—— 生成HEX ...很多单片机,上面可能没有列举,我们任意选一个即可,51单片机选AT89C51代表即可。...生成HEX文件。右边target1右键弹出框,找到output,再找到creathexfi:前...
瑞萨 单片机 HEW怎么 生成HEX 文件啊,就是生成的文件到FDT中烧录?HEW生成HEX文件还是比较简单的,写好程序编译好之后没有问题了就可以直接运行,在HEW里点击运行图标之后会自动在你的项目下生成HEX文件的,使用FDT烧录软件找到...
8脚 单片机 烧写程序步骤?第一步、先安装AT89C51单片机的开发工具软件,如KeilUV2第二步、在Keil中创建51单片机的工程,并编写相应的控制代码,之后生成HEX文件第三步、打开51单片机专用...
51 单片机 怎么用keil编写俩c程序合成一个 hex 文件?.c是C语言源程序,具体的代码;.h是C语言头文件,宏定义一些函数、变量;.HEX是生成的十六进制文件,烧写文件,最终下载到单片机的;.UV2是工程文件,用....
proteus怎么添加 单片机 程序?1.使用其他的编写软件编写单片机程序,并生成.hex文件.2.在proteus中,直接双击芯片在其中的程序路径中添加你的代码文件.hex格式.3.仿真1.使用其他的编写软...
单片机 中的 HEX 和BIN分别是什么文件?-ZOL问答在单片机开发过程中,常用的文件格式包括HEX和BIN。HEX文件通常由KEIL等开发工具生成,而BIN文件则可以通过其他软件如图像转换工具生成。这些文件都可以用于烧...
怎么逆向分析 单片机 的 hex 文件?有相关的书籍吗?说来话长,一时不知怎么回答你,给你推荐几本书,看看合不合适:《51单片机》,《单片机的原理与应用》,《单片机的C语言应用程序设计》作者:马忠梅《PIC单片...
51 单片机 如何建立步骤?目前进行STC89C51/52、AT89S51/521、双击启动keil软件2、启动新建工程3、给新建工程命名和保存4、选择单片机型号,我们以STC89C52为例,依次选择“Atmel”-.....