怎么样在KEIL_C软件中调试程序

合集下载

keil调试程序方法

keil调试程序方法

keil调试程序方法
一、Keil调试程序方法
1、打开Keil,新建工程,在工程目录下,右键选择“添加新建文件”,然后选择“源文件”。

这时会弹出“新建文件对话框”,在文件类型中选择“C文件”。

2、编写C代码,调试程序,为了方便调试,先在程序里加上调试的操作,如“printf”,“getchar”等。

3、如果添加多个C文件时,也可以选择“添加新建文件”,然后选择“工程文件”,在弹出的对话框里输入文件名,然后点击“确定”。

4、编译源代码,编译完成后,查看是否有编译错误,如果没有编译错误,就可以继续下一步。

5、点击编译器的“调试”按钮,它会自动加载要调试的程序,然后就可以进行调试了。

6、在Keil的调试界面上,可以使用鼠标画“断点”,程序运行时,就能自动地停在“断点”处。

7、当一段程序运行完成,可以按F11快捷键,让程序自动运行,或者按“运行”按钮,让程序在断点处暂停,然后再单步执行一行一行调试。

8、Keil调试界面可以编辑程序,也可以查看程序的运行结果,从而可以及时发现程序中的bug。

9、在Keil的调试界面上,可以编辑程序,也可以给变量赋值,从而方便快速地调试程序。

10、当完成调试后,可以按“重新编译”按钮,重新编译整个程序,再查看编译结果,最后保存这个工程,保存文件名为*.uv2文件。

Keil 的调试命令、在线汇编与断点设置

Keil 的调试命令、在线汇编与断点设置

Keil 的调试命令、在线汇编与断点设置上一讲中我们学习了如何建立工程、汇编、连接工程,并获得目标代码,但是做到这一步仅仅代表你的源程序没有语法错误,至于源程序中存在着的其它错误,必须通过调试才能发现并解决,事实上,除了极简单的程序以外,绝大部份的程序都要通过反复调试才能得到正确的结果,因此,调试是软件开发中重要的一个环节,这一讲将介绍常用的调试命令、利用在线汇编、各种设置断点进行程序调试的方法,并通过实例介绍这些方法的使用。

一、常用调试命令在对工程成功地进行汇编、连接以后,按Ctrl+F5 或者使用菜单Debug->Start/Stop Debug Session 即可进入调试状态,Keil 内建了一个仿真CPU 用来模拟执行程序,该仿真CPU 功能强大,可以在没有硬件和仿真机的情况下进行程序的调试,下面将要学的就是该模拟调试功能。

不过在学习之前必须明确,模拟毕竟只是模拟,与真实的硬件执行程序肯定还是有区别的,其中最明显的就是时序,软件模拟是不可能和真实的硬件具有相同的时序的,具体的表现就是程序执行的速度和各人使用的计算机有关,计算机性能越好,运行速度越快。

进入调试状态后,界面与编缉状态相比有明显的变化,Debug 菜单项中原来不能用的命令现在已可以使用了,工具栏会多出一个用于运行和调试的工具条,如图 1 所示,Debug 菜单上的大部份命令可以在此找到对应的快捷按钮,从左到右依次是复位、运行、暂停、单步、过程单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令。

? 图1 调试工具条学习程序调试,必须明确两个重要的概念,即单步执行与全速运行。

全速执行是指一行程序执行完以后紧接着执行下一行程序,中间不停止,这样程序执行的速度很快,并可以看到该段程序执行的总体效果,即最终结果正确还是错误,但如果程序有错,则难以确认错误出现在哪些程序行。

写出keilc软件的使用流程

写出keilc软件的使用流程

写出Keil C软件的使用流程简介Keil C是一款嵌入式开发工具,用于编写和调试嵌入式C语言代码。

本文将介绍Keil C软件的使用流程,包括安装、项目创建、编写代码和调试等方面的内容。

安装Keil C1.下载安装包:从Keil官方网站下载Keil C的安装包。

2.运行安装程序:双击安装包,按照提示完成安装过程。

3.激活许可证:根据Keil官方提供的步骤激活软件的许可证。

创建项目1.打开Keil C:双击桌面上的Keil C图标,打开软件。

2.新建项目:点击工具栏上的“Project”菜单,选择“New Project”。

3.选择目标设备:在弹出的对话框中选择适合的目标设备,点击“OK”。

4.配置项目选项:根据需要配置项目选项,例如输出文件夹、连接器设置等。

