实验一 Keil软件的使用及简单程序的调试方法

合集下载

使用Keil软件模拟调试单片机串行口

使用Keil软件模拟调试单片机串行口

使用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调试程序方法
一、Keil调试程序方法
1、打开Keil,新建工程,在工程目录下,右键选择“添加新建文件”,然后选择“源文件”。

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

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

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

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

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

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

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

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

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

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

实验一KeilC51集成开发环境的使用练习、仿真与调试

实验一KeilC51集成开发环境的使用练习、仿真与调试

实验一Keil C51 集成开发环境的使用练习、仿真与调试、实验目的1、熟悉Keil C51 集成开发环境的使用方法2、熟悉Keil C51集成开发环境调试功能的使用和DP-51PR0C单片机综合仿真实验仪的使用。

、实验设备及器件IBM PC 机一台DP-51PR0C单片机综合仿真实验仪一台、实验内容1、进行Keil C51 集成开发环境的安装和使用练习。

然后按照以下内容建立文件并编译产生HEX 文件。

0RG 0000HLJMP Main0RG 00F0HMain:M0V R7, #0Loop:M0V R6, #0DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R7, LoopCPL P1.0 ; P 1 .0 取反CPL P1.1 ; P 1 .1 取反CPL P1.2 ; P 1 .2 取反CPL P1.3 ; P 1 .3 取反CPL P1.4 ; P 1 .4 取反CPL P1.5 ; P 1 .5 取反CPL P1.6 ; P 1 .6 取反CPL P1.7 ; P 1 .7 取反SJMP MainEND2、进行Keil C51 集成开发环境的仿真调试练习。

然后按照以下内容建立文件并编译仿真调试。

0RG 8000HLJMP Main0RG 80F0HMain:M0V R7, #0Loop:MOV R6, #0DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R7, LoopCPL P1.0 ; P 1 .0取反CPL P1.1 ; P 1 .1取反CPL P1.2 ; P 1 .2取反CPL P1.3 ; P 1 .3取反CPL P1.4 ; P 1 .4取反CPL P1.5P 1 .5取反JCPL P1.6 ; P 1 .6取反CPL P1.7 ; P 1 .7取反SJMP Mai nEND四、实验要求1、熟练掌握Keil C51集成开发环境的工程建立、编辑与编译功能。

实验一 KEIL软件的使用及P1口控制

实验一  KEIL软件的使用及P1口控制

实验一KEIL软件的使用及P1口控制一实验目的1、学习KEIL软件的使用方法及单片机实验平台2、学习P1口的控制方法3、学习延时子程序的编写和单片机延时计算方法二实验原理1、KEIL软件是德国Keil公司开发的基于Windows平台的单片机集成开发环境软件。

KEIL软件包括编译器、连接器、库管理器和仿真调试器,通过集成开发环境(μVision)将这些部分组合在一起。

2、P1口是一个八位的准双向I/O口,其中一位的内部结构如图所示,输出驱动电路有一只场效应管和一个上拉电阻组成。

每一根口线都可以分别定义成输入或输出线。

做输出线时,写入“1”,则Q’为“0”,T1截止,P1.X输出高电平,写入“0”,则Q’为“1”,T1导通,P1.X输出低电平。

做输入线时,必须先向该口线写“1”,使T1截止。

3、程序延时分析方法:延时=指令个数X机器周期机器周期=12÷nMHZ n为单片机时钟频率三实验要求与步骤实验(一):用P1口做输出口,接八位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。

1、使用单片机最小应用系统1模块。

关闭该模块电源,用扁平数据线连接单片机P1口与八位逻辑电平显示模块。

(并口线与右侧的8个插孔是串联等效的。

)2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。

3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加P1_A.ASM源程序,进行编译,直到编译无误。

4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。

5、(先接通仿真器电源再开启试验箱电源)打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,观察发光二极管显示情况。

发光二极管单只从右到左轮流循环点亮。

注:软件具体操作见附录实验(二):用P1.0、P1.1作输入接两个置位开关,P1.2、P1.3作输出接两个发光二极管。

Keil 的使用与汇编语言上机操作 实验报告

Keil 的使用与汇编语言上机操作 实验报告

实验名称 Keil 的使用与汇编语言上机操作指导教师罗志祥专业班级光电1406 姓名段昳晖学号 U2014***** 联系电话 137******一、任务要求1.掌握Keil环境的使用1)字节拆分、合并:调试e421.asm程序,观察相关寄存器和单元的内容。

2)数据块填充:调试fill.asm程序,观察相关寄存器和单元的内容。

2. 编写多个十六位数的加法程序有4个十六位无符号数,连续存放在20H开始的片上数据区中,低八位先存,高八位在后。

