Keil C51集成开发环境的使用汇编

合集下载

单片机实验一KeilC编译环境的使用(精)

单片机实验一KeilC编译环境的使用(精)

实验一Keil C51编译环境的使用一、实验目的:1)安装keil uVision4 集成开发环境。

2)熟悉Keil C51 集成开发环境二、实验内容:(一)安装keil u Vision集成开发环境1、下载keil C51 安装软件2、运行srtup.exe安装软件并安装3、选择安装路径4、等待安装,单击finish安装完毕(二)熟悉Keil C51 集成开发环境1、打开Keil C51熟悉界面2、创建一个工程项目文件点击工具栏中的Project选项,选择new project建立一个工程,并为你的工程命名,选择存放路径并保存3、建立源文件点击工具栏中的File选项,在下拉菜单中选择New,在此窗口中输入我们的源文件ORG 0000HSJMP MAINORG 0030HMAIN: MOV 30H,#55HMOV A,30HSJMP $END4、保存源文件点击工具栏中的File选项下拉菜单的保存命令进行保存。

如果源文件是汇编语言,则文件名应有ex.asm,若为c语言,则应该有ex.c。

保存完毕后,会发现程序中的关键字变成了蓝色。

5、将文件加入工程中要将刚刚建立的程序文件ex.asm加入到工程项目中。

在Project Windows窗口内,选择Source Group1后,点击鼠标右键,在弹出的快捷菜单中选择Add Files To Group “Source Group1”命令,选择源文件的路径,文件类型和文件名,点击Add按钮将源文件加入工程项目中。

6、程序文件的编译和连接点击Project选项,在弹出的下拉菜单中选择”Option For Target “Target1””命令分别对Target 、Output、C51、Debug等选型卡进行设置完成后,再对程序进行编译。

点击点击Project选项,在弹出的下拉菜单中选择Build Taget 或Rebuild All Target Files 命令对源程序文件进行编译,若没有错误,此刻会在“Output Windows”信息输出窗口输出一些相关的信息,如果有错也会有相关的错误信息。

深入剖析keilc51---从汇编到c51

深入剖析keilc51---从汇编到c51

深入剖析keilc51---从汇编到c51C插入汇编语句#pragma asmljmp 0#pragma endasm如果就这样直接编译的话,会出现以下错误:error C272: 'asm/endasm' requires src-control to be active解决方法:在 Files T oolbar 中选中当前C51文件,点右键查看文件选项,将 Generate Assembler SRC File 与 Assemble SRC File 的勾选由灰色变为黑色,即使这两项有效!第一节 main()函数和启动代码汇编是从org 0000h开始启动,那么keil c51是如何启动main()函数的?keil c51有一个启动程序startup.a51,它总是和c程序一起编译和链接。

下面看看它和main()函数是如何编译的;//主函数如下;void main(void){while (1) 这是个无条件空循环。

{}}把上面的main()函数编译后的汇编程序和反汇编代码整理后对照如下;C_C51STARTUP SEGMENT CODEPR?main?TESTMAIN SEGMENT CODESTACK SEGMENT IDATARSEG ?STACKDS 1CSEG AT 0C_STARTUP: LJMP STARTUP1C:0x0000 020003 LJMP STARTUP1(C:0003)RSEG ?C_C51STARTUPSTARTUP1: ;该段程序把内存清零; MOV R0,#IDATALEN - 1C:0x0003 787F MOV R0,#0x7F; CLR AC:0x0005 E4 CLR A; MOV @R0,AIDATALOOP:C:0x0006 F6 MOV @R0,A; DJNZ R0,IDATALOOPC:0x0007 D8FD DJNZ R0,IDATALOOP(C:0006); MOV SP,#?STACK-1 ;设制CPU的堆栈起始地址C:0x0009 758107 MOV SP(0x81),#0x07; LJMP ?C_STARTC:0x000C 02000F LJMP main(C:000F)RSEG ?PR?main?TESTMAINmain:; void main(void)C:0x000F 80FE SJMP main(C:000F) ;main()函数现在分析上面的汇编程序就会明白c51程序是如何启动的。

第10章 Keil C51集成环境的使用

第10章  Keil C51集成环境的使用

10.1 Keil C51简介
10.1.2 Keil uVision4 IDE界面
2017/7/30
1
Hale Waihona Puke 3第10章 Keil C51集成环境的使用
10.2 Keil uVision4 IDE的使用方法
一般操作步骤如下: • 建立项目文件。 • 给项目添加程序文件。 • 编译、连接项目,形成目标文件。 • 仿真运行调试观察结果。 具体过程见演示: 这里以一个控制并行口P2滚动输出高电平 的C51程序为例子
单片机技术及应用——基于 汇编及C51程序设计
第10章 Keil C51集成环境的使用
第10章 Keil C51集成环境的使用
主 要 章 节
• 10.1 Keil C51简介 • 10.2 Keil uVision4 IDE的使用方法
2017/7/30
1
2
第10章 Keil C51集成环境的使用
2017/7/30 1 4
程序内容如下:
#include<intrins.h> #include<reg52.h> #define uchar unsigned char #define uint unsigned int void mDelay(uint Delay) //延时 {uint i; for(;Delay > 0;Delay--) for(i = 0;i < 110;i++); } void main(void) {unsigned char a,i; while(1) { a = 0x01; for(i = 0;i < 8;i++) //流水灯一共8只,实现1到8只流水灯的循环 { P2 = _crol_(a,1); //实现输出 a = P2; mDelay(500); //500ms的延迟 } } } 2017/7/30 1 5

怎样使用keil C51汇编软件编写程序

怎样使用keil C51汇编软件编写程序

怎样使用keil C51汇编软件编写程序在keil C51汇编软件安装章节我们已经将软件安装好了。

下面我们就用这个软件来编写一个小小的程序吧:第一步:双击Uvw51图标,出现如图一所示的主界面图一第二步:新建文件单击菜单栏内的“文件----新建”或者单击图标按钮则在上图所示的灰色区域内出现一个白色的编辑区,这时我们就中以在这里编辑程序了。

如图二所示。

图二第三步:编程程序建立了一个新的编程文件后,我们就可以在这里编写我们所需要的程序了,下面我们就来编写一个简单的程序吧。

!如图三所示:注意,程序的语法及格式绝对不能错误!图三第四步:保存文件程序编写好了,我们当然要记得保存了,要不我们编写程序就白费劲了。

