KeilC51使用详解

KeilC51使用详解
KeilC51使用详解

KeilC51使用说明

首先启动Keil μVision2程序,首次进入 Keil μVision2的编辑界面如图1所示,否则,会打开用户前一次处理的工程。

图1 首次进入Keil μVision2的编辑界面

下面通过简单的编程、调试,引导大家学习Keil μVision2软件中Keil Monitor-51 Driver

仿真器的基本使用方法和基本调试技巧。

1 工程的建立

单击“项目->新建项目…”菜单,弹出创建新工程对话框,如图2所示。选择你要保存的路径,

输入工程文件的名字, 不需要输入扩展名。比如保存到JY_E2X00目录里,工程文件的名字为

Test1,如图(2)所示,然后点击“保存”,保存后的文件扩展名为.uv2,这是KeilμVision2项

目文件扩展名。以后我们可以直接点击此文件来打开已创建的工程。

图2 创建新工程对话框

这时会弹出一个对话框,要求选择目标CPU(即用户所用单片机的型号),Keil μVision 几乎支持所有的51内核的单片机,我们以AT89S52芯片为例,如图3所示, 在左侧的Data base列表框中点击Atmel前面的“+”号,展开该层,选中AT89S52,在其右边的Description显示区域。中是对这个单片机的基本描述,然后再点击“确定”按钮.

图3 为工程选择目标CPU

窗口会出现询问是否添加startup.a51,如图4:请选择“否”。

图4

此时,在工程窗口的文件页中,出现了“Target 1”,前面有“+”号,点击“+”号展开,可以看到下一层的“Source Group1”,这时的工程还是一个空的工程,里面什么文件也没有,需要为这个工程添加文件。如图5所示。

图5新建立的工程

2 源文件的添加

如果用户没有现成的程序,那么就要新建一个程序文件。在Keil中有一些程序代码,在这里我们以一个汇编程序为例,介绍如何新建一个asm程序和如何将它添加到工程中。单击“文件

->新建”菜单,如图6所示,新建一个源文件。

此时在项目窗口的右侧打开一个新的文本编辑窗口,如图7所示:

图7 新建文件后的屏幕

此时光标在编辑窗口里闪烁,可以键入用户的应用程序了。但我们建议首先保存该空白的文件,单击菜单上的“文件”,在下拉菜单中选中“另存为”,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,注意,必须键入正确的扩展名。如果用C语言编写程序,则扩展

名为(.c);如果用汇编语言编写程序,则扩展名为(.asm或.a51)。然后,单击“保存”按钮。

图8 保存源文件对话框

在创建源文件后,就可将这个文件添加到工程中。回到编辑界面,在“项目工作区”页中,单击

“Target 1”前面的“+”号,然后在“Source Group 1”上单击右键,弹出如图9所示的下拉菜单。

图9文件组快捷菜单

选择“Add File to Group ‘Source Group 1’”,出现如图10所示对话框。

图10 加入文件对话框

双击led.asm或选中led.asm后单击“Add ”按钮, 将文件加入到工程中,然后点击“Close”按钮即可返回主界面,这时在Source Group1文件夹图标左边出现了一个小“+”号,说明文件组中有了文件,点击它可以展开查看到文件“led.asm”已加入其中,双击文件名,即打开该源程序,如图11所示。

图11 加入了文件的工程

注意:Keil默认加入C源文件,因此,在图10中未显示该文件夹下的汇编 文件,如果要加入汇编语言源文件,需单击“文件类型”下拉列表框右侧的下三角按钮,弹出下拉列表,选择“Asm Source file(*.a*;*.src)”,这时才会将文件夹下的“*.asm”文件显示出来;

现在,请输入如下的asm语言源程序:

org 0000h

jmp start

org 0030h ;主程序从这个地址开始存放

start:

mov dptr,#table ;将表格的首地址送DPTR

loop: clr a

movc a,@a+dptr ;读取表格首地址的内容

cjne a,#01h,loop1 ;查看是否是01H.如果是01H,重新开始循环

jmp start

loop1:mov P0,a ;将要显示的代码送P0口

mov r4,#20 ;延时200ms(0.2S)

call delay ;调用延时

inc dptr ;DPTR加1,为读取下一个地址的内容作准备

jmp loop

;************** 延时子程序 ****************

delay:mov r1,#20 ;延时10ms子程序

d1: mov r2,#200

djnz r2,$

djnz r1,d1

djnz r4,delay

ret

table:db 0feh,0fdh,0fbh,0f7h ;左移

db 0efh,0dfh,0bfh,07fh

db 0feh,0fdh,0fbh,0f7h ;左移

db 0efh,0dfh,0bfh,07fh

db 7fh,0bfh,0dfh,0efh ;右移

db 0f7h,0fbh,0fdh,0feh

db 7fh,0bfh,0dfh,0efh ;右移

db 0f7h,0fbh,0fdh,0feh

db 00h,00h,0ffh,0ffh,00h,00h,0ffh,0ffh ;闪烁2次

db 01h ;结束码

END

在输入上述程序时,我们就可以体会到事先保存待编辑的文件的好处了,即Keil μVision 会自动识别关键字,并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。程序输入完毕后,如图12所示 。

图12 编辑源程序

3 工程的设置

工程建好后,还要对工程进行进一步的设置,才能使用Monitor-51仿真器进行硬件仿真。有三种打开工程设置对话框的方法:

A)点击工具栏上的按钮,如图13所示。

图13 使用工具栏图标按钮打开工程设置对话框

B)单击工程窗口下的Target1,使其高亮显示,再点击菜单“项目->目标‘target1’选项”

C)鼠标右键点击工程窗口下的“Target1”,出现一个下拉菜单,如图14所示,选中

“目标‘target1’选项”。

图14使用下拉菜单打开工程设置对话框

打开的工程设置对话框如图15所示。

图15 Target选项对话框

单击“”标签进入输出设置页面卡,如图16所示,选中“”,使程序编译

后产生HEX代码,供仿真和烧录使用。同时也可选中“”和“”,生成Hex 代码文件调试信息和浏览信息。

图16 Output选项对话框

单击“”标签进入调试器设置页面卡,按图17所示进行设置。

选中“”和“”这两项是为了进行

Monitor-51的硬件实时仿真。单击“” 按钮,进入 “参数设置”对话框,按默认设置就行。如果选中“”,是进行软件仿真。

图17

注:串口的波特率必须与之一致.

4 编译、链接

