实验一 Keil软件的使用及简单程序的调试方法
- 格式:doc
- 大小:246.50 KB
- 文档页数:5
使用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工程步骤以下面的程序为例#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集成开发环境的使用练习、仿真与调试一、实验目的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调试高级技巧在调试状态,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口控制一实验目的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软件使用
一、实验目的
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的使用方法和建立一个完整的单片机汇编语言程序的调试过程及方法。
二、实验器材计算机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等软件使用(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文件”选项前要打勾,按“确定”退出。
实验一 KEIL 软件使用实验一、实验目的1.熟悉keil 公司µVision 集成开发环境;2.掌握keil 软件使用方法;3.了解keil 软件的软仿真功能。
二、实验仪器和设备Keil 软件;THKSCM-2综合实验装置;三、实验原理及实验内容1.µVision 的界面以µVision2/3为例,其界面如图一所示。
首先它有一般应用软件的典型风格,如具有菜单栏和快捷工具栏,另外可以打开的主要界面是工程窗口和对应的文件编辑窗口、运行信息显示窗口、存储器信息显示窗口及调试信息显示窗口等。
图一µVision 的界面为了便于单片机资源的观察,在工程窗口可以展开Register 标签,从而可以方便地观察单片机寄存器的状态;打开存储器信息显示窗口可以显示ROM 、RAM 的内容;还可以打工程窗口编辑窗口运行信息显示窗口存储器信息窗口变量观察窗口片内外设窗口虚拟串口开多种窗口用于应用软件的调试。
2.目标程序的生成(1)建立工程为了获得目标程序,通常需要利用多个程序构成工程文件,这些程序包括汇编语言源文件、C语言源文件、库文件、包含文件等;生成目标文件的同时,还可以自动生成一些便于分析和调试目标程序的辅助文件,如列表文件等。
对这些文件需要进行较好的管理与组织,常用的办法就是建立一个工程文件。
用鼠标单击Project菜单的下拉选项New µVision Project,在弹出的窗口中输入准备建立的工程文件名(不用输入扩展名,系统会自动添加)。
如输入文件名:lx1。
为了便于管理,建议为该工程建立一个独立的文件夹,如lx1。
(2)配置工程刚建立的工程仅是一个框架,应该根据需求添加相应的程序。
在工程窗口的Source Group 1处单击鼠标右键会弹出一个菜单,点其中的选项Add Files to Group ‘Source Group 1’,在弹出的窗口中改变文件类型,填入文件名。
实验一使用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)。
keil的使用方法Keil是一款嵌入式系统开发工具,功能强大且易于上手。
本文将为大家详细介绍Keil的使用方法,帮助大家更好的进行嵌入式系统开发。
第一步:安装Keil软件首先将Keil软件下载到本地,然后进行安装。
在安装过程中需要选择合适的安装路径,并按照提示完成安装。
安装完成后,可以打开Keil软件,进入编辑器界面。
第二步:创建工程在Keil中,开发者需要先创建一个工程,然后才能进行代码编写。
在“Project”菜单中选择“New Project”,然后按照提示进行操作。
在工程创建完成之后,需要添加需要使用的源文件和头文件。
第三步:编写代码在Keil的编辑器界面中开始编写代码。
Keil支持多种编程语言,如C语言、C++语言等。
在编写代码时,需要遵循一定的规范,如正确的命名变量、函数和宏定义等。
同时,也需要注意代码格式的规范,如使用空格、缩进等;还要注意代码的可读性和可维护性。
第四步:编译代码在代码编写完成后,需要将代码编译成可执行的二进制文件。
在Keil中,编译非常简单。
只需要在菜单栏的“Build”中选择“Compile”,Keil就会自动完成代码编译,并生成可执行的二进制文件。
第五步:下载程序将已经编译好的程序下载到目标设备中。
Keil支持多种下载方法,如串口下载、JTAG下载等。
根据实际的需要进行选择,并按照提示完成设备连接和下载操作。
在下载完成后,可以通过调试窗口进行程序的调试。
综上所述,Keil是一个非常方便的嵌入式系统开发工具。
通过上面的介绍,相信大家已经掌握了Keil的使用方法。
只要掌握好Keil 的使用方法,就可以轻松开发出高质量的嵌入式系统。
如何使用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 C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和 C 语言的程序设计,界面友好,易学易用。
下面介绍Keil C51软件的使用方法进入Keil C51 后,屏幕如下图所示。
几秒钟后出现编辑界进入Keil C51后的编辑界面简单程序的调试学习程序设计语言、学习某种程序软件,最好的方法是直接操作实践。
下面通过简单的编程、调试,引导大家学习Keil C51软件的基本使用方法和基本的调试技巧。
1)建立一个新工程单击Project菜单,在弹出的下拉菜单中选中New Project选项2)然后选择你要保存的路径,输入工程文件的名字,比如保存到C51目录里,工程文件的名字为C51如下图所示,然后点击保存.3)这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keil c51几乎支持所有的51核的单片机,我这里还是以大家用的比较多的Atmel 的89C51来说明,如下图所示,选择89C51之后,右边栏是对这个单片机的基本的说明,然后点击确定.4)完成上一步骤后,屏幕如下图所示到现在为止,我们还没有编写一句程序,下面开始编写我们的第一个程序。
5)在下图中,单击“File”菜单,再在下拉菜单中单击“New”选项新建文件后屏幕如下图所示此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,但笔者建议首先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“Save As”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。
注意,如果用C语言编写程序,则扩展名为(.c);如果用汇编语言编写程序,则扩展名必须为(.asm)。
然后,单击“保存”按钮。
6)回到编辑界面后,单击“Target 1”前面的“+”号,然后在“Source Group 1”上单击右键,弹出如下菜单然后单击“Add File to Group …Source Group 1‟” 屏幕如下图所示选中Test.c,然后单击“Add ”屏幕好下图所示注意到“Source Group 1”文件夹中多了一个子项“Text1.c”了吗?子项的多少与所增加的源程序的多少相同7)现在,请输入如下的C语言源程序:#include <reg52.h> //包含文件#include <stdio.h>void main(void) //主函数{SCON=0x52;TMOD=0x20;TH1=0xf3;TR1=1; //此行及以上3行为PRINTF函数所必须printf(“Hello I am KEIL. \n”); //打印程序执行的信息printf(“I will be your friend.\n”);while(1);}在输入上述程序时,读者已经看到了事先保存待编辑的文件的好处了吧,即Keil c51会自动识别关键字,并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。
先说一个概念:调试,在企业程序设计里(我把企业商务类型的软件开发叫企业程序设计,把单片机与驱动程序这样接触底层汇编与硬件相关的程序设计叫底层程序设计),调试一般都用来跟踪变量的赋值过程,以及查看内存堆栈的内容,查看这些内容的目的在于观察变量的赋值过程与赋值情况从而达到调试的目的。
由于企业程序的宿主就是开发它的计算机本身,因此企业程序设计比起底层程序设计,特别是单片机的程序设计调试来的更直观,调试也更方便。
单片机的程序设计调试分为两种,一种是使用软件模拟调试,意思就是用开发单片机程序的计算机去模拟单片机的指令执行,并虚拟单片机片内资源,从而实现调试的目的,但是软件调试存在一些问题,如计算机本身是多任务系统,划分执行时间片是由操作系统本身完成的,无法得到控制,这样就无法时时的模拟单片机的执行时序,也就是说,不可能像真正的单片机运行环境那样执行的指令在同样一个时间能完成(往往要完成的比单片机慢)。
为了解决软件调试的问题,第二种是硬件调试,硬件调试其实也需要计算机软件的配合,大致过程是这样的:计算机软件把编译好的程序通过串行口、并行口或者USB口传输到硬件调试设备中(这个设备叫仿真器),仿真器仿真全部的单片机资源(所有的单片机接口,并且有真实的引脚输出),仿真器可以接入实际的电路中,然后与单片机一样执行。
同时,仿真器也会返回单片机内部内存与时序等情况给计算机的辅助软件,这样就可以在软件里看到真实的执行情况。
不仅如此,还可以通过计算机断的软件实现单步、全速、运行到光标的常规调试手段。
图1:仿真器总结一下两者的不同与相同:相同点:1:都可以检测单片机执行时序下的片内资源情况(如R0-R7 、PC计数器等)2:可以实现断点、全速、单步、运行到光标等常规调试手段。
不同:1:软件调试无法实现直接连接硬件电路的调试,只能通过软件窗口虚拟硬件端口的电平输出情况而仿真器可以实现与单片机一样的功能的硬件连接,从某种意义上说这个时候仿真器就是一个单片机。
Keil 软件的使用目前KEIL软件已经有许多不同的版本,可用于各种单片机和ARM的开发。
这里我们选以Keil uVision v3.0软件为例讲简单讲解Keil软件的使用。
这一部分包含以下四个小节:1、软件安装。
2、建立一个工程。
3、在Keil中添加STC单片机的型号。
4、Keil仿真调试。
5、Keil软件使用技巧。
一、软件安装先从网上下载Keil软件或者从开发板配套资料中的“开发工具”文件夹里找到“Keil uVision v3.0”安装包。
点击c51v802.exe,按照提示,按“Next”,如图所示,选择好安装目录后,直接安装直到结束。
图1安装结束后,在“开始”菜单和桌面上会出现Keil uVision v3.0的图标,双击就可以打开Keil软件了。
窗口如下所示。
图2刚安装完之后,软件还没注册,这样使用起来,编译会受限制。
下面我们提供一种注册方法,但首先声明:该方法只供学习单片机使用,不能用于商业于途,否则应向Keil公司购买注册码。
运行Keil软件后,进入File->License Management弹出如下窗口提示输入注册码。
图3在Keil安装包里有一个Keil_MDK注册机,打开该软件。
复制上图的CID并填进注册机的License Details->CID一栏。
再点击“Generate”按钮即可生成一个License ID。
如图所示。
图5将注册机生成的License ID复制并加入到Keil软件License Manger->New License ID code这一栏,再按下Add LIC按钮即可注册成功,如下图所示。
按下确定退出。
图6至此,我们就完成了Keil软件的安装,接下来就可以在这上面尽情发挥你的编程能力了!二、建立一个工程下面,我们以实验一“LED驱动”为例来讲述如何建立一个Keil工程。
先在桌面或其他地方新建一个文件夹,命名为“例程(1)-LED驱动”。
Keil C51集成开发环境编程与调试教程山东师大传媒学院刘新阳编一、Keil中进行C语言编程的基本步骤同VC之类的通用C语言集成开发环境(IDE)一样,Keil也采用“工程”(Project)的方式管理源代码及相关文件,这种管理方式为由多个源代码文件组成的大型程序开发提供了方便。
不管是最简单的C51程序,还是复杂的多文件程序都需要以下步骤:1)先建立新的工程文件;2)在工程中新建源代码文件,或是将已经存在的源代码文件加入工程;3)编译;4)调试,修正错误再编译;5)将生成的二进制文件*.hex烧入单片机。
本教程重点介绍上述前4个步骤。
二、Keil中新建工程的步骤1. 单击菜单“Project——New uVision Project……”出现新建工程对话框:在此对话框中选择存放工程各类文件的路径和文件夹,然后为工程的主文件取个名字,以后单击该主文件即可打开这个工程项目。
2. 选择单片机型号上个窗口关闭后,马上会呈现下面这个窗口,在这里我们要选择所使用的单片机型号。
具体到这里,我们选择Atmel文件夹下的AT89C51。
(也可以选择下面的AT89C52、AT89S51或AT89S52)注意:单击OK后会出现下面这个提示信息:这里一定要选“否”,即:不需要自动添加起始代码。
完成后,即可看到Keil主界面:此时可以看到屏幕左侧的“Project”窗口(工程文件管理器)中,Target1下面的Source Group1(源代码文件组1)为空,即现在新建的工程中还不包含任何源代码文件。
所以,接下来要做的就是新建源代码文件。
3. 新建源代码文件单击菜单“File——New……”之后,即可在编辑区看到新建了一个名为text1的文本文件。
单击工具栏上的“保存”(图标为磁盘)按钮,可以在保存文件对话框中选择这个文本文件的保存位置(一般和工程文件保存在同一级文件夹)和文件的主名及扩展名。
如果只有一个源代码文件,一般主名命名为工程名,若是C语言源代码,扩展名设置为.c即可。
Keil软件使用手册什么是Keil软件?Keil软件是一款用于开发和调试嵌入式系统的集成开发环境(IDE),由Keil Software公司开发。
它包含了一套完整的开发工具链,可用于开发各种嵌入式系统,如单片机、嵌入式微处理器和嵌入式操作系统等。
Keil软件支持多种硬件平台,包括ARM Cortex-M,Cortex-R和Cortex-A系列微处理器,以及8位和16位的常见单片机和嵌入式处理器。
它还提供了一个丰富的集成式开发环境,包括代码编辑器、编译器、调试器等多项功能,使得开发人员能够高效地开发嵌入式系统。
Keil软件提供了很多功能强大的工具和组件,可以使开发人员更加轻松地开发和调试嵌入式系统。
下面将介绍Keil软件的主要功能和使用方法。
Keil软件功能介绍Keil软件提供了以下几个主要功能:1. 代码编写和编辑Keil软件提供了一款强大的代码编辑器,支持多种编程语言,包括C语言、汇编语言、C++等。
代码编辑器可以自动完成代码,包括语法检查、自动格式化、自动缩进等多项功能。
2. 代码编译Keil软件提供了多款优秀的编译器,支持各种处理器架构和操作系统,包括ARM Cortex-M,Cortex-R和Cortex-A系列微处理器,8位和16位的常见单片机,以及各种嵌入式操作系统。
编译器还支持优化代码,使代码在处理器上运行得更快。
3. 调试器Keil软件提供了一种强大的调试器,可以帮助开发人员在开发和调试过程中追踪问题。
调试器支持单步执行、断点调试、变量监视、函数调用堆栈等功能,可以有效地帮助开发人员调试代码。
4. 数据手册和帮助文档Keil软件提供了大量的帮助文档和教程,帮助开发人员快速学习和使用Keil软件。
此外,Keil软件还包含了各种嵌入式系统的数据手册,帮助开发人员更加深入地了解嵌入式系统的工作原理。
Keil软件使用方法Keil软件的使用方法比较简单,下面简单介绍一下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”即可。
(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命令,退出运行。