keil介绍
- 格式:wps
- 大小:512.50 KB
- 文档页数:15
keil4和keil5区别keil4和keil5区别1、keil工具介绍keil软件主要是在进行单片机开发的时候使用,主要有针对于c51(AT89C51、STC89C51等51单片机)、arm单片机(LPC、STM32等系列arm单片机),该工具主要集编辑、编译、硬件芯片基本头文件和启动代码支持、调试等于一体。
keil是公司名称,uVision是IDE名称,用于源代码编辑等,包含了编译、调试、下载等工具。
MDK是微控制器开发集合,包含了不同芯片内核所需的库和文件,支持ARM 等。
MDKCM是兼容开发集合,如MDKCM518是在uVision5上兼容uVision4的包。
2、在keil4上ulink下载调试不支持在使用ULINK进行单片机程序下载和调试的时候,如果在keil软件中显示不出来ULINK设备,这时候,可能原因是ULINK的驱动没安装上,这就需要去手动安装ULINK(网上自己搜索下载),要么就更新keil4版本,最好到4.7以后,因为4.7版本以后自带了ULINK的驱动。
3、keil4使用方法(1)首先你需要下载安装keil4的安装包:mdk4.exe(网上下载就好了)*注意:安装过程中,关于存放安装路径一定不要有中文。
(2)对安装的keil4进行破解使用网上的keil破解软件,先在keil4的license management 中将CID拷贝到破解软件,然后选择target目标:C51或者arm,最后将生成的许可证在keil4中输入注册就可以了。
如果不破解,也能正常使用,只是编写的程序体积不能超过32KB。
(3)新建工程注意选择自己芯片对应的型号,并且添加start.s启动代码。
4、keil4和keil5的区别keil4是基本将所有的单片机芯片厂商生产的各种型号单片机的头文件、汇编启动代码、初始化代码这些硬件相关代码都囊括了,在新建工程的时候直接去选择就好了,缺点就是不能支持更多的库文件。
keil的几种编译模式Keil是一种功能强大的集成开发环境(IDE),用于嵌入式系统的软件开发。
它具有多种编译模式,每个模式具有不同的功能和用途。
下面将介绍Keil的几种主要编译模式。
1.仿真模式(Simulator)仿真模式是Keil IDE的默认模式,它允许开发人员在不依赖硬件平台的前提下进行软件开发和调试。
在仿真模式下,Keil IDE将会在主机计算机上模拟目标硬件平台上的处理器和其他外设。
仿真模式提供了一个完整的仿真环境,包括代码调试和性能分析等功能。
2.软件仿真模式(Software Simulation)软件仿真模式是Keil IDE中的一项特殊功能,它允许开发人员在不依赖于硬件的前提下运行和测试软件。
该模式通过在主机计算机上模拟目标处理器的指令集和外设行为,实现了对软件在不同运行条件下的模拟和分析。
软件仿真模式对于开发和测试对硬件资源要求较高的软件非常有用。
3.制作和运行模式(Build and Run)制作和运行模式是Keil IDE的另一种常用模式,它允许开发人员快速地对软件进行编译和运行。
在制作和运行模式下,Keil IDE会对整个工程进行编译,并将生成的二进制文件下载到目标硬件平台上进行运行。
该模式非常适用于快速验证软件的功能和性能。
4.下载模式(Download)下载模式是Keil IDE的一种特殊模式,它用于将编译生成的二进制文件下载到目标硬件平台上进行调试和测试。
在下载模式下,Keil IDE会通过连接器和下载器与目标硬件平台通信,将二进制文件下载到目标设备的存储器中。
下载模式通常与仿真模式或制作和运行模式配合使用。
5.适配模式(Adaptation)适配模式是Keil IDE的一种特殊模式,它用于针对不同的硬件平台进行软件适配和调试。
在适配模式下,Keil IDE会根据目标硬件平台的特性和要求,对软件进行适配和优化。
适配模式通常需要开发人员对目标硬件平台的底层驱动程序和外设进行了解和掌握。
Keil软件简介:单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。
机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。
1. 系统概述Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
2.Keil C51单片机软件开发系统的整体结构C51工具包的整体结构,如图4.1所示,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及A51编译器编译生成目标文件(.OBJ)。
一、概述单片机是一种集成了微处理器、存储器和输入/输出功能的集成电路,它在嵌入式系统中扮演着重要角色。
为了进行单片机的开发和编程,开发环境的选择和配置至关重要。
其中,Keil是一款专业的单片机开发环境,本文将对其进行描述和详细介绍。
二、Keil开发环境概述1. Keil开发环境简介Keil是一款由Keil Software公司开发的嵌入式系统开发工具,主要用于单片机的软件开发、调试和编程。
它提供了一整套完整的软件开发工具,包括C编译器、调试器、仿真器等,能够帮助开发者轻松进行单片机的开发工作。
2. Keil支持的单片机类型Keil支持包括STC、ATMEL、TI、NXP、Renesas等多种常见的单片机型号,覆盖了市面上绝大部分主流的单片机芯片。
3. Keil的特点Keil具有良好的易用性和稳定性,它可以在Windows操作系统下运行,并支持多种编程语言,包括C、C++、汇编语言等。
它还提供了丰富的编程和调试工具,能够帮助开发者高效地进行单片机程序的开发和调试工作。
三、Keil开发环境的安装和配置1. Keil软件的下载和安装开发者可以从Keil冠方全球信息站上下载Keil软件的安装包,然后按照安装向导逐步进行安装。
安装过程相对简单,一般不会遇到太大的问题。
2. Keil开发环境的配置安装完成后,开发者需要对Keil开发环境进行一些基本的配置,以确保其能够正常运行。
需要对工程文件、编译器设置、仿真器设置等进行配置,以满足具体的项目需求。
四、Keil开发环境的基本使用1. 新建项目在Keil中,开发者可以通过简单的操作新建一个项目,然后将需要的源码文件或者库文件添加到项目中。
2. 编写程序开发者可以在Keil中使用C、C++或者汇编语言编写单片机程序,支持的语言种类丰富,为开发者提供了更多的选择。
3. 编译和调试Keil提供了强大的编译器和调试工具,开发者可以利用这些工具对程序进行编译和调试,并对程序的运行状态进行实时监控和分析。
Ch1Keil介绍2010年春季NCUSE HYn 1.1概述n 1.2 Keil开发n 1.3 Keil调试n 1.4 Keil调试辅助工具1.1 概述n对51单片机而言,使用最广泛的软件编写语言 主要是汇编语言和C语言。
n在实际工程中,除了一些小型的应用程序或对 执行效率要求较高的关键部分,一般不会采用 汇编语言作为系统开发的主语言,取而代之是 高级语言,如C语言。
n对于51单片机,最著名的开发工具是Keil Software公司(位于美国德克萨斯,已被ARM 公司收购)的uVision集成开发环境。
uVision3 集成开发环境n包括:q C编译器q宏汇编器q连接器q库管理q仿真调试器1.2 Keil开发n Keil C51开发示例 q Keil_demoXtal后面的数值是晶振频 率值,默认值是所选目标 CPU 的最高可用频率 值,对于所选的AT89C51 而言是24M, 该数值与最终产生的目标 代码无关,仅用于软件模 拟调试时显示程序执行时 间。
正确设置该数值可使 显示时间与实际所用时间 一致,一般将其设置成与 你的硬件所用晶振频率相 同。
确认是否仅使用片内 ROM(注意:选中该项 并不会影响最终生成的目 标代码量)Memory Model用于设置 RAM使用情况,有三个 选择项,Small是所有变 量都在单片机的内部 RAM中(对于AT89C51,只有128字 节);Compact是可以使 用一页(256字节)外部 扩展RAM,而Larget 则 是可以使用全部外部的扩 展RAM。
Code Model用于设置 ROM空间的使用,同样 也有三个选择项,即 Small模式,只用低于2K 的程序空间;Compact模 式,单个函数的代码量不 能超过2K,整个程序可 以使用64K程序空间; Large模式,可用全部64K空间。
Operating项是操作系统 选择,Keil提供了两种操 作系统:Rtx tiny和Rtx full,关于操作系统是另 外一个很大的话题了,对 于单片机而言,通常我们 不使用任何操作系统,即 使用该项的默认值: None(不使用任何操作 系统)。
Keil C简介及与Proteus的仿真一、Keil C51集成开发环境Keil C51 V6.xx(包括V6.02 V6.10 V6.12 V6.14 V6.20 V6.20C等)是目前世界上最好的51单片机的汇编和c语言的开发工具。
支持汇编,c语言以及混合编程。
同时具备功能强大的软件仿真和硬件仿真(用mon51协议)。
Keil C51的IDE(集成开发环境)主要有两个版本,一个是UV1 (Keil C51 V5.20以下版本)运行界面:仿真的环境又叫DScope51,界面如下:uv1 是16位的软件,连接实际上是dos命令行的,不能在windows NT,windows 2000里运行。
是早期的软件(1997年以前的软件),后来keil公司推出了新的32位的软件Keil C51 V6.xx又叫uv2 .是全32位的软件,可以运行在windows 9x,windows nt,windows me,windows 2000,windows XP等操作系统,功能更加强大,支持的芯片更多。
UV2的IDE环境如下:UV2调试环境如下:二、建立一个新的工程Project我们下面以uv2的ide为基础来说明,就是keil c51 v6.xx的版本。
很多同学下载了keil c51的软件,但是不知道怎么用,其实keil有很详细的文档,在你安装之后的keil\C51\hlp目录里,有几个文件gs51.pdf,c51.pdf,a51.pdf,tr51.pdf和几个chm文件:c51lib.chm,dbg51.chm,errors.chm,这些文档已经非常详细的论述了关于keil c51方面的内容. 你碰到问题的话,大都可以在这些文档里找到答案.但是很多同学不愿意去阅读,因为都是英文的.其实看英文的内容,也并不是要求有很高的英文水平,现在有很多很好的在线翻译的工具,比如金山词霸,不懂的地方,用鼠标一点,中文意思就出来了,还支持对pdf文件的翻译.只要有耐心,你通过这些文档,可以对c51的了解更加的深入.在很多时候,需要你自己学会自己解决问题的能力.特别是到了企业,企业虽然允许员工可以交流,但是一个老板看到一个员工,什么问题都要去问别人的话,我相信老板对这个员工的看法不可能是赞扬的,而是他认为这个员工根本就不行.更为严重的是,老板认为你这个员工自己不行还不要紧,还影响了别人也干不了活(他要为你解答问题呀).一定要培养独立解决问题的能力,实在没有办法了,才通过别的手段(比如在bbs上,同学之间等)去解决问题.keil 的技术支持已经做的比较好,很多问题,还可以在keil的网站的faq或论坛找到答案.还是来说说如何建立一个新的工程吧.在低版本的c编译系统,一般没有工程的概念,工程就是某个c或汇编文件.但是高版本的c编译系统,keil c51 v5.xx以后的版本,都需要一个文件来存储工程的相关信息. keil c51的windows 版的软件,都是要建立一个工程文件,不管你是汇编的,还是c的,只有一个文件,还是有多个文件的程序都要有一个工程文件. 没有工程文件,将不能进行编译和仿真.按如下步骤来建立一个新的工程1)点击菜单project,选择new project:2)然后选择你要保存的路径,输入工程文件的名字,比如保存到keil目录里,工程文件的名字为test.如下图所示,然后点击保存.3)这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keil c51几乎支持所有的51核的单片机,如果你设计的是华邦的W77E58,可以选择winbond->W77E58,但是有一些版本,比如6.02,对它不能仿真,但是可以选择dallas的ds80c320来代替设计W77E58,两者的内核是一样的,只是w77e58带flash rom,而ds80c320没有flash rom,如果你的软件在仿真W77e58的时候有问题,那么就选用ds80c320 .我这里还是以大家用的比较多的Atmel 的89c52来说明,如图所示,选择89c52之后,右边一栏是对这个单片机的基本的说明,然后点击确定.4)这时要新建一个源程序文件,建立一个汇编或c文件,如果你已经有源程序文件,可以忽略这一步.点击菜单File->New:5)输入一个简单的程序,如下:5)选择菜单File_>SAVE:6)选择你要保存的路径,在文件名里输入文件名,注意一定要输入扩展名,如果是c程序文件,扩展名为.c,如果是汇编文件,扩展名为a51或者asm,如果是ini文件,扩展名为.ini,其他文件类型,比如注解说明文件,可以保存为.txt的扩展名.那么我们这里是要存储一个c源程序文件,所以输入.c扩展名,保存为test.c的名字,(也可以保存为其他名字,比如learn.c等),点击保存.7)点击Target 1前面的+号,展开里面的内容source Group1:---->8)用右键点击Sourece Group 1(注意用鼠标的右键,而不是左键),将弹出一个菜单,选择Add Files to Guoup'Source Group 1'.9)选择刚才的文件test.c,文件类型选择C Source file(*.c).因为我们的是c程序文件,所以选择该类型,如果是汇编文件,就选择asm source file.如果是目标文件,选择Object file,如果是库文件,选择Library file.最后点击Add.点击add之后,窗口不会消失,(如果要添加多个文件,可以不断添加),添加完毕此时再点击Close关闭该窗口.10)这时在source group 1 里就有test.c文件,如图:11)前面我们讲到添加了test.c的文件.接下来要进行一些设置,用鼠标右键(注意用右键)点击左边的Target 1,会出现一个菜单,选择Options for Target 'Target 1':12)会出现一个选项,其中“Target”选项卡中:Xtal (Mhz):是设置你的单片机的工作的频率,默认是24.0MHZ,如果你的单片机的晶振用的是11.0592Mhz,那么在框里输入11.0592(单位是Mhz,所以带小数点).Use On-chip ROM(0x0-0x1fff):这个选项是使用片上的Flash Rom,我们知道At89c52有8k的flash Rom.取决于你的应用系统,你的单片机的EA接高电平的话,请选中这个选项,如果你的单片机的EA接低电平,表示使用外部Rom,那么不要选中该选项.我们在这里选中它Off-chip Code memory:表示你在片外接的Rom的开始地址和大小,如果你没有外接程序存储器,那么不要填任何数据.我们在这里假设使用一个片外的Rom,地址从0x8000开始(不要填成8000,如果是8000,是10进制的数,一般填16进制的数),Size为外接Rom的大小.假设接了一块0x1000字节的rom.最多可以外接3块Rom,如果你还用了别的地址,那么就添上.Off-Chip Xdata Memory :那么可以填上你外接的Xdata(外部数据存储器的起始地址和大小,一般的应用是接一个62256,我们在这里特殊的指定Xdata的起始地址为0x2000,大小为0x8000;Code Banking:是使用Code Banking技术.keil可以支持程序代码超过64k的情况,最大可以有2兆的程序代码.如果你的代码超过64k,那么就要使用Code Banking技术,以支持更多的程序空间.Code Banking是一个高级的技术,支持自动的Bank的切换,是建立一个大型系统的需要,比如你要在单片机里实现汉字字库,实现汉字输入法,都要用到该技术.Memory Model:用鼠标点击Memory Model的下拉箭头,会有3个选项.Small:变量存储在内部ram里.Compact:变量存储在外部ram里,使用页8位间接寻址.Large:变量存储在外部Ram里,使用16位间接寻址.我们一般使用Small来存储变量,就是说单片机优先把变量存储在内部ram里,如果内部ram不够了,才会存到外部去.Compact的方式要自己通过程序来指定页的高位地址,编程比较复杂,如果外部ram很少,只有256个字节,那么对该256个字节的读取就比较快,用MOVX @Ri,A 或MOVX A,@Ri指令.如果超过256字节,那么要不断地进行切换的话,就比较麻烦.Compact模式适用于比较少的外部ram的情况.Large 模式,是指变量会优先分配到外部ram里,用MOVX A,@DPTR或MOVX @DPTR,A来读取.要注意的是,3种存储方式都支持内部256字节和外部64k字节的ram.区别是变量的优先(或默认)存储在哪里的区别.除非你不想把变量存储在内部ram,才使用后面的Compact,Large模式.因为变量存储在内部ram里,运算速度比存储在外部ram要快的多,大部分的应用都是选择Small的模式.使用Small的方式:也不是说变量就不可以存储在外部,一样可以存储在外部,只是你要指定,比如:unsigned char xdata a;那么变量a就存储在外部的ram.unsigned char a;变量存储在内部ram.假如用Large的模式:unsigned char xdata a;那么变量a就存储在外部的ram.unsigned char a;变量存储在外部ram.这就是区别,就是说这几个选项只是影响没有特别指定变量的存储空间的时候,默认存储在哪里,比如上面的变量定义unsigned char a .那么我们最好选择Small.Code Rom Size:用鼠标点击下拉箭头,将有3个选项:Small: program 2K or less;适用于89c2051这些芯片,2051只有2k的代码空间,所以跳转地址只有2k,编译的时候会使用ACALL AJMP这些短跳转指令,而不会使用LCALL,LJMP指令.如果你的代码跳转超过2k,那么会出错.Compact:2k functiongs ,64k program;表示每个子函数的程序大小不超过2k,整个工程可以有64k的代码.就是说在main()里可以使用LCALL, LJMP指令,但在子程序里只会使用ACALL,AJMP指令.除非你确认你的每个子程序不会超过2k,否则不要用Compact方式.Large:64K program;表示程序或子函数都可以大到64k.使用code bank还可以更大.通常我们都选用该方式.Code Rom Size选择Large方式速度不会比Small慢很多,所以一般没有必要选择Compact和Small的方式.我们这里选择Large方式.Operating:点击下拉箭头有3个选项:None:表示不使用操作系统RTX-51 Tiny Real-Time Os:表示使用Tiny操作系统RTX-51 Full Real-Time Os:表示使用Full操作系统Keil c51提供了tiny系统(demo版没有tiny系统,正版软件才有),Tiny是一个多任务操作系统,使用定时器0来做任务切换.一般用11.0592Mhz时,切换任务的速度为30毫秒.如果有10个任务同时运行,那么切换时间为300毫秒.同时不支持中断系统的任务切换.也没有优先级.因为切换的时间太长,实时性大打折扣,多任务情况下(比如5个),轮一次就要150毫秒,150毫秒才处理一个任务,连实现键盘扫描这些事情都不行.更不要说串口接收,外部中断等.同时切换需要大概1000个机器周期,对cpu的浪费很大,对内部ram的占用也很厉害.实际上用到多任务操作系统的情况少之又少.关键是不适用.多任务操作系统一般适合于16位,32位的cpu,不适合8位cpu.Keil C51 Full Real-Time OS:是比Tiny要好一些的系统,但需要用户使用外部ram.支持中断方式的多任务和任务优先级.但是keil c51里不提供该运行库,要另外购买,价格在3万人民币左右,只好望而止步.Keil 的多任务操作系统的思想值得学习,特别是任务切换的算法,如何切换任务和保存堆栈等,有一定的研究价值.如果熟悉了其切换的方法,可以编写更好的切换(比如将一次切换的时间从30毫秒改为3毫秒,实用性会好一些.引入windows消息的思想,可以支持更为复杂的应用.)这些可能是一些发烧友研究的一个课题.也有免费的UCOS ii.这里我不推荐大家使用多任务操作系统.选择none.三、其他选项卡介绍1)上面讲到了Target栏的设置,下面要对Output栏进行设置:这一栏有很多的选项:Select Folder for Objects:点击这个按钮可以选择编译之后的目标文件存储在哪个目录里,如果不设置的话,就是在你的工程文件的目录里.Name of Executable:是设置生成的目标文件的名字,缺省是跟你的工程的名字是一样的.目标文件可以生成库或者obj,hex的格式.Create Executable:是生成OMF以及HEX文件:一般是选中Debug Information,选中Browse Information.这两个选项一般要选中,这样才有详细的调试所需要的信息,比如你要做c语言程序的调试,如果不选的话,调试时你将无法看到高级语言写的程序.Create Hex File:这个选项一般是要选中的,如上图所示.还有人问到如何生成OMF的文件,事实上Keil在每次编译之后都生成了OMF文件,那个跟你的工程文件名一样的,但是没有带扩展名的文件就是OMF格式的文件.例如我们这个工程的名字是test.uv2,将会生成一个OMF文件test(不带扩展名).默认是不选中的,所以要自己做设置.Create Library:选中时将生成lib库文件.根据你的需要是否要生成库文件,一般的应用是不生成库文件的.After Make:有几个设置:1.Beep when complete:编译完成之后发出咚的声音.2.Start Debugging:马上启动调试(软件仿真或硬件仿真).根据你的需要做设置,一般是不选中.3.Run User Program #1,Run User Program #2:这个选项可以设置编译完之后运行别的应用程序,比如有些用户自己编写的烧写芯片的程序(编译完便执行将hex文件写入芯片),或调用外部的仿真程序.根据自己的需要设置.2)我们来看Listing栏的设置:Keil C51在编译之后除了生成目标文件之外,还生成*.lst *.m51的文件.那么这两种扩展名的文件对你了解你的程序用到了那些idata ,data ,bit ,xdata,code ,ram,rom,stack等有很重要的作用.有些人就问到我如何知道我的程序需要多少的代码空间?那么在这两个文件里,会告诉你,一般按照上图进行设置.如果你不想生成某些内容,可以不选.选中Assembly Code还会生成汇编的代码.如果不知道如何用汇编来写一个long型数的乘法,那么你可以用c来写,写了之后编译,你就可以得到用汇编实现的代码.而不必在那里苦想.有了高级的工具,我们就要它来帮助你更好的设计.就算你是写汇编的,如果你熟悉c,也会给你带来很大的帮助.比如if for;while,case等一些c语言的结构,如何用汇编来做到,那么可以自己写一段c,然后编译,你就可以得到汇编实现这些高级语言算法的结构.这是很有用的.所以请选中Assembly Code.对于一个高级的单片机程序员,往往既要熟悉汇编,同时也要熟悉c语言,才能更好的去编写程序.因为汇编和c都是工具,可能在某些地方用c无法实现,但用汇编却很容易.有些地方用汇编,很繁琐,用c就很方便.在bbs上多次有人争论汇编和c的问题.我们无法说c好,还是汇编好,有时要取决于你的项目.我们认为能够最快的实现和完成你的设计的就是好的.多数情况下,是用c语言做设计比较快.特别是代码比较多的设计,c的优势就更为明显.如果用c也不好,用汇编也不好,那么就混合使用吧,keil c51是支持c和汇编混合编程的.Select Folder for Listings:选择生成的列表文件存放的目录.不做选择时使用工程文件所在的目录.3) Debug栏的设置:Use Simulator:使用软件仿真器Load Application at Start:启动时加载程序Go till main( ): 运行到main四、Proteus与keil的联合仿真方法一:选择硬件仿真器调试时的一些选项Settings:硬件调试的设置,此项必须要选如果使用同一台计算机,则IP名为127.0.0.1,如不是同一台机器则填另一台的IP地址。