实验二 Keil软件的编程调试yq - 副本

合集下载

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继承开发环境练习和编程调试.docx

keil继承开发环境练习和编程调试.docx

学生实验报告报告内容—、实验目的和任务熟悉keil C51集成开发环境的使用方法熟悉ke订C51集成开发环境仿真条件下调试功能的使用学会程序存储器、寄存器、片成存储器、片外存储器内容的查看和修改二、实验原理介绍Keil集成开发环境为我们提供了强大的学习、调试和开发工具。

我们可以利用这套工具在计算机上直接进行汇编语言的编辑、连接和调试。

在程序调试时,可以通过查看相关寄存器和存储器内容来判断程序的执行是否正确,通过修改相关寄存器和存储器的内容来改变程序,再执行,来修改和验证程序。

三、设计代码及分1.实现内部RAM30H和40H两个单元内容的互换。

ORG 0000HLJMP MAINORG MAIN: MOVMOVMOVMOVMOVMOVXCHXCH 010011 SP, #60H RO, #30H Rl,#40H@R0,#55H @R1,#OAAII A, @R1A, @R0A, @R1ORG LJMP ORG MAIN: MOVMOV NEXT1: MOVINC DJNZ MOV MOV MOV NEXT2: MOVMOVX TNC INC 0000H MAIN 010011@R0,#30HR2,#16©RO, #' *'RO R2,NEXT1 R1,#3OH DPTR,#01OOH R3, #10HA, @R1@DPTR, A R1DPTR END2. 将30H 开始的16个字节送到100H 开始的外部存储器中DJNZ R3,NEXT2 SJMP $ END3. 实现两个双字节数的加减乘运算ORG 0000H LJMP MAIN ORG 01 OOH MAIN:MOV SP,#60HMOV R1,#12HMOV RO, #34HADD A, R5 MOV R5, A MOV A, BADDC A,#00H MOV R6, A NOP4.求l+2+3+・・・+100的和(R6R5)MOV A, R6ADDC A,#OOHMOV R6, A叮NZ R7, LOOPSJMP $END(R6R5)二13BAH二5050四、实验结论与心得通过使用kc订软件,让我对kcil软件的开发环境有了一个初步的了解,同时巩固了我的编程能力。

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软件仿真调试

Keil软件仿真调试

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语言源程序翻译成相应的汇编指令。

采用汇编语言的程序员可以在此窗口中检查程序的底层代码实现、地址分配等信息。

keil2教程2

keil2教程2

Keil 软件实例教程(三)Keil 程序调试窗口上一讲中我们学习了几种常用的程序调试方法,这一讲中将介绍Keil提供各种窗口如输出窗口、观察窗口、存储器窗口、反汇编窗口、串行窗口等的用途,以及这些窗口的使用方法,并通过实例介绍这些窗口在调试中的使用。

一、程序调试时的常用窗口Keil软件在调试程序时提供了多个窗口,主要包括输出窗口(Output Windows)、观察窗口(Watch&Call Statck Windows)、存储器窗口(Memory Window)、反汇编窗口(Dissambly Window)串行窗口(Serial Window)等。

进入调试模式后,可以通过菜单View下的相应命令打开或关闭这些窗口。

图1是输出窗口、观察窗口和存储器窗口,各窗口的大小可以使用鼠标调整。

进入调试程序后,输出窗口自动切换到Command页。

该页用于输入调试命令和输出调试信息。

对于初学者,可以暂不学习调试命令的使用方法。

1、存储器窗口存储器窗口中可以显示系统中各种内存中的值,通过在Address后的编缉框内输入“字母:数字”即可显示相应内存值,其中字母可以是C、D、I、X,分别代表代码存储空间、直接寻址的片内存储空间、间接寻址的片内存储空间、扩展的外部RAM空间,数字代表想要查看的地址。

例如输入D:0即可观察到地址0开始的片内RAM单元值、键入C:0即可显示从0开始的ROM单元中的值,即查看程序的二进制代码。

该窗口的显示值可以以各种形式显示,如十进制、十六进制、字符型等,改变显示方式的方法是点鼠标右键,在弹出的快捷菜单中选择,该菜单用分隔条分成三部份,其中第一部份与第二部份的三个选项为同一级别,选中第一部份的任一选项,内容将以整数形式显示,而选中第二部份的Ascii项则将以字符型式显示,选中Float项将相邻四字节组成的浮点数形式显示、选中Double项则将相邻8字节组成双精度形式显示。

第一部份又有多个选择项,其中Decimal项是一个开关,如果选中该项,则窗口中的值将以十进制的形式显示,否则按默认的十六进制方式显示。

第2章 Keil C51软件入门与调试

第2章 Keil C51软件入门与调试