好了,下面我们将上面编写的程序保存起来:单击“文件----保存”或者单击图标,出现如图四所示的对话框:图四这时参照图五所示将对话框的内容设置好:c51eval保存文件时默认的文件扩展是名*.C,请按图五所示改变为为*.a51:图五我们这里就先将文件保存在d:\led 文件夹中,文件名你可以随便取,这里先叫他为ddw.a51;需强调的是保存文件的文件夹和文件名不能使用中文!即保存文件时不能以如下格式保存:正确的保存路径:D/led/ddw.a51当然,保存的文件夹名led、编写的程序的文件名ddw,你都可以随意的取一个,可以是D/ABC/000.a51。

这就取决于你的兴趣了。

错误的保存路径:D/源程序/led/ddw.a51,或者是D/led/流水灯程序.a51。

总之在源程序的保存路径下不能有中文的出现,同时文件名不能取的太长。

第五步:建立项目将汇编的源程序保存后,还没有得到我们所需要的文件,这时我们还需要再建立项目,以便得到我们所需的hex文件。

新建项目的步骤如下:首先先打开新建项目的对话框文件,如图六所示:图六点击新建项目后出现如图七所示的对话框,我们将对话框的参数设定好。

将文件名设置成与刚才源程序的文件名相同,即设为ddw.prj,同时保存的路径跟前面的源程序保存的路径一样,在d/led 上。

Keil C51集成开发环境的使用练习 (1)

Keil C51集成开发环境的使用练习 (1)

实验一Keil C51集成开发环境的使用练习一、实验目的熟悉Keil C51集成开发环境的使用方法。

二、实验要求熟练掌握Keil C51集成开发环境的工程建立、编辑与编译功能。

三、实验仪器和设备1、硬件:计算机2、软件:Keil软件uVision4四、实验内容1、进行Keil C51集成开发环境的安装和使用练习;2、试建立一个工程项目并进行编译。

五、实验方法和步骤1、启动软件:双击桌面的Keil C51快捷图标,进入如下图所示的Keil C51集成开发环境。

2、建立工程项目:选择工具栏的【Project】→【New Project】命令,建立一个新的μVision4工程,取一个工程名,单击“保存(S)”按钮。

选择CPU的型号为AT89C51,确定。

在跳出的界面上选择NO.3、建立程序文件:单击【File】→【New】新建一个名为Text1的空白文件,单击【File】→【Save】输入文件名,保存格式为.C文件。

4、添加项目文件:右击Source Group 1选择然后选择刚才新建的.C文件,单击Add.在上面环境中编写程序。

5、工程的详细设置:在μVision4的菜单【Project】→【Options For Target ‘Target1’】的Output选项卡中,选中Create HEX File以产生hex文件。

在Target选项卡中XTAL:12M6、进行汇编:选择菜单【Project】→【Rebuild all target files】后,程序会进行汇编,若没有错误则生成相应的机器码.hex文件。

六、实验注意事项1、做实验要养成一个良好的习惯,在每次做实验时,都要在桌面新建一个文件夹,把项目和.C源文件保存在其中,为了下一步的添加源文件做准备;2、如果我们在做软硬件联合调试的时候,就要注意一定要选择正确CPU的型号(Atmel公司AT89C51),但如果我们只做软件仿真或者纯硬件实验时,我们在选择CPU型号时就没有具体的要求了。

如何在 KEIL C51(v6.21) 中调用汇编函数的一个示例

如何在 KEIL C51(v6.21) 中调用汇编函数的一个示例

有关c51调用汇编的方法已经有很多帖子讲到,但是一般只讲要点,很少有对整个过程作详细描述,对于初学者是不够的,这里笔者通过一个简单例子对这个过程进行描述,希望能对初学者有所帮助。

几年来,在这个论坛里笔者得到很多热心人指导,因此也希望藉此尽一点绵薄之力。

在这个例子里,阐述了编写c51程序调用汇编函数的一种方法,这个外部函数的入口参数是一个字符型变量和一个位变量,返回值是一个整型变量。

例中,先用c51写出这个函数的主体,然后用SRC控制指令编译产生asm文件,进一步修改这个asm文件就得到我们所要的汇编函数。

该方法让编译器自动完成各种段的安排,提高了汇编程序的编写效率。

step1. 按写普通c51程序方法,建立工程,在里面导入main.c文件和CFUNC.c文件。

相关文件如下://main.c文件#include < reg51.h >#define uchar unsigned char#define uint unsigned intextern uint AFUNC(uchar v_achr,bit v_bflag);void main(){ bit BFLAG; uchar mav_chr; uint mvintrslt; mav_chr=0xd4; BFLAG=1; mvintrslt=AFUNC(mav_chr,BFLAG);}//CFUNC.c文件#define uchar unsigned char#define uint unsigned intuint AFUNC(uchar v_achr,bit v_bflag){ uchar tmp_vchr; uint tp_vint; tmp_vchr=v_achr; tp_vint=(uint)v_bflag; return tmp_vchr+(tp_vint<<8);}step2. 在 Project 窗口中包含汇编代码的 C 文件上右键,选择“Options for ...”,点击右边的“Generate Assembler SRC File”和“Assemble SRC File”,使检查框由灰色变成黑色(有效)状态;step3. 根据选择的编译模式,把相应的库文件(如Small 模式时,是Keil\C51\Lib\C51S.Lib)加入工程中,该文件必须作为工 程的最后文件;step4. build这个工程后将会产生一个CFUNC.SRC的文件,将这个文件改名为CFUNC.A51(也可以通过编译选项直接产生CFUNC.A51文件),然后在工程里去掉库文件(如C51S.Lib)和CFUNC.c,而将CFUNC.A51添加到工程里。

单片机实验报告——KeilC的使用与汇编语言上机操作

单片机实验报告——KeilC的使用与汇编语言上机操作

《微机实验》报告实验名称 KeilC的使用与汇编语言上机操作指导教师专业班级姓名学号序号联系方式一、任务要求实验目的:熟悉KeilC环境,通过在KeilC环境下调试字节拆分、合并程序、数据块清零程序、加法程序,掌握汇编语言程序的调试方法,加深对BCD码、ASCII码、堆栈、寄存器、数据指针、汇编语言指令、机器码等基本概念的理解,为后续程序编制和调试打下基础。