设置好工程后,即可进行编译、链接。图18所示的是有关编译的工具栏按钮和菜单,图中1、2、3都是编译按钮,1是编译单个文件。2是编译当前项目,如果先前编译过一次之后文件没有被编辑、改动,这时再点击是不会重新编译的。3是重新编译,每点击一次均会再次编译链接,不管文件是否有改动。在3右边的是停止编译按钮,只有点击了前三个中的任一个,停止按钮才会生效。4是信息输出窗口。5是菜单的相应操作。这个项目只有一个文件,你按1、2、3中的任一个都可以编译。

图18 有关编译的工具栏按钮和菜单

按1、2、3中的任意一个进行编译。在4中的Build页可以看到编译的错误信息和使用的系统资源情况等,以后我们要查错就靠它了,如果用户程序和工程设置没有错误,编译和链接将能顺利完成。如图19所示,提示获得了名为led.hex的文件,该文件即可被编程器读入并写到芯片中,同时还可看到,该程序的代码量(code=120),内部RAM的使用量(data=8),外部RAM的使用量(xdata=0)等一些信息。除此之外,编译、链接还产生了一些其它相关的文件,可被用于Keil的仿真与调试,这时可进入下一步的调试。

图19 编译和链接顺利完成

我们前面的程序经过验证后没有错误,但是用户在开始编写程序时容易出现错误,现在我们故意将“mov dptr,#table”改为“mov dptr,table”,我们再次进行编译和链接编译/链接,因

源程序中有语法错误,在信息输出窗口中有错误报告出现:“led.asm(5): error A40: INVALID REGISTER”。双击该行,定位到出错的位置,如图20所示,将错误改正后,再进行编译,程序编译和链接能顺利完成。如图19所示。

图20 编译后的错误定位

5 进入仿真

编译成功后,启动调试模式,进入仿真状态。启动调试模式有以下几种方法:

◆点击工具栏上的按钮

◆单击“调试->开始/停止调试模式”

◆使用快捷键“Ctrl+F5”

启动调试模式后,代码便开始下载到仿真器中,如果出现如图21:

图21

请检查以下因素:

·仿真器电源是否正确连接

·仿真器与PC是否正常连接

·串口是否选择正确,或被其它程序占用,或者已经损坏

如果都不是,请按一下你目标板的复位键,再按“”。

代码下载完后,如图22所示,用户可以根据需要进行单步、断点、全速运行,观察/修改变量值、观察/修改存储区数据等操作。

图22 代码下载完毕

进入调试状态后,调试菜单项中的命令可以使用了,有关编译的工具栏按钮消失了,出 现了一个用于运行和调试的工具栏,Debug菜单上的大部份命令都有相应的快捷按钮,如图23所示,从左到右依次是复位、运行、暂停、单步跟踪、单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令;

图23 运行和调试的工具栏

点击工具栏上的按钮,将反汇编窗口关闭,可看到源程序窗口了。

6 调试程序

⒈ 单步跟踪运行

使用菜单调试->单步进入或相应的命令按钮或使用快捷键F11可以单步跟踪执行程序,

在这里我们按下F11键,即可执行该箭头所指程序行,每按一次F11,可以看到源程序窗口的左

边黄色调试箭头指向下一行,当箭头指向“call delay”行时,再次按下F11,会发现,箭头指向了延时子程序“delay”的第一行,不断按F11键,即可逐步执行延时子程序,如图24所示,

图24 单步跟踪运行

⒉ 单步运行

如果delay程序有错误,可以通过单步跟踪执行来查找错误,但是如果delay程序已正确,每次进行程序调试都要反复执行这些程序行,会使得调试效率很低,为此,可以在调试时使用F10

来替代F11(也可使用菜单单步跳过或相应的命令按钮),在执行到“call delay”时将该行作为一条语句快速执行完毕.为了更好的进行对比,我们重新进入仿真环境,将反汇编窗口关闭,不

断按F10键,可以看到在源程序窗口中的左边黄色调试箭头不会进入到延时子程序。

⒊ 全速运行

点击工具栏上的按钮或按F5 键启动全速运行,全速执行程序,此时用户板上的P0口所接LED以流水灯状态显示,此时工具栏如图25所示。

图25 全速运行时的运行和调试工具栏

4.观察/修改寄存器的值

项目窗口在进入调试状态后显示Regs页的内容,如图26所示,包括工作寄存器R0~R7的内容和累加器A、寄存器B、堆栈指针SP的内容。

图26 查看寄存器的值

用户除了可以观察以外还可自行修改,例如将寄存器a的值0x62改为0x85,

方法一:用鼠标点击选中单元a, 然后再单击其数值位置,出现文字框后输入0x85按回车键即可;

方法二:在命令行窗口,输入A=0x85,按回车键将把A 的数值设置为0x85。

5. 观察/修改存储器的数据

◆ 通过Memory 窗口查看数据

点击菜单“View->Memory Windows”,便会打开Memory 窗口(如果窗口已打开,则窗口会关闭),如图27所示, Memory 窗口可以同时显示4 个不同的存储器区域,点击窗口下部分的编号可以相互切换显示。

在Memory#1的地址输入栏内输入“D:0e0h”,按回车键后,可以从内部可直接寻址RAM 的e0H 地址处开始显示, e0H 地址的值就是寄存器a的值,应与主寄存器窗口下的值相同。

点击窗口下部分的Memory#2,在Address输入栏内输入“D:0e0h”,按回车键后,可以从内部可间接寻址RAM 的e0H 地址处开始显示。

点击窗口下部分的Memory#3,在Address输入栏内输入“C:0x0021”,按回车键后,可以从代码区域0000H 地址处开始显示,这时各地址值应与在反汇编窗口中的值相同。

点击窗口下部分的Memory#4,在Address输入栏内输入“X:00h”,按回车键后,可以从xdata RAM 区域0000H 地址处开始显示。

图27 通过Memory 窗口查看数据

◆ 通过Memory 窗口修改数据

在Memory 窗口中显示的数据可以修改。例如,要改动data 区域OXE0地址的数据内容,修改方法如下:

把鼠标移动到该数据的显示位置,按动鼠标右键在弹出的菜单中选中“Modify Memory at D:0xE0”,在弹出对话框的文本输入栏内输入相应数值,按回车键或点击OK,修改完成。

图28 Memory 窗口右键弹出菜单

◆ 通过命令行查看数据

