标题：keil
Keil公司
Keil公司是一家业界领先的微控制器（MCU）软件开发工具的独立供应商。Keil公司由两家私人公司联合运营，分别是德国慕尼黑的Keil Elektronik GmbH和美国德克萨斯的Keil Software Inc。Keil公司制造和销售种类广泛的开发工具，包括ANSI C编译器、宏汇编程序、调试器、连接器、库管理器、固件和实时操作系统核心（real-time kernel）。有超过10万名微控制器开发人员在使用这种得到业界认可的解决方案。其Keil C51编译器自1988年引入市场以来成为事实上的行业标准，并支持超过500种8051变种。
Keil公司在2005[1]年被ARM公司收购。其两家公司分别更名为ARM Germany GmbH和ARM Inc。Keil公司首席执行官Reinhard Keil表示：“作为ARM Connected Community中的一员，Keil和ARM保持着长期的良好关系。通过这次收购，我们将能更好地向高速发展的32位微控制器市场提供完整的解决方案，同时继续在uVision环境下支持我们的8051和C16x编译器。”
Keil与ARM
Keil公司2005年由ARM公司收购。其两家公司分别更名为ARM Germany GmbH和ARM Inc。Keil公司首席执行官Reinhard Keil表示：“作为ARM Connected Community中的一员，Keil和ARM保持着长期的良好关系。通过这次收购，我们将能更好地向高速发展的32位微控制器市场提供完整的解决方案，同时继续在uVision环境下支持我们的8051和C16x编译器。”
而后ARM Keil推出基于uVision界面，用于调试ARM7，ARM9，Cortex-M内核的MDK-ARM开发工具，用于为控制领域的开发。
Keil界面
Keil μVision2KeiluVision2是德国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统，使用接近于传统c语言的语法来开发，与汇编相比，C语言在功能上、结构性、可读性、可维护性上有明显的优势，因而易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编，您可以在关键的位置嵌入，使程序达到接近于汇编的工作效率。KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强，使你可以更加贴近CPU本身，及其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中，这个集成开发环境包含：编译器，汇编器，实时操作系统，项目管理器，调试器。uVision2 IDE可为它们提供单一而灵活的开发环境。Keil μVision32006年1月30日ARM推出全新的针对各种嵌入式处理器的软件开发工具，集成Keil μVision3的RealView MDK开发环境。RealView MDK开发工具KeilμVision3源自Keil公司。RealView MDK集成了业内领先的技术，包括Keil μVision3集成开发环境与RealView编译器。支持ARM7、ARM9和最新的Cortex-M3核处理器，自动配置启动代码，集成Flash烧写模块，强大的 Simulation设备模拟，性能分析等功能，与ARM之前的工具包ADS等相比，RealView编译器的最新版本可将性能改善超过20%。KeilμVision42009年2月发布Keil μVision4，Keil μVision4引入灵活的窗口管理系统，使开发人员能够使用多台监视器，并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口，提供一个整洁，高效的环境来开发应用程序。新版本支持更多最新的ARM芯片，还添加了一些其他新功能。
2011年3月ARM公司发布最新集成开发环境RealView MDK开发工具中集成了最新版本的Keil uVision4，其编译器、调试工具实现与ARM器件的最完美匹配。
KEIL中国
Keil的网站虽然没有中文版本，但是Keil软件却被中国80%的硬件工程师使用，但凡与电子相关的专业，都会开始从单片机和计算机编程开始学习，而学习单片机自然会用到Keil软件。目前，国内由亿道电子、英蓓特、米尔科技提供Keil的销售和技术支持服务，他们是ARM公司合作伙伴，也是国内领先的嵌入式解决方案提供商。
基础
Keil C51开发系统基本知识Keil C51开发系统基本知识
⒈系统概述
Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具，全Windows界面。另外重要的一点，只要看一下编译后生成的汇编代码，就能体会到Keil C51生成的目标代码效率非常之高，多数语句生成的汇编代码很紧凑，容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。
⒉Keil C51单片机软件开发系统的整体结构
C51工具包的整体结构，uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE），可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件（.OBJ）。目标文件可由LIB51创建生成库文件，也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS）。ABS文件由OH51转换成标准的Hex文件，以供调试器dScope51或tScope51使用进行源代码级调试，也可由仿真器使用直接对目标板进行调试，也可以直接写入程序存贮器如EPROM中。
使用独立的Keil仿真器时，注意事项
* 仿真器标配11.0592MHz的晶振，但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。
* 仿真器上的复位按钮只复位仿真芯片，不复位目标系统。
* 仿真芯片的31脚（/EA）已接至高电平，所以仿真时只能使用片内ROM，不能使用片外ROM；但仿真器外引插针中的31脚并不与仿真芯片的31脚相连，故该仿真器仍可插入到扩展有外部ROM（其CPU的/EA引脚接至低电平）的目标系统中使用。[1]
优点
⒈Keil C51生成的目标代码效率非常之高，多数语句生成的汇编代码很紧凑，容易理解。在开发大型软件时更能体现高级语言的优势。
⒉与汇编相比，C语言在功能上、结构性、可读性、可维护性上有明显的优势，因而易学易用。用过汇编语言后再使用C来开发，体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具，全Windows界面。
教程
  图1 键盘、LED 显示实验仿真板为了让初学者更好地入门，笔者利用Keil 提供的AGSI 接口开发了两块仿真实验板。这两块仿真板将枯燥无味的数字用形象的图形表达出来，可以使初学者在没有硬件时就能感受到真实的学习环境，降低单片机的入门门槛。图1 是键盘、LED 显示实验仿真板的图，从图中可以看出，该板比较简单，有在P1 口接有8 个发光二管，在P3 口接有4 个按钮，图的右边给出了原理图。
