Keil软件及其调试功能简介.
- 格式:doc
- 大小:25.00 KB
- 文档页数:3
使用Keil软件模拟调试单片机串行口单片机串行口是单片机中很常见的接口之一,常用于与外界通讯,如与PC机通讯,接收或发送数据等。
Keil软件可以帮助我们模拟及调试单片机串行口,下面是详细介绍。
一、Keil软件简介Keil是一款强大的单片机编程软件,具有模拟器和仿真器。
其可支持多种嵌入式系统和多种编译器。
同时Keil具有标准C 编译器,专门用于单片机编程,而且具有与某些模拟器和编译器的集成,可提供完整的嵌入式开发环境。
二、使用Keil软件模拟1. 连接软件与硬件在开始模拟之前,需要将单片机与电脑通过串口连接好。
打开“Options for Target”对话框,选择“Debug”选项卡,选择正确的COM 端口,设置存根速度,完成调试设置。
2. 添加串行口文件在Keil软件中打开设计文件,键入“#include <reg52.h>”来添加注册头文件,其中包含了需要使用串口的相关寄存器位。
利用如下代码,可以对串行口的各项参数进行设置,例如波特率、校验位等等。
void init(){SCON = 0X50; //使串口工作在方式1,即8位数据,可变波特率TMOD |= 0X20; //TMOD的高4位设为0010,使Timer1工作在方式2TH1 = 0XF3; //波特率设为2400bpsTL1 = 0XF3;TR1 = 1; //启动Timer1ES = 1; //开启串口中断EA = 1; //打开总中断}3. 编写数据收发代码在调用串口的过程中,我们往往需要使用到接收和发送两个函数。
在接收方面,我们需要设置好接收中断模式以及缓冲区的异步处理。
编写简单的数据接收收发代码如下:void send_data(unsigned char dat){SBUF = sdat; //将数据传输到SBUF当中while(!TI); //等待发送完成TI = 0; //完成发送}unsigned char receive_data(){while(!RI); //等待接收完成RI = 0; // 完成接收return SBUF; // 返回接收缓冲区}4. 最后进行模拟完成串行口配置和数据处理之后,就可以开始模拟调试了。
keil使用介绍-回复Keil使用介绍Keil是一款广泛应用于嵌入式系统开发中的集成开发环境(IDE),其提供了一套全面的工具链,包括了编译器、汇编器、调试器以及仿真器等,帮助开发人员进行嵌入式软件的开发与调试。
本文将一步一步地介绍Keil 的安装、项目创建、编译与调试等相关操作,以帮助初学者快速上手使用Keil进行嵌入式开发。
一、Keil的安装1. 下载Keil安装包:首先,我们需要从Keil官方网站上下载合适的Keil安装包。
根据自己所使用的嵌入式处理器类型,选择对应的Keil版本进行下载。
2. 运行安装程序:下载完成后,双击安装程序进行安装。
按照安装程序的引导,选择安装路径和组件安装选项等,然后等待安装完成。
3. 激活Keil许可证:安装完成后,首次打开Keil时,系统会要求激活Keil许可证。
根据提示输入许可证信息,完成激活过程。
二、Keil项目创建1. 新建项目:打开Keil,点击菜单栏的“Project”选项,然后选择“New Project”来创建一个新的项目。
2. 选择处理器类型:在弹出的对话框中,选择适用于您的嵌入式处理器的型号。
如果您的处理器不在列表中,您可以选择最接近的型号。
3. 选择存储路径:在下一个对话框中,选择您想要存储项目的路径,并给您的项目命名。
单击“Save”按钮进行保存。
4. 配置工程选项:在项目创建完成后,Keil会自动打开“Options for Target”窗口。
在该窗口中,您可以配置项目的各项参数,包括编译器设置、目标设备选项和调试设置等。
三、Keil编写与编译1. 新建源文件:在项目资源管理器中,右键单击项目名称,选择“Add New Item”来添加新的源文件。
您可以选择添加C文件、汇编文件或者其他类型的源文件。
2. 编写源代码:双击新建的源文件,进入编辑器界面,开始编写您的嵌入式软件代码。
3. 编译项目:在Keil菜单栏中选择“Project”选项,然后选择“Build target”来编译您的项目。
keil调试汇编语言首先要介绍一下Keil,Keil是一种专门用于嵌入式系统中的集成开发环境,它可以用来编译,调试和仿真嵌入式系统中的C和汇编程序。
在Keil中调试汇编语言需要掌握几个方面:1. Keil中的窗口在Keil中,有许多窗口可以用来查看或编辑代码,例如Project 窗口、Command窗口、Disassembly窗口等。
其中比较重要的是Debug 窗口,它可以用来监视程序的执行,包括CPU寄存器值、内存地址和指令执行情况等。
同时,它也可以用来设置断点、单步执行程序等调试操作。
2.调试命令在Keil中,有许多调试命令可以用来操作程序的执行。
例如,Step Over可以用来执行当前指令,并移动到下一条指令,Step Into 可以用来进入当前指令所调用的子程序中执行,而Step Out则可以用来退出当前子程序的执行。
除此之外,还有一些命令可以用来设置断点、修改寄存器值等调试操作。
3.汇编指令在调试汇编语言程序时,需要熟悉各种汇编指令的用途和语法。
例如,MOV可以用来将一个值从一个寄存器移动到另一个寄存器中,ADD可以用来将两个值相加并将结果存储到一个寄存器中等等。
同时,还需要了解一些特殊的汇编指令,例如INT可以用来触发中断,JMP可以用来跳转到指定的地址等。
4.内存映像调试汇编语言程序时,可以通过内存映像来查看程序在内存中的执行情况。
在Keil中,可以用Memory窗口来查看各个地址中的值,并根据需要修改它们。
同时,也可以使用Watch窗口来监视某个变量或内存地址的变化,并在程序执行时实时显示它们的值。
总体来说,调试汇编语言程序需要先熟悉Keil中的窗口和调试命令,同时还需要了解汇编指令的语法和用途,并能够使用内存映像来查看程序在内存中的执行情况。
此外,还需要有耐心和细心,仔细观察程序的执行情况,并通过断点和单步执行等操作来排查程序中的问题。
keil调试高级用法Keil是一款非常常用的嵌入式开发工具,用于开发和调试嵌入式系统。
它具有强大的功能和灵活的调试选项,可以帮助开发人员有效地调试代码。
在本文中,我将介绍一些Keil调试的高级用法,以帮助用户更好地利用该工具进行嵌入式系统的调试。
一、单步调试单步调试是Keil中最基本的调试功能之一、通过单步调试,我们可以一次执行一条机器指令,以逐行检查代码的执行情况。
Keil提供了多种单步调试的选项,包括单步进入(Step Into),单步跳过(Step Over),单步返回(Step Return)等。
- 单步进入(Step Into): 当程序运行到函数调用语句时,可以使用这个选项进入被调用函数并逐行执行。
- 单步跳过(Step Over): 当程序运行到函数调用语句时,可以使用这个选项跳过被调用函数,直接执行下一行代码。
- 单步返回(Step Return): 当程序运行到函数返回语句时,可以使用这个选项返回到调用该函数的地方,并继续执行下一行代码。
通过这些单步调试选项,我们可以有效地检查代码的执行情况,查找代码中的错误。
二、设置断点设置断点是Keil中另一个常用的调试功能。
通过设置断点,我们可以在代码的其中一行上暂停程序的执行,以便检查变量的值和程序的状态。
Keil提供了多种类型的断点,包括软件断点(Software Breakpoint)、数据断点(Data Breakpoint)和条件断点(Conditional Breakpoint)等。
- 软件断点(Software Breakpoint): 在程序的其中一行上设置软件断点,程序执行到该行时将会暂停。
这对于调试复杂的代码非常有用。
- 数据断点(Data Breakpoint): 在一些特定的变量上设置数据断点,当该变量的值发生变化时,程序将会暂停。
这对于调试特定变量的值变化非常有用。
- 条件断点(Conditional Breakpoint): 在一些条件上设置断点,当条件满足时,程序将会暂停。
Keil软件以及程序下载软件使用简介Keil是当前最流行的MCS51单片机开发软件,可以用它来汇编你的汇编语言源程序,编译你的C语言源程序,连接和重定位你的目标文件和库文件,创建HEX文件,调试你的目标程序。
现在有Keil uVision2和uVision3两种版本,程序界面稍有不同,我们主要使用uVision2。
一、Keil uVision2开发环境的使用使用Keil uVision2软件开发单片机程序的步骤一般分如下几步:(1)建立一个新项目(2)建立并编辑源程序文件(3)将源程序文件添加到项目中(4)编译项目,生成目标文件下面通过一个程序的设计过程,详细介绍每一个步骤。
1. 建立一个新项目uVision2是一个标准Windows应用程序,直接点击程序图标就可以启动它。
在windows XP操作系统的桌面上,点击“开始/所有程序”下的Keil uVision2菜单项,启动Keil uVision2软件,如图1所示。
新建一个项目的步骤如图2所示,从uVision2的Project菜单中选择New Project,将打开一个对话框,此对话框要求你输入项目名称。
建议你为每个项目建一个单独的文件夹。
你可以在弹出的对话框中点击新建文件夹的图标来得到一个空的文件夹,然后选择子文件夹并键入项目的名称,如“Project1”,点击[确定]。
这时会弹出“Select Device for Target”对话框,要求选择单片机型号(与目标板型号一致),这里我们假设选择Atmel公司的AT89C51,点击[确定],这样就创建了一个名字为Project1的新项目。
图1 启动Keil uVision2图2 建立新项目2.建立并编辑源程序文件可以用菜单选项File-New来新建一个源文件。
这将打开一个空的编辑窗口让你输入你的源代码。
当你把此文件另存为*.ASM的文件后,uVision2将高亮显示汇编语言语法字符。
我们把我们的例子程序保存为lianxi1.ASM,如图3所示。
Keil软件仿真调试简介Keil软件是ARM公司推出的一款集成开发环境(IDE),提供了编译器、调试器、仿真器、代码库和辅助工具等多种功能。
其中仿真器(Simulator)是Keil软件的主要功能之一,可以方便地对嵌入式系统进行模拟测试和调试,以达到开发的目的。
在Keil软件中,仿真调试(Simulation Debugging)是一种常见的调试方式,其主要思想是通过用实际输入数据替换程序输入参数,执行程序并输出实际的运行结果,与预期结果进行比较,进而找到程序的错误以及解决问题。
仿真调试的原理当我们进行仿真调试时,Keil软件会将程序文件加载到仿真器中进行模拟的运行,仿真器负责模拟CPU、中断、时钟、IO等外设的运行状态,使得程序在仿真环境中能够运行。
仿真调试的实现主要有两种方式:单步调试和断点调试。
单步调试单步调试(Step-by-Step Debugging)指的是在程序运行过程中,每执行一行指令都会停止,通过查看每个变量的值来进行调试的过程。
单步调试可以帮助程序员快速定位程序中可能的问题,并及时进行修改。
在Keil软件中,单步调试可以通过F10和F11快捷键来实现。
断点调试断点调试(Breakpoint Debugging)指的是在程序中设置停止执行的断点,当程序执行到断点处时,程序就会停止运行,执行者就可以检查变量值、栈信息等各种环境,找到程序的问题。
在Keil软件中,断点调试可以通过F9键来设置。
常用仿真调试功能Keil软件提供了众多仿真调试功能,常用的功能包括:数据查看窗口在Keil软件中,可通过打开数据查看窗口(Watch Window)来查看变量值的对应信息。
数据查看窗口主要由寄存器、内存和变量组成,可以通过添加、删除变量、地址以及其他类型来满足用户不同的需求。
显示ASM窗口ASM窗口是一个汇编指令窗口,可以将C语言源程序翻译成相应的汇编指令。
采用汇编语言的程序员可以在此窗口中检查程序的底层代码实现、地址分配等信息。
实验一 Keil软件的使用及简单程序的调试方法一、实验目的掌握Keil的使用方法和建立一个完整的单片机汇编语言程序的调试过程及方法。
二、实验器材计算机1台三、实验内容1.Keil的使用方法。
2.建立一个单片机汇编语言程序的调试过程及方法四、实验步骤1.Keil的使用方法。
Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和C 语言的程序设计,界面友好,易学易用。
启动Keil 后的界面如下:几秒钟后即进入Keil的编辑界面。
用户便可建立项目及应用程序。
2.简单程序的调试方法Keil是通过项目工程来管理汇编程序的。
因此在调试程序前必须建立一个工程,工程名称及保存位置由用户来指定,注意每位同学的工程名称用“学号姓名实验*”来命名。
(1)建立一工程单击Project菜单,在弹出的下拉菜单中选中New Project选项。
并在弹出的对话框中确定保存的位置及工程名称。
又弹出一对话框,要求用户选择相应的硬件CPU及相关设置。
选择Atmel公司的AT89C51单片机。
如下图所示单击“确定”后在弹出的对话框中行选择“否”即工程建好了,但该工程没有任何语句,需要再建一个程序文件并将其添加到此工程中。
(2)建一文件单击“File”/“New”命令,则弹出文件的编辑窗口,此时该文件还没有指明其文件名称及保存位置,该文件还没有加载到所建立的工程中。
单击“File”/“Save”命令在弹出的对话框中指明文件的类型为.ASM汇编型及文件名后单击“保存”即可进行汇编源文件的编辑。
如下图所示。
(3)将文件添加到工程中单击“Target 1”前的“+”号则展开后变成“-”号,并右键单击“Source Group 1”在弹出的下拉菜单中执行“Add Files to Group ‘Source Group 1’”命令并弹出对话框在该对话框中的“文件类型”下拉列表中选择“Asm source file”后找到要添加的文件名并选中,单击“Add”即可。
第2章Keil软件使用说明2.1 Keil工程的建立2.2 工程的设置2.3 编译和链接2.4 调试2.1 Keil1)进入Keil界面单击自己安装的Keilμvision2的图标。
进入Keil后,屏幕显示如图2-2所示。
图2-2 起动Keil软件时的界面2)建立一个工程选择菜单【Project】│【New Project】,界面如图2-3所示。
图2-3 新建工程文件界面3)保存工程选择工程要保存的路径,输入工程名。
例如,建立的文件夹名为“流水灯”,工程名也命名为“流水灯”,然后单击“保存”按钮。
此时,该工程已经建立,扩展名为.uv2,即项目名为“流水灯.uv2”,如图2-4所示。
图2-4 “保存新工程”对话框4)选择系统要用的单片机保存文件后弹出对话框,如图2-5所示,要求选择所设计系统要用的单片机,在此选择AT89C51单片机。
图2-5 “选择单片机”对话框4)选择系统要用的单片机在选择某个单片机,单击“确定”后,弹出如图2-6所示的对话框。
图2-6 “添加启动文件”对话框上述任务完成后,显示2-7所示的界面。
5)建立文件图2-8 新建文件界面选择菜单【File】│【New】,出现如图2-8界面。
在光标所在的窗口输入编写的源程序。
6)文件保存待录入源程序后,选择【File】│【Save】,保存文件为“流水灯.c”,和原来建立的项目放在同一个文件夹下。
如果源文件为汇编语言编写的,则扩展名为“.ASM”。
7)添加文件图2-9 添加文件中出现的菜单在项目窗口下,单击“Target1”前面的“+”,然后在“Source Group 1”选项上单击右键,弹出如图2-9所示对话框。
7)添加文件图2-10 “添加文件”对话框选择“Add Files to Group ‘Source Group 1’”选项,弹出要求添加进本项目的对话框。
如图2-10所示。
7)添加文件图2-11 添加了文件后的窗口将刚建立的“流水灯.c”选中,单击“Add”按钮或鼠标左键双击即可将本文件添加进本项目。
Keil软件及其调试功能简介
目前流行的51系列单片机开发软件是德国Keil公司推出的Keil C51软件,它是一个基于32位Windows环境的应用程序,支持C语言和汇编语言编程,其6.0以上的版本将编译和仿真软件统一为μVision(通常称为μV2)。
Keil提供包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,由以下几部分组成:μVision IDE集成开发环境(包括工程管理器①、源程序编辑器②、程序调试器③,见图2)、C51编译器、A51汇编器、LIB51库管理器、BL51连接/定位器、OH51目标文件生成器以及Monitor-51、RTX51实时操作系统。
应用Keil进行软件仿真开发的主要步骤为:编写源程序并保存—建立工程并添加源文件—设置工程—编译/汇编、连接,产生目标文件—程序调试。
Keil使用“工程”(Project)的概念,对工程(而不能对单一的源程序)进行编译/汇编、连接等操作。
工程的建立、设置、编译/汇编及连接产生目标文件的方法非常易于掌握。
首先选择菜单File-New…,在源程序编辑器中输入汇编语言或C语言源程序(或选择File-O pen…,直接打开已用其它编辑器编辑好的源程序文档)并保存,注意保存时必须在文件名后加上扩展名.asm(.a51)或.c;然后选择菜单Project-New Project…,建立新工程并保存(保存时无需加扩展名,也可加上扩展名.uv2);工程保存后会立即弹出一个设备选择对话框,选择CPU后点确定返回主界面。
这时工程管理窗口的文件页(Files)会出现“Target1”,将其前面+号展开,接着选择Source Group1,右击鼠标弹出快捷菜单,选择“Add File to Group ‘Source Group1’”,出现一个对话框,要求寻找并加入源文件(在加入一个源文件后,该对话框不会消失,而是等待继续加入其它文件)。
加入文件后点close返回主界面,展开“Source Group1”前面+号,就会看到所加入的文件,双击文件名,即可打开该源程序文件。
紧接着对工程进行设置,选择工程管理窗口的Target1,再选择Project-Option for Target‘Target1’(或点右键弹出快捷菜单再选择该选项),打开工程属性设置对话框,共有8个选项卡,主要设置工作包括在Target选项卡中设置晶振频率、在Debug选项卡中设置实验仿真板等,如要写片,还必须在Output选项卡中选中“Creat Hex Fi”;其它选项卡内容一般可取默认值。
工程设置后按F7键(或点击编译工具栏上相应图标)进行编译/汇编、连接以及产生目标文件。
成功编译/汇编、连接后,选择菜单Debug-Start/Stop Debug Session(或按Ctrl+F5键)进入程序调试状态,Keil提供对程序的模拟调试功能,内建一个功能强大的仿真CPU以模拟执行程序。
Keil能以单步执行(按F11或选择Debug-Step)、过程单步执行(按F10或选择Debug-Step Over)、全速执行等多种运行方式进行程序调试。
如果发现程序有错,可采用在线汇编功能对程序进行在线修改(Debug-Inline Assambly…),不必执行先退出调试环境、修改源程序、对工程重新进行编译/汇编和连接、然后再次进入调试状态的步骤。
对于一些必须满足一定条件(如按键被按下等)才能被执行的、难以用单步执行方式进行调试的程序行,可采用断点设置的方法处理(Debug-Insert/Remove Breakpoint或Debug-Breakpoints…等)。
在模拟调试程序后,还须通过编程器将.hex目标文件烧写入单片机中才能观察目标样机真实的运行状况。
Keil软件Eval版(免费产品)的功能与商业版相同,只是程序的最大代码量不得超过2kB,但对初学者而言已是足够。
Keil软件由于其
强大的软件仿真功能,友好的用户界面以及易于掌握的特点而受到工程技术人员的欢迎,有人甚至认为Keil是目前最好的51单片机开发应用软件。
51单片机数字实验室的应用实例
运用Keil软件并结合数字外围器件只需在PC机上便可进行单片机实验(可称为数字实验室方式),下面以两个实例来说明运用Keil软件进行程序调试(软件模拟仿真)的过程。
例1:单片机(80C51)晶振频率为12MHz,利用T0方式0产生5ms的定时,在P1.0引脚上输出10ms的方波
按前面所述方法步骤对源程序成功汇编、连接后按Ctrl+F5键进入程序调试,再选择菜单Peripherals-I/O-Ports-Port 1打开P1口参数窗口显示P1口状态,选择Peripherals-Timer-Timer 0打开定时器T0窗口显示其参数;这里采用断点调试方式,在中断服务子程序第一行设置断点,出现红色标记,如图3所示。
点击调试工具栏上的Run(运行)按钮,程序执行到断点处停止,如连续点击运行则可从Port1窗口观察到P1.0引脚电平值的变化(1-0-1-…),而此时Regs(寄存器)窗口中的sec值即为定时时间(按5ms幅度递增,会有误差)。
显然该例需要实验者根据P1口(P1.0)的值来对输出的方波进行想象,并不直观。
例2:数字实验仿真板的应用:流水灯实验
针对Keil的软件仿真器,有人提出了利用VC++编写动态链接库仿真单片机外围器件的思路和方法;另有人设计开发了几个外围器件数字实验仿真板,这些实验仿真板相当于是Keil μVersion2仿真环境下的dll插件。
如键盘、LED显示实验仿真板(ledkey.dll)、带有数码管的实验仿真板(simboard.dll)等,见图4所示。
以ledkey仿真板为例,它采用Atmel89C51单片机(含有4kBFLASH ROM)作为主芯片,P1引脚上接8个发光二极管,P3.2-3.5引脚上接4个按钮开关。
安装数字仿真实验板时只需将实验仿真板文件(*.dll)复制到Keil软件的KeilC51Bin文件夹即可。
在使用实验仿真板之前还需对工程进行设置,先选择工程管理窗口的Target1,再选择Project-Option for Target ‘Target1’,打开对话框,选择Debug选项卡,在其左下角的Parameter文本框中输入“-d”和文件名,如使用ledkey.dll实验仿真板,就输入“-dledkey”(整个文本框内容为:-p51 -dledkey),然后点确定即可。
进入程序调试后点击菜单Peripherals,就会看到多出一项“键盘LED仿真板(K)”,选择该项,就会出现图4所示ledkey实验仿真板界面。
流水灯实验是最常见的单片机实验之一,这里我们要实现用单片机控制图4ledkey仿真板上8个LED依次循环发光。
应用Keil 软件,按照步骤进入程序调试状态,并点击菜单Peripherals打开ledkey仿真板,然后运行程序,可通过观察仿真板上灯光的变化,检查程序的正确与否,非常形象生动,而不必再依靠对P1口的值进行观察想象,有助于初学者对单片机基本知识的掌握和激发学习的热情。