实验内容:1.掌握KeilC环境的使用1)字节拆分、合并:调试e421.asm程序,观察相关寄存器和单元的内容。

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

2. 编写两个十六位数的加法程序。

有两个十六位无符号数,分别存放在从20H和30H开始的数据区中,低八位先存,高八位在后,和存于R3(高八位)和R4(低八位),进位位存于R2。

二、设计思路1.掌握KeilC环境的使用1)字节拆分、合并:字节拆分要将BCD码转换为2字节ASCII,需将BCD码拆为两部分,分别加30H。

具体先用XCHD语句将BCD码与00H交换低位,“高位”需先用SWAP语句将高低位交换,再加30H;“低位”直接加30H。

字节合并同理,需减30H再合并。

2)数据块填充:指针在7000H,利于循环语句递增填充,A寄存器中存放要填充的数据,DPTR数据指针指向片外,R0计数。

用CJNE构成循环,循环中A、DPTR、R0都加12.编写两个十六位数的加法程序两数低位分别存于20H、30H,高位存于21H、31H。

用ADD语句将低位相加,存于R4;用ADDC语句将高位和进位Cy相加,存于R3;存进位需先将A寄存器清零,再用ADDC语句将A、00H和Cy相加,存于R2。

三、资源分配本程序数据均存于片内RAM中,有两个十六位无符号数,低位分别存于20H、30H中,高位分别存于21H、31H中。

高八位和存于R3中,低八位和存于R4中,进位位存于R2中。

四、流程图五、源代码ORG 0000HMAIN: MOV R0,#20H ;设置第一个数地址指针 MOV R1,#30H ;设置第二个数地址指针MOV A,@R0 ;取低位ADD A,@R1 ;两数低位相加MOV R4,A ;存“和”低位INC R0INC R1MOV A,@R0 ;取高位ADDC A,@R1 ;两数高位相加MOV R3,A ;存“和”高位CLR AADDC A,#0MOV R2,A ;存进位HERE: SJMP HERE ;踏步END ;结束Program Size: data=8.0 xdata=0 code=18精简后ORG 0000HMAIN:MOV A,20H ; 取低位ADD A,30H ; 两数低位相加MOV R4,A ; 存“和”低位MOV A,21H ; 取高位ADDC A,31H ; 两数高位相加MOV R3,A ;´存“和”高位CLR AADDC A,#0MOV R2,A ; 存进位HERE: SJMP HERE ; 踏步ENDProgram Size: data=8.0 xdata=0 code=16六、程序测试方法与结果、软件性能分析1.1字节拆分、合并调试拆分时,如图31H、32H中内容为34和39,正常合并时,如图33H中内容又变为了491.2数据块填充调试执行完改程序后片外7000H到70FFH中的数据如下图3.两个十六位数的加法程序测试方法:修改片上RAM中20H、21H、30H、31H数据,查看R2、R3、R4数据。

KEILC51中C语言加入汇编语言的使用方法

KEILC51中C语言加入汇编语言的使用方法

KEILC51中C语言加入汇编语言的使用方法一、为什么使用汇编语言?汇编语言是一种底层的编程语言,其主要目的是实现对硬件的直接控制,具有高度灵活性和效率。

在开发单片机程序时,通常使用高级语言来编写大部分的代码,但是在一些特定的情况下,使用汇编语言能够更好地满足需求,例如对一些硬件寄存器的操作、实现高速计算等。

二、C语言与汇编语言相结合的方法在KEILC51中,可以通过使用内联汇编或者使用汇编模块的方式将C 语言与汇编语言相结合。

1.内联汇编内联汇编是将汇编代码直接嵌入到C语言代码中。

使用内联汇编可以获得更高的性能和灵活性,但也增加了代码的可读性和可维护性。

在C语言中使用内联汇编需要使用__asm关键字,并在括号中编写要嵌入的汇编代码。

以下是一个示例:```void delay(unsigned int count)__asmMOVR1,loop:INCR1CJNE R1, count, loop}```在上述示例中,使用了__asm关键字将一段简单的汇编代码嵌入到了C函数delay中,以实现一个延时功能。

2.汇编模块另一种将C语言与汇编语言相结合的方法是使用汇编模块。

汇编模块是一个独立的文件,其中包含了汇编语言代码。

可以通过使用extern关键字将C语言代码与汇编模块连接起来。

首先,需要创建一个汇编模块的文件,例如delay.asm,其中包含了要实现的汇编代码:```; delay.asmPUBLIC delaydelay PROCMOVR1,loop:INCR1CJNE R1, R2, loopRETdelay ENDP```在上述示例中,创建了一个名为delay的汇编函数,该函数实现了一个简单的延时功能。

接下来,在C语言代码中使用extern关键字声明要调用的汇编函数:```// main.cextern void delay(unsigned int count);void maindelay(1000);```在上述示例中,使用extern关键字声明了一个名为delay的汇编函数。

KEIL C51集成开发环境C和汇编语言的相互调用

KEIL C51集成开发环境C和汇编语言的相互调用

KEIL C51集成开发环境C和汇编语言的相互调用
严天峰;王耀琦
【期刊名称】《兰州交通大学学报》
【年(卷),期】2008(027)001
【摘要】目前C语言已成为开发单片机项目的主要工具,但一些特殊的应用场合仍然需要汇编语言编写程序,如编写时序要求非常严格的接口协议时,这必然涉及到C 与汇编的相互调用,即混合编程的问题.详细介绍了KEIL C51环境下的C和汇编语言相互调用的方法和原则,并具体说明混合编程的细节和应注意的问题.
【总页数】4页(P131-134)
【作者】严天峰;王耀琦
【作者单位】兰州交通大学,电子与信息工程学院,甘肃,兰州,730070;兰州交通大学,电子与信息工程学院,甘肃,兰州,730070
【正文语种】中文
【中图分类】TP311.11
【相关文献】
1.Keil C51中C51程序与汇编程序的接口方法 [J], 张玉峰;荀建军
2.基于Keil C51集成开发环境的单片机教学探索 [J], 王青
3.基于Keil C51集成开发环境的单片机教学探索 [J], 王青
4.Keil C51中调用汇编语言的研究与实现 [J], 肖献保;方龙
5.基于80C51和KEIL C51的LED点阵显示系统 [J], 简献忠;虞箐;熊晓君;赵虎;居滋培
因版权原因,仅展示原文概要,查看原文内容请购买。