例如,我们想查看data 空间从0x01到0x03地址的内容,可在命令输入窗口输入“d d:0x01,03H”, 回车即可完成,d 表示data 空间,0x01 表示起始地址,03H 表示结束地址(注意两种16 进制的表示方法在这里都可以接受),输出结果在信息输出窗口中显示出来,如图29所示。

图29

◆ 通过命令行修改数据

例如,我们想把data 空间从0x01 开始的3 个数据修改成0x01 0x02 0x03 ,可在命令输入窗口输入“E d:0x01=0x01,0x02,0x03”,如图3-37所示,回车即可完成,E表示修改数据,d:表示data 空间,= 后面是输入的修改数据。

图30 通过命令行修改数据

通过Memory 窗口可以看到修改后的数据,如图31所示。

图31 查看修改后的数据

6. 观察/修改变量的值(此项更适合C语言)

在暂停程序运行时,可以观察到有关的变量值。

在Watch窗口Local页自动显示当前正在使用的局部变量,不需要用户自己添加。Watch页显

示用户指定的程序变量。

图32 Watch窗口Local页自动显示当前正在使用的局部变量 移动鼠标光标到要观察的变量“OutData”上停留大约一秒钟,就弹出一个“变量提示”块出来。

将鼠标移动到一个变量名“OutData”的上面,点击鼠标右键,出现快捷菜单,选中“Add “OutData” to Watch Windows…” 选项,子菜单中会出现#1 和#2 的选项,如图33所示,点击后该变量就会加入对应的Watch 窗口,如图34所示。

图33 添加用户指定的程序变量

图34 查看添加的程序变量

修改变量的数值方法是:用鼠标左键点击该行的变量数据栏,然后按F2 键出现文本输入栏后,输入修改的数据,确认正确后按回车键。

7. 复位

图35仿真器复位

如果用户想重新开始运行用户程序,可以点击工具栏上的按钮,对仿真器的用户程序进行复位。仿真器复位后,程序计数器PC 指针将复位成0000H, 另外,一些内部特殊功能寄存器在复位期间也将重新赋值,例如A 将变为00H, DPTR 变为0000H, SP 变为07H。

8.设置断点

将光标移至待设置断点的源程序行,如 “mov r4,#20”行。点击工具栏上的图标,可以

看到源程序窗口中该行的左边出现了一个红色的断点标记。用同样的方法在“call delay”行再设定一个断点

图36设定断点

9. 带断点的全速运行

按动F5 启动全速运行,全速执行程序,当程序执行到第一个断点时,会暂停下来,如图3-46所示,这时你可以观察程序中各变量的值及各端口的状态,此时用户板上的P0.0所接的LED灯点亮,在变量观察窗口中,P0的值应为0xFE,判断程序是否正确;继续按动F5 启动全速运行,程序执行到第二个断点时,会暂停下来,在变量观察窗口中,P0的值应为0xFD;继续按动F5 启动全速运行,程序又会执行到第一个断点处暂停,此时用户板上的P0.1所接LED灯点亮,……。

10. 清除程序中所有断点

如果想取消全部的断点全速运行时,要是逐个取消将是很烦琐的事,我们只要点击工具栏

上的图标,就可清除程序中所有断点。

⒓ 执行到光标处

在体验“执行到光标处”之前,我们先点击工具栏上的图标,对仿真器的用户程序进行复

位,点击工具栏上的按钮,将反汇编窗口关闭。

不断按F11键,逐步执行到延时子程序中,为了跳出延时子程序,我们将光标移到程序想要暂停的地方,如本例中的“mov P0,a”行。选择“调试->”或Ctrl+F10 键或点击工具栏上的图标,程序全速执行到光标所在行,这与我们在前面看到的带断点的全速运行相类似。

7 退出仿真

先按停止按钮,出现如图37,再按.

图37

出现如图38,请按

图38

则退出仿真状态,待回到文件编辑模式后,我们就可以进行关闭Keil μVision2 IDE等相关操作了。

keil c51 详细中文手册

Keil C51使用详解 V1.0 第一章 Keil C51开发系统基本知识 (6) 第一节系统概述 (6) 第二节Keil C51单片机软件开发系统的整体结构 (6)

1. C51 for Dos 7 2. C51 for Windows的安装及注意事项: (7) 第四节Keil C51工具包各部分功能及使用简介 (7) 1. C51与A51. 7 2. L51和BL51. 8 3. DScope51,Tscope51及Monitor51. 8 4. Ishell及uVision. 9 第二章 Keil C51软件使用详解 (10) 第一节Keil C51编译器的控制指令 (10) 1. 源文件控制类 (10) 2. 目标文件(Object)控制类: (10) 3. 列表文件(listing)控制类: (10) 第二节dScope51的使用 (11) 1. dScope51 for Dos 11 2. dScope for Windows 12 第三节Monitor51及其使用 (13) 1. Monitor51对硬件的要求 (13) 2. Mon51的使用 (13) 3. MON51的配置 (13) 4. 串口连接图: (13) 5. MON51命令及使用 (14) 第四节集成开发环境(IDE)的使用 (14) 1. Ishell for Dos的使用 (14) 2. uVision for windows的使用 (15) 第三章 Keil C51 vs 标准C.. 15

第二节内存区域(Memory Areas): (16) 1. Pragram Area: (16) 2. Internal Data Memory: 16 3. External Data Memory. 16 4. Speciac Function Register Memory. 16 第三节存储模式 (16) 1. Small模式 (16) 2. Compact模式 (17) 3. large模式 (17) 第四节存储类型声明 (17) 第五节变量或数据类型 (17) 第六节位变量与声明 (17) 1. bit型变量 (17) 2. 可位寻址区说明20H-2FH.. 18 第七节Keil C51指针 (18) 1. 一般指针 (18) 2. 存储器指针 (18) 3. 指针转换 (18) 第八节Keil C51函数 (19) 1. 中断函数声明: (19) 2. 通用存储工作区 (19) 3. 选通用存储工作区由using x声明,见上例。 (19) 4. 指定存储模式 (19) 5. #pragma disable. 19 6. 递归或可重入函数指定 (19)

单片机Keil C51软件的使用方法

Keil C51软件的使用 Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编和C 语言的程序设计,界面友好、易学易用。下面介绍Keil C51软件的使用方法: 1.启动Keil C51,界面如下图。 启动Keil C51时的屏幕 进入Keil C51后的编辑界面 2.建立一个新工程。