第2章 Keil C51软件入门与调试
二、创建新的源程序文件 1、单击图标 或选择File—New,建立一个源程序文件
2、单击图标 或选择File—Save/Save as,保存文件, 扩展名为.C
3、在项目工作区Project显示框内,单击文件夹Target1 左边的符号“+”,再右击文件夹Source Group1。
第2章 Keil C51软件入门与调试
五、Keil C程序调试实例
课堂练习!
第2章 Keil C51软件入门与调试
第2章 Keil C51软件入门与调试
51单片机原理及应用 ——基于Keil C与Proteus
2014.9
第2章 Keil C51软件入门与调试
一、新建项目 1、Keil uVision4 安装 2、首先我们要养成一个习惯:最好先建立一个空文件夹, 把工程文件放到里面,以避免和其他文件混合. 3、点击桌面上的Keil uVision4图标,启动; 4、点击“project --- New uVision Project”新建一个工程. 5、在对话框,选择放在刚才建立的“myfile”文件夹下,给 这个工程取个名后保存,不需要填后缀,注意默认的工程 后缀与uVision3及uVision2版本不同了,为uvporj. 6、弹出一个框,在CPU类型下我们找到并选中“Atmel”下 的AT89S51或52. 以上工程创建完毕,接下来开始建立一个源程序文本.
4、在弹出界面中选择Add File to Group ‘SourceGroup1’. 点击刚建立的源程序文件,双击,再点击Close即可。
可以编写单片机C语言与调试
三、编译项目并创建.HEX文件 1、单击图标 或选择Projec—Build Target,编译源程序。 在Build Output输出框中显示错误和警告信息。 2、单击图标 或选择Projec—Option forTarget,弹出对 话框Option forTarget ‘Target1’,点击Output,选项卡 中选中Create HEX File,点击OK。再进行编译,生 产.HEX文件,通过STC_ISP_V3 下载软件或模拟器中。

keil调试 汇编语言

keil调试 汇编语言

keil调试汇编语言(实用版)目录1.概述2.Keil 调试汇编语言的基本步骤3.Keil 调试汇编语言的优点4.应用实例5.总结正文1.概述汇编语言是一种低级编程语言,它使用计算机处理器能够理解的指令集。

尽管汇编语言在编写程序时具有很高的灵活性和控制能力,但它的语法较为复杂,编写难度较大。

Keil 是一款集成开发环境 (IDE),能够帮助程序员更轻松地编写、调试和运行汇编语言程序。

2.Keil 调试汇编语言的基本步骤使用 Keil 调试汇编语言程序可以分为以下几个基本步骤:(1) 创建一个新的 Keil 工程,并将汇编语言源代码文件添加到工程中。

(2) 使用 Keil 的编辑功能,编写或修改汇编语言代码。

(3) 在 Keil 中配置调试器,以适应目标处理器和硬件平台。

(4) 使用 Keil 的调试功能运行程序,并观察程序的执行过程和结果。

(5) 根据需要,修改汇编语言代码,并重复执行上述步骤,直到程序运行正确。

3.Keil 调试汇编语言的优点使用 Keil 调试汇编语言程序具有以下几个优点:(1)Keil 的集成开发环境提供了方便的编辑、调试和运行功能,使得编写和调试汇编语言程序变得更加简单和高效。

(2)Keil 支持多种处理器和硬件平台,使得其适用于不同的应用场景和需求。

(3)Keil 的调试功能可以实时观察程序的执行过程和结果,便于程序员发现和定位问题。

4.应用实例假设我们要使用汇编语言编写一个简单的程序,该程序在屏幕上显示“Hello, World!”。

我们可以按照以下步骤使用 Keil 调试汇编语言程序:(1) 创建一个新的 Keil 工程,并将汇编语言源代码文件添加到工程中。

(2) 使用 Keil 的编辑功能,编写汇编语言代码如下:```ORG 00hMOV AH, 09hMOV DX, OFFSET HelloWorldINT 21hHelloWorld DB "Hello, World!$"```(3) 在 Keil 中配置调试器,以适应目标处理器和硬件平台。

keil调试方法

keil调试方法

如何用Keil uVision 软件调试程序