5.添加源文件:右键点击“Source Group”,选择“Add New Item”,添加需要编译的源文件。

编写代码1.打开源文件:在Keil C的项目视图中找到需要编辑的源文件,双击打开。

2.编写代码:使用Keil C集成的代码编辑器编写C语言代码。

3.保存代码:按下“Ctrl + S”快捷键保存代码。

编译代码1.点击工具栏上的“Build”按钮,或者按下“F7”键,编译代码。

2.查看编译结果:在编译输出窗口中查看编译过程中的输出信息和错误提示。

调试代码1.连接目标设备:将开发板通过调试器与计算机连接。

2.设置调试选项:点击工具栏上的“Debug”按钮,选择“Options forTarget”。

3.配置调试器:根据目标设备的类型选择合适的调试接口,点击“OK”。

4.启动调试会话:点击工具栏上的“Start/Stop Debugging”按钮或按下“Ctrl + F5”快捷键,开始调试会话。

5.设置断点:在代码中选择需要设置断点的行,右键点击选择“ToggleBreakpoint”。

6.运行代码:按下“F5”键,或点击工具栏上的“Go”按钮,启动代码的执行。

keil调试 汇编语言

keil调试 汇编语言

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 c 调试

keil c 调试

Keil 的调试命令、在线汇编与断点设置上一讲中我们学习了如何建立工程、汇编、连接工程,并获得目标代码,但是做到这一步仅仅代表你的源程序没有语法错误,至于源程序中存在着的其它错误,必须通过调试才能发现并解决,事实上,除了极简单的程序以外,绝大部份的程序都要通过反复调试才能得到正确的结果,因此,调试是软件开发中重要的一个环节,这一讲将介绍常用的调试命令、利用在线汇编、各种设置断点进行程序调试的方法,并通过实例介绍这些方法的使用。

一、常用调试命令在对工程成功地进行汇编、连接以后,按Ctrl+F5 或者使用菜单Debug->Start/Stop Debug Session 即可进入调试状态,Keil 内建了一个仿真CPU 用来模拟执行程序,该仿真CPU 功能强大,可以在没有硬件和仿真机的情况下进行程序的调试,下面将要学的就是该模拟调试功能。

不过在学习之前必须明确,模拟毕竟只是模拟,与真实的硬件执行程序肯定还是有区别的,其中最明显的就是时序,软件模拟是不可能和真实的硬件具有相同的时序的,具体的表现就是程序执行的速度和各人使用的计算机有关,计算机性能越好,运行速度越快。

进入调试状态后,界面与编缉状态相比有明显的变化,Debug 菜单项中原来不能用的命令现在已可以使用了,工具栏会多出一个用于运行和调试的工具条,如图 1 所示,Debug 菜单上的大部份命令可以在此找到对应的快捷按钮,从左到右依次是复位、运行、暂停、单步、过程单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令。

? 图1 调试工具条学习程序调试,必须明确两个重要的概念,即单步执行与全速运行。

全速执行是指一行程序执行完以后紧接着执行下一行程序,中间不停止,这样程序执行的速度很快,并可以看到该段程序执行的总体效果,即最终结果正确还是错误,但如果程序有错,则难以确认错误出现在哪些程序行。

keil调试高级用法

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 c 的在线调试与断点设置

keil c 的在线调试与断点设置

Keil 的调试命令、在线汇编与断点设置上一讲中我们学习了如何建立工程、汇编、连接工程,并获得目标代码,但是做到这一步仅仅代表你的源程序没有语法错误,至于源程序中存在着的其它错误,必须通过调试才能发现并解决,事实上,除了极简单的程序以外,绝大部份的程序都要通过反复调试才能得到正确的结果,因此,调试是软件开发中重要的一个环节,这一讲将介绍常用的调试命令、利用在线汇编、各种设置断点进行程序调试的方法,并通过实例介绍这些方法的使用。

一、常用调试命令在对工程成功地进行汇编、连接以后,按Ctrl+F5 或者使用菜单Debug->Start/Stop Debug Session 即可进入调试状态,Keil 内建了一个仿真CPU 用来模拟执行程序,该仿真CPU 功能强大,可以在没有硬件和仿真机的情况下进行程序的调试,下面将要学的就是该模拟调试功能。

不过在学习之前必须明确,模拟毕竟只是模拟,与真实的硬件执行程序肯定还是有区别的,其中最明显的就是时序,软件模拟是不可能和真实的硬件具有相同的时序的,具体的表现就是程序执行的速度和各人使用的计算机有关,计算机性能越好,运行速度越快。

