234彩票代理

  • <tt class='tlJykMlA'></tt>
  • <thead class='94K7Lauipx'><option class='9cNvbSu7LJ'></option></thead>

    <em class='jepytdnyfeW3'><b class='oR1Ys12nk'><td class='6rzzLTN'></td></b></em>

  • <dl class='Td0EmkF'><b class='qoWhaibfJ9'></b></dl>

  • <span class='lS1G'></span>

    (玩电子) 电子技术学习与研究
    当前位置:单片机教程网 >> 基础教程 >> 浏览文章

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

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

      上    一篇建立了第一个单片机C语言项目,但为了让编译好的一程序能通过编程器写入51芯 片中,要先用编译器生成HEX文件,下面来看看如何用KEIL uVISION2来编译生成用于烧写 芯片的一HEX文件 。HEX文件格式是Intel公司|234彩票代理提出的一按地址排列的一数据信息,数据宽度为字 节,所有数据使用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 的一, 不 能高于此值,不 然将损坏单片机,太低则不 能正常工作 。在 31 脚要接高电平,这样我们 才能执行片内的一程序,如接低电平则使用片外的一程序存储器 。下面建一个新的一项目名为 OneLED 来验ζ证最小化系统是否能工作(所有的一例程都可在笔者的一主页下面下载到,网址: http://www.   。程序如下:


     

    #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 熄灭, 然后交替亮、灭 。第一个真正的一小实验ζ就做完,如果没有这样的一效果那么您就要认真检查一下电路或编译烧写的一步骤了 。

     

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

    文章评论