(1)单击工程菜单,在弹出的下拉菜单中选中新建工程选项。 (2)然后选择你要保存的路径,输入工程文件的名字,比如保存到C51目录里,工程文件的名字为C51,如下图所示,然后点击保存。 (3)这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,Keil C51几乎支持所有的51核的单片机,我这里还是以大家用的比较多的Atmel 的89C51来说明,如下图所示,选择89C51之后,右边栏是对这个单片机的基本的说明,然后点击确定。

(4)完成上一步骤后,屏幕如下图所示。 (5)单击文件菜单,再在下拉菜单中单击新建选项,屏幕如下图所示。

此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,建议首先保存该空白的文件,单击文件菜单,在下拉菜单中选中另存为选项单击,屏幕如下图所示,在文件名栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。 注意,如果用C语言编写程序,则扩展名为.c;如果用汇编语言编写程序,则扩展名必须为.asm。然后,单击保存按钮。

回到编辑界面后,单击目标1前面的+号,然后在源程序组1上单击右键,弹出如下菜单, 然后单击增加文件到组‘源程序组1’,屏幕如下图所示, 选中c51.asm,然后单击Add,屏幕如下图所示,

Keilc51程序中几种精确延时的方法

Keilc51程序中几种精确延时的方法 单片机因具有体积小、功能强、成本低以及便于实现分布式控制而有非常广泛的应用领域[1]。单片机开发者在编制各种应用程序时经常会遇到实现精确延时的问题,比如按键去抖、数据传输等操作都要在程序中插入一段或几段延时,时间从几十微秒到几秒。有时还要求有很高的精度,如使用单总线芯片DS18B20时,允许误差范围在十几微秒以内[2],否则,芯片无法工作。用51汇编语言写程序时,这种问题很容易得到解决,而目前开发嵌入式系统软件的主流工具为C语言,用C51写延时程序时需要一些技巧[3]。因此,在多年单片机开发经验的基础上,介绍几种实用的编制精确延时程序和计算程序执行时间的方法。 实现延时通常有两种方法:一种是硬件延时,要用到定时器/计数器,这种方法可以提高CPU的工作效率,也能做到精确延时;另一种是软件延时,这种方法主要采用循环体进行。 1 使用定时器/计数器实现精确延时 单片机系统一般常选用11.059 2 MHz、12 MHz或6 MHz晶振。第一种更容易产生各种标准的波特率,后两种的一个机器周期分别为1 μs和2 μs,便于精确延时。本程序中假设使用频率为12 MHz的晶振。最长的延时时间可达216=65 536 μs。若定时器工作在方式2,则可实现极短时间的精确延时;如使用其他定时方式,则要考虑重装定时初值的时间(重装定时器初值占用2个机器周期)。 在实际应用中,定时常采用中断方式,如进行适当的循环可实现几秒甚至更长时间的延时。使用定时器/计数器延时从程序的执行效率和稳定性两方面考虑都是最佳的方案。但应该注意,C51编写的中断服务程序编译后会自动加上PUSH ACC、PUSH PSW、POP PSW和POP ACC语句,执行时占用了4个机器周期;如程序中还有计数值加1语句,则又会占用1个机器周期。这些语句所消耗的时间在计算定时初值时要考虑进去,从初值中减去以达到最小误差的目的。 2 软件延时与时间计算 在很多情况下,定时器/计数器经常被用作其他用途,这时候就只能用软件方法延时。下面介绍几种软件延时的方法。 2.1 短暂延时 可以在C文件中通过使用带_NOP_( )语句的函数实现,定义一系列不同的延时函数,如Delay10us( )、Delay25us( )、Delay40us( )等存放在一个自定义的C文件中,需要时在主程序中直接调用。如延时10 μs的延时函数可编写如下: void Delay10us( ) { _NOP_( ); _NOP_( );

如何使用KeilC51创建一个工程文件

如何使用KeilC51创建一个工程文件 建立一个项目: 点击工程菜单中选择弹出的下拉式菜单中的新建工程...,接着弹出一个标准Windows 文件对话窗口,在"文件名"中输入您的第一个程序项目名称,这里我们用"test",这是笔者惯用的名称,大家不必照搬就是了,只要符合Windows文件规则的文件名都行。"保存"后的文件扩展名为uv2,这是KEIL uVision2项目文件扩展名,以后我们可以直接点击此文件以打开先前做的项目 。 这时会弹出让你选择单片机型号的对话框,我们选择A TMEL---A T89C51

然后点击Target 1前面的“+”,出现Source Group 1,选中右键点选“增加文件到组Source Group 1” 这时选择文件类型为Asm 源文件,再选中001.asm文件,再按添加,在随后出现的提示框中按“确定” 仿真器采用Mon51协议,在使用之前应必须对软件项目进行如下设置: 1、单击工程菜单,再在下拉菜单中单击"目标target 1属性" 在下图中,单击"Target"输入仿真器的工作频率(11.0592MHz)

2、在调试菜单中点选"Keil Monitor-51 Driver",即选择了STC89C516RD硬件仿真器。 3、单击“R外围设备”选Target Setup设置选项选择您要使用串口(必须和实际相符合),波特率38400。 如果被仿真的目标板使用12MHZ或者是11.0592MHZ晶振时波特率选择38400,如果被仿真的目标板使用6MHZ晶振时波特率选择18400。

4、如果需要生成HEX代码给编程器烧写芯片的话,需要选中“生成HEX 文件”的选项,按钮“选择OBJ文件夹...”是用来选择最终HEX文件的存放目录的。 5、按F7快捷键可以进行编译,编译成功后如会出现上图红箭头所指的文字,表示编译成

KeilC51使用详解

KeilC51使用说明 首先启动Keil μVision2程序,首次进入 Keil μVision2的编辑界面如图1所示,否则,会打开用户前一次处理的工程。 图1 首次进入Keil μVision2的编辑界面 下面通过简单的编程、调试,引导大家学习Keil μVision2软件中Keil Monitor-51 Driver 仿真器的基本使用方法和基本调试技巧。 1 工程的建立 单击“项目->新建项目…”菜单,弹出创建新工程对话框,如图2所示。选择你要保存的路径, 输入工程文件的名字, 不需要输入扩展名。比如保存到JY_E2X00目录里,工程文件的名字为 Test1,如图(2)所示,然后点击“保存”,保存后的文件扩展名为.uv2,这是KeilμVision2项 目文件扩展名。以后我们可以直接点击此文件来打开已创建的工程。 图2 创建新工程对话框

这时会弹出一个对话框,要求选择目标CPU(即用户所用单片机的型号),Keil μVision 几乎支持所有的51内核的单片机,我们以AT89S52芯片为例,如图3所示, 在左侧的Data base列表框中点击Atmel前面的“+”号,展开该层,选中AT89S52,在其右边的Description显示区域。中是对这个单片机的基本描述,然后再点击“确定”按钮. 图3 为工程选择目标CPU 窗口会出现询问是否添加startup.a51,如图4:请选择“否”。 图4 此时,在工程窗口的文件页中,出现了“Target 1”,前面有“+”号,点击“+”号展开,可以看到下一层的“Source Group1”,这时的工程还是一个空的工程,里面什么文件也没有,需要为这个工程添加文件。如图5所示。

Keil-C51-基本使用方法 (1) 。。。。2

、Keil C51工程建立与仿真 1、建立一个工程项目,选择芯片并确定选项 双击Keil uVision2快捷图标后进入Keil C51开发环境,单击“工程”菜单,在弹出的下拉菜单选中“新工程”选项,屏幕显示为图1。附录: 一 图1 建立一个工程项目在文件名中输入一个项目名“my-test”,选择保存路径(可在 “我的 文档” 中先建 立一个 同名的

文件夹),单击保存。在随后弹出的“为目标target选择设备”(Select Device for Target “Target1”)对话框中用鼠标单击Atmel前的“+”号,选择“89C51”单片机后按确定,如图2所示。 图 2 选择单片机后按确定 选择主菜单栏中的“工程”,选中下拉菜单中“Options for Target ‘Target1’”,出现图3所示的界面。单击“target”页面,在晶体Xtal(MHz)栏中选择试验板的晶振频率,默认为24MHz,我们讲座试验板的晶振频率为11.0592MHz,因此要将24.0改为11.0592。然后单击输出“Output”页面,在“建立hex格式文件”前打勾选中,如图3-4。其它采用默认设置,然后点确定。 图3 选择Target

页面 图4 选择Output页面 2、建立源程序文件 图 5 建立源程序文件

程序输入完成后,选择“文件”,在下拉菜单中选中“另存为”,将该文件以扩展名为.asm格式(如my-test.asm)保存在刚才所建立的一个文件夹中(my-test)。 3、添加文件到当前项目组中 单击工程管理器中“Target 1”前的“+”号,出现“Source Group1”后再单击,加亮后右击。在出现的下拉窗口中选择“Add Files to Group‘Source Group1’”,如图6所示。在增加文件窗口中选择刚才以asm格式编辑的文件my-test.asm,鼠标单击“ADD”按钮,这时my-test.asm文件便加入到Source Group1这个组里了,随后关闭此对话窗口。 图 6 添加文件到当前项目组中 4、编译(汇编)文件 选择主菜单栏中的“工程”,在下拉菜单中选中“重建

keil+c51教程

Keil uVision2的使用 Keil uVision2是目前使用广泛的单片机开发软件,它集成了源程序编辑和程序调试于一体,支持汇编、C、PL/M语言。 这里我们仅仅介绍Keil uVision2的简单使用,更详细的使用方法见本光盘单片机软件\Keil c51\Keil书籍与资料目录中的内容。 keil C51v6.12的安装: 先运行光盘中单片机软件\setup\setup.exe安装程序,选择安装“Eval Version”版进行安装。一直点击“Yes”或“Next”,直到“Finish”完成。 之后运行同目录中的Keil uv2汉化安装.exe安装汉化程序。 安装好后,在桌面上会产生快捷图标,如下图: keil C51v6.12的使用: 点击桌面快捷图标,可以直接进入主画面:

序。 在Keil系统中,每做个独立的程序,都视为工程(或者叫项目)。首先从菜但的“工程”中“新建工程...”,建立我们将要做的工程项目: 新建的工程要起个与工程项目意义一致的名字,可以是中文名;我们这里的程序是实验测试程序,所以起的名字为Test,并将Test工程“保存”到 C:\Keil下:

接下来,Keil环境要求我们为Test工程选择一个单片机型号;我们选择Atmel公司的89C51(虽然我们使用的是89S51,但由于89S51与89C51内、外部结构完全一样,所以这里依然选择“89C51”)。“确定”后工程项目就算建立了。

立了工程项目,肯定要实施这个工程,现在就为工程添加程序; 点击“文件”中的“新建”,新建一个空白文档;这个空白文档就是让我们编写单片机程序的场所。在这里你可以进行编辑、修改等操作。 根据题意,在文档中写入下列代码:(下列代码你暂时不要管什么意思,只要照抄正确就可以,今后在学习汇编时你会明白的) mov p0,#01010101B;将01010101二进制代码送P0口 ajmp$;程序在此原地踏步 end;程序结束标志 写完后再检查一下,并保存文件,保存文件时,其文件名最好与前面建立的工程名相同(当然这里为Test了),其扩展名必须为.Asm!“文件名”中一定要写全,如:Test.Asm;保存后的文档彩色语法会起作用,将关键字实行彩色显示:

Keil c51的使用及界面翻译

Keil C51的使用方法 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);如果用汇编语言编写