图 2 是另一个较为复杂的实验仿真板。在该板上有8 个数码管，16 个按键（接成4*4 的矩阵式），另外还有P1 口接的8个发光管，两个外部中断
  图2 单片机实验仿真板按钮，一个带有计数器的脉冲发生器等资源，显然，这块板可以完成更多的实验。
一、实验仿真板的安装
这两块仿真实验板实际上是两个 dll 文件，名称分别是ledkey.dll 和simboard.dll，安装时只要根据需要将这两个或某一个文件拷贝到keil 软件的c51\bin 文件夹中即可。
二、实验仿真板的使用
要使用仿真板，必须对工程进行设置，设置的方法是点击Project->Option for Target ‘Target1’打开对话框，然后选中Debug 标签页，在Dialog :Parameter：后的编缉框中输入-d 文件名。例如要用ledkey.dll（即第一块仿真板）进行调试，就输入-dl
  图3 实验仿真板的设置edkey，如图3所示，输入完毕后点击确定退出。编译、连接完成后按CTRL+F5 进入调试，此时，点击菜单Peripherals，即会多出一项“键盘LED 仿真板（K）”，选中该项，即会出现如图1 的界面，同样，在设置时如果输入-dsimboard 则能够调出如图2 的界面。
第一块仿真板的硬件电路很简单，电路图已在板上，第二块板实现的功能稍复杂，其键盘和数码显示管部分的电路原理图如图4 所示。下表给出了常用字形码，读者也可以根据图中的接线自行写出其它如A、B、C、D、E、F 等的字形码。除了键盘和数码管以外，P1 口同样也接有8 个发光二极管，连接方式与图1 相同；键盘旁的两个按钮INT0和INT1分别接到P3口的INT0和INT1即P3.2和P3.3引脚，脉冲发生器是接入T0即P3.4引脚。
0c0h
0f9h
0a4h
0b0h
99h
92h 
82h
0f8h
80h
90h
0FFH
0
1
2
3
4
5
6
7
8
9
消隐
  图4 实验仿真板2 数码管和键盘部份的电路图三、实例调试
以下以一个稍复杂的程序为例，说明键盘、LED 显示实验仿真板的使用。该程序实现的是可控流水灯，接P3.2 的键为开始键，按此键则灯开始流动（由上而下），接P3.3 的键为停止键，按此键则停止流动，所有灯暗，接P3.4 的键为向上键，按此键则灯由上向下流动，接P3.5 的键为向下键，按此键则灯由下向上流动。