进入调试状态后,界面与编缉状态相比有明显的变化,Debug 菜单项中原来不能用的命令现在已可以使用了,工具栏会多出一个用于运行和调试的工具条,如图1 所示,Debug 菜单上的大部份命令可以在此找到对应的快捷按钮,从左到右依次是复位、运行、暂停、单步、过程单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令。

接着执行下一行程序,中间不停止,这样程序执行的速度很快,并可以看到该段程序执行的总体效果,即最终结果正确还是错误,但如果程序有错,则难以确认错误出现在哪些程序行。

单步执行是每次执行一行程序,执行完该行程序以后即停止,等待命令执行下一行程序,此时可以观察该行程序执行完以后得到的结果,是否与我们写该行程序所想要得到的结果相同,借此可以找到程序中问题所在。

keilC 软件使用说明

keilC 软件使用说明

keilC 软件使用说明
对于刚刚使用keil 的用户来讲,一般按照以下流程来完成开发任务。

1、建立工程
2、为工程选择目标器件(如选AT89S52)。

3、设置工程的配置参数,其中波特率设定为9600。

4、打开/建立程序文件(汇编语言文件类型为“文件名.ASM”,C语言文件类型为“文件名.C”)。

5、编译和连接工程,直到程序中无错误为止,生成的目标代码自动下载到目标CPU中。

6、对程序中某些线软件的部分使用软件仿真验证,对应用程序进行硬件仿真调试。

鼠标左击对象1旁边按钮,如图1中所示。

图1
则出现了“对象‘对象1’的选项”如下图2所示,鼠标左击对话框右上角调试标题栏,当进行软件实验时只需选择“使用模拟器(S)”选项。

当进行硬件实验时,需选择右面的“使用(U)”选项,以及下方的“启动时加载程序”,如下图3所示,最后左击对话框右上角“设置”一项,出现图4的对话框,需看电脑连接的是COM1或者COM2进行对应选择,波特率设置为9600,同时选择下方的“Serial Interrupt”复选框表示允许中断程序运行。

至此设置完成。

进行实验前顺便看下“对象”栏的下部显示为“空”还是AT89S52为空的话需重新选择CPU,因为软件每次重启或新建及打开工程都需重新设置此项。

图3
图4
注:如果是使用ISP下载线,则只需生成.HEX文件,通过光盘中附带的烧录软件(ISP-30a)下载程序,实现程序的盲调,烧录软件具体使用说明见该软件的文件夹中。

生成.HEX文件需做的设置,如下图5中所示:
(勾上复选框“Create HEX File”)。

(完整版)用keilc编译单片机C程序的方法

(完整版)用keilc编译单片机C程序的方法

用keilc编译单片机C程序的方法
1、打开keilc,新建一个工程
2、点击后,弹出对话框,找到C程序所在文件夹,输入工程名,然后保存。

3、点保存后,又弹出一个对框,选择单片机型号,选AT89S52,点OK。

再点是
4、加载C程序
在新建的工程的左边窗口,点鼠标右键,见下图
点加源程序项,即蓝条上。

又弹出下面的对话框,找到C程序双击,程序就被加载到工程中了,左边多了C程序。

5、打开C程序,双击左边工程中的C程序,右边窗口就出现了C程序了。

6、设置编译选项,在左边工程上点鼠标右键,点蓝条项
7、在弹出的对话框后,选Output标签,在刨建HEX文件上打勾,HEX代码文件名可以改,也可以不用改,只要在这个文件夹里能找到这个HEX文件就行,点OK。

HEX代码文件名
或者点击下图中所示的项目选顶按钮,也能弹出上面的选项对话框。

点这个按钮
8、编译C程序,最后一步,点编译按钮,就完成了,下面的窗口会提示编译成功的,如果有错误,就会提法有错误几条,就要找程序中的错误了。

实验1使用Keil输入和调试程序

实验1使用Keil输入和调试程序

实验一使用Keil输入和调试程序(一)实验目的:通过实验掌握Keil C51集成开发环境输入程序和调试程序的方法。

(二)实验仪器:计算机一台STC12学习板一套STC单片机仿真器一套USB连接电缆一根(三)实验内容及步骤:Keil C51 IDE又叫Keil集成开发环境或Keil C51μVision3。

实验要求使用Keil集成开发环境完成实验程序的输入、调试。

Keil是以工程项目的方法管理文件。

所有的文件(源程序文件、头文件和各种技术文档)都是放在工程项目里的统一管理。

