单片机编程软件使用较多,诸多朋友大学期间便接触单片机编程软件。因此,大家对于单片机编程软件或多或少有所了解。本文中,将对Keil单片机编程软件加以介绍,主要在于介绍如何在这款单片机编程软件中进行项目设置以及如何进行编译、链接。如果你对本文内容具有兴趣,不妨继续往下阅读哦。

一、工程的详细设置

工程建立好以后,还要对工程进行进一步的设置,以满足要求。

首先点击左边Project 窗口的Target 1,然后使用菜单“Project->OpTIon for target ‘target1’”即出现对工程设置的对话框,这个对话框可谓非常复杂,共有8 个页面,要全部搞清可不容易,好在绝大部份设置项取默认值就行了。设置对话框中的Target 页面,如图1所示,Xtal 后面的数值是晶振频率值,默认值是所选目标CPU 的最高可用频率值, 对于我们所选的AT89C51 而言是24M,该数值与最终产生的目标代码无关,仅用于软件模拟调试时显示程序执行时间。正确设置该数值可使显示时间与实际所用时间一致,一般将其设置成与你的硬件所用晶振频率相同,如果没必要了解程序执行的时间,也可以不设,这里设置为12。

Memory Model 用于设置RAM 使用情况,有三个选择项,Small 是所有变量都在单片机的内部RAM 中;Compact 是可以使用一页外部扩展RAM,而Larget 则是可以使用全部外部的扩展RAM。Code Model 用于设置ROM 空间的使用,同样也有三个选择项,即Small模式,只用低于2K 的程序空间;Compact 模式,单个函数的代码量不能超过2K,整个程序可以使用64K 程序空间;Larget 模式,可用全部64K 空间。Use on-chip ROM 选择项,确认是否仅使用片内ROM(注意:选中该项并不会影响最终生成的目标代码量);OperaTIng 项是操作系统选择,Keil 提供了两种操作系统:Rtx TIny 和Rtx full,关于操作系统是另外一个很大的话题了,通常我们不使用任何操作系统,即使用该项的默认值:None(不使用任何操作系统);Off Chip Code memory 用以确定系统扩展ROM 的地址范围,Off Chip xData

memory 组用于确定系统扩展RAM 的地址范围,这些选择项必须根据所用硬件来决定,由于该例是单片应用,未进行任何扩展,所以均不重新选择,按默认值设置。设置对话框中的OutPut 页面,如图2所示,这里面也有多个选择项,其中Creat Hex file

用于生成可执行代码文件(可以用编程器写入单片机芯片的HEX 格式文件,文件的扩展名为.HEX),默认情况下该项未被选中,如果要写片做硬件实验,就必须选中该项,这一点是初学者易疏忽的,在此特别提醒注意。选中Debug information 将会产生调试信息,这些信息用于调试,如果需要对程序进行调试,应当选中该项。Browse information 是产生浏览信息,该信息可以用菜单view->Browse 来查看,这里取默认值。按钮“ Select Folder for objects”

是用来选择最终的目标文件所在的文件夹,默认是与工程文件在同一个文件夹中。Name of Executable 用于指定最终生成的目标文件的名字,默认与工程的名字相同,这两项一般不需要更改。工程设置对话框中的其它各页面与C51 编译选项、A51 的汇编选项、BL51 连接器的连接选项等用法有关,这里均取默认值,不作任何修改。以下仅对一些有关页面中常用的选项作一个简单介绍。Listing 标签页用于调整生成的列表文件选项。在汇编或编译完成后将产生(*.lst)的列表文件,在连接完成后也将产生(*.m51)的列表文件,该页用于对列表文件的内容和形式进行细致的调节,其中比较常用的选项是“C Compile Listing”下的“Assamble Code”项,选中该项可以在列表文件中生成C 语言源程序所对应的汇编代码。C51 标签页用于对Keil 的C51 编译器的编译过程进行控制,其中比较常用的是“Code Optimization”组,如图3所示,该组中Level 是优化等级,C51 在对源程序进行编译时,可以对代码多至9 级优化,默认使用第8 级,一般不必修改,如果在编译中出现一些问题,可以降低优化级别试一试。Emphasis 是选择编译优先方式,第一项是代码量优化(最终生成的代码量小);第二项是速度优先(最终生成的代码速度快);第三项是缺省。默认的是速度优先,可根据需要更改。设置完成后按确认返回主界面,工程文件建立、设置完毕。

二、编译、链接

在设置好工程后,即可进行编译、链接。选择菜单Project->Build target,对当前工程进行连接,如果当前文件已修改,软件会先对该文件进行编译,然后再连接以产生目标代码;如果选择Rebuild All target files 将会对当前工程中的所有文件重新进行编译然后再连接,确保最终生产的目标代码是最新的,而Translate … .项则仅对该文件进行编译,不进行连接。以上操作也可以通过工具栏按钮直接进行。编译、设置的工具栏按钮,从左到右分别是:编译、编译连接、全部重建、停止编译和对工程进行设置。编译过程中的信息将出现在输出窗口中的Build 页中,如果源程序中有语法错误,会有错误报告出现,双击该行,可以定位到出错的位置,对源程序反复修改之后,最终会得到如图4所示的结果,提示获得了名为exam1.hex 的文件,该文件即可被编程器读

入并写到芯片中,同时还产生了一些其它相关的文件,可被用于Keil 的仿真与调试,这时可以进入下一步调试的工作。

来源:单片机编程软件很简单(17),Keil单片机编程软件之编译、链接 - 21ic电子网