第5章 Keil C51集成环境的使用

第5章  Keil C51集成环境的使用

第5章 Keil C51集成环境的使用
(2) 用Debug菜单下的Go连续运行。 (3) 用Debug菜单下的Step单步运行。子函数中也要一 步一步地运行。 (4) 用Debug菜单下的Step Over单步运行。子函数体 一步直接完成。 (5) 用Debug菜单下的Stop running命令停止运行。 (6) 用View菜单调出各种输出窗口观察结果,用 Peripherals菜单观察51单片机内部资源。图5.10为调出 Peripherals菜单下的P2口观察的结果。 (7) 运行调试完毕,先用Stop running命令停止运行, 再用Debug菜单下的Start/Stop Debug Session命令退出 调试模式,结束仿真运行过程,回到编辑模式。
8
第5章 Keil C51集成环境的使用
5.2.2 给项目添加程序文件 程序文件已经建立好了可直接添加,程序文件如果没有, 须先建立的程序文件再添加,过程如下。 (1) 如果没有程序文件,则应先用File菜单下的New
命令建立程序文件,输入文件内容,存盘(注意汇编程 序扩展名为.ASM,C语言程序扩展名为.C)。 这里新建一个控制并行口P2滚动输出高电平的汇编 语言程序,存盘为IO.ASM文件,文件内容如下:
第5章 Keil C51集成环境的使用
一、 Keil µVision IDE界面
窗口标题栏 菜单栏 工具栏 项目管理器窗口
编辑窗口
命令窗口和 输出信息窗口
第5章 Keil C51集成环境的使用
菜单条提供各种操作菜单。
1.文件菜单的命令(File) 2.编辑菜单的命令(Edit) 3.视图菜单命令(View) 4.项目菜单的命令(Project) 5. Flash菜单 (Flash ) 6.调试菜单的命令(Debug) 7.外围设备菜单命令(Peripherals) 8.工具菜单命令(Tool) 9.软件版本控制系统菜单(SVCS)

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

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

单片机实验报告KeilC的使用与汇编语言上机操作单片机实验报告:Keil C的使用与汇编语言上机操作一、实验目的1.掌握Keil C的使用方法,了解其集成开发环境下的单片机编程流程。

2.掌握汇编语言的基本语法和指令,通过上机操作熟悉其应用。

3.通过实际操作,增强动手能力和解决问题的能力。

二、实验设备1.单片机开发板2.Keil C软件3.电脑及编程器三、实验原理及步骤1.Keil C使用介绍Keil C是一款广泛使用的单片机集成开发环境,它提供了包括编译器、调试器、仿真器等在内的全套开发工具。

使用Keil C可以方便地进行代码编写、编译、调试和模拟,适用于多种单片机开发。

2.汇编语言基础汇编语言是一种直接与硬件相关的编程语言,它通过特定的指令集直接控制硬件进行操作。

汇编语言具有高效、直接的特点,但编写和理解相对困难。

本实验主要学习并熟悉汇编语言的基本语法和指令。

3.实验步骤(1) 在Keil C中创建新项目,选择合适的单片机型号。

(2) 创建源文件,编写汇编程序。

(3) 对源文件进行编译,生成目标文件。

(4) 将目标文件下载到单片机开发板进行调试和运行。

四、实验内容及分析1.在Keil C中创建新项目并选择单片机型号。

在创建项目时,需要选择正确的单片机型号,这将直接影响到程序的编写和运行。

根据实际需要,我们选择了AT89C51作为实验用的单片机。

2.创建源文件并编写汇编程序。

在Keil C中,可以方便地创建新的源文件,并在其中编写汇编程序。

例如,下面是一个简单的汇编程序,用于点亮开发板上的LED灯:MOV P1, #1 // 将1赋值给P1端口此程序将使P1端口的所有引脚输出高电平,从而点亮LED灯。

3.对源文件进行编译并生成目标文件。

在Keil C中,可以通过简单的点击完成编译操作。

编译成功后,将生成一个目标文件(如*.obj文件)。

4.将目标文件下载到单片机开发板进行调试和运行。

在Keil C中,可以通过仿真功能模拟程序的运行,也可以通过调试功能查看程序运行过程中的细节信息。

Keil C51中汇编的应用