下面通过一个实验程序学习使用Keil IDE建立应用程序和调试程序的步骤:✓新建一个工程项目。

✓为工程项目选择目标器件。

✓建立源程序文件,输入程序代码并保存。

将源程序文件添加到工程项目里。

✓为工程项目设置软件、硬件的调试环境。

✓输入、调试和运行实验程序。

要创建的工程项目是:设计一个程序,使学习板上的LED1灯闪亮,电路图如图2-1所示(在第14页)。

该实验工程项目的建立过程如下:1、启动Keil C51的IDE开发环境并建立一个工程项目双击计算机桌面上的Keil C51 IDE图标即可启动Keil C51 IDE开发环境。

如果以前已经建立了工程项目,Keil51 IDE启动后会直接显示原来打开的工程项目。

也可以打开原来已经存在的工程项目。

打开已经存在的项目方法是,从“Project”菜单中选择“Open Project”菜单项,从弹出的对话框中选择要打开的项目。

新建项目文件时,从“Project”菜单中选择“New Project”菜单项,将打开“Create New Project”对话框。

如图1-1所示。

在“Create New Project”对话框中做以下的工作:✧为工程项目选择一个存放路径,在此选择STC51文件夹(若计算机中没有STC51文件夹,则需要建立它)。

✧在文件名输入框里输入,这是为实验工程项目取的工程项目文件名(扩展名是.uv2)。

C51程序在Keil C51下的调试步骤

C51程序在Keil C51下的调试步骤

C51程序在Keil C51下的调试步骤现在广泛使用的C51集成开发环境是Keil软件。

要使用Keil软件,首先要正确安装Keil软件,该软件的Eval版本可以直接去http://www. 下载,其步骤与一般Windows 程序安装类似,这里就不再赘述了。

Keil软件的详细说明见相关资料,这里仅作简要说明,以便于读者在后面的章节中实际动手调试、仿真程序。

1.建立工作项目文件图1启动Keil μVison2启动Keil μVison2,如果打开后就有打开的文件,单击“Project->Close Project”菜单将其关闭。

单击“File->New... ",打开一个新的文件输入窗口,在这个窗口里输入上述源程序。

输入完毕之后,选择“File-->Save",给这个文件取名保存,取名字的时候必须要加上扩展名,一般C语言程序均以“.c”为扩展名(一定要加扩展名,否则后面添加文件就找不到该文件,这是初学者很容易忘记的),这里将其命名为mytest.c。

图2 建立工程文件单击“Project->New Project...",出现对话框,要求给将要建立的工程起一个名字,这里起名为test,不需要输入扩展名。

单击“保存”按钮,出现第二个对话框,如图3所示:图3 CPU选择窗口这个对话框要求选择工程中所用的单片机型号,这里选择Atmel公司的89S52芯片。

单击ATMEL前面的“+”号,展开该层,单击其中的89S52,然后再单击“确定”按钮,会出现一个对话框,询问是否要将标准的8052启动代码加入工程,单击“是”按钮。

此时,在工程窗口的文件页中出现了“Target 1”,前面有“+”号,单击“+”号展开,可以看到下一层的“Source Group 1 ",需要手动把刚才编写好的源程序加入,方法如下:单击“Source Group 1 ",使其反白显示,然后单击鼠标右键,出现一个下拉菜单,如图4所示。

KeilC软件使用(调试汇编程序)_图文.

KeilC软件使用(调试汇编程序)_图文.

