程序发展工具Keil C51.docx

上传人:b****3 文档编号:4010506 上传时间:2022-11-27 格式:DOCX 页数:23 大小:883.57KB
下载 相关 举报
程序发展工具Keil C51.docx_第1页
第1页 / 共23页
程序发展工具Keil C51.docx_第2页
第2页 / 共23页
程序发展工具Keil C51.docx_第3页
第3页 / 共23页
程序发展工具Keil C51.docx_第4页
第4页 / 共23页
程序发展工具Keil C51.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

程序发展工具Keil C51.docx

《程序发展工具Keil C51.docx》由会员分享,可在线阅读,更多相关《程序发展工具Keil C51.docx(23页珍藏版)》请在冰豆网上搜索。

程序发展工具Keil C51.docx

程序发展工具KeilC51

2.4程序发展工具-KeilC51

KeilC51是Keil公司针对80C51系列单芯片,在Windows平台上开发出的一套工具软件.,透过KeiluVision2的IDE(整合发展环境),提供80C51汇编语言与C51语言的编辑、组译/连结、除错/模拟测试,并具备完善的项目管理系统(Project),以及系统文件说明等功能。

图2-x1显示KeilμVision2的功能结构,说明如下:

⏹μVision2IDE提供项目管理的整合作业环境,拥有编译、组译、连结等,建构项目的功能。

⏹提供各种厂牌型号80C51核心兼容单芯片系统的开发使用。

⏹C51提供ANSIC程序语言编译器(ANSICCompiler);A51:

提供8051汇编程序组译器(MacroAssembler)。

⏹在程序的连结时,提供ANSI标准链接库、LIB51链接库管理员,与RTX51实时操作系统。

⏹μVisionDebugger:

有强大的除错工具和平行仿真系统。

可执行单步执行,芯片内部缓存器、内存、输出入界面的实时监看功能。

图2-x1:

KeilC51功能方块图

KeilC51试用版下载与安装

对于80C51单芯片初学者,Keil软件公司在该公司网站提供KeilC51试用版(EvaluationVersion),免费让使用者下载(试用版限制2KBytes的程序代码)。

C51试用版软件的下载与安装步骤如下:

步骤1:

上网连结上Keil公司网站(

图2-x2:

KeilC51程序下载画面

步骤2:

填完数据点选Summit,,即可下载ek51v750a.exe软件安装程序文件,档案大小约15.8MB。

步骤3:

执行ek51v750a.exe文件,启动安装程序,会出现下列确认安装的对话框,请点选[是(Y)]按钮,出现如图2-x3的说明窗口。

依照安装程序的指示,一步步的完成软件安装工作。

图2-x3:

μVision2安装说明画面

步骤4:

安装完成后,会在Window系统的[开始]菜单或桌面上会出现下图示的KeiluVision2快捷方式。

点选此一快捷方式,即可启动C51。

启动KeilμVision2

由于KeilμVision2是以项目(Project)方式做管理,因此启动KeilμVision2后,必须先加载一个项目,才能对项目内的档案(程序文件与说明文件)进行处理。

若启动后无Project加载,则μVision2有许多画面与功能将无法展示。

以下我们介绍两种开启项目的方法:

开启旧项目(OpenProject)、建立新项目(NewProject),藉由两个范例的操作过程,说明KeilμVision2IDE的窗口画面与功能,并了解建立新项目的作业流程。

●:

开启一个现有项目,并对做说明。

●:

介绍如何,包括档案的加入、程序编辑/组译/连结,与除错等操作方法。

【范例2-1】开启旧项目观察KeilμVision2窗口画面与功能

开启一个KeilμVision提供的范例项目ASAMPLE.uv2,藉此观察KeilμVisionIDE整合环境画面与功能,操作步骤如下:

步骤1:

开启[Project]菜单点选,点选[OpenProject]指令按钮,显示如图2-x4所示的[SelectProjectFile]对话框。

选取C:

\Keil\C51\EXAMPLES\ASM\ASAMPLE的范例项目,开启此项目。

图2-X4:

[OptionsforTarget‘Target’]对话框

步骤2:

开启ASAMPLE.uv2项目后,窗口画面显示如图2-x5。

在μVision2整合作业环境中重要的部份,如负责项目管理的项目窗口(ProjectWindows)、可编辑8051汇编语言与C语言程序文件的程序编辑窗口、显示执行结果的输出窗口(OutputWindows),与常会用到的工具列(Toolbar)。

图2-x5:

KeilμVision2IDE窗口画面

步骤3:

由于KeilμVision2IDE窗口画面上的某些子窗口会因为关闭或重迭在底层而隐藏不见。

当找不到某些子窗口时,可利用[View]菜单内的指令找回。

点选[View]菜单,显示如图2-x6。

点选菜单的指令,如[ProjectWinodws]、[OutputWindows];以及工具列,如[StatusBar]、[BuildToolbar]、[BuildToolbar],观察对应子窗口,显示与隐藏状态。

针对这些子窗口的功能,我们

图2-x6:

利用[View]菜单显示/隐藏子窗口

项目窗口:

项目窗口又可分为三种页面:

{File}、{Regs}、{Books}。

点选窗口下方的标示做页面的切换。

在进入除错功能(debug)时,{Regs}会显示8051的缓存器状态、{Books}显示μVision2的在线操作说明书。

{File}负责管理项目的所有档案,{File}又可分为三个层级―Target->Group->File,说明如下:

⏹Target:

在此层级中,可以选择使用的芯片、频率频率与内存等装置的配置方式。

在同一个项目中,可以拥有一个以上的”Target”。

两个Target之间基本上可以共享相同的原始程序档案,但是可以各自有着不同的输出入设定或不同的装置,透过建立不同的Target,我们可以得到不同的输出程序版本。

有关Target的选项设定,可在Target图标上按鼠标右键,在快速选单上点选[OptionsforTarget‘Target’],显示如图2-x7:

[OptionsforTarget‘Target1’]对话框。

Vision2为了方便我们能容易地撰写兼容各式CPU的程序,特别在图3-7[OptionsforTarget‘Target1’]对话框中的装置数据库(DeviceDatabase),准备了各式CPU的数据。

只要我们决定了CPU的型号,μVision2就会自动将一切环境的参数(如CPU频率、内存配置…等等)设定好,无须使用者再操心了。

图2-x7:

开启[OptionsforTarget‘Target’]对话框

⏹Group:

在Target下建立多个Group,将有相同性质的原始程序代码或文件归类在同一个Group,方便自己或其它人方便查阅管理,例如建立一个I/OGroup,将所有有关输出入的程序文件放于其中

⏹File:

在Group之下,可以加入不同的档案。

例如C51原始程序文件(*.c)、A51汇编程序(*.a;*.src),已编译的对象程序文件(*.obj),链接库档案(*.lib)以及纯文本文件(*.txt)。

程序编辑器:

[程序编辑窗口]是一套类似[记事本-NotePad]的文字编辑工具,提供使用者编写C51/A51的原始程序代码或说明文件。

它的操作方式与一般文字编辑器大同小异。

此外,编辑器提供有[标记工具列]、[断点设定工具列]、[搜寻工具列],辅助使用者做程序编辑与除错,相关图标与功能如表2-X。

表2-x:

编辑用工具列

工具图示

功能说明

工具图标依序为[ToggleBookmark](切换标记),[NextBookmark]

(下一个标记),[PreviousBookmark](前一个标记),[ClearAllBookmarks](清除所有标记)。

在光标停在的地方,插入或取消插入标记,寻找先前标记的位置,或是删除所有标记。

被设定成标记该行,左侧有一蓝点出现。

在撰写程序时,若能适当地插入一些标记,能迅速地让我们的光标游走整个程序,修改某一行程序时,立即找到,而不用拉动滚动条寻找。

工具图示依序为[Insert/RemoveBreakpoints](插入/移除断点)、[KillAllBreakpoints](断点)、[Enable/DisableBreakpoints](致/禁能标记)、[DisableAllBreakpoints](禁能所有标记)

在游标停在的地方,插入断点。

设定断点是程序除错的技巧之一,它能让程序在特定阶段中暂停,提供我们检视其状态。

当断点被致能时,可以看到其旁边有一红点,当被禁能时,将会是空心的点(断点插入时预设是致能的)。

亦可在欲插入断点的地方按下鼠标右键选择Insert/RemoveBreakpoint插入/移除断点,或选Enable/DisableBreakpoint来控制断点的致/禁能。

工具图示依序为[Findinfiles](找寻档案)、[Search](搜寻)[Find](找寻)

拥有搜寻文件内文句的功能,其中Findinfile功能,亦可跨档案搜寻相关字词,结果显现在下方的OutputWindow

建立新项目流程

建立一个新项目,并完成项目程序的编译/连结与除错等工作,作业流程如图2-x8。

项目程序发展过程中,提醒读者每个步骤所需的注意事项如下:

⏹建立空项目:

新建立的项目必须设定Target的装置(Device),即选用芯片的公司与型号、设定频率频率,配置内存。

⏹在项目加入档案:

项目内的档案来源有两种方式。

第一种方式是将已经存在的程序文件直接加入项目;第二种方式是选择[File]菜单的[New]指令,建立一个新档案,再将此档案加入项目。

存盘要注意的是,若准备采用C51语言,档案的附属名称使用”*.c”,若使用A51语言,档案的附属名称使用”*.a”。

⏹编辑/修改程序:

已加入项目的程序文件,直接在{项目窗口}中双击该程序文件的文件名,即可开启该档案的{程序编辑窗口}。

若未加入项目的程序文件,使用[File]菜单的[Open]指令,加载{程序编辑窗口},进行编辑与修改。

⏹组译/编译与连结程序:

μVision2同时提供了C51这个兼容于ANSIC标准的编译器(C51Compiler),以及A51这个组译器(A51Assembler),让我们可以用这两种程序语言,开发单芯片程序。

当原始程序都被编译/组译完成后,再透过连结以建置最后可执行的程序,在μVision2附有BL51这个连结器来协助达成这项工作。

在连结的过程中,标准C语言的函式库(ANSICStandardLibrary)也会被汇入。

⏹除错与在线仿真:

完成组译/编译与连结的机械码程序,可透过μVision2提供的除错工具,修改或最佳化程序,还可以藉由平行仿真系统在PC上直接仿真硬件上的各种操作。

图2-x8:

KeilC51项目建立流程图

【范例2-2】建置新项目的操作实例

建置一个新的专案”ch2_1.uv2”,加入ch2_1.asm汇编程序档。

执行程序的组译与连结。

并利用除错工具仿真执行此程序。

操作步骤如下:

步骤1:

开启[Project]菜单,点选[NewProject]指令,在建立档案的对话框中输入”ch2_1”档名,进入[SelectDeviceforTarget1“Target”]窗口,在[CPU]页面找到”Philips”,点选”P89C51RD2xx”,如图2-x9所示,按[确定]指令按钮。

图2-x9:

[SelectDeviceforTarget1“Target”]窗口

步骤2:

开启[File]菜单,点选[New]指令,建立一个空白的新文件(预设档名为Text1)。

开启[File]菜单,点选[Save]指令,将刚Text1新档案以”ch2_1.asm”档名储存。

步骤3:

在新建立空白ch2_1.asm档案的[程序编辑窗口]输入下列程序代码:

MOVA,#12H;将12H资料存入累加器

MOVR0,#34H;将34H资料存入R0

MOV30H,#56H;将56H资料存入RAM的30H

MOVP0,#0FH;将0FH数据输出到P0端口

END

步骤4:

在[项目窗口]的[SourceGroup1]按右键,点选[AddFiletoGroup“SourceGroup1”],将编辑的ch2_1.asm程序文件加入这个项目中。

(若档案类型预设*.c,变更为ASMSourcefile,即可看到ch2_1.asm)

步骤6:

程序代码编辑完成后,在Debug工具列上按下

(BuildTarget)按钮,就可以建置项目(或可用Project->BuildTarget或直接按下F7来达成同样的目的)如果正确无误,在OutputWindow看到建立成功的讯息,如图2-x10。

【范例2-3】程序除错与观察单芯片内部运作

利用范例2-3建置完成的项目ch2_1,透过KeilμVision2除错功能,观察单芯片内部运作情形。

藉此熟悉除错环境与工具的使用。

操作步骤如下:

步骤1:

在完成ch2_1项目的建置后,开启[Debug]菜单,点选[Start/StopDebugSession]指令,或按下Ctrl+F5,启动除错模式。

步骤2:

点选单步执行工具

或按F11,观察项目窗口的缓存器页面显示r0与a的变化,如图2-11。

步骤3:

点选[View-MemoryWindow]菜单,开启[MemoryWindow]窗口,在Address:

文字方块输入”C:

0”,显示加载程序内存(ROM)的机械码。

如图2-x2,显示程序机械码,共计7Bytes(0x0000~0x0006)。

在工具列按下

指令按钮,切换到{DisassemblyWindow}反组译窗口,读者可以自行对照机械码与汇编语言之间的关系。

图3-22:

加载程序内存的机械码

步骤3:

在[MemoryWindow]窗口的Address:

文字方块输入”D:

0”,显示加载数据存储器(RAM)。

如图2-x2,56H存入0x30地址上。

步骤4:

开启[Peripherals]菜单,点选[I/OPorts-Port0]指令,显示如图2-x。

显示P0端口的输出状态。

图2-x:

Port0的输出结果

步骤5:

结束观察与除错作业,开启[Debug]菜单,点选[Start/StopDebugSession]指令,离开除错环境。

最后,当我们要汇出我们的程序,建立能在微处理机上直接运作的机械码程序(.hex),其做法是Project->OptionforTarget“Target1”或直接在专按管理窗口的Target1上按下右键选OptionforTarget“Target1”,开启ToolOption对话框,请切到”Output”页面,在CreateHEXfile…这个复选框上打勾,如图2-x。

按下确定。

重新建置我们的项目,就可以在项目的目录下,新产生了*.hex。

图2-x:

设定产生HEX输出檔

 

2.580C51指令与程序

虽然C51语言具有多项优点,但对于8051单芯片初学者而言,仍然必须对8051汇编语言的指令与程序有基本的认识,

基于以上原因,8051系统单芯片有必要引用一套高级语言,做为程序开发工具。

透过编译(Compiler)的方式,协助我们处理程序中许多琐碎且重复的细节,并能配合相关硬件的调整,而在必要的时候,设计者仍然可以直接针对内存及缓存器下达命令,修改其内容或决定其配置的方式,C51就是针对这些特性发展出的一套程序语言。

KeilμVision提供C51程序语言的组译与连结功能,

但对于单芯片初学者而言,笔者仍然建议应对8051汇编语言的指令与程序,

80C51共有111个指令,若以指令码的长度分类,单字节指令(1Byte)有49个,双字节指令(2Bytes)有45个,三字节指令(3Bytes)有17个;若以功能来区分的话,指令分类有下列四种:

⏹数据搬移指令28个,即缓存器与内存之间的数据转移,与寻址方式相关指令。

⏹算术/逻辑运算指令49个,包含算术运算、逻辑运算。

⏹程序流程控制指令17个,包含条件/无条件跳跃指令,循环、子程序呼叫。

位运算指令17个,包含旗标、可位寻址数据的设定

(1)或清除(0)。

由于这些指令又可区分为位寻址、位运算、比特流程控制,因此本章稍后的介绍将并入前三项中讨论。

数据搬移指令-寻址方式

在8051指令集,数据搬移指令占有极为重要的地位,因为微处理机的程序执行过程中,必须经常在缓存器与内存之间做数据的搬移。

这些数据搬移的方式,涉及到微处理机所提供的搬移数据的指令与作业模式,称为寻址法(AddressMode)。

8051的寻址法可分为下列六种:

⏹立即寻址法(ImmediateAddressing)。

⏹缓存器寻址法(RegisterAddressing)。

⏹直接寻址法(DirectAddressing)。

⏹间接寻址法(IndirectAddressing)。

⏹索引寻址法(IndexedAddressing)。

⏹位寻址法(BitAddressing)。

除了上述六种寻址方式之外,还有两种特殊的数据存取方式:

堆栈内存存取,数据交换指令,在本节中都会做详细的介绍。

此外,位寻址法将留在4-4节再做介绍。

在数据的搬移指令主要提供缓存器与缓存器,以及缓存器与内存之间的数据搬移。

搬移指令中出现的数据格式,缓存器(如累加器、工作缓存器...),与内存地址(绝对地址与相对地址),使用的符号都有明确的定义,如表4-1所示。

符号

说明

A

累积器

C

进位旗标。

Rn

目前所选用的缓存器库中的缓存器R0~R7

@Ri

以缓存器R0或R1的内容当地址

direct

可直接寻址的字节地址

DPTR

数据指针缓存器

#data

8位常数,有10进位,16进位,2进位数

bit

可位寻址的位地址

#data16

16位常数

rel

相对地址

Addr11

11位目的地址。

使用在跳越或呼叫指令中

Addr16

11位目的地址。

使用在跳越或呼叫指令中

表4-1:

缓存器与内存地址的符号定义

 

算术逻辑运算指令

8051的算术逻辑运算指令,可区分为下列三种类型,分别说明如下:

⏹算术运算指令:

加、减、乘、除、递增、递减运算。

⏹:

逻辑运算指令:

且、或、互斥或、反相等运算。

⏹位旋转与交换指令:

含进位与不含进位的位左旋、右旋,与高低位数据交换。

汇编语言

c51

数据处理

数字宣告

 

算术累辑运算

流程控制

2.4程序发展工具-KeilC51FlashMagic使用手册

壹、FlashMagic操作说明

1.下载FlashMagic软件:

ftp:

//

2.安装FlashMagic软件,在桌面上找到后,执行FlashMagic。

3.执行FlashMagic后,出现如图1的开机画面。

当图2出现时,表示设定不

正确,此时按下“取消”按钮。

4.请依照图3,重新设定。

基本上,所有的执行步骤共分成1、2、3、4、5,

也就是图1中紫色的阿拉伯数字,这是执行烧录的五大步骤,只要依序设定

和执行,即可将hex档案烧录到芯片内。

步骤1:

 

图1开机画面

2

图2未能连接出现的画面

图3设定P89C51RC2的画面

5.选择要连接的COMPort(若COMPort不在选择栏内,可直接输入连接Port

位置,输入COMn这个数值或n即可,例如COM8或8,如图5所示。

USB

的设定相关信息,请看USB提供的数据。

6.选择传输速率,由低速开始测试,最高传输速率是根据硬件所接振荡频率多

寡来决定,如此可找出硬件最大传输速率,再依此速率作为传输速率的选

择。

基本上,第一次就选择9600是适当的,如果不行再往下调整。

7.选择芯片号码(Chip),不同的芯片有不同的特性设定及传输设定,因此选择

正确芯片号码是重要的。

8.输入目标电路板的振荡器频率,也就是P89C51RC2所接的振荡器频率。

这里

是以11.0592Hz为例,必须填入实际的数值,不可以省略小数点部分,因为

FlashMagic会根据此值计算传输速率。

5

9.如图9所示,选择Options和AdvanceOptions…后,检查图10,不设定(不勾

选)HighSpeedCommunications和Half-duplexCommunications,如此设定可以

不要管现在芯片是处于6or12clocks。

10.勾选“EraseallFlash+Security+Clks”表示清除所有内存、保密位、clocks

位。

勾选“EraseblocksusedbyHexFile”表示只清除目前烧录档案所存在

的内存,一般只要作此动作即可。

11.输入烧录档,如果烧录之前,档名未变,也不需要再次做这个动作,即使同

一个HEX档已经更新,也不需要再输入一次。

输入烧录档有两种方法,第一

个是从开机画面步骤3的Browse按钮,第二个是从File→Open。

7

12.ReadClocks:

读取芯片机械周期,确认现在是处于6or12clocks。

图14读取芯片机械周期

图15读取芯片机械周期为12clock

图16读取芯片机械周期为6clock

8

13.芯片机械周期更改:

P89C51RC2出厂机械周期预设为12周期,如果勾选6

clks/cycle,随便烧录一个档案后,就变成6周期。

图17勾选芯片机械周期为6clocks/cycle

9

14.如果要在改回12clks/cycle,则请勾选“EraseallFlash+Security+Clks”,不

勾选6clks/cycle,随便烧录一个档案后,就变成12周期。

要清除保密位,

也可以用此方法。

图18勾选芯片机械周期为12clocks/cycle

10

15.要改回12clks/cycle、nosecurity、Blank等,还有一个方法,请进入“Erase

Flash”,勾选“EraseallFlash+Security+Clks”,执行“Erase”后即完成。

图19进入“EraseFlash”

图20执行“EraseallFlash+Security+Clks”

11

贰、FlashMagic简单操作说明

1.连接RS-232或USBCable,打开电源后,按一下重置(Reset)按钮。

2.切换电路板上“烧录开关”至“ISP”位置。

3.执行FlashMagic,第一次执行可能无法联机,因为设定选项未适当选择。

4.选择通讯连接端口COM。

(如果接USB,请至装置管理员的连接端口查询)

5.选择鲍率9600。

6.选择芯片号码(Chip):

89C51RC2。

7.输入振荡器频率,例如:

11.0592MHz。

8.依照Options→AdvancedOptions→communica

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1