1. <em id="3qmea"><ol id="3qmea"></ol></em>
    2. <em id="3qmea"></em>
      中国领先的单片机及嵌入式资讯教程开发工具提供者!
      当前位置单片机教程网 >> 基础教程 >> 浏览文章

      第二课 C51HEX文件的生成和单片机最小系统

      作者:佚名   来源:本站原创   点击数:  更新时间2007年07月19日   字体

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

      技巧一在图21中的1里的项?#35838;?#20214;树?#25991;?#24405;中先选中对象再单击它就可对它进 行重命名操作双击文件图标便可打开文件二在Project下拉菜单的最?#36335;?#26377;最近编辑过

      的项目路径保存这里能快速打开最近在编辑的项目

      图21项目功能菜单
       

      图22    项目选项窗口

      图 23    编译信息窗口

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


       

      #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);

      }

      图 24    AT89c51 最小化系统

      这里先讲讲 KEIL  C 编译器所支持的注释语句一种是以“//”符号开始的语句符号之后 的语句都被视为注?#20572;?#30452;到有回车换?#23567;?#21478;一种是在“/*”和“*/”符号之内的为注释注 释不会被 C 编译器所编译一个 C 应用程序中应有一个 main 主函数main 函数能调用别


       

      的功能函数但其它功能函数不允许调用 main 函数不论 main 函数放在程序中的那个位置 总是先被执?#23567;?#29992;上面学到的知识编译写好的 OneLED 程序并把它烧到刚做好的最小化系 统?#23567;系?#21018;开始时 LED 是不亮的因为?#31995;?#22797;位后所有的 IO 口都置 1 引脚为高电平 然后延时一段时间for  (a=0;  a<50000;  a++)这句在运行LED 亮再延时LED 熄灭 然后交替亮灭第一个真正的小实验就做完如果没有这样的效果那么您就要认真检查一下电路或编译烧写的步骤了

       

      发表评论告诉好友收藏此文关闭窗口

      文章评论

      ຣ11ѡ5app

        
        
        1. <em id="3qmea"><ol id="3qmea"></ol></em>
        2. <em id="3qmea"></em>

            
            
            1. <em id="3qmea"><ol id="3qmea"></ol></em>
            2. <em id="3qmea"></em>