单片机开发与仿真软件Keil C51的使用

单片机开发与仿真软件Keil C51的使用 一、Keil C51 操作入门 Keil C51 简介 Keil C51 是德国知名软件公司Keil(现已并入ARM 公司)开发的基于8051 内核的微控制器软件开发平台,是目前开发8051 内核单片机的主流工具。Keil 51支持汇编语言、C语言等各种开发语言。其中,uVision2集成开发环境包含项目管理、源代码编辑和强大的程序调试环境。uVision2调试器是一个强大的全特性调试器,允许用户在PC 机上完全模拟目标程序、指令集和片内外围功能。 实验所用的是Keil C51 评估版。 Keil C51 的启动 双击桌面上的“Keil uVision2”图标,启动Keil C51程序,启动界面如图1所示。 图1 Keil C51的启动界面 建立第1 个Keil C51 程序 Keil C51 是一个功能很强大的软件,但是使用起来并不复杂。现在就通过建立一个简单的LED(发光二极管)闪烁发光的实例来初步掌握Keil C51的基本用法。硬件电路参见图2,单片机I/O 输出低电平可点亮LED。 图2 LED 闪烁发光电路 ●新建工程。执行Keil C51 软件的菜单“Project | N ew Project…”,弹出一个名为“Create

New Project”的对话框。先选择一个合适的文件夹准备来存放工程文件,比如“E:\Project\LedFlash”,其中“LedFlash”是新建的文件夹。建议:今后每新建一个工程都要在适当的磁盘位置新建一个文件夹用来保存工程文件,以方便管理,并养成良好的习惯。最后,为工程取名为“LedFlash”,并保存。参见图3。 图3 新建Keil C51 工程 ●选择CPU。紧接着,Keil C51 提示选择CPU 器件。8051 内核单片机最早是由鼎鼎大 名的Intel 公司发明的,后来其他厂商如Philips 、Atmel 、Winbond 等先后推出其兼容产品,并在8051 的基础上扩展了许多增强功能。在这里可以选择Philips 的第 1 个器件“80/87C51”,该器件与Intel 的8051 完全兼容。参见图4 。 图4 选择CPU ●接下来弹出一个如图5 所示的对话框。该对话框提示是否要把标准8051 的启动代