Keil C软件使用(汇编语言山东交通学院杨福广 2011.09目录1简介 (3)2 建立一个新工程 (4)(1建立工程框架 (4)(2建立文件 (5)(3在工程中添加文件 (7)(4编辑工程中文件 (8)3 进行软件调试 (10)4 关于软件的设置 (11)1简介Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译, 仿真于一体,支持汇编,PLM 语言和 C 语言的程序设计,界面友好,易学易用。

下面介绍 Keil C51软件的使用方法进入Keil C51 后,屏幕如下图所示。

几秒钟后出现编辑界启动 Keil C51时的屏幕进入 Keil C51后的编辑界面简单程序的调试学习程序设计语言、学习某种程序软件, 最好的方法是直接操作实践。

下面通过简单的编程、调试, 引导大家学习汇编语言编程的基本使用方法和基本的调试技巧。

2 建立一个新工程 (1建立工程框架单击 Project 菜单,在弹出的下拉菜单中选中 New Project选项然后选择你要保存的路径,输入工程文件的名字,比如保存到 asm 目录里,工程文件的名字为test2。

如下图所示,然后点击保存.这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keil c51几乎支持所有的 51核的单片机,我这里还是以大家用的比较多的Atmel 的 89C51来说明,如下图所示,选择 89C51之后,右边栏是对这个单片机的基本的说明,然后点击确定.完成上一步骤后,屏幕如下图所示(2建立文件到现在为止, 我们还没有编写一句程序, 下面开始编写我们的第一个程序。

在下图中,单击“File”菜单,再在下拉菜单中单击“New”选项新建文件后屏幕如下图所示此时光标在编辑窗口里闪烁, 这时可以键入用户的应用程序了, 但笔者建议首先保存该空白的文件, 单击菜单上的“File”, 在下拉菜单中选中“Save As” 选项单击, 屏幕如下图所示, 在“文件名”栏右侧的编辑框中, 键入欲使用的文件名,同时,必须键入正确的扩展名。

在Keill C调试状态下的操作

在Keill C调试状态下的操作

在Keill C 调试状态下的操作在Keill C 的调试状态下,如何观察各个片内外设的运行状态?如何修改它们的设置?答:在调试状态下,点击Peripherals 菜单下的不同外设选项命令,就会显示或隐藏对应外设的观察窗口。

如显示定时器0 窗口,点击Peripherals 菜单下的Timer 下面的Timer0 选项,便会显示出定时器/计数器0 状态窗口。

在程序运行时,各个片内外设的状态会不断地变化,为了随时观察它们的变化,可以启用View 菜单下的Periodic Windows Update 命令,让Keil C 自动周期刷新各个调试窗口。

另外,也可以在窗口中对设备直接进行设置,与程序中的命令设置一样,并且立即生效。

在Keill C 的调试状态下,如何观察各个片内外设的运行状态?如何修改它们的设置?答:在调试状态下,点击Peripherals 菜单下的不同外设选项命令,就会显示或隐藏对应外设的观察窗口。

如显示定时器0 窗口,点击Peripherals 菜单下的Timer 下面的Timer0 选项,便会显示出定时器/计数器0 状态窗口。

在程序运行时,各个片内外设的状态会不断地变化,为了随时观察它们的变化,可以启用View 菜单下的Periodic Windows Update 命令,让Keil C 自动周期刷新各个调试窗口。

另外,也可以在窗口中对设备直接进行设置,与程序中的命令设置一样,并且立即生效。

在Keill C 的调试状态下,如何观察和修改变量?答:在调试状态下,点击View 菜单下的Watch & Call Stack Window 命令或对应的按钮,就会显示出或隐藏起变量窗口。

变量窗口包含有4 个标签,即4 个显示区,可以分别显示局部变量(Locals 标签)、指定变量(Watch #1 和Watch #2。

Keil C51程序调试过程

Keil C51程序调试过程

如何使用Keil C软件调试单片机程序调试普通都是在发生错误与意外的情况下使用的。

如果程序能正常执行,调试不少时候都是用不上的。

所以,最高效率的程序开辟还是程序员自己做好规范,而不是指望调试来解决问题。

单片机的程序调试分为两种,一种是使用软件摹拟调试,第二种是硬件调试。

使用软件摹拟调试,就是用计算机去摹拟单片机的指令执行,并虚拟单片机片内资源,从而实现调试的目的。

但是软件调试存在一些问题,不可能像真正的单片机运行环境那样执行的指令能在同一个时间完成(往往比单片机慢)。

软件调试只能是一种初步的,小型工程的调试,比如一个惟独几百上千行的代码的程序,软件调试能很好的完成。

硬件调试其实也需要计算机软件的配合,大致过程是这样的:计算机软件把编译好的程序通过串行口、并行口或者USB口传输到仿真器,然后与单片机一样执行。

仿真器仿真全部的单片机资源(所有的单片机接口,并且有真正的引脚输出)。

仿真器会将单片机内部内存与时序等情况返回给计算机,这样 就可以在计算机里看到单片机程序真正的执行情况。

不仅如此,还可以通过计算机的软件实现单步、全速、运行到光标的常规调试手段。

仿真器可以接入实际的电路中。

图1:仿真器下面将具体介绍如何使用Keil uVision 软件来调试单片机程序。

首先:打开一个已经编译通过的单片机项目。

选择Debug下面的Start/Stop Debug Session,这个选项可以打开调试也可以关闭调试。

接下来看到的窗口就是调试窗口了:下面具体说说相关子窗口的功能:1、左侧的ProjectWorkspaceRegs是片内内存的相关情况值;Sys是系统一些累加器、计数器等。

Regs很简单就不多说。

具体介绍一下Sys:a 累加器ACC,往往在运算前暂存一个操作数(如被加数),而运算后又保存其结果(如代数和)。

b 寄存器B,主要用于乘法和除法操作。

spsp_maxdptr 数据指针DPTR。

PC $states 执行指令的数量。

keil的调试步骤与方法

keil的调试步骤与方法

keil的调试步骤与方法Keil调试步骤与方法Keil是一款常用的嵌入式开发环境,用于编写和调试嵌入式系统的程序。

在进行嵌入式开发过程中,调试是一个非常重要的环节,它可以帮助开发人员找出程序中存在的问题并进行修复。

本文将介绍Keil的调试步骤与方法,帮助读者更好地进行嵌入式开发与调试。

一、准备工作在使用Keil进行调试之前,我们需要先进行一些准备工作。

首先,我们需要安装Keil软件,并配置好开发板的硬件环境。

其次,我们需要将待调试的程序下载到开发板中,并连接上调试器。

最后,我们需要在Keil中打开待调试的项目文件,以便进行后续的调试操作。

二、设置断点在进行程序调试时,我们常常需要在程序中设置断点,以便在指定位置停下来观察程序的执行情况。

在Keil中,我们可以通过单击代码行号的方式来设置断点。

当程序执行到设置的断点位置时,会自动停下来,以便我们观察相关的变量值和程序执行流程。

三、单步执行单步执行是调试过程中常用的操作之一,它可以使程序以单步的方式执行,以便我们逐行观察程序的执行情况。

在Keil中,我们可以通过点击工具栏上的“单步执行”按钮来进行单步执行操作。

在单步执行过程中,我们可以观察变量的值的变化,以及程序的执行流程,帮助我们找出程序中的问题。

四、观察变量值在调试过程中,我们经常需要观察程序中的变量值,以便判断程序的执行是否符合预期。

在Keil中,我们可以通过“观察窗口”来观察变量的值。

在观察窗口中,我们可以添加需要观察的变量,并在程序执行过程中实时查看其数值的变化。

五、查看寄存器值在嵌入式系统中,寄存器是非常重要的硬件资源,它们直接影响着程序的执行。

在Keil中,我们可以通过“寄存器窗口”来查看寄存器的值。

在寄存器窗口中,我们可以查看各个寄存器的当前值,以便判断程序的执行是否符合预期。

六、调试输出除了观察变量和寄存器的值外,我们还可以通过调试输出来观察程序的执行情况。

在Keil中,我们可以使用printf函数来进行调试输出。

keil程序debug用法

keil程序debug用法

keil程序debug用法在Keil μVision中进行程序调试是嵌入式开发过程中的重要一环。

下面是在Keil中进行程序调试的基本步骤:1. 打开Keil μVision:启动Keil μVision集成开发环境。

2. 加载工程:打开或新建一个Keil工程,确保你的项目文件已加载。

3. 选择目标芯片:在“Project”菜单中,选择“Options for Target"。

在“Target”选项卡中,选择你的目标芯片型号。

确保芯片选型与你实际使用的芯片一致。

4. 配置调试工具:在“Flash Download”选项卡中,配置目标芯片的调试工具。

通常,你需要选择你的调试器型号,设置调试器连接参数。

5. 设置调试模式:在“Debug”菜单中,选择“Start/Stop Debug Session”以进入调试模式。

6. 添加断点:在你希望暂停程序执行的地方设置断点。

右键点击源代码的行号,选择“Toggle Breakpoint”或按下`F9`键。

7. 运行程序:在调试模式下,点击工具栏中的“Start/Stop Debug Session”按钮或按下`F5`键来运行程序。

当程序执行到设置的断点时,会暂停执行。

8. 查看变量值:在调试模式下,你可以查看和监视变量的值。

在“Watch”窗口中添加你感兴趣的变量,它们的值会在每次程序暂停时更新。

9. 单步执行:在调试模式下,你可以使用单步执行来逐行执行代码。

使用工具栏中的“Step Into”(F11), “Step Over”(F10), 和“Step Out”(Shift + F11)按钮。

10. 查看寄存器:在调试模式下,你可以查看和监视CPU寄存器的值。

在“Peripheral”窗口中选择“Register”标签。

11. 查看内存:在调试模式下,你可以查看和监视内存中的数据。

在“View”菜单中选择“Memory”来打开“Memory”窗口。

怎么样在KEIL_C软件中调试程序

怎么样在KEIL_C软件中调试程序
如在程序中定义了数组则它的值就是一个地址要观察它的值可打开存储窗口在存储窗口中输入该数组的地址观察它的值也可直接单击它前面的即可看到它的值
首先建立工程。选[Project\New Project],选择工程保存的路径,及为工程命名。例如将其存放在D:\新建文件夹(2),命名为123。输入完工程名后会打开一个如下图所示的对话框,在这里我们选择CPU的型号,根据我们选用的CPU芯片的不同,这里的设置不同。在这里我们选用Atmel\AT89C51。
编译。可选译工具栏上的编译“ ”也可选[Project\Rebuild all target files]。如编译有错误会在最下面的Build窗口中显示出来,通过双击出错的信息可到出错的那一行。
调试。编译通过后就进行调试。可选择工具栏上的调试按键也可选[Debug\satr\stop Debug Scssion]。leds();}源自void main(void)
{Second=0;//显示置0
while(1) //主循环
{delay1s();//延时
Second++;//自加
if(Second==60) //判断是否到60
{Second=0;//到60置0
}
leds();//显示子程序
}
}
保存文件。选[File\Save],将其保存在刚建的工程下。这里是用的C语言编程,所以后缀名要加上”.C”。这里我们将其命名为“Text1.c“。注意扩展名“.C”不可省略。
接下来弹出一个如下图的对话框。该对话框提示你是否要把标准8051的启动代码添加到工程中去。如用C语言写程序,一般选“否”,但是,如果用到了某些增强功能需要初始化配置时,则可选“是”。在这里,我们选“否”,即不添加启动代码。

keil设置及调试程序的方法

keil设置及调试程序的方法
7
1) 光标放在中断服务程序的 第一条可执行指令处
2) 按“运行到光标处”命令后, 按下key1(p3.2/int0)按钮后, PC指针停
到预置光标处,说明已经进入中断服务程 序,中断正常。 3)而后,按“运行”命令,连续运行。
8
断点方式调试程序举例
说明: 1) 断点方式不能调试中断程序。 2) 断点方式调试必须按“运行”命令。 3) PC指针停到断点处后,可以检查中间结果,
而后,可以继续“运行”或单步执行,直到程序 执行结束。
9
5
调试程序的方法
单步方式: 步进:跟踪 步越:单步---子程序当一步执行
连续执行方式: 运行
断点连续执行方式: 1)设置断点 2)执行“运行”命令
运行到光标处:调试中断最佳方式 1)光标指到要停处 2)按“运行到光标处”命令
6t0)按钮后, PC指针停到预置光标处,说明 已经进入中断服务程序,中断 正常.
硬件上机调试设置与方法
1
设备:NXP P89C52X2
2
时钟:11.0592 片外代码存储: Eprom #1 开始 0x8000 大小 0x4000 片外Idata存储:Ram #1 开始 0xc000 大小 0x4000
3
使用 Keil Monitor-51 Drive2
4
设置:串行口COM1或COM2
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
接下来弹出一个如下图的对话框。该对话框提示你是否要把标准8051的启动代码添加到工程中去。如用C语言写程序,一般选“否”,但是,如果用到了某些增强功能需要初始化配置时,则可选“是”。在这里,我们选“否”,即不添加启动代码。
新建文件。在[File\New]建一个文件,将程序写入。这里以一个00-99秒计时器程序为例。程序如下
#include <AT89X51.H>
unsigned char code table[]={0xc0,0xf9,0xa4,0பைடு நூலகம்b0,0x99,0x92,
0x82,0xf8,0x80,0x90};//共阳数码管段0-9
unsigned char Second;
delay10ms()//延时10毫秒
在程序运行时可能需要观察某个量的值,可在窗口下面的“Watch #1”或“Watch #2”等窗口中将要观察的量输入。如此窗口没打开时,可选[View\Watch & Call stack window]打开观察窗口。输入变量的方法是,选中窗口中的“type F2 to edit“,按F2,即可输入,它后面就是该变量的值。变量的值也是可以手动改的,同样的方法,选要改的值,按F2,输入想设的值即可。
{unsigned int i,j;
for(i=0;i<10;i++)
for(j=0;j<120;j++);
}
leds()//显示子函数
{P0_0=0;//选通P0_0数码管
P2=table[Second/10]; //送段值
delay10ms();//延时
P2=0xff;//消影
P0_0=1;//消除P0_0选通状态
首先建立工程。选[Project\New Project],选择工程保存的路径,及为工程命名。例如将其存放在D:\新建文件夹(2),命名为123。输入完工程名后会打开一个如下图所示的对话框,在这里我们选择CPU的型号,根据我们选用的CPU芯片的不同,这里的设置不同。在这里我们选用Atmel\AT89C51。
在进行程序调试时,有时需要用到外部端口、定时器溢出或产生外部中断,则可打开“Peripherals”菜单,找到你想要的器件,对它进行手动设置。
如下图所示,我们改变P0口的某个位。打开[Peripherals|I/O—Ports\Ports 0],则打开了P0口,此时我们就可以手动的设置它的位,打勾为1,没勾则为0。如果将这个程序的延时部分改为采用定时器0来计时,那么你就必须手动的对定时器0进行溢出设置,达到延时1秒的效果。步骤如下:打开[Peripherals|Timer|Timer 0],设置它的溢出标志位TF0=1,即把它前面的勾打上即可实现定时器0的溢出。用这种办法即可实现脱机状态下程序的调试。
如下图所示,观察变量“Second”的值。选中“type F2 to edit“,按F2输入“Second”回车,即可看到该变量此时的值。当要改变它的值时,则选中“0x00”,按F2后输入想要的值即可。在程序运行时,当有FOR循环,如循环次数太多,可用这种方法改变它的当前循环次数。以便进行下面程序的调试。如在程序中定义了数组,则它的值就是一个地址,要观察它的值,可打开“存储窗口”,在存储窗口中输入该数组的地址,观察它的值,也可直接单击它前面的“+”,即可看到它的值。在“存储窗口”中观察时,选[View|Memory windows]即可打开。打开后,输入变量存放的地址,即可观察该变量的值。如下图所示要观察数组”table”的值。从观察窗口中看到它的地址为“C:0x006D”,则在“存储窗口”的“Address”后输入“C:0x006D”,则可观察它的值。
P0_1=0;//选通P0_0数码管
P2=table[Second%10]; //送段值
delay10ms();//延时
P2=0xff;//消影
P0_1=1;//消除P0_0选通状态
}
void delay1s(void)//延时1秒
{ unsigned char j;
for(j=50;j>0;j--)
运行。运行可选择全速运行、单步进入等运行方式。可以利用工具栏上的快捷键也可在[Debug]菜单中选择。其中单步进入与单步跳过运行的区别在于,当调用子程序时,单步进入会进入子程序运行,而单步跳过不进入子程序。例如上面的程序,当选择单步进入运行方式,则在调用显示子程序时,它会进入子程序内部运行,此时我们就可以看到执行时P0、P2的变化。当选择单步跳过运行方式时,我们则只能它到它运行完子程序后的结果。即P0、P2最后运行的值。全速运行,则程序一直运行,直至按下停止为止。运行方式的选择可以用工具栏中的快捷键也可在[Debug]菜单下设置。遇到延时程序时,跟踪太慢可以让它“运行到光标处”。在遇到复杂程序时,可以设断点。在要设断点的地方运用工具栏上“设断点”的快捷键即可设置断点。程序每运行到断点处,就会停下来。这时你就可以看程序运行到此处的值。取消断点可用工具栏上“取消断点”键。
编译。可选译工具栏上的编译“ ”也可选[Project\Rebuild all target files]。如编译有错误会在最下面的Build窗口中显示出来,通过双击出错的信息可到出错的那一行。
调试。编译通过后就进行调试。可选择工具栏上的调试按键也可选[Debug\satr\stop Debug Scssion]。
打开工程[Project\Open Project],在左窗口中单击右键,选“Add files to Group“Source Gropu 1“,将程序Text1.c加载到工程。只有经过这一步才能对程序进行下面的编译及调试。
单击KEIL C51工具栏的“ ”图标,弹出名为“Options for Target‘Target1’”的对话框。单击“Output”标签页,选中“Create HEX File”项,然后“确定”。如下图所示。
leds();
}
void main(void)
{Second=0;//显示置0
while(1) //主循环
{delay1s();//延时
Second++;//自加
if(Second==60) //判断是否到60
{Second=0;//到60置0
}
leds();//显示子程序
}
}
保存文件。选[File\Save],将其保存在刚建的工程下。这里是用的C语言编程,所以后缀名要加上”.C”。这里我们将其命名为“Text1.c“。注意扩展名“.C”不可省略。
相关文档
最新文档