Keil C51中汇编的应用
浅谈 Keil C51 中汇编的应用
□张春龙
【摘 要】 C 语言直接嵌入汇编、 C 与汇编的相互调用等。 文章主要讨论了 Keil C51 使用汇编时的常用调试命令 、 在线汇编、 【关键词】 Keil C51 ; 汇编语言; 编写程序 【作者单位】 张春龙, 黑龙江生态工程职业学院
C 语言已成为单片机应用系统主流的编程工具, C 目前, 语言具有代码可移植性好 、 可靠性高、 易于维护的优点。 在 德国 KEII 公司推出基于 WINDOWS 平台功能强大的 51 系列 μVision 单片机集成开发工具之后, 更加体现了这一趋势, 采 用 C 语言几乎可以完成所有汇编语言的工作, 能够大大提高 程序的开发效率, 但是在一些特殊的应用场合, 仍然需要用 汇编语言进行编写程序 。 一、 常用调试命令 对工程成功的进行汇编 、 连接之后, 使用菜单 Debug → Start / Stop Debug Session 或者按 Ctrl + F5 即可进入调试状态, Keil 内建立了一个仿真 CPU 用来模拟执行程序, 该仿真 CPU 功能强大, 能够在没有硬件和仿真机的情况下, 进行调试程 序。使用菜单 STEP 或使用快捷键 F11 或相应的命令按钮, 可以实现单步执行程序, 使用菜单 STEOVER 或功能键 F10 , 能够实现以过程单步的形式执行命令 。 所谓过程单步, 就是 指将高级语言中的函数或汇编语言中的子程序, 作为一个语 。 句进行全速执行 二、 在线汇编 在进入 Keil 的调试环境后, 若发现程序有错, 可以对源 程序进行直接修改, 但要使修改后的代码执行起作用, 就必 须先退出调试环境, 进行重新编译、 连接, 再进入调试。 如果 仅需对源程序进行临时的修改, 或只需要对某些程序行进行 测试, 上述的过程就未免显得麻烦, 因此 Keil 软件提供了在 然 线汇编的能力。首先将光标定位于需要修改的程序行上, 后用菜单 Debug → Inline Assembly, 会出现一个对话框, 在对 话框 Enter New 后面的缩缉框内, 直接输入需更改的程序语 句, 输入完后敲击回车键, 将会自动指向下一条语句执行, 可 以继续修改。若不需要再修改, 可以点击右上角的关闭按钮 来关闭窗口。 C 语言直接嵌入汇编 三、 在 C 和汇编的混合编程中, 有一种简单的方法, 可以在 C “project / options fog roupsoure 语言中直接嵌入汇编指令, 即在 group” “Assemble SRC file ” “generate assemb窗口一栏选中 和 ler SRC file” 两项内容的前提下, 采用预处理命令#pragma asm 和#pragma endasm。同时, 还需将库文件填加到目标文件的 项目组中, 如果在“SMALL ” 编译模式下, 需将 KEII / C51 / LIB C51S. LIB 路径下的 文件填加到目标文件的项目组里, 进行 这些操作后, 编译才不会出错. h > void main( void) { unsigned j; #pragma asm MOV A, #02 M0V P2 A RL A MOV P2 A #pragma endasm i = 8} #pragma as 可以在 C 程序中的任意一 在上面的例程中, 行出现, 该方法为 C 语言程序中嵌入汇编, 提供了一种简易 可行的方法。 C 程序调用汇编 四、 ( 一) C 文件格式 #include < reg52. h > unsigned int y) ; unsigned int add( unsigned int x, void main( ) { unsigned int z; z = add( 53 , 530 ) ; } ( 二) 汇编文件格式。 ? PR? _ADD? ADDMOD SEGMENT CODE; 声明函数代 PUBLIC_ADD; 程序段及数据段的开始地址 RSEG? PR? _ADD? ADDMOD _ADD: MOV A, R5 ADD A, R7 MOV R7 , A MOV A, R4 ADDC A, R6 MOV R6 , A RET END 当利用寄存器传递参数时, 在汇编中定义函数时, 要用 “_函数名” 。 来定义函数 五、 在汇编程序中调用 C 程序( 下转第 254 页)

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

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

实验一KeilC51集成开发环境的使用练习、仿真与调试实验一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.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 取反SJMP MainEND四、实验要求1、熟练掌握Keil C51集成开发环境的工程建立、编辑与编译功能。

利用Keil C51集成开发软件编辑、

利用Keil C51集成开发软件编辑、

步骤6 选择左侧工具栏中的元件图标 ,将鼠标移到图形编辑窗口中单片 机的P0.0引脚处,当引脚处出现高亮小方块时单击鼠标,将引出的绿色连线 指向LED并点击确认,如下所示。使用同样的方法将LED和电阻相连。
步骤7 单击左侧工具栏中的元件图标,在对象选择器窗口中选择“POWER”, 将电源符号放到电阻符号的上方与电阻相连(系统默认电压为5V),如下所示。
步骤6 如左图所示,选择“Project”>“Options for Target‘Target 1’” 菜单,在弹出的对话框中打开“output”选项卡,参照右图所示设置输出 选项,然后单击“确定”按钮。
步骤7 单击编译工具栏的按钮,对汇编源文件进行编译、链接,如左图 所示,在输出窗口将看到信息提示,在保存工程的文件夹中将生成“.hex” 文件,如右图所示。
步骤1 打开Proteus ISIS,开发界面如下图所示,除了常见的菜单栏和 工具栏外,还包括预览窗口、对象选择器窗口、图形编辑窗口、预览对 象方位控制按钮以及仿真进程控制按钮等。
预览窗口
图形编辑窗口
对象选择器窗口
仿真进程控制 按钮
预览对象方位控 制按钮
步骤2 单击对象选择器窗口上方的 按钮,弹出如下所示的设备选择 对话框,在“keywords”文本编辑框中输入芯片型号的关键字,在右侧 出现的结果中选中需要的芯片,然后单击“OK”按钮。
步骤8 在电阻R1上单击鼠标右键,弹出左图所示的快捷菜单,选择“Edit Properties”选项,打开右图所示编辑元件对话框,在“Resistance:”右 侧的编辑栏中将阻值更改为“330”,然后单击“OK”按钮。
步骤9 在单片机上单击鼠标右键,弹出左图所示快捷菜单,选择“Edit Properties”选项,打开右图所示编辑元件对话框,单击“Program File:” 右侧的按钮,选择在Keil C51中编译好的hex文件,然后单击“OK”按钮。

第2章Keil C51集成开发环境软件及TOP851多功能编程器软件介绍

第2章Keil C51集成开发环境软件及TOP851多功能编程器软件介绍

第2章Keil51集成开发环境软件及TOP851多功能编程器软件介绍一个单片机应用系统,它的硬件电路设计完成后,接着便是软件编写及仿真调试。

对于初学者入门学习应以汇编语言为主。

这里先介绍一下Keil C51集成开发平台及TOP851烧录软件的安装及使用。

2.1 Keil C51集成开发平台安装在电脑中放入配套光盘,打开Keil C51 文件,将Keil C51设计软件安装程序(2K代码限制)拷贝到硬盘的一个自建文件夹中(如K51)。

然后双击Setup.exe进行安装,在提示选择Eval或Full方式时,选择Eval方式安装,不需注册码,但有2K大小的代码限制。

如你购买了完全版的Keil C51软件(或通过其它途径得到),则选择Full方式安装,代码量无限制。

安装结束后,如果您想在中文环境使用,可安装Keil C51汉化软件,将汉化软件中的uv2.exe复制并粘贴到C:\Keil\uv2目录下并替换原先的文件即可。

程序安装完成后在桌面上会出现Keil uVision2(汉化版)图标,双击该图标便可启动程序,启动后的界面如图2-1所示。

图2-1 Keil C51启动后界面图2-2 Keil C51菜单栏图2-3 Keil C51工具栏主要由菜单栏(图2-2)、工具栏(图2-3)、源文件编辑窗口、工程窗口和输出窗口五部分组成。

工具栏为一组快捷工具图标,主要包括基本文件工具栏、建造工具栏和除错(DEBUG/调试)工具栏,基本文件工具栏包括新建、打开、拷贝、粘贴等基本操作。