Keil C51 基本使用方法

附录: 一、Keil C51工程建立与仿真 1、建立一个工程项目,选择芯片并确定选项 双击Keil uVision2快捷图标后进入Keil C51开发环境,单击“工程”菜单,在弹出的下拉菜单选中“新工程”选项,屏幕显示为图1。 图1 建立一个工程项目 在文件名中输入一个项目名“my-test”,选择保存路径(可在“我的文档”中先建立一个同名的文件夹),单击保存。在随后弹出的“为目标target选择设备”(Select Device for Target “Target1”)对话框中用鼠标单击Atmel前的“+”号,选择“89C51”单片机后按确 定,如图2 所示。

图2 选择单片机后按确定 选择主菜单栏中的“工程”,选中下拉菜单中“Options for Target ‘Target1’”,出现图3所示的界面。单击“target”页面,在晶体Xtal(MHz)栏中选择试验板的晶振频率,默认为24MHz,我们讲座试验板的晶振频率为11.0592MHz,因此要将24.0改为11.0592。然后单击输出“Output”页面,在“建立hex格式文件”前打勾选中,如图3-4。其它采用默认设置,然后点确定。 图3 选择Target页面

图4 选择Output页面 2、建立源程序文件 单击“文件”菜单,在下拉菜单中选择“新建”,随后在编辑窗口中输入以下的源程序(如图5)。 ORG 0000H LJMP MAIN ORG 030H MAIN: MOV P0,#00H MOV P1 ,#00H MOV P2 ,#00H MOV P3 ,#00H ACALL DEL MOV P0 ,#0FFH MOV P1 ,#0FFH MOV P2 ,#0FFH MOV P3 ,#0FFH ACALL DEL AJMP MAIN ORG 0200H DEL: MOV R5,#04H F3: MOV R6,#0FFH F2: MOV R7,#0FFH F1: DJNZ R7,F1 DJNZ R6,F2 DJNZ R5,F3 RET END 图5 建立源程序文件 程序输入完成后,选择“文件”,在下拉菜单中选中“另存为”,将该文件以扩展名为.asm

Keil C51中变量的使用

引言 8051内核单片机是一种通用单片机,在国内占有较大的市场份额。在将C语言用于51内核单片机的研究方面,Keil公司做得最为成功。由于51内核单片机的存储结构的特殊性,Keil C51中变量的使用与标准C有所不同。正确地使用变量,有利于获得高效的目标代码。下面详细介绍Keil C51中变量的使用方法。 1 CPU存储结构与变量的关系 变量都需要有存储空间,存储空间的不同使得变量使用时的工作效率也不同。 标准C的典型运行环境是8086(含IA-32系列)内核,其存储结构是CPU内部有寄存器,外部有存储器,寄存器的访问速度大大高于存储器的访问速度。在标准C中,不加特别定义的变量是放在存储器中的,使用register可以强制变量存储在寄存器中,对于使用特别频繁且数量不多的变量可以选用这种存储模式,以获得更高的工作效率。 相比之下,51内核单片机的存储结构则显得有些怪异,它的存储空间有3个:程序存储器空间(64 KB含片内、片外)、片外数据存储器空间(64KB)、片内数据存储器及特殊功能寄存器空间。它没有真正意义上的寄存器,它的寄存器其实是片内数据存储器(如R0~R7)和特殊功能寄存器(如A、B等)中的一部分。因此,在Keil C51中使用变量就和标准C有很大不同。 2 Keil C51变量分析 Keil C51支持标准C原有的大多数变量类型,但为这些变量新增了多种存储类型,也新增了一些标准C没有的变量。 2.1 Keil C51新增的变量存储类型 Keil C51中定义变量的格式如下: [存储种类]数据类型[存储类型]变量名表; 其中,[存储类型]是标准C中没有的,[存储类型]共有6种,分别介绍如下: ①data。将变量存储在片内可直接寻址的数据存储器中。使用这种存储模式,目标代码中对变量的访问速度最快。 ②bdata。将变量存储在片内可位寻址的数据存储器中。在目标代码中变量可以方便地进行位处理,在不进行位处理时与data相同。 ③idata。将变量存储在片内间接寻址的数据存储器中。在52内核中,当片内直接寻址数据存储器不够用时,可以使用128字节间接寻址数据存储器,访问速度一般较data要慢一些,但具有最大的片内数据存储器空间;在51内核中因无单独的间接寻址数据存储器区,idata与data无区别。 ④xdata。将变量存储在片外数据存储器中。目标代码中只能使用“MOVX A,@DPTR”和“MOVX@DPTR,A”指令访问变量,访问速度最慢,但存储空间最大(64KB)。 ⑤pdata。将变量存储在片外数据存储器中的第一页(00H~FFH)中。目标代码中可以使用“MOVX A,@Ri”和“MOVX@Ri,A”指令访问变量,访问速度与xdata相同,存储空间为256字节。 ⑥code。将变量存储在程序存储器中。目标代码中只能使用MOVC指令访问变量,因变量存储在程序存储器中,具有非易失性且为只读。 2.2 Keil C51新增的指针变量存储类型 Keil C51中的指针变量形式如下: 数据类型[数据存储类型]*[指针存储类型]标识符; 其中,[数据存储类型]和[指针存储类型]都是标准C中没有的。[数据存储类型]定义数

Keil C51详细设置