单片机编程软件很简单(17),Keil单片机编程软件之编译、链接相关推荐

  1. 单片机编程软件很简单(八),Keil单片机编程软件辅助功能讲解

    单片机编程软件的应用很多,在单片机编程软件的帮助下,我们对单片机的控制才变得如此简单.在市场上流通的单片机编程软件中,小编最为喜爱Keil单片机编程软件.在本文中,小编将为大家介绍Keil单片机编程软 ...

  2. 单片机编程软件很简单(23),keil单片机编程软件调试stm32

    单片机编程软件的使用意义较强,不论是工作还是学习,单片机编程软件都是常被使用的软件之一.本文对于单片机编程软件的介绍将基于如何采用keil单片机编程软件调试stm32,如果你对单片机编程软件抑或本文内 ...

  3. 单片机编程软件很简单(二),keil单片机编程软件心得秘笈

    单片机编程软件为常用软件之一,单片机开发人员均用过多款单片机编程软件.那么,用单片机编程软件进行开发时,大家是否有独特新得呢?本文对单片机编程软件的讲解基于Keil C51,主要为大家介绍使用这款单片 ...

  4. 单片机编程软件很简单(22),keil单片机编程软件优化等级+概念解析

    单片机编程软件是单片机使用过程中不可缺少的一环,因此对于单片机编程软件,相关人员应当具备一定了解.往期文章中,小编对单片机编程软件有过诸多介绍.本文对于单片机编程软件的介绍基于两点:1.keil单片机 ...

  5. 单片机编程软件很简单(五),keil单片机编程软件变量用法(下)

    对于单片机编程软件,想必大家均有所了解.针对单片机编程软件,小编曾对keil.IAR予以介绍.本文对于单片机编程软件的讲解,同样基于keil.本文中,将介绍keil单片机编程软件变量用法下篇.如果你对 ...

  6. 单片机编程软件很简单(14),Keil单片机编程软件断点设置

    单片机编程软件十分常用,对于单片机编程软件,小编于往期文章中做过诸多介绍.本文对于单片机编程软件的介绍基于Keil,主要内容在于介绍该单片机编程软件的在线汇编功能以及断点设置.如果你对Keil单片机编 ...

  7. 单片机编程软件很简单(13),Keil单片机编程软件常用调试命令

    单片机编程软件使用广泛,操作单片机编程软件的人员往往需具备专业知识.市场上有多款单片机编程软件可供大家选择,而小编较为推荐keil单片机编程软件.本文中,将主要为大家介绍这款单片机编程软件中的一些常见 ...

  8. androidstudio 日历视图怎么显示农历_中秋国庆旅游攻略怎么做?用这个便签软件很简单...

    九月已经到来,中秋节和国庆节距离我们也不远了,今年的中秋和国庆节重叠了有足足八天的假期.不少人都想趁着这个小长假出门旅游,要想保证旅游质量,那么就要做好攻略.中秋国庆旅游攻略怎么做? 要想做好一份中秋 ...

  9. 计算在一起的天数html,记录情侣在一起天数的软件 很火的情侣天数记录软件

    记录情侣在一起的天数是非常有意义,而且市面上有很多为情侣设计的APP,接下来我们就来看看记录情侣在一起天数的软件以及很火的情侣天数记录软件. 一.记录情侣在一起天数的软件 很火的情侣天数记录软件 1. ...

最新文章

  1. 实现容器的底层技术 - 每天5分钟玩转 Docker 容器技术(30)
  2. 删除Linux下/tmp目录引起的不正常登录系统
  3. python代码去马赛克_十行python代码教你如何去除万恶的,如s一样的马赛克
  4. 磁盘结构非常详细的介绍
  5. quarts集群 运维_Quartz.Net分布式运用
  6. matlab 有限域函数,matlab有限域上的运算.docx
  7. default、mms、supl、dun、hipri接入点类型的区别
  8. 计算机自带游戏怎么调,电脑游戏声音小怎么调,教您电脑游戏声音小怎么调
  9. 看懂财务报表一资产负债表
  10. 零基础学习CAD机械软件:02课CAD软件的启动和退出
  11. 兔子数列规律怎么讲_“兔子数列”的秘密
  12. elasticsearch + ik
  13. freemind问题合集
  14. 计算机存放程序和数据的设备是什么,计算机中用来存放程序和数据的部件是什么...
  15. stm32f10x_conf.h是个什么东东?
  16. PHP针对数字的加密解密类,可直接使用
  17. SOME/IP协议详解「2.0·服务化通信概述」
  18. 条码软件如何制作SN开头的条形码
  19. 【BIEB六人行活动】解决文档共享难题的优化思路小结
  20. libvirt零知识学习1 —— libvirt简介

热门文章

  1. 解读VL162最新Switshi切换芯片是VIA最新推出的Switsh芯片USB 3.1 Type-C接口数据切换开关专用芯片
  2. mybatis源码解析(一)
  3. 总谐波失真计算公式_黄金声学GR495四声道功放 低失真宽频响低调却有硬实力
  4. 计算机维修基本技能考试试题,高级计算机维修工操作技能考核试卷
  5. [Android]小米5刷root过程记录
  6. Verilog专题(十六)移位寄存器(逻辑移位、算术移位、循环移位)
  7. [生存志] 第114节 韩信围垓下
  8. python编程midi键盘按键错乱_键盘按键错乱超简单解决教程
  9. TcaplusDB君 · 行业新闻汇编(12月04号)
  10. C语言的scanf函数在visualstudio中的错误