首先:打开一个已经编译通过的单片机项目
选择Debug下面的Start/Stop Debug Session,可以打开调试、关闭调试
常用的调试按钮
就是Reset ,相当于单片机最简系统的复位按钮, 按下后,所有的系统状态将变成初始状态 这是全速运行,相当于单片机的通电执行。 停止全速运行的按钮。 step into 逐语句;进入并单步执行;单步执行 step over st看不出错在哪里,需要调试
软件仿真
硬件调试
软件仿真选左边,硬件仿真选右边
硬件仿真需要仿真器
两种调试方法比较
软件调试只能通过软件窗口虚拟硬件端 口的电平输出情况。而仿真器可以实现 与单片机一样的功能的硬件连接,从某 种意义上说这个时候仿真器就是一个单 片机。 都可以检测单片机执 行时序下的片内资源 情况。 可以实现断点、全速、 单步、运行到光标等 常规调试手段。 软件调试执行单片机指令的时间无法与 真实的单片机执行时间画上等号。仿真 器则是完全与单片机相同。 软件调试只能是一种初步的,小型工程 的调试,比如一个只有几百上千行的代 码的程序,软件调试能很好的完成,如 果是一个协调系统,可能还需要借助几 个单片机仿真器和相关的仪器才能解决。 软件仿真不需要额外花钱,而硬件需要, 一个仿真器一般都上千元,同时可以仿 真许多种单片机的工作。
执行到断点处
插入断点
汇编窗口
这个是Disassembly Windows,按下后可以把C51 Disassembly 为相应的汇编语言
示范一下:请认真看我操作一遍
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二Keil软件编程调试
一、实验目的
1、学习keil软件编程调试
2、实现控制4个按键完成一般仪表的设置
二、实验内容
使用AT89c51单片机控制四个数码管动态显示
三、实验条件
1、装有Keil软件的PC机
四、实验步骤
1、设计思路
设置四个按键K1—K4,实现其对数码管的显示
K1加一函数,K2除法函数,K3显示函数,K4延时函数控制。

2、利用Keil软件编程调试
a、打开Keil软件并新建一个工程文件,点击“Project->New Project…”菜单。

b、选择工程文件要存放的路径,输入工程文件名 Keil调试, 最后单击保存。

c、在弹出的对话框中选择 CPU 厂商及型号。

选择AT89C51。

d、开始编写代码前,创建一个C程序文件。

选择File->New,这时会出现在一个Text文本编辑窗口,按一下保存按钮,把该文件保存为yq.c文件。

e、用鼠标在Source Group1 上单击右键 , 然后再单击 Add Files to Group ‘Source Group 1' ,把刚保存的Keil调试.c文件添加到工程的工作组中如下图:
f、在编辑框中编写控制程序,程序见附件。

编写完成后选择Project->Build all target files来编译工程,如果在错误与警告处看到 0 Error(s) 表示编译通过。

g、进入Project->Options forTarget …Target1‟,再进入Output一栏,将“Create HEX Fi”一栏钩上,再按确定,生成yq.hex文件。

h、程序下载运行。

五、实验结论
此次实验过程不仅仅是检验了我的专业知识的学习程度,更是培养了一种综合性能力,无论是对事件的设计分析还是过程的编写调试,实践加理论的全方面结合,不断的调试修改再调试,一次又一次的改进使得自己有决心去完成它,做好它。

的确,由于自己专业知识的欠缺,我请求了同学的帮助,与同学通过书本,网络等一些资料的搜索去不断的学习,实践。

智能仪表的实验的确加深了对所学知识的理解,巩固了知识并加以实践运用。

学习运用Keil软件,从生疏到熟练的逐步渐进的过程并不像曾经学习的软件那么顺风顺水,它的运用结合太多了专业知识,很多问题结合在一起的确给实验的完成带来了不少的困难,好在在同学帮助下和理论知识的搜索下还是完成了实验内容。

这次实验的过程,体现出了自己单独设计能力和专业理论知识综合运用的能力,不断的发现问题,解决问题,认识到自己曾经学习时候的不足之处,从而加以弥补。

附件:
编写程序:
#include<reg51.h>
void jiayi();//加1函数
void chufa();//除法函数
void xianshi();//显示函数
void delay();//延时函数
sbit P2_0=P2^0;//个位位码
sbit P2_1=P2^1;//十位位码
sbit P2_2=P2^2;//百位位码
sbit P2_3=P2^3;//千位位码
unsigned char qianwei,baiwei,shiwei,gewei;
unsigned int count=0;
unsigned char code dis[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳极0-9
void main()
{
while(1)
{
jiayi();
chufa();
xianshi();
}
}
void chufa()//将数字的各个位拆开
{
qianwei=count/1000;//千位数
baiwei=count%1000/100; //百位数
shiwei=count%100/10; //十位数
gewei=count%10; //个位数
}
void jiayi()
{
count=count+1;
if(count==10000)
count=0;
}
void delay()//延时
{
unsigned int i,j;
for(i=0;i<10;i++)
{
for(j=0;j<200;j++);
}
}
void xianshi()//显示当前数值{
P2_0=1; //显示个位
P1=dis[gewei];
delay();
P2_0=0;
P2_1=1;//显示十位
P1=dis[shiwei];
delay();
P2_1=0;
P2_2=1; //显示百位
P1=dis[baiwei];
delay();
P2_2=0;
P2_3=1; //显示千位
P1=dis[qianwei];
delay();
P2_3=0;
}。

相关文档
最新文档