Keil C51详细设置 一.target名更改 打开Keil后,左侧Project Workspace中的target可改,方法:右击Target——Manage Compnents——双击待修改项即可,若要添加,使用对话框内对应工具栏。 二.option for target 设置之TARGET项 1 MEMARY MODEL Small:变量存储在内部ram里. Compact:变量存储在外部ram里,使用页8位间接寻址 Large:变量存储在外部Ram里,使用16位间接寻址. 我们一般使用Small来存储变量,就是说单片机优先把变量存储在内部ram里,如果内部ram 不够了,才会存到外部去.Compact的方式要自己通过程序来指定页的高位地址,编程比较复杂,如果外部ram很少,只有256个字节,那么对该256个字节的读取就比较快,用MOVX @Ri,A 或MOVX A,@Ri指令. 如果超过256字节,那么要不断地进行切换的话,就比较麻烦.Compact模式适用于比较少的外部ram的情况.Large模式,是指变量会优先分配到外部ram里,用MOVX A,@DPTR或MOVX @DPTR,A来读取.要注意的是,3种存储方式都支持内部256字节和外部64k字节的ram.区别是变量的优先(或默认)存储在哪里的区别.除非你不想把变量存储在内部ram,才使用后面的 Compact,Large模式.因为变量存储在内部ram里,运算速度比存储在外部ram要快的多,大部分的应用都是选择Small的模式.使用Small的方式:也不是说变量就不可以存储在外部,一样可以存储在外部,只是你要指定,比如: unsigned char xdata a;那么变量a就存储在外部的ram. unsigned char a;变量存储在内部ram. 假如用Large的模式: unsigned char xdata a;那么变量a就存储在外部的ram. unsigned char a;变量存储在外部ram. 这就是区别,就是说这几个选项只是影响没有特别指定变量的存储空间的时候,默认存储在哪里,比如上面的变量定义unsigned char a . 2. CODE ROM SIZE Small: program 2K or less ;适用于89c2051这些芯片,2051只有2k的代码空间,所以跳转地址只有2k,编译的时候会使用ACALL AJMP这些短跳转指令,而不会使用LCALL,LJMP指令.如果你的代码跳转超过2k,那么会出错. Compact:2k functiongs ,64k program:表示每个子函数的程序大小不超过2k,整个工程可以有64k的代码.就是说在main()里可以使用LCALL, LJMP指令,但在子程序里只会使用ACALL,AJMP 指令.除非你确认你的每个子程序不会超过2k,否则不要用Compact方式. Large:64K program:表示程序或子函数都可以大到64k.使用code bank还可以更大.通常我们都选用该方式.Code Rom Size选择Large方式速度不会比Small慢很多,所以一般没有必要选择Compact和Small的方式.我们这里选择Large方式. 3. OPERATING

keil使用方法

第一步:新建一个文件夹 第二步:双击图标,启动keil软件 第三步:建立工程 1.选择工具导入工程 2.选择保存位置在刚才新建的文件夹——输入文件名——保存

2.选择atlem——选择atc51——确定 3.出现对话框选择否

第四步:设置选项 1.右键——为目标‘目标1’设置选项 2.选择输出——勾选产生HEX文件——确定 第五步:新建文件并保存 1.新建文件

2.保存 3.在对话框文件名中加入后缀名(如果使用汇编语言加后缀名.SAM如果的是C语言加后缀名. C)

第六步:编写程序 花样彩灯程序: ORG 0 START: MOV DPTR,#TABLE LOOP: CLR A MOVC A,@A+DPTR CJNE A,#01H,LOOP1 JMP START LOOP1: MOV P1,A MOV R3,#20 LCALL DELAY INC DPTR JMP LOOP DELAY: MOV R4,#20 D1: MOV R5,#248 DJNZ R5,$ DJNZ R4,D1 DJNZ R3,DELAY RET TABLE: DB 0FEH,0FDH,0FBH,0F7H DB 0EFH,0DFH,0BFH,07FH DB 0FEH,0FDH,0FBH,0F7H DB 0EFH,0DFH,0BFH,07FH DB 07FH,0BFH,0DFH,0EFH DB 0F7H,0FBH,0FDH,0FEH DB 07FH,0BFH,0DFH,0EFH DB 0F7H,0FBH,0FDH,0FEH DB 00H, 0FFH,00H, 0FFH DB 01H END

单片机仿真件Keil C51软件的使用教程(中文版)

单片机仿真软件Keil C51软件的使用教程(中文版) keil uvision2 C51软件是目前功能最强大的单片机c语言集成开发环境,本软件及视频教程可以本站下载。 下面我们通过图解的方式来Keil C51软件的使用教程,学习最简单的,如何输入源程序→ 新建工程→ 工程详细设置→ 源程序编译得到目标代码文件。 第一步:双击Keil uVision2的桌面快捷方式(图1),启动Keil集成开发开发软件。软件启动后的界面如图2所示。 图1:启动Keil uVision2单片机集成开发环 境

图2:软件启动后的界面 第二步:新建文本编辑窗。点击工具栏上的新建文件快捷按键,即可在项目窗口的右侧打开一个新的文本编辑窗,见图3所示。 图3:新建文本编辑窗 第三步:输入源程序。在新的文本编辑窗中输入源程序,可以输入C语言程序,也可以输入汇编语言程序,见图4。

图4:输入源程序 第四步:保存源程序。保存文件时必须加上文件的扩展名,如果你使用汇编语言编程,那么保存时文件的扩展名为“.asm”,如果是C语言程序,文件的扩展名使用“*.C ”。 图5:保存源程序 注:第3步和第4步之间的顺序可以互换,即可以先输入源程序后保存,也可以先保存后输入源程序。 第五步:新建立Keil工程。如图6所示,点击 "工程" → "新建工程" 命令,将出现保存对话框(图7)。

图6:新建工程 图7:保存工程对话框 在保存工程对话框中输入你的工程的文件名,Keil工程默认扩展名为 ".uv2",工程名称不用输入扩展名(见图7),一般情况下使工程文件名称和源文件名称相同即可,输入名称后保存,将出现"选择设备"对话框(图8),在对话框中选择CPU的型号。 第六步:选择CPU型号。如图8所示,为工程选择CPU型号,本新建工程选择了ATMEL公司的AT89C51单片机。

keilc51集成开发环境的使用

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所示。

keil c51详细使用

一、Keil C51开发系统基本知识 1、Keil C51单片机软件开发系统的整体结构 C51工具包的整体结构,如图1所示,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。 图 1 C51工具包整体结构图 2、Keil C51工具包的安装 1)C51 for Dos 在Windows下直接运行软件包中DOS\C51DOS.exe然后选择安装目录即可。完毕后欲使系统正常工作须进行以下操作(设C:\C51为安装目录): 修改Autoexec.bat,加入 path=C:\C51\Bin Set C51LIB=C:\C51\LIB Set C51INC=C:\C51\INC 然后运行Autoexec.bat 2)C51 for Windows的安装及注意事项 在Windows下运行软件包中WIN\Setup.exe,最好选择安装目录与C51 for Dos相同,这