要求:和存于R3(高八位)和R2(低八位),进位位存于R4.二、设计思路1.掌握Keil环境的使用1)字节拆分、合并利用汇编语言中的XCHD和SWAP两个语句来实现将八位二进制数拆分为两个四位二进制数并分别存储于不同的存储空间的功能,BCD码与30H相或(加上30H)得到ASCII 码。

将两个ASCII码和0FH相与(高四位清零)得到BCD码,利用SWAP语句将高位数放至高四位,将高位数和低位数相或可实现字节的合并。

2)数据块填充将R0用作计数器,DPTR用作片外数据指针,A作为原始数据来源,依顺序在片外的存储单元内容填充数据。

利用循环语句来减少程序长度,并控制填充单元个数为片外100H个。

利用RO的进位实现,当且仅当RO=00H时,结束循环赋值过程,此时R0已经经历了从00H-0FFH的过程,即计数周期为100。

同时赋值循环也历经了一百次,完成了将片外RAM 7000H-70FFH单元按数据依次递增规律的填充。

2.多个十六位数的加法程序以2个十六位无符号数相加为基础,将输入的4个无符号数(以a、b、c、d代表),两两相加,所得的2个和,再作为加数,求和,得到4个数的和。

其中需要注意的是进位的处理。

四数求和进位,不仅有两和数相加产出的进位还要加上产生两和数时的进位。

其中2个十六位无符号数相加的原理为,先对两数低位求和,提取出其进位,加到两数高位和中,并将高位求和进位,即两数求和进位保存下来。

keil开发环境实验报告

keil开发环境实验报告

keil开发环境实验报告Keil开发环境实验报告引言:Keil是一款广泛应用于嵌入式系统开发的集成开发环境(IDE)。

它提供了一整套开发工具和软件包,使得嵌入式系统的开发变得更加高效和便捷。

本实验报告将介绍Keil开发环境的基本特点、使用方法以及实际应用案例。

一、Keil开发环境的基本特点Keil开发环境具有以下几个基本特点:1. 集成性:Keil提供了一站式的开发环境,包括编辑器、编译器、调试器等工具,方便开发者进行代码编写、编译和调试等操作。

2. 多平台支持:Keil支持多种嵌入式系统平台,如ARM、8051等,使得开发者可以针对不同的硬件平台进行开发。

3. 强大的调试功能:Keil提供了强大的调试功能,包括单步调试、断点调试等,方便开发者进行代码调试和错误排查。

4. 丰富的库函数和组件:Keil提供了丰富的库函数和组件,包括各种驱动库、通信库等,可以加快开发进程并提高代码质量。

二、Keil开发环境的使用方法1. 安装和配置:首先,需要下载并安装Keil开发环境。

安装完成后,需要进行相关配置,如选择合适的硬件平台和编译器选项等。

2. 创建工程:在Keil中,可以创建一个新的工程或者导入已有的工程。

创建工程时,需要选择合适的硬件平台和编译器选项,并设置工程的目录结构和文件组织方式。

3. 编写代码:在Keil的编辑器中,可以编写嵌入式系统的代码。

Keil提供了语法高亮、自动补全等功能,方便开发者进行代码编写。

4. 编译和构建:在完成代码编写后,可以进行编译和构建操作。

Keil会将源代码转换为可执行的机器码,并生成相应的可执行文件。

5. 调试和测试:在Keil中,可以使用调试器进行代码调试和测试。

调试器提供了单步调试、断点调试等功能,可以帮助开发者定位和解决代码中的错误。

三、Keil开发环境的实际应用案例以一个简单的LED闪烁程序为例,介绍Keil开发环境的实际应用。

1. 创建工程:首先,在Keil中创建一个新的工程,并选择合适的硬件平台和编译器选项。

实验一 Keil C51软件使用

实验一  Keil C51软件使用

实验一Keil软件使用
一、实验目的
1、熟悉Keil软件的工作界面及其基本使用方法;
2、初步掌握程序的调试方法,能够查询指令的执行效果;
3、熟悉汇编语言程序和C语言程序的编译方法,能够生成目标代码HEX文档。

二、实验仪器
1、PC机;
2、Keil软件。

三、实验内容
1、熟悉Keil C51软件界面及使用。

2、简单程序及汇编指令调试,编译。

(1) 传送指令
设置内部RAM的值,(30H)=40H, (40H)=10H,单步执行下列程序,检查结果。

MOV R0,#30H
MOV A,@R0
MOV R1, A
MOV B, @R1
执行后:(R0)= ,(R1)= ,(A)= ,(B)= ,(30H)= ,(40H)= 。

(2) 运算指令
3、编译LED灯闪烁程序,生成HEX文档。

