Keil C51软件使用详解

发布者:幸福自在最新更新时间:2016-11-22 来源: eefocus关键字:Keil  C51软件  使用详解 手机看文章 扫描二维码
随时随地手机看文章

第一节 Keil C51编译器的控制指令 

C51编译器的控制指令分为三类:源文件控制类,目标文件控制类及列表控制类。 
1. 源文件控制类 

NOEXTEND:C51源文件不允许使用ANSI C扩展功能。 

DEFINE(DF):定义预处理(在C51命令行)。 
2. 目标文件(Object)控制类: 

COMPACT LARGE SMALL 选编译模式 

DEBUG(DB) 包含调试信息,以供仿真器或dSCope51使用。 

NOAMAKE(NOAM) 禁止AutoMake信息记录 

NOREGPARMS 禁止用寄存器传递参数 

OBJECTEXTEND(OE) Object文件包含附加变量类型信息 

OPTIMIZE(OT) 指定优化级别 

REGFILE(RF) 指定一个寄存器使用的文件以供整体优化用 

REGISTERBANK(RB) 指定一个供绝对寄存器访问的寄存器区名 

SRC 不生成目标文件只生成汇编源文件 

其它控件不常用。 
3. 列表文件(listing)控制类: 

CODE(CD):向列表文件加入汇编列表 

LISTINCLUDE(LC):显示indude文件 

SYMBOLS(SB):列表文件包括模块内所有符号的列表 

WARNINGLEVEL(WL):选择“警告”级别 

第二节 dScope51的使用 

1. dScope51 for Dos 

总的来说dScope51具有以下特性: 

l 高级语言显示模式 

l 集成硬件环境模拟 

l 单步或“GO”执行模式 

l 存储器、寄存器及变量访问 

l Watch表达式之值 

l 函数与信号功能 

下面,具体说明在进入dScope51 for 
Dos之后,如何实现上述功能,dScope51采用下拉菜单格式和窗口显示控制,共有language、serial、exe、register四个窗口,其中exe为命令行窗口,language为程序窗口,serial为串口窗,register为寄存器窗。 

(1) 高级语言显示模式 

单击主菜单中的“View”,第一栏中的三条命令“Highlevel”、“Mixed”、“Assembly”分别对所装入的程序按照“高级”、“混合级”及“汇编级”三种方式显示,以方便调试使用。 

(2) 集成硬件环境模拟显示 

主菜单中“Peripheral”各条能显示模拟硬件环境的状态,其中: 

i/o Port:显示各I/O口之值,对8031而言SFR中的P1、P2、P3、P0与引脚之值分别列出: 

Interrupt:显示5个中断源的入口模式是否允许,优先级等中断状态。 

Timer:显示各定时/计数器的模式,初始值状态等。 

int Message:中断信息允许,如为允许(“>>”出现),则当中断申请时,显示中断源信息。比如当中断发生时会显示: 

“interrupt Timer 0 occured”等 

A/D converter: 

显示A/D转换器状态无时,则提示“无”。 

Serial:串口信息显示,包括串口模式、波特产等 

Other:其它器件,如为8031则显示“ 无” 
(3) 单步或“Go”执行 

“F8”单步执行,“F5”全速执行到断点。或选主菜单中Trace单步执行CPU中的Go全速执行。 
(4) 存储器寄存器及变量访问 

外部存储器管理MAP菜单:设置(set)、取消(reset)、显示(Display)处理可用存储空间。 

修改Code代码:ASM命令 

存储器显示命令:D 类别为(X、D、I、B、C) 

修改存储器命令:E 有以下几种命令EB、EC、EI、EL、EF、EP 

复杂数据类型显示:Object命令;用以显示结构或数组的内容。欲使此命令有效,C51编译器必须有DB及OBJECTEXTEND两条。 

反汇编命令:U 
(5) “Watch”表达式之值 

在View菜单的“Watch”一栏中有四项:其中包括定义Watch Point(Define)、删除Watch Point(remove,kill 
all),及自动更新选项。 

也可用WS、WK等命令代替,下面具体看“表达式”类型: 

dScope51一次最多可设16个WtchPoint表达式,显示于Watch 
Window之中,表达式可以是简单变量,也可是复杂数据类型如结构、数组和指向结构的指针等,例如: 

>WS *ptime 

>WS ptime→hour 

>WS some_record[o],analog等等 
(6) 关于.IOF文件 

启动DS51后必须装入.IOF文件才能使CPU及Peripheral各项起作用,这个函数的使用是依据8051系列CPU的不同特点,装入8051各CPU硬件设备模拟驱动文件,比如8031CPU就必须load 
DS51目录下的8051.IOF。 
2. dScope for Windows 

dScope for windows具有dScope for dos的全部功能,此外,它还具有以下明显的优点: 

(1) 标准的Windows界面,操作更容易更简单; 

(2) 常用操作多用对话框,而非Dos的行命令方式; 