样设置最简单(设安装于C:\C51目录下)。然后将软件包中crack目录中的文件拷入C:\C51\Bin 目录下。 3、Keil C51工具包各部分功能及使用简介 1)C51与A51 A.C51 C51是C语言编译器,其使用方法为: C51 sourcefile[编译控制指令] 或者 C51 @ commandfile 其中sourcefile为C源文件(.C)。大量的编译控制指令完成C51编译器的全部功能。包控C51输出文件C.LST,.OBJ,.I和.SRC文件的控制。源文件(.C)的控制等,详见第五部分的具体介绍。 而Commandfile为一个连接控制文件其内容包括:.C源文件及各编译控制指令,它没有固定的名字,开发人员可根据自己的习惯指定,它适于用控制指令较多的场合。 B.A51 A51是汇编语言编译器,使用方法为: A51 sourcefile[编译控制指令] 或 A51 @ commandfile 其中sourcefile为汇编源文件(.asm或.a51),而编译控制指令的使用与其它汇编如ASM 语言类似,可参考其他汇编语言材料。 Commandfile同C51中的Commandfile类似,它使A51使用和修改方便。 2)L51和BL51 A.L51 L51是Keil C51软件包提供的连接/定位器,其功能是将编译生成的OBJ文件与库文件连接定位生成绝对目标文件(.ABS),其使用方法为: L51 目标文件列表[库文件列表] [to outputfile] [连接控制指] 或 L51 @Commandfile 源程序的多个模块分别经C51与A51编译后生成多个OBJ文件,连接时,这些文件全列于目标文件列表中,作为输入文件,如果还需与库文件(.LiB)相连接,则库文件也必须列在其后。outputfile为输文件名,缺少时为第一模块名,后缀为.ABS。连接控制指令提供了连接定位时的所有控制功能。Commandfile为连接控制文件,其具体内容是包括了目标文件列表,库文件列表及输出文件、连接控制命令,以取代第一种繁琐的格式,由于目标模块库文件大多不止1个,因而第2种方法较多见,这个文件名字也可由使用者随意指定。 B.BL51 BL51也是C51软件包的连接/定位器,其具有L51的所有功能,此外它还具有以下3点特别之处: a. 可以连接定位大于64kBytes的程序。 b. 具有代码域及域切换功能(CodeBanking & Bank Switching) c. 可用于RTX51操作系统 RTX51是一个实时多任务操作系统,它改变了传统的编程模式,甚至不必用main( )函数,单片机系统软件向RTOS发展是一种趋势,这种趋势对于186和386及68K系列CPU更为明

KEILC51使用说明1

Keil 工程文件的建立、设置与目标文件的获得 单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU 可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP 等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。 我们将通过一些实例来学习Keil软件的使用,在这一部份我们将学习如何输入源程序,建立工程、对工程进行详细的设置,以及如何将源程序变为目标代码。图1所示电路图使用89C51单片机作为主芯片,这种单片机性属于MCS-51系列,其内部有4K的FLASH ROM,可以反复擦写,非常适于做实验。89C51的P1引脚上接8个发光二极管,P3.2~P3.4引脚上接4个按钮开关,我们的第一个任务是让接在P1引脚上的发光二极管依次循环点亮。 一、Keil工程的建立 首先启动Keil软件的集成开发环境,这里假设读者已正确安装了该软件,可以从桌面上直接双击uVision的图标以启动该软件。 UVison启动后,程序窗口的左边有一个工程管理窗口,该窗口有3个标签,分别是Files、Regs、和Books,这三个标签页分别显示当前项目的文件结构、CPU的寄存器及部份特殊功能寄存器的值(调试时才出现)和所选CPU的附加说明文件,如果是第一次启动Keil,那么这三个标签页全是空的。 1、源文件的建立 使用菜单“File->New”或者点击工具栏的新建文件按 钮,即可在项目窗口的右侧打开一个新的文本编缉窗口, 在该窗口中输入以下汇编语言源程序,例1: MOV A,#0FEH MAIN: MOV P1,A RL A LCALL DELAY AJMP MAIN DELAY: MOV R7,#255 D1: MOV R6,#255 DJNZ R6,$ 图1 简单的键盘、显示板

Keil-C51程序调试过程

如何使用Keil C软件调试单片机程序 调试一般都是在发生错误与意外的情况下使用的。如果程序能正常执行,调试很多时候都是用不上的。所以,最高效率的程序开发还是程序员自己做好规范,而不是指望调试来解决问题。 单片机的程序调试分为两种,一种是使用软件模拟调试,第二种是硬件调试。 使用软件模拟调试,就是用计算机去模拟单片机的指令执行,并虚拟单片机片内资源,从而实现调试的目的。但是软件调试存在一些问题,不可能像真正的单片机运行环境那样执行的指令能在同一个时间完成(往往比单片机慢)。软件调试只能是一种初步的,小型工程的调试,比如一个只有几百上千行的代码的程序,软件调试能很好的完成。 硬件调试其实也需要计算机软件的配合,大致过程是这样的:计算机软件把编译好的程序通过串行口、并行口或者USB口传输到仿真器,然后与单片机一样执行。仿真器仿真全部的单片机资源(所有的单片机接口,并且有真实的引脚输出)。仿真器会将单片机内部内存与时序等情况返回给计算机,这样就可以在计算机里看到单片机程序真实的执行情况。不仅如此,还可以通过计算机的软件实现单步、全速、运行到光标的常规调试手段。仿真器可以接入实际的电路中。 图1:仿真器 下面将具体介绍如何使用Keil uVision 软件来调试单片机程序。 首先:打开一个已经编译通过的单片机项目。选择Debug下面的Start/Stop Debug Session,这个选项可以打开调试也可以关闭调试。

接下来看到的窗口就是调试窗口了: 下面具体说说相关子窗口的功能: 1、左侧的ProjectWorkspace Regs是片内内存的相关情况值;Sys是系统一些累加器、计数器等。Regs

Keil C51软件的使用教程

Lesson 1 Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和 C 语言的程序设计,界面友好,易学易用。 下面介绍Keil C51软件的使用方法 进入 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)。然后,单击“保存”:

相关文档
最新文档