建造工具栏主要包括文件编译、目标文件编译连接、所有目标文件编译连接、目标选项和一个目标选择窗口。

除错(DEBUG/调试)工具栏位于最后,主要包括一些仿真调试源程序的基本操作,如单步、复位、全速运行等。

在工具栏下面,默认有三个窗口。

左边的工程窗口包含一个工程的目标(target)、组(group)和项目文件。

右边为源文件编辑窗口,编辑窗口实质上就是一个文件编辑器,我们可以在这里对源文件进行编辑、修改、粘贴等。

Keil C51集成开发环境的使用

Keil C51集成开发环境的使用

实验题目:实验一Keil C51集成开发环境的使用姓名:专业:学号:成绩一、实验目的1.熟悉Keil C51集成开发环境的基本操作;2.掌握简单C51和汇编程序的编写、调试。

二、实验内容1.仔细阅读附录2及教材(陈海宴编著)相关内容,掌握Keil C51集成开发环境的基本功能。

2.分别用汇编语言和C51语言编写清零程序。

把片外RAM中的7000H-70FFH单元内容清零。

3.分别用汇编语言和C51编写查找相同数个数的程序。

统计片外RAM 7000H-700FH 中“00H”的个数并保存在片内RAM 30H单元。

三、实验原理及步骤1.清零程序(1)汇编语言程序设计框图如图1.1(2)实验步骤:用连续或单步方式运行程序,检查7000H-70FFH单元中执行程序前后的内容变化。

(3)把7000H-70FFH中的内容改成FF(4)用C51重新编写该清零程序,运行程序并查看结果。

2.查找相同数个数(1)汇编语言程序设计框图如图1.2图1.1 图1.2(2)实验步骤:①在7000H-700F单元中放入随机数,其中几个单元输入0;②.用连续或单步方式运行程序;③.观察片内RAM 30H的内容,并显示“00H”的个数。

(3)用C51重新编写该清零程序,运行程序并查看结果。

四、电路设计及调试程序设计与调试(1)实验程序:清零汇编程序ORG 0000H 清零C程序#include<reg51.h>CLEAR:MOV R0,#00H main(){MOV DPTR,#7000H char xdata *p=0x7000;CLEAR1:CLR A int t=0x7100-0x7000 ;MOVX @DPTR,A while(t--)INC DPTRINC R0 {*p=01;CJNE R0,#00H,CLEAR1 p++;SJMP $ }END }查找相同数个数汇编程序查找相同数个数c程序ORG 0000H #include<reg51.h>MOV R0,#00H #include<stdio.h>MOV R1,#00H void main()MOV DPTR,#7000H {LOOP: MOVX A,@DPTR char sum=0;CJNE A,#00H,NEXT char a=0x10;INC R1 char xdata *p=0x7000;NEXT:INC DPTR char data *q=0x30;INC R0 while(a--)CJNE R0,#10H,LOOP {MOV 30H,R1 if(*p==0)SJMP $ sum++;END p++;}*q=sum;while(1);}(2) 调试过程打开command windows窗口,观察数存单元的内容的变化。

Keil c51集成开发环境入门及常用指令

Keil c51集成开发环境入门及常用指令

熟悉Keil c51集成开发环境及常用指令实验一、实验目的:⑴了解80C51典型应用系统的开发过程,熟悉Keil c51集成开发环境。

⑵掌握单步执行程序,查看专用寄存器和单片机RAM的执行结果。

⑶掌握80C51的寻址方式及常用指令的使用方法。

二、实验内容:(1)基本指令练习(2)数据传送(循环方式)三、实验步骤:(1)启动计算机;(2)进入Keil c51集成开发环境;(3)在Keil c51集成开发环境中, 编辑源程序;(4)源程序编辑好后,就可对源文件进行编译,生成目标代码。

(5)运行、调试程序和结果检查。

(6)分别采用单步、宏单步执行到光标处等命令运行程序,观察有关单元中的内容。

(7)修改有关单元中的内容,再观察有关单元中的内容。

四、思考题1、分别执行如下3段程序,并在调试状态下观察有关单元中的内容。

汇编程序1:顺序执行的程序ORG 0000HSJMP MAINORG 0030HMAIN: MOV SP,#6FHMOV R0,#40HMOV R1,#30HMOV 30H,#50HMOV A,#40HMOV @R0, A ;说明哪一个存储单元的内容与A中内容相等。

INC AMOV A,@R1 ;说明A中的内容,哪一个存储单元的内容传输给APUSH ACCPOP 32H ;说明SP指针的变化,32H中的内容MOV A,#5FHSWAP A ;说明A中的内容MOV DPTR, #0030HMOVX @DPTR,A汇编程序2:循环程序XUNHUAN1: MOV R0,#30HMOV R2,#10HCLR A ;这3条指令的作用LOOP1: MOV @R0,AINC AINC R0DJNZ R2,LOOP1 ;R2的作用;;循环程序执行完之后,指出32H,37H,3BH,3FH存储单元中的值。

XUNHUAN2: MOV R0,#30HMOV R1,#40HMOV R2,#10HLOOP2: MOV A,@R0MOV @R1,AINC R0INC R1DJNZ R2,LOOP2 ;说明这段程序的功能汇编程序3:PANDUAN1: MOV 30H,#10HMOV 31H,#4BHMOV R0,#30HMOV R1,#31HPAN0: MOV A,@R0CLR CSUBB A,@R1JNC PAN1MOV A,@R0MOV 40H,@R1MOV @R0,40HMOV @R1,APAN1: NOP ;END ;说明这段程序的功能2、编程完成:单片机内部RAM40H-4FH置初值AOH~AFH,然后将40H~4FH 的内容传送到外部RAM中的2000H~200FH单元,再把外部数据RAM中的2000H~200FH单元的内容传送到单片机内部RAM中的50H~5FH单元。

KEILC51程序中如何嵌入汇编

KEILC51程序中如何嵌入汇编

KEILC51程序中如何嵌⼊汇编模块内接⼝:使⽤如下标志符:asm汇编语句endasm注意:如果在程序中使⽤了,注意在Keil编译器中需要激活Properties中的“Generate Assembler File” 和“Assembler File ”两个选项1、把"xx.c"加⼊⼯程中,右击"xx.c"选择“options for file"xx.c" 选择“Generate Assembler File”和“Assemble SRC File”打上⿊勾有效;2、根据选择的编译模式,把相应的库⽂件象加"xx.c"⼀样加⼊⼯程中并放在"xx.c"下⾯,如smail模式下选"keil\\lib\s.lib"加⼊⼯程中,如果要进⾏把"keil\c51\lib\c51fpl.lib"也加⼊⼯程中。