(1) PROTEUS电路图
(2) 汇编程序
ORG 0000H
CLR P1.0 ; LED点亮
SJMP $
END
(3) C语言程序
#include <reg51.h>
sbit LED = P1^0;
void main()
{
while(1)
{
LED =0;
}
}
四、预习要求
1、读懂各程序;
2、预先给出运算结果,以便和实验结果比较;
3、能够读懂,并能编写点亮LED灯程序。

五、思考题
1、如何才能使上述电路图的LED灯闪烁?
2、何为汇编语言伪指令?程序中“ORG 0000H”和“END”分别具有什么作用?。

keil调试经验

keil调试经验

KEIL调试高级技巧在调试状态,Debug 菜单项中的命令可以使用了,有关编译的工具栏按钮消失了,出现了一个用于运行和调试的工具栏,Debug 菜单上的大部份命令都有相应的快捷按钮。

从左到右依次是复位、运行、暂停、单步跟踪、单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮命令;然后按一下图示第二个“运行”按钮。

连接上相关的实验资源,本实验用一条8PIN的数据排线把实验仪的CPU部份的P1口(JP44)连接到八路指示灯部份的JP32。

这时你会看到实验仪的八个红色LED,轮流点亮,表示运行成功,也可以查看相关的变量和参数,非常方便。

⒈单步跟踪运行使用菜单Debug->Step 或上图第四个单步运行按钮或使用快捷键 F11 可以单步跟踪执行程序,在这里我们按下 F11 键,即可执行该箭头所指程序行,每按一次 F11,可以看到源程序窗口的左边黄色调试箭头指向下一行,如果程序中有Delay延时子程序,则会进入延时程序中运行。

⒉单步运行如果Delay 程序有错误,可以通过单步跟踪执行来查找错误,但是如果 Delay 程序已正确,每次进行程序调试都要反复执行这些程序行,会使得调试效率很低,为此,可以在调试时使用 F10 来替代 F11(也可使用菜单 Step Over 或相应的命令按钮),在 main 函数中执行到 Delay时将该行作为一条语句快速执行完毕。

为了更好的进行对比,我们重新进入仿真环境,将反汇编窗口关闭,不断按F10 键,可以看到在源程序窗口中的左边黄色调试箭头不会进入到延时子程序。

⒊全速运行点击工具栏上的“运行”按钮或按F5 键启动全速运行,全速执行程序,此时用户板上的 P1 口所接 LED 以流水灯状态显示。

⒋暂停点击工具栏上的按钮,此时用户板上的P1 口所接 LED 停止以流水灯状态显示,只有一个 LED 灯点亮(取决于暂停前的 P1 的值)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一 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”即可。

(4)在源文件编辑框中输入下列程序。

ORG 0000H LJMP SY1 ORG 0030H SY1:MOV A,#78H MOV 50H,A MOV R0,#56H MOV @R0,A SJMP $
END
(5)程序下载到单片机中
右击“Target 1”在弹出的下拉菜单中执行“” 命
令,在弹出的对话框中,单击“Output”中单击“Create HEX File” 选项,使程序编译后产生HEX代码,供下载器软件使用。

把程序下载到AT89c51单片机中。

如下图所示。

上述界面可以完成一系列的相关设置。

如实现单片机型号选择的设置即Device、单片机硬件的相关设置即Target、单片机输出项设置即Output等,其余均为默认项。

3.学生练习:建立一工程名为:学号+姓名+实验1,并将下列文件添加到该工程中。

并按要求回答下列问题。

ORG 0000H
LJMP START
ORG 0030H START:MOV R0,#30H
MOV A,@R0 MOV B,A
SWAP A
ANL A,#0FH INC R0 MOV @R0,A INC R0 MOV A,B ANL A,#0FH MOV @R0,A SJMP $ END
简述项目工程文件的建立步骤?如何给项目工程添加文件?
(1)ORG 0000H与ORG 0030H指令分别是什么含义?0000H地址中存放LJMP指令的作用?(2)为什么在0000H地址LJMP指令?
(3)该程序实现什么功能?你能否举例说明?
(4)SJMP $指令中的$是什么含义?此指令是怎么执行的?
五、实验报告
1.按学生练习中的要求回答相关问题并填写到实验报告中。

补充调试方法:
1.编辑源程序并保存为.ASM 文件(或.C文件)。

编辑、连接和运行。

2.观察代码存储器内容时在地址框中输入:C:0X地址;观察内部数据存储器内容时在地址框中输入:I:0X地址;观察外部数据存储器内容时在地址框中输入:X:0X地址;修改数据存储器单元的内容时,用鼠标右击要修改的存储单元地址,在弹出下拉菜单中执行Madify Memory at命令,在弹出的对话框中输入具体的数值。

3.执行debug/step命令(单步执行),观察程序指针PC的变化,观察左窗格中单片机内部资源情况的变化,观察存储器单元的变化。

4.再次执行debug命令,退出运行。

相关文档
最新文档