Keil C51集成开发环境是基于80C51内核的微处理器软件开发平台,用户可以在集成开发环境下学习编写、调试单片机程序。通过学习,实验用户可以掌握运用单片机进行项目开发的过程、步骤和方法,积累一定的调试方法、技巧。

1 集成开发环境简介

安装Keil C51 软件后,点击桌面Keil C51 快捷图标即可进入如图所示的集成开发环境,各种调试工具、命令菜单都集成在此开发环境中。以下列出的是常用菜单项的主要功能及对应的快捷键,工具栏上有常用菜单命令对应的工具按钮。


2 工程(项目)的创建与处理

2.1 创建一个Keil C51工程(项目)

在Keil C51集成开发环境下使用Project(工程,也叫项目)来管理程序包含的所有文件模块,包括源程序(C程序,汇编程序)文件、头文件甚至说明性的技术文档。对于刚刚使用Keil C51的用户来讲,一般可以按照下面的步骤来创建一个Keil C51工程(项目)。

1、双击桌面的Keil C51 快捷图标,进入Keil C51集成开发环境。

2、执行Project菜单中的New Project命令,新建一个工程。在工程保存对话框中为工程取一个名字,工程名应能反映其功能且名字不宜太长(最好不超过8个西文字符),每个工程最好单独建一个目录(文件夹)。

3、接下来会立即弹出一个器件选择窗口。器件选择的目的是告诉最终使用的51芯片是哪一家公司的哪一种型号。因为不同型号的51芯片其内部资源不完全相同,可以根据所选器件进行SFR的预定义,在软硬件仿真过程中可提供相应的外设浮动窗口等。

4、到现在已经建立了一个空的工程项目,并为工程选择好了目标器件,但是这个工程里没有任何程序文件。下面先用Keil C51集成开发环境自带的编辑器创建一个源程序文件。执行File菜单中的New命令,会出现名为Text1的新文件窗口(如果多次执行New命令则会出现Text2,Text3等多个新文件窗口)。在此窗口中输入自己的源程序并保存为*.asm。以下是*.asm源程序清单:

MAIN:    XRL P1,#0FFH    ; 使P1口翻转ACALL   DELAY   ; 延时一段时间SJMP    MAIN    DELAY:  MOV R2,#5
DELAY2: MOV R3,#100
DELAY3: MOV R4,#100 DJNZ    R4,$    DJNZ    R3,DELAY3   DJNZ    R2,DELAY2   RET     END

5、接下来再把*.asm源程序文件添加到*.µV工程中。在工程管理窗口内,展开Target1,用鼠标右键单击Source Group1,执行快捷菜单中的Add existing files to Group ‘Source Group1’命令,出现“添加源程序文件”窗口,找到并选择*.asm并单击Add按钮即可把已经编好的源程序文件*.asm添加到工程中。可以将多个文件加到工程中(*.µV只需要*.asm一个源程序文件就够了),添加完以后,按Close结束。

2.2 程序文件的编译(汇编)、连接

1、工程选项的设置

用鼠标右键单击Target1,执行快捷菜单中的Options for Target ‘Target 1’命令,出现如图2.2所示的工程选项设置窗口,该窗口包含多组选项。一般情况下只需设置部分组中的部分选项。点击Output标签,选中其中的“Create Hex File”,系统将在编译(汇编)、连接进制程序)。

还可根据需要对其它选项进行相应的设置。最后选“确定”退出。

2、程序的编译(汇编)、连接

接下来就可以对程序进行编译(汇编)、连接处理了。执行Project菜单中的Build Target或Rebuild All Target Files命令可对程序进行编译(汇编)、连接、生成HEX文件等一系列连续操作,可以在Build 输出窗口看到处理过程的相关信息。如果有错误发生,用户可根据系统提示修改程序中的语法错误或环境设置方面存在的问题,直到完全正确(0 Error(s),0 Warning(s))为止。

但是,是否完全符合设计要求、是否含有潜在的BUG(逻辑错误),还是不敢肯定的。一个符合要求的、好的工程项目(系统、文件或程序)是要经得起考验的。它往往还需要经软件模拟、硬件仿真、现场系统调试等反复修改、更新的过程。

3、Debug调试模式的设置

从图2.3可以看出,µVision的两种工作模式分别是:Use Simulator(软件模拟)和Use(硬件仿真)。在实验中选择使用软件模拟方式。

软件模拟工作方式选择其中Use Simlator选项,将µVision调试器设置成软件模拟仿真,它只能对程序的语法及其结构做一般性的分析,与硬件没有联系。在此模式下不需要实际的目标硬件就可以模拟80C51微控制器的很多功能,在准备硬件之前就可以测试您的应用程序,这是很有用的。在纯软件模拟工作方式下,用户程序仍定位于0000H,源程序的起始定位也不需变。当然,因为是软件模拟调试,程序中对外设的访问就无法观察运行效果,如灯亮、电机转等。但是Keil C51集成开发环境也提供了一个外设窗口来模拟外设动作,对于简单的应用程序基本上也够用了。

在调试过程中可交替采用连续、断点、单步(step into)、宏单步(step over)、到光标所在行等运行方式,还可以复位CPU,重新开始程序的调试。

断点:

巧妙的设置一些断点,能够更好帮助用户分析程序的运行机制、程序中变量的变化状况,提高工作效率。 µVision可以用几种不同的方法定义断点,即使在程序代码编译前,您也可以在编辑源程序的时候设置Execution Breaks,设断点前要从View菜单中选中File Toolbar选项,让主窗口的顶部出现File Toolbar工具栏。

断点可以用以下的方法定义和修改:

1)用File Toolbar按纽。在Editor或Disassembly窗口中的代码行点击断点按钮即可在该设置断点。

2)用快捷菜单的断点命令。在Editor或Disassembly窗口中的代码行点击鼠标右键在打开的快捷菜单中选择Insert/Remove Breakpoint命令也同样可以在该行设置断点。

3)在Output Window-Command输入框,可以使用Breakset、Breakkill、BreakEnable、Breaklist、Breakpoint命令来设置断点。 如果已经在某行设置了断点,再次在此行设置断点将取消该断点,断点设置成功后,会在该行的行首出现红颜色的断点标志。

复位CPU:

用Debug菜单或工具栏的Reset CPU命令。在不改变程序的情况下,若想使程序重新开始运行,这时执行此命令即可,执行此命令后程序指针返回到0000H地址单元,另外,一些内部特殊功能寄存器在复位期间也将重新赋值,例如A将变为00H,DPTR为0000H,SP为07H,I/O口变为0FFH。

单步跟踪(F11):

用Debug工具栏的Step或快捷命令StepInto命令按钮可以单步跟踪程序,每执行一次此命令,程序将运行一条指令(以指令为基本执行单元),当前的指令用黄色箭头标出,每执行一步箭头都会移动,已执行过的语句呈现绿色。单步跟踪在C语言环境调试下最小的运行单位是一条C语句,如果一条C语句只对应一条汇编指令,则单步跟踪 一次可以运行C语句对应一条汇编指令;如果一条C语句对应多条汇编指令,则一次单步跟踪要运行完对应的所有汇编指令。在汇编语言调试下,可以跟踪到每一个汇编指令的执行。

单步运行(F10):

用Debug工具栏的Step Over或快捷命令Step Over按钮即可实现单步运行程序,此时单步运行命令将把函数和函数调用当作一个实体来看待,因此单步运行是以语句(这一条语句不管是单一命令行还是函数调用)为基本执行单元。

执行返回(Ctrl+F11):

在用单步跟踪命令跟踪到了子函数或子程序内部时,可以使用Debug菜单栏中的Step Out of Current Function或快捷命令按钮Step Out 即可实现程序的PC指针返回到调用此子程序或函数的下一条语句。

执行到光标所在命令行(Ctrl+F10):

用工具栏或快捷菜单命令Run to Cursor Line 即可执行此命令,使程序执行到光标所在行,但不包括此行,其实质是把当前光标所在的行当作临时断点。

全速运行(F5):

用Debug工具栏的Go快捷命令Run命令按钮即可实现全速运行程序,当然若程序中已经设置断点,程序将执行到断点处,并等待调试指令。


3 脱机运行

经过在Keil C51集成开发环境下的软件模拟、或是实验仪联机进行的硬件仿真,用户程序中的错误和不足已基本上得到了纠正。但在实际的工作环境中它是否仍然符合用户的要求呢?还需要将调试好的程序下载到样机并“脱机运行”才可以确定(单片机实验系统脱离主机,独立运行)。在下载程序前首先需要确定Keil C51软件的编译环境:

1、点击菜单栏上的Project 项,在弹出的下拉式菜单中选择Option for target ‘target 1’命令,在Output选项中选中Create Hex File,即表示在编译连接后自动生成目标文件(*.HEX),点击确定命令按钮加以确认。

2、用Build或Rebuild命令重新编译连接程序,生成所需的HEX文件。

3、将HEX文件下载到实验箱中。

Keil C51软件的使用相关推荐

  1. Keil C51软件的使用教程

    keil uvision2 C51软件我们在前面有所介绍,是目前功能最强大的单片机c语言集成开发环境,如果您没有此软件可以从这里下载:http://www.51hei.com/keil%CF%C2%D ...

  2. 如何利用keil C51软件减少代码长度呢?

    在单片机程序的时候有时候会遇到所编写的代码超出程序存储器的存储空间,那么这时该怎么办呢?不妨打开keil软件,做如下设置,可能将源代码长度最大减少10K. 首先在keil的菜单栏选择"Pro ...

  3. 用keil语言定义c51,51单片机Keil C51的使用(C语言)

    实验目的: 初步掌握Keil(C51语言)和SUN ES59PA实验仪的操作和使用,能够输入和运行简单的程序.实验设备: SUN ES59PA实验仪一套.具有一个RS232串行口并安装Keil C51 ...

  4. STC单片机使用Keil C51 编译增添PackInstaller方法

    1.下载安装破解 Keil C51 软件: 2.增添PackInstaller: 3.增添STC 头文件: 4.增添Driver文件:

  5. Keil uVision5软件同时使用C51、ARM、Nuvoton单片机和STC单片机的安装和配置方法

    一.安装工具 1.Keil uVision5软件的C51安装包及破解软件 2.Keil uVision5软件的MDK(ARM)安装包及破解软件 3.新唐(Nuvoton)单片机关于Keil uVisi ...

  6. Keil uvision5 C51软件安装教程附下载地址

    [软件名称]:Keil uvision5 [软件语言]:简体中文 [软件大小]:75.62MB [安装环境]:Win10/Win8/Win7 [硬件要求]:CPU@2.6GHz 内存@4G(或更 ...

  7. 配置Keil C51配置开发 STC51单片机过程

    内容 1. Keil C51 下载 2. 配置开发STC51单片机 配置 Keil IDE与TEASOFT编辑 1. 配置Keil编辑器 2. 设置Keil自动开打文件 参考博文 1. Keil C5 ...

  8. 【Keil C51】使用 watch1 来查看变量的值

    在使用Keil C51,进行软件调试时,对变量观察的办法如下: 在变量处单击右键,选择添加至watch1窗口,即可看到R6变量在代码调试运行时,具体的数值变化.

  9. 关于keil c51与keil mdk同时安装、合并解决办法

    下面的方法可以解决keilMDK兼容C51工程的问题: 1 首先,准备好两个软件的安装文件,建议你用以下两个版本 Keil Realview MDK 4.12版本或更高版本,Keil C51 V9.0 ...

  10. Keil C51 V6.12

    Keil C51下载 本软件是我自己初次学习51单片机时下载的,对于想学习51的人来说是非常实用的,欢迎下载. 以下是百度云盘地址: https://pan.baidu.com/s/1Qjy63oTb ...

最新文章

  1. proxool配置多数据库多连接池
  2. php 加密类,php加密类
  3. mybatis处理集合、循环、数组和in等语句的使用
  4. C语言多个变量运算存储过程,postgresql函数中的赋值运算和postgresql函数存储过程实现数据批量插入...
  5. java线上问题定位_java定位线上问题
  6. 如何基于TensorFlow使用LSTM和CNN实现时序分类任务
  7. 计算机视觉基础:图像处理Task01-图像插值算法
  8. centos用ifconfig不显示ip地址的解决方法
  9. python如何读取csv文件列表页_Python:使用列表列表读取CSV文件的字段
  10. ATL CLR MFC Win32的区别
  11. 安装SQL Server 2012过程中出现“启用windows功能NetFx3时出错”
  12. 【windows】bat 更改系统时间同步internet时间
  13. Vue3关于页面跳转(push)的时候,并传递数据过去
  14. js的tree转数组
  15. Kanzi学习之路(7):kanzi的资源预加载
  16. 《对比Excel,轻松学习Python数据分析》读书笔记------数据运算
  17. 2014科技十大名词——如果之前你不知道,证明你是行外人,如果你只是听说,证明你只是是爱好者
  18. FixFlow多实例会签功能使用介绍
  19. 4、Python基本数据类型之字典,集合
  20. 简单粗暴的抓取糗百的段子——1

热门文章

  1. Qt pri 创建使用.pri文件
  2. NodeMCU(ESP8266) 接入阿里云物联网平台 踩坑之旅
  3. MetadataReader、ClassMetadata、AnnotationMetadata的简单使用
  4. python hello world程序编写_自动编写Python程序的神器,Python 之父都发声力挺
  5. Java接口和抽象类区别
  6. win10 使用cmake编译opencv源码生成VS工程(二)
  7. 远程连接mysql数据库 需要的操作
  8. 【公告】4月15日CSDN下载频道和视频维护公告
  9. 整理一下N年前写的java web考勤管理系统
  10. python车牌识别系统开源代码_TensorFlow车牌识别完整版代码(含车牌数据集)