即:在 Keil 安装⽬录下的 \C51\LIB\ ⽬录的LIB ⽂件如下:C51S.LIB - 没有的 Small moC51C.LIB - 没有的 Compact moC51L.LIB - 没有浮点运算的 moC51FPS.LIB - 带浮点运算的 Small modelC51FPC.LIB - 带浮点运算的 Compact modelC51FPL.LIB - 带浮点运算的 model3、在"xx.c"头⽂件中加⼊优化:⽐如 (4,speed)4、在"xx.c"中加⼊汇编代码#pragma ASM;Assembler Code Here#pragma ENDASM5、编译⽣成xx.hex例:#include<reg52.h>void delay(void){#pragma asmR5,#5DEL:R6,#2DEL1:R7,#255DJNZ R7,$DJNZ R6,DEL1DJNZ R5,DEL;MOV A,P1; A;MOV P1,A#pragma endasm}void delay1(unsigned int cnt){while(cnt--);}void main(){while(1){delay1(1000);P1=0x55;delay();}}有时候⽤到需要精确延时之类的⼦程序时,⽤C语⾔⽐较难控制,这时候就可以在C中嵌⼊汇编⽐较常⽤的keil中嵌⼊汇编的⽅法如下所⽰:如图⼀,在C⽂件中要嵌⼊汇编的地⽅⽤#pragma asm和#pragma endasm分隔开来,这样编译时KEIL就知道这中间的⼀段是汇编了。

关于在 KEIL C51 中直接嵌入汇编

关于在 KEIL C51 中直接嵌入汇编

我找到了一些资料希望对你有用下周就要做实验了,由于听老师说机房位子可能比较少,对我这种蹭课的学生来说也就不敢奢望同选这门课的同学一样能够正常的在机房调试程序了,因此,我决定提前先在自己的工作室里把实验内容给过一遍。

第一个实验是关于嵌入式编程的,这个实验目的一方面是为了让我们熟悉ARM下编程的编译环境ADS和调试器A TX,另一方面是让我们掌握如何将c 语言和汇编语言在实际编程中相互调用。

经过这两天靠自己不断的摸索,终于掌握了如何在编译环境中进行ARM编程,另外,还学会了在c中调用汇编程序的方法,以及如何通过linux 自带的gcc编译嵌有汇编的c程序,总之,收获还是蛮多的哦,下面就总结一下吧。

1、c嵌汇编首先说一下关于GCC编译嵌有汇编语言的c语言吧,GCC编译的汇编语言不是我们上课时学的Intel x86汇编,而是A T&T汇编,两者的区别可以查看《Gcc使用的内嵌汇编语法格式小教程》。

下面是内嵌汇编的几种格式:语法__asm__(“instruction. ……instruction”); //Linux gcc中支持(注意asm的下划线均为两个否则GCC将会无法编译)__asm{instruction…instruction}; //ADS中支持(注意asm的下划线均为两个否则GCC将会无法编译)asm(“instruction [; instruction]”); //ARM C++中使用例1是我在linux环境下,编的嵌有汇编程序的c语言,并通过了GCC的编译:例1:#includeint plus(int a,int b){__asm__(“add %1,%0\n\t”:”+r”(a):”r”(b));return (c);}int main(){int a,b,c;a=2;b=1;c=plus(a,b);printf(“c=%d\n”,c);}这个程序应该是很简单的,但关键是子函数中嵌入的那段汇编程序,具体的写法可以参看其他文章。

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

Keil C51集成开发环境的使用Keil C51软件可以从相关网站下载并安装。

安装好后,双击桌面快捷图标或在“开始”菜单中选择Keil μVision3,启动Keil μVision3集成开发环境,启动后界面如图4-3所示。

图4-3 Keil μVision3启动后的集成开发环境界面(一)创建项目Keil μVision3中有一个项目管理器,用于对项目文件进行管理。

它包含了程序段环境变量和编程有关的全部信息,为单片机程序的管理带来了很大的方便。

创建一个新项目的操作步骤如下:(1)启动μVision3,创建一个项目文件,并从器件数据库中选择一款合适的单片机型号。

(2)创建一个新的源程序文件,并把这个源文件添加到项目中;(3)为该单片机芯片添加或配置启动程序代码;(4)设置工具选项,使之适合目标硬件;(5)编译项目并创建一个*.hex文件。

下面以本章任务为例分别介绍每一步的具体操作。

1.新建项目文件单击菜单“Project”→“New Project”命令,弹出如图4-4所示的新建项目对话框,指定保存路径,建议每个项目使用一个独立文件夹,例如本项目保存在“第4章”文件夹;然后,在“文件中名”输入项目名称,例如“4-1”,单击“保存”按钮即完成新项目的创建(系统默认扩展名为“.uv2”)。

保存路径输入文件名图4-4 新建项目对话框此时弹出选择单片机的型号对话框,如图4-5所示,展开Atmel系列单片机,选择“AT89C51”,单击“确定”按钮完成设备的选择。

图4-5 选择单片机的型号对话框单片机型号选择结束后,在μVision3工作界面左边的项目管理器中新增加了一个“Target 1”目标1文件夹,如图4-6所示。

图4-6 项目管理器中新增“Target 1”对话框2.新建源程序文件单击菜单“File”→“New”命令,就可以创建一个源程序文件。

该命令会打开一个空的编辑器窗口,默认名为“Text 1”,输入如下源程序:/******************************************************************名称:流水灯控制模块名:AT89C51,74LS373功能描述:当开关打开时,LED自上而下依次点亮;当开关闭合时,LED从下向上依次点亮。

******************************************************************/#include<reg51.h>#define uchar unsigned char //类型重定义#define uint unsigned intsbit Key = P0^0; //定义位名称void DelayMS(uint ms); //延时函数原型声明// 主程序void main( ){uchar i,keyPre,shift;Key = 1;while(1){keyPre = Key;if(keyPre){shift=0x01;for(i=0;i<8;i++){ P1 = ~shift; DelayMS(200); shift<<=1;}}else{ shift=0x80;for(i=0;i<8;i++){ P1 = ~shift; DelayMS(200); shift>>=1;}}}}/********************************************************************函数名称:DelayMS函数功能:延时函数入口参数:参数ms控制循环次数,从而控制延时时间长短********************************************************************/void DelayMS(uint ms){uchar i;while(ms--)for(i=0; i<120; i++);}程序输入完毕后,单击“File”→“Save”命令对源程序进行保存,在保存时,文件名可以是字符、字母或数字,并且一定要带扩展名(使用汇编语言编写的源程序,扩展名为.asm,使用单片机C语言编写的源程序,扩展名为.c)。