(3) 窗口资源更加丰富:存储器窗口、覆盖率分析、运行状态分析窗口,加强了调试功能; 

因为dScope for Windows功能强大,具体操作在第八章详细介绍。
 
第三节 Monitor51及其使用 

1. Monitor51对硬件的要求 
(1) 硬件系统为51系列CPU; 
(2) 带5K外部程序存储器(从O地址开始),存放Monitor51程序; 
(3) 
256Bytes的外部数据存储器以及5K的跟踪缓冲区,此外,外部数据存储器必须足够容纳所有应用程序代码及数据,且所有外部数据存储器必须为冯·诺伊曼存储器,即能一致访问XDATA与Code空间。 

(4) 一个定时器作为波特率发生器供串口使用; 
(5) 6 Bytes的空余堆栈。 
2. Mon51的使用 

Mon51的使用途径有三种方式: 

(1) Dos行命令方式 
即先用install对MON51进行配置,然后用MON51进入Monitor状态,启用各种命令对Monitor51进行调试。 
(2) tScope51方式 
启动tScope51装入TS51目录下的MON51.IOT驱动文件,与目标板通信。 
(3) dScope51 for Windows方式 
在选CPU驱动文件时,选“MON51.dll”,则检查目标板并进入MON51状态。 
3. MON51的配置 

(1) MON51 for Dos的配置 

运行install文件(在MON51目录下),不同的参数可以配置不同的硬件环境。INSTALL Serialtype 
[xdstastart[codestart[bank][PROMCHECK]]],具体说明见MON51帮助文件或使用手册。 

(2) MON51 for Windows的配置 

在启用MON51.dll时,会使得系统自动检查目标板连接,如配置不对,则弹出“Configuration”对话框,设置PC串口,波特率等,完毕单击“apply”有效。 

4. 串口连接图: 

收发交叉互连,RTS、CTS直连,DSR、DTR直连,具体引脚排列参考串口资料。 
5. MON51命令及使用 

详细的MON51命令可参阅帮助。
 
第四节 集成开发环境(IDE)的使用 

1. Ishell for Dos的使用 

进入Ishell之后看到两个窗口:一个是文件窗口,一个是Dos命令行窗口,窗口上方是下拉式的命令菜单,其中的Files控制文件窗口的显隐。 

使用Ishell,第一步就是配置系统,即要学习两个文件的修改与创建: 
(1) Ishell.CFG文件 

每一个project都有一个 Ishell.CFG,其中存放有“Option菜单和Setup菜单下的部分信息;Bell enabled、Monochrome 
enabled、Editor Selected、CRT Lines、target enviroment、name of user edit、Automatic 
load for configuration enabled、file window enabled、file specification for file 
window、translate command line controls、project name等。 

对每个project都必须设置以上信息,然后存盘“setup”的的“save”,这样才可正式开始下面工作。 
(2) IShell.col文件 

对IDE颜色设置,如不改动,可以缺省为主。 
(3) CDF文件 

该文件位于BIN目录下,每一文件定义一组外部函数工具包,即定义外部环境如8051.CDF,USER.CDF等,开发者可修改CDF文件,供自己使用,至于CDF文件内容可查看一下 
8051.CDF即可知道。注意.CDF文件是Ishell系统的核心所在,不同的CDF文件可使本IDE适用于不同的编译、连接系统,即本IDE并不仅适于C51。 

下面谈一谈Automake工具: 

C51的Automake是一个 
project管理器,在8051工具包中以OBJECT文件形式保留了一个project的信息,AutoMake用这些信息来进行project管理,一旦手工建立一个project,Automake可生成一个新的OBJECT,AutoMake利用此文件来编译那些修改过的文件。 


Automake支持C51、A51、L51/BL51、C166、A166、L166等编译连接器。点中主菜单中的Automake即运行本工具。 

Ishell for Dos使用比较繁琐,推荐使用uVision for windows。 
2. uVision for windows的使用 

uVision是一个标准的windows应用程序,其编译功能、文件处理功能、project处理功能、窗口功能以及工具引用功能(如A51、C51、PL/M41、BL51 
dScope等)等都较Ishell for Dos要强得多。 

uVision采用BL51作连接器,因为BL51兼容L51,所以一切能在Dos下工作的project都可以到uVision中进行连接调试。 

uVision采用dScope for windows作调试器,该调试器支持MON51及系统模拟两种方式,功能较for DOS要强大好用,调试功能强大。 

注意: 

(1) 
Option菜单下的各项要会使用,其中A51、C51、PL/M51、BL51定义各文件所使用的编译、连接控制指令,dScope定义一个dScope初始化文件。Make则是定义一个make文件。 


(2) 进入调试是在RUN菜单下运行dScope。 

(3) project中包括新建、打开、修改、更新、编译、连接等poject处理,具体使用可参考后面的例子。


关键字:Keil  C51软件  使用详解 引用地址:Keil C51软件使用详解

