实验一 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工程步骤以下面的程序为例#include "reg51.h" //定义头文件sbit D0=P2^0; //定义P2.0口unsigned int a; //定义a变量void main() //主程序开始{while(1) //死循环{D0=0; //使P2^0输出低电平a=30000; //对a赋初值while(a--); //延时语句D0=1; //使P2^0输出低电平a=30000; //对a赋初值while(a--); //延时语句}}我们建立好工程,并编写好以上的程序之后,我们需要对我们的程序进行相关的调试工作,我们先来认识几个常用的按钮5常用的几个按钮的介绍对当前文件进行编译对当前工程的所有文件进行编译进入或者退出仿真调试状态,对当前光标所在的行设置断点撤销当前光标所在的行设置断点步骤1、设置晶振频率选中“Target 1”,并右击选择“optiond for Target‘Target 1 ’”,会弹出下面的对话框。
2 修改晶振频率选择“Target”选项卡,我们将“Xtal (MHz)”项后面的数字框式24.0(默认值),但是我们常用的单片机晶振是12M的,所以我们需要将24改为12,然后点“确定”。
我们就仿真调试的频率了。
3.编译设置好晶振之后需要重新编译就点中的一个,或者2个都点也使一样的。
当编译结果显示0个错误,0个警告之后,(0 Error(s), 0 W arning(s). )就可以进入仿真状态了。
4.进入仿真状态点击菜单上的,进行仿真界面,如下图界面介绍:为复位按钮为全速执行按钮为停止按钮,此按钮在全速执行的条件下才能使用。
如为掉入子程序的单步执行为不掉入子程序的单步执行离开出子程序,只有掉入子程序之后这个按钮才起作用。
单步执行到当前光标所在的行位置进入或者退出仿真调试状态,对当前光标所在的行设置断点撤销当前光标所在的行设置断点编辑框上的黄色箭头:表示将要执行的程序左边的状态框上的sec :表示执行的时间,是总的时间,这个一定要注意,许多同学没有注意到这个问题,导致每次的时间都不一样,不知道该怎么调。
实验一 Keil C51集成开发环境的使用练习、仿真与调试

实验一Keil C51集成开发环境的使用练习、仿真与调试一、实验目的1、熟悉Keil C51集成开发环境的使用方法2、熟悉Keil C51集成开发环境调试功能的使用和DP-51PROC单片机综合仿真实验仪的使用。
二、实验设备及器件IBM PC机一台DP-51PROC单片机综合仿真实验仪一台三、实验内容1、进行Keil C51集成开发环境的安装和使用练习。
然后按照以下内容建立文件并编译产生HEX文件。
ORG 0000HLJMP MainORG 00F0HMain:MOV 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.5 ; P 1 .5 取反CPL P1.6 ; P 1 .6 取反CPL P1.7 ; P 1 .7 取反SJMP Main;END2、进行Keil C51集成开发环境的仿真调试练习。
然后按照以下内容建立文件并编译仿真调试。
ORG 8000HLJMP MainORG 80F0HMain:MOV 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.5 ; P 1 .5 取反CPL P1.6 ; P 1 .6 取反CPL P1.7 ; P 1 .7 取反SJMP MainEND四、实验要求1、熟练掌握Keil C51集成开发环境的工程建立、编辑与编译功能。
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 的值)。
实验一 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 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的使用方法和建立一个完整的单片机汇编语言程序的调试过程及方法。
二、实验器材计算机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”即可。
Keil uVision2等软件使用

实验一 Keil uVision2等软件使用(2学时)一. 实验目的1. 熟悉Keil uVision2 软件的使用方法;2. 熟悉仿真器的用法;3. 熟悉烧录芯片的过程。
二. 实验设备1. Keil Keil uVision2 开发系统一台;2. +5V电源一台;3. 仿真器一条;4. 单片机实验仪一台。
三. 实验内容及步骤(一)Keil uVision2软件的实验步骤:1.点击桌面快捷图标,可以直接进入主画面:2. 新建的工程要起个与工程项目意义一致的名字,可以是中文名;我们这里的程序是实验测试程序,所以起的名字为 Test ,并将 Test 工程“保存”到C:\Keil下:3. Keil环境要求我们为 Test 工程选择一个单片机型号;我们选择 Atmel 公司的 89C51(虽然我们使用的是89S51,但由于89S51与89C51内、外部结构完全一样,所以这里依然选择“89C51”)。
“确定”后工程项目就算建立了。
4. 点击“文件”中的“新建”,新建一个空白文档;这个空白文档就是让我们编写单片机程序的场所。
在这里你可以进行编辑、修改等操作。
mov p0,#B ;将二进制代码送P0口ajmp $ ;程序在此原地踏步end ;程序结束标志5. 保存文件,保存文件时,其文件名最好与前面建立的工程名相同(当然这里为 Test 了),其扩展名必须为 .Asm!“文件名”中一定要写全,如:Test.Asm;6.将Asm文件添加到工程中。
具体做法如下:(见下图)鼠标右键点击“Source Group 1”,在弹出的菜单中选“增加文件到组Source Group 1”:在接下来出现的窗口中,选择“文件类型”为“Asm源文件(*.a*,*.src)”(由于我们使用的是汇编语言,所以选择Asm源文件),选中刚才保存的Test.Asm,按“Add”,再按“关闭”,文件就添加到了工程中。
7.设置目标属性:向工程添加了源文件后,鼠标右键点击“TarGet 1” ,在弹出的菜单中选“目标 Target 1 属性”,如下图:在打开的话框中,选择“输出”选项卡,在这个选项卡中,“E生成HEX文件”选项前要打勾,按“确定”退出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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命令,退出运行。