保存好源程序后,源程序窗口中的关键字呈彩色高亮显示。

这里保存为“4-1.c”。

特别注意:源程序扩展名“.c”必须手动输入,表示为C语言程序,使Keil C51采用对应的C语言的方式来编译源程序。

源程序文件创建好后,可以把这个文件添加到项目管理器中。

单击项目管理器中“Target 1”文件夹旁边的“+”按钮,展开后在“Source Group 1”上单击右键,弹出快捷菜单,如图4-7所示。

选择“Add Files to Group ’Source Group 1’”命令,弹出如图4-8所示的加载文件对话框。

在该对话框中选择文件类型为“c Source file”,找到刚才创建的“4-1.c”源程序文件,然后单击“Add”按钮,4-1.c即被加入到项目中,此时对话框不消失可以继续加载其它文件。

单击“Close”按钮将对话框关闭。

图4-7 在快捷菜单中选择加载源程序文件命令图4-8 在对话框中选择要添加的文件此时在Keil软件项目管理器的“Source Group 1”文件夹中可以看到新加载的4-1.c文件。

3.为目标1设置选项选中Target 1,单击菜单“Project”→“Options for Target ‘Target 1’”命令,弹出为目标1的设置选项对话框,如图4-9所示,共有11个选项,其中“Target”、“Output”和“Debug”选项较为常用,默认打开“Target”选项。

图4-9 为目标1设置选项对话框在该选项中可以对目标硬件及所选器件片内部件进行参数设置:包括指定CPU时钟频率;是否使用片上自带的ROM存储器;指定C51编译器的存储模式(默认为SMALL模式);指定ROM存储器大小使用;指定片外程序存储器和片外数据存储器的地址范围(如果没有则不填)等。

4.编译项目并创建*.hex文件单片机不能处理C语言程序,必须将C程序转换成二进制或十六进制代码,这个转换过程称为汇编或编译。

Keil C51软件本身带有C51编译器,可将C程序转换成十六进制代码,即*.hex文件。

在完成项目设置后,就可对源程序进行编译。

执行菜单“Project”→“Rebuild all target files”命令,可以编译源程序并生成目标文件。

如果程序有错,则编译不成功,μVision3将会在输出窗口(“View”→“Output Window”命令切换显示或屏蔽此窗口)的编译页中显示如图4-10所示信息,双击某一条错误信息,光标将会停留在μVision3文本编辑窗口中出现语法错误或警告的位置处,修改并保存后,重新编译,直至正确无误。

图4-10 错误和警告信息若成功创建并编译了应用程序,就可以开始调试。

当程序调试好之后,要求创建一个*.hex文件,生成的*.hex文件可以下载到EPROM或仿真器中。

若要创建*.hex文件,必须在为目标设置选项,在“Output”选项卡中选中“Create HEX file”复选框,如图4-11所示,单击“确定”按钮完成所需设置。

设置完成后,执行菜单“Project”→“Rebuild all target files”命令即可。

选中“生成.HEX文件”图4-11 编译时生成“HEX”文件设置打开“第4章”文件夹,可以看到已经创建了的4-1.HEX文件。

(二)调试程序1.CPU仿真使用μVision3可对源程序进行测试,它提供了两种工作模式,这两种模式可以在“Options for Target ‘Target 1’”对话框的“Debug”选项卡中进行选择,如图4-12所示。

图4-12 仿真调试设置“Use simulator”:软件仿真模式,将μVision3调试器配置成纯软件产品,能仿真8051系列的绝大多数功能而不需任何硬件目标板,如串行口、外部I/O和定时器等,这些外围部件是在选择单片机CPU时选定的。

“Use”:硬件仿真,用户选择相应的硬件仿真器仿真。

如果选中Use:Keil Monitor-51 Driver硬件仿真选项,还可以单击右边的Settings按钮,对硬件仿真器连接情况进行设置,如图4-13所示。

图4-13 仿真器连接参数设置Port:串行口号,仿真器与计算机连接的串行口号。

Baudrate:波特率设置,与仿真器串行通信时的波特率,仿真器上的设置必须与它一致。

Serial Interrupt:选中它允许单片机串行中断。

Cache Option:缓存选项,可选可不选,选择可加快程序的运行速度。

2.启动调试源程序编译好后,选择相应的仿真操作模式,可启动源程序的调试。

单击图标或执行菜单“Debug”→“Start/Stop Debug Session”命令,可以启动μVision3的调试模式,调试界面如图4-14所示。

Keil内建了一个仿真CPU用来模拟执行程序,该仿真CPU功能强大,可以在没有硬件和仿真器的情况下进行程序的调试。

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

图4-15 运行调试工具条3.断点的设定和删除在μVision3中,用户可以采用以下不同的方法来定义断点:(1)在文本编辑窗口或反汇编窗口中选定所在行,然后单击工具栏的设置断点按钮图标,或执行菜单“Debug”→“Insert/Remove Breakpoint ”命令。

(2)在文本编辑窗口或反汇编窗口中选定所在行,单击右键,从打开的快捷菜单中选择“Insert/Remove Breakpoint”命令。

(3)利用“Debug”下拉菜单,打开“Breakpoints…”对话框,在这个对话框中可以查看定义或更改断点设置。

4.目标程序的执行目标程序的执行可以使用以下方法:(1)使用菜单“Debug”→“Run”命令或命令按钮或按下功能键“F5”全速执行程序。

(2)使用菜单“Debug”→“Step”命令或相应的命令按钮或使用功能键F11可以单步执行程序,(3)使用菜单“Debug”→“Step Over”命令或相应的命令按钮或功能键F10可以以过程单步形式执行命令,所谓过程单步,是指把C语言中的一个函数作为一条语句来全速执行。

相关文档
最新文档