上一篇:keil c51编译器的一些使用心得
下一篇:Keil C51库函数参考

推荐阅读最新更新时间:2024-03-16 15:21

keil通过UART串口打印汉字到串口工具乱码的问题
近通过STMCubexMX生成的代码程序,将打印的字符串通过uart串口打印出来,发现中文字符乱码,参考了keil5串口USART输出中文乱码的解决方法_zhouml_msn的博客-CSDN博客_串口输出中文 但是我解决的方法正好和他的相反;程序中要打印的汉字在,MobaXterm中显示如下: 通过记事本打开main.c文件发现它是以ANSI格式保存的, 通过:文件- 另存为- 编码格式改成UTF-8,覆盖原来的文件 再重新编译,下载就正常显示中文字符
[单片机]
<font color='red'>keil</font>通过UART串口打印汉字到串口工具乱码的问题
keil烧写现成的hex文件
1、将hex文件转成elf文件,方法要自行先搜索一下。 2、新建一个工程,选这好CPU,不要添加启动代码。 3、把生成的hex文件或elf文件复制到新工程的目录下。 4、在工程的options- Output选项里,把Name of Executable:设成您的hex文件名。 5、设置好options- Utilities的选项。 6、直接点Load就行了。
[单片机]
关于keil调试不能下断点的问题解决
原因其实很简单,keil默认设置的优化等级太高了!需要更改下即可 改成0后,任何地方就都能下断点了 对了,改完之后不要忘记编译,完了之后才生效
[单片机]
关于<font color='red'>keil</font>调试不能下断点的问题解决
如何使用Keil3开发51单片机程序
1.双击图标打开Keil软件 2.单击菜单栏 - 3.将新工程保存到一个文件夹 4.选择一款 CPU 芯片,这里STC89C52RC对应着Philips的P89V51RD2 5.提示是否复制8051的启动代码到文件夹,这里选择“否” 6.完成后,在Project Workspace中可以看到Source Group1 7.新建一个代码文件 8.以“*.c”作为后缀名保存 9.将刚刚保存的文件 led .c添加到工程中来 10.选中源代码文件,添加 11.可以看到led.c已经在Source Group1中 12.添加代码如下 13.单击 工具 栏上的“Op
[单片机]
如何<font color='red'>使用</font><font color='red'>Keil</font>3开发51单片机程序
stm32 keil中出现use of undeclared identifier' '的原因
出现这种情况,一般有以下几种原因: 1.变量未定义 2.未包含头文件 3.编译路径未包含该文件地址
[单片机]
stm32 <font color='red'>keil</font>中出现use of undeclared identifier' '的原因
基于STM32标准库建立Keil-MDK工程模板(STM32F407ZG)
一、前言 最近由于项目需要使用标准库,标准库是很刚入门stm32那会学习的东西,忘得一干二净,所以编写一篇文章来记录一下建立工程模板的步骤,以便尽快熟悉标准库的架构和API。 我使用的开发板是正点原子探索者开发板,MCU为STM32F407ZGT6。 二、STM32标准外设库 STM32标准库( 官方网站 )是ST在早期为STM32F0到F4系列主流芯片提供的库,使开发者不需要直接操作寄存器,而是调用库提供的API即可完成对某个片内外设的操作,所以也称为标准外设库,或者固件库。 本文中我使用的是 STM32F4xx_DSP_StdPeriph_Lib_V1.8.0,可以从官网下载( 下载地址 ): 解压之后,标准外
[单片机]
基于STM32标准库建立<font color='red'>Keil</font>-MDK工程模板(STM32F407ZG)
keil5 之error 56: cannot open file
一、问题即解决 错误:无法加载文件'E:projecttestObjTemplate.axf'。调试器中止! Load E:\project\test\Obj\Template.axf _____^ *** error 56: cannot open file Error: Flash Download failed - Could not load file 'E:projecttestObjTemplate.axf' Flash Load finished at 10:54:01 Error: Could not load file 'E:projecttestObjTemplat
[单片机]
<font color='red'>keil</font>5 之error 56: cannot open file
KEIL RTX51 TINY内核的分析与应用
摘要:简要介绍RTX51 TINY的基本情况和使用方法;详细分析这个内核的任务管理和内存管理的运行机制,并给出其主要代码流程图。 关键词:单片机 实时操作系统的RTX51 1 RTX51简介 1.1 RTX51 TINY特性 RTX51是KEIL公司开发的用于8051系列单片机的多任务实时操作系统。它有两个版本,RTX51 FULL和RTX51 TINY。 RTX51 TINY是RTX51 FULL的子集,仅支持按时间片循环任务调度,支持任务间信号传递,最大16个任务,可以并行地利用中断。具有以下等待操作:超时、另一个任务或中断的信号。但它不能进行信息处理,不支持存储区的分配和释放,不支持占先式调度。RTX51 TIN
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved