Keil使用教程最全的版本!!历史最全

Keil使用教程最全的版本!!历史最全
Keil使用教程最全的版本!!历史最全

使用教程(最全的版本)

一、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,可以反复擦写,非常适于做实验。89C 51 的P1 引脚上接8 个发光二极管,P3.2~P3.4 引脚上接4 个按钮开关,我们的第一个任务是让接在P1 引脚上的发光二极管依次循环点亮。

一、Keil 工程的建立

首先启动Keil 软件的集成开发环境,这里假设读者已正确安装了该软件,可以从桌面上直接双击uVision 的图标以启动该软件。

UVison 启动后,程序窗口的左边有一个工程管理窗口,该窗口有3 个标签,分别是Files、Regs、和Books,这三个标签页分别显示当前项目的文件结构、C PU 的寄存器及部份特殊功能寄存器的值(调试时才出现)和所选CPU 的附加说明文件,如果是第一次启动Keil,那么这三个标签页全是空的。

1、源文件的建立

图 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,$

END

DJNZ R7,D1

RET

保存该文件,注意必须加上扩展名(汇编语言源程序一般用asm 或a51 为扩展名),这里假定将文件保存为exam1.asm。

需要说明的是,源文件就是一般的文本文件,不一定使用Keil 软件编写,可以使用任意文本编缉器编写,而且,Keil 的编缉器对汉字的支持不好,建议使用UltraEdit 之类的编缉软件进行源程序的输入。

2、建立工程文件

在项目开发中,并不是仅有一个源程序就行了,还要为这个项目选择CPU(K eil 支持数百种CPU,而这些CPU 的特性并不完全相同),确定编译、汇编、连接的参数,指定调试的方式,有一些项目还会有多个文件组成等,为管理和使用方便,Keil 使用工程(Project)这一概念,将这些参数设置和所需的所有文件都加在一个工程中,只能对工程而不能对单一的源程序进行编译(汇编)和连接等操作,下面我们就一步一步地来建立工程。

图 2 选择目标CPU

点击“Project->New Project… ”菜单,出现一个对话框,要求给将要建立的工程起一个名字,你可以在编缉框中输入一个名字(设为exam1),不需要扩展名。点击“保存”按钮,出现第二个对话框,如图2所示,这个对话框要求选择目标CPU(即你所用芯片的型号),Keil 支持的CPU 很多,我们选择At mel 公司的89C51 芯片。点击ATMEL 前面的“+”号,展开该层,点击其中的89C51,然后再点击“确定”按钮,回到主界面,此时,在工程窗口的文件页中,出现了“Target1”,前面有“+”号,点击“+”号展开,可以看到下一层的“ Source Gr oup1”,这时的工程还是一个空的工程,里面什么文件也没有,需要手动把刚才编写好的源程序加入,点击“Source Group1”使其反白显示,然后,点击鼠标右键,出现一个下拉菜单,如图 3 所示。选中其中的“Add file to Group”Sourc e Group1”,出现一个对话框,要求寻找源文件,注意,该对话框下面的“文件类型” 默认为 C source file(*.c),也就是以 C 为扩展名的文件,而我们的文件是以asm 为扩展名的,所以在列表框中找不到exam1.asm,要将文件类

型改掉,点击对话框中“文件类型”后的下拉列表,找到并选中“Asm Source Fil e(*.a51,*.asm),这样,在列表框中就可以找到exam1.asm 文件了。

双击exam1.asm 文件,将文件加入项目,注意,在文件加入项目后,该对话框并不消失,等待继续加入其它文件,但初学时常会误认为操作没有成功而再次双击同一文件,这时会出现如图 4 所示的对话框,提示你所选文件已在列表中,此时应点击“确定”,返回前一对话框,然后点击“Close” 即可返回主界面,返回后,点击“Source Group 1”前的加号,会发现exam1.asm 文件已在其中。双击文件名,即打开该源程序。

图3 加入文件

Keil 的调试命令、在线汇编与断点设置

上一讲中我们学习了如何建立工程、汇编、连接工程,并获得目标代码,但是做到这一步仅仅代表你的源程序没有语法错误,至于源程序中存在着的其它错误,必须通过调试才能发现并解决,事实上,除了极简单的程序以外,绝大部份的程序都要通过反复调试才能得到正确的结果,因此,调试是软件开发中重要的一个环节,这一讲将介绍常用的调试命令、利用在线汇编、各种设置断点进行程序调试的方法,并通过实例介绍这些方法的使用。

一、常用调试命令

在对工程成功地进行汇编、连接以后,按Ctrl+F5 或者使用菜单Debug->St art/Stop Debug Session 即可进入调试状态,Keil 内建了一个仿真CPU 用来模拟执行程序,该仿真CPU 功能强大,可以在没有硬件和仿真机的情况下进行程序的调试,下面将要学的就是该模拟调试功能。不过在学习之前必须明确,模拟毕竟只是模拟,与真实的硬件执行程序肯定还是有区别的,其中最明显的就是时序,软件模拟是不可能和真实的硬件具有相同的时序的,具体的表现就是程序执行的速度和各人使用的计算机有关,计算机性能越好,运行速度越快。

进入调试状态后,界面与编缉状态相比有明显的变化,Debug 菜单项中原来不能用的命令现在已可以使用了,工具栏会多出一个用于运行和调试的工具条,如图1 所示,Debug 菜单上的大部份命令可以在此找到对应的快捷按钮,从左到右依次是复位、运行、暂停、单步、过程单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令。

图 1 调试工具条学习程序调试,必须明确两个重要的概念,即单步执行与全速运行。全速执行是指一行程序执行完以后紧接着执行下一行程序,中间不停止,这样程序执行的速度很快,并可以看到该段程序执行的总体效果,即最终结果正确还是错误,但如果程序有错,则难以确认错误出现在哪些程序行。单步执行是每次执行一行程序,执行完该行程序以后即停止,等待命令执行下一行程序,此时可以观察该行程序执行完以后得到的结果,是否与我们写该行程序所想要得到的结果相同,借此可以找到程序中问题所在。程序调试中,这两种运行方式都要用到。

使用菜单STEP 或相应的命令按钮或使用快捷键F11 可以单步执行程序,使用菜单STEP OVER 或功能键F10 可以以过程单步形式执行命令,所谓过程单步,是指将汇编语言中的子程序或高级语言中的函数作为一个语句来全速执行。

图2 调试窗口

按下F11 键,可以看到源程序窗口的左边出现了一个黄色调试箭头,指向源程序的第一行,如图 2 所示。每按一次F11,即执行该箭头所指程序行,然后箭头指向下一行,当箭头指向LCALL DELAY 行时,再次按下F11,会发现,箭头指向了延时子程序DELAY 的第一行。不断按F11 键,即可逐步执行延时子程序。

通过单步执行程序,可以找出一些问题的所在,但是仅依靠单步执行来查错有时是困难的,或虽能查出错误但效率很低,为此必须辅之以其它的方法,如本例中的延时程序是通过将D2:DJNZ R6,D2 这一行程序执行六万多次来达到延时的目的,如果用按F11 六万多次的方法来执行完该程序行,显然不合适,为此,可以采取以下一些方法,第一,用鼠标在子程序的最后一行(ret)点一下,把光标定位于该行,然后用菜单Debug->Run to Cursor line(执行到光标所在行),即可全速执行完黄色箭头与光标之间的程序行。第二,在进入该子程序后,使用菜单Debug->Step Out of Current Function(单步执行到该函数外),使用该命令后,即全速执行完调试光标所在的子程序或子函数并指向主程序中的下一行程序(这里是JMP LOOP 行)。第三种方法,在开始调试的,按F10 而非F11,程序也将单步执行,不同的是,执行到lcall delay 行时,按下F10 键,调试光标不进入子程序的内部,而是全速执行完该子程序,然后直接指向下一行“JMP LOOP”。灵活应用这几种方法,可以大大提高查错的效率。

二、在线汇编

图3 在线汇编窗口在进入Keil 的调试环境以后,如果发现程序有错,可以直接对源程序进行修改,但是要使修改后的代码起作用,必须先退出调试环境,重新进行编译、连接后再次进入调试,如果只是需要对某些程序行进行测试,或仅需对源程序进行临时的修改,这样的过程未免有些麻烦,为此Keil 软件提供了在线汇编的能力,将光标定位于需要修改的程序行上,用菜单Debug->I nline Assambly… 即可出现如图3 的对话框,在Enter New 后面的编缉框内直接输入需更改的程序语句,输入完后键入回车将自动指向下一条语句,可以继续修改,如果不再需要修改,可以点击右上角的关闭按钮关闭窗口。

三、断点设置

程序调试时,一些程序行必须满足一定的条件才能被执行到(如程序中某变量达到一定的值、按键被按下、串口接收到数据、有中断产生等),这些条件往往是异步发生或难以预先设定的,这类问题使用单步执行的方法是很难调试的,这时就要使用到程序调试中的另一种非常重要的方法——断点设置。断点设置

的方法有多种,常用的是在某一程序行设置断点,设置好断点后可以全速运行程序,一旦执行到该程序行即停止,可在此观察有关变量值,以确定问题所在。在程序行设置/移除断点的方法是将光标定位于需要设置断点的程序行,使用菜单Debug->Insert/Remove BreakPoint 设置或移除断点(也可以用鼠标在该行双击实现同样的功能);Debug->Enable/D isable Breakpoint 是开启或暂停光标所在行的断点功能;Debug->Disable All Breakpoint 暂停所有断点;Deb ug->Kill All BreakPoint 清除所有的断点设置。这些功能也可以用工具条上的快捷按钮进行设置。

除了在某程序行设置断点这一基本方法以外,Keil 软件还提供了多种设置断点的方法,按Debug->Breakpoints… 即出现一个对话框,该对话框用于对断点进行详细的设置,如图4所示。

图4 中Expression 后的编缉框内用于输入表达式,该表达式用于确定程序停止运行的条件,这里表达式的定义功能非常强大,涉及到Keil 内置的一套调试语法,这里不作详细说明,仅举若干实例,希望读者可以举一反三。

1)在Experssion 中键入a==0xf7,再点击Define 即定义了一个断点,

注意,a 后有两个等号,意即相等。该表达式的含义是:如果 a 的值到达0xf 7 则停止程序运行。除使用相等符号之外,还可以使用>,>=,<,<=,!=(不等于), &(两值按位与),&&(两值相与)等运算符号。

2)在Experssion 后中键入Delay 再点击Define,其含义是如果执行标号为Delay 的行则中断。

图4 断点设置对话框3)在Experssion 后中键入Delay,按Count 后的微调按钮,将值调到3,其意义是当第三次执行到Delay 时才停止程序运行。

4)在Experssion 后键入Delay ,在Command 后键入printf(“SubRouti ne

‘Delay’has been Called\n”)主程序每次调用Delay 程序时并不停止运行,但会在输出窗口Command 页输出一行字符,即SubRoutine ‘Delay’ has been Called。其中“\n”的用途是回车换行,使窗口输出的字符整齐。

5)设置断点前先在输出窗口的Command页中键入DEFINE int I,然后在断点设置时同4),但是Command 后键入printf(“SubRoutine ‘Delay’ has been Called %d times\n”,++I),则主程序每次调用Delay 时将会在Comma nd 窗口输出该字符及被调用的次数,如SubRoutine ‘Delay’has been Called 10 times。

对于使用C 源程序语言的调试,表达式中可以直接使用变量名,但必须要注意,设置时只能使用全局变量名和调试箭头所指模块中的局部变量名。

四、实例调试

为进行程序的调试,我们首先给源程序制造一个错误,将延时子程序的第三行“DJNZ R6,$”后的$改为D1,然后重新编译,由于程序中并无语法错误,所以编译时不会有任何出错提示,但由于转移目的地出错,所以子程序将陷入无限循环中。

进入调试状态后,按F10 以过程单步的形式执行程序,当执行到LCALL DE LAY 行时,程序不能继续往下执行,同时发现调试工具条上的Halt 按钮变成了红色,说明程序在此不断地执行着,而我们预期这一行程序执行完后将停止,这个结果与预期不同,可以看出所调用的子程序出了差错。为查明出错原因,按Halt 按钮使程序停止执行,然后按RST 按钮使程序复位,再次按下F10 单步执行,但在执行到LCALL DELAY 行时,改按F11 键跟踪到子程序内部(如果按下F11 键没有反应,请在源程序窗口中用鼠标点一下),单步执行程序,可以发现在执行到“DJNZ R6,D1”行时,程序不断地从这一行转移到上一行,同时观察左侧的寄存器的值,会发现R6 的值始终在FFH 和FEH 之间变化,不会减小,而我们的预期是R6 的值不断减小,减到0 后往下执行,因此这

个结果与预期不符,通过这样的观察,不难发现问题是因为标号写错而产生的,发现问题即可以修改,为了验证即将进行的修改是否正确,可以先使用在线汇编功能测试一下。把光标定位于程序行“DJNZ R6,D1”,打开在线汇编的对话框,将程序改为“DJNZ R7,0EH”,即转回本条指令所在行继续执行,其中0EH 是本条指令在程序存储器中的位置,这个值可以通过在线汇编窗口看到,如图 3 所示。然后关闭窗口,再进行调试,发现程序能够正确地执行了,这说明修改是正确的。注意,这时候的源程序并没有修改,此时应该退出调试程序,将源程序更改过来,并重新编译连接,以获得正确的目标代码。

Keil 程序调试窗口

上一讲中我们学习了几种常用的程序调试方法,这一讲中将介绍Keil 提供各种窗口如输出窗口、观察窗口、存储器窗口、反汇编窗口、串行窗口等的用途,以及这些窗口的使用方法,并通过实例介绍这些窗口在调试中的使用。

一、程序调试时的常用窗口

Keil 软件在调试程序时提供了多个窗口,主要包括输出窗口(Output Wind ows)、观察窗口(Watch&Call Statck Windows)、存储器窗口(Memory Window)、反汇编窗口(Dissambly Window)串行窗口(Serial Window)等。进入调试模式后,可以通过菜单View 下的相应命令打开或关闭这些窗口。

图1 是输出窗口、观察窗口和存储器窗口,各窗口的大小可以使用鼠标调整。进入调试程序后,输出窗口自动切换到Command 页。该页用于输入调试命令和输出调试信息。对于初学者,可以暂不学习调试命令的使用方法。

图1 调试窗口(命令窗口、存储器窗口、观察窗口)

1、存储器窗口

图2 存储器数值各种方式显示选择

存储器窗口中可以显示系统中各种内存中的值,通过在Address 后的编缉框内输入“字母:数字”即可显示相应内存值,其中字母可以是C、D、I、X,分别代表代码存储空间、直接寻址的片内存储空间、间接寻址的片内存储空间、扩展的外部RAM 空间,数字代表想要查看的地址。例如输入D:0 即可观察到地址0 开始的片内RAM 单元值、键入C:0 即可显示从0 开始的ROM 单元中的值,即查看程序的二进制代码。该窗口的显示值可以以各种形式显示,如十进制、十六进制、字符型等,改变显示方式的方法是点鼠标右键,在弹出的快捷菜单中选择,该菜单用分隔条分成三部份,其中第一部份与第二部份的三个选项为同一级别,选中第一部份的任一选项,内容将以整数形式显示,而选中第二部份的Ascii 项则将以字符型式显示,选中Float 项将相邻四字节组成的浮点数形式显示、选中Double 项则将相邻8 字节组成双精度形式显示。第一部份又有多个选择项,其中Decimal 项是一个开关,如果选中该项,则窗口中的值将以十进制的形式显示,否则按默认的十六进制方式显示。Unsign ed 和Signed 后分别有三个选项:Char、Int、Long,分别代表以单字节方式显示、将相邻双字节组成整型数方式显示、将相邻四字节组成长整型方式显示,而Unsigned 和Signed 则分别代表无符号形式和有符号形式,究竟从哪一个单元开始的相邻单元则与你的设置有关,以整型为例,如果你输入的是I:0,那么00H 和01H 单元的内容将会组成一个整型数,而如果你输入的是I:1,01H和02H 单元的内容全组成一个整型数,以此类推。有关数据格式与C 语言规定相同,请参考 C 语言书籍,默认以无符号单字节方式显示。第三部份的Mod ify Memory at X:xx 用于更改鼠标处的内存单元值,选中该项即出现如图3 所示的对话框,可以在对话框内输入要修改的内容。

图3 存储器的值的修改

2、工程窗口寄存器页

图4 是工程窗口寄存器页的内容,寄存器页包括了当前的工作寄存器组和系统寄存器,系统寄存器组有一些是实际存在的寄存器如A、B、DPTR、SP、PS W 等,有一些是实际中并不存在或虽然存在却不能对其操作的如PC、Status 等。每当程序中执行到对某寄存器的操作时,该寄存器会以反色(蓝底白字)显示,用鼠标单击然后按下F2 键,即可修改该值。

3、观察窗口

图 4 工程窗口寄存器页

观察窗口是很重要的一个窗口,工程窗口中仅可以观察到工作寄存器和有限的寄存器如A、B、DPTR 等,如果需要观察其它的寄存器的值或者在高级语言编程时需要直接观察变量,就要借助于观察窗口了。

其它窗口将在以下的实例中介绍。一般情况下,我们仅在单步执行时才对变量的值的变化感兴趣,全速运行时,变量的值是不变的,只有在程序停下来之后,才会将这些值最新的变化反映出来,但是,在一些特殊场合下我们也可能需要在全速运行时观察变量的变化,此时可以点击View->Periodic Window

Updata(周期更新窗口),确认该项处于被选中状态,即可在全速运行时动态地观察有关值的变化。但是,选中该项,将会使程序模拟执行的速度变慢。

二、各种窗口在程序调试中的用途

以下通过一个高级语言程序来说明这些窗口的使用。例2:

#include "reg51.h"

sbit P1_0=P1^0; //定义P1.0

void mDelay(unsigned char DelayTime)

{ unsigned int j=0;

for(;DelayTime>0;DelayTime--)

{ for(j=0;j<125;j++) {;} }

}

void main()

{ unsigned int i;

for(;;){ mDelay(10); // 延时10

毫秒

i++;

if(i==10)

{ P1_0=!P1_0;

i=0; }

} }

这个程序的工作过程是:不断调用延时程序,每次延时10 毫秒,然后将变量I 加1,随后对变量I 进行判断,如果I 的值等于10,那么将P1.0 取反,并将I 清0,最终的执行效果是P1.0 每0.1S 取反一次。

输入源程序并以exam2.c 为文件名存盘,建立名为exam2 的项目,将exa m2.c 加入项目,编译、连接后按Ctrl+F5 进入调试,按F10 单步执行。注意观察窗口,其中有一个标签页为Locals,这一页会自动显示当前模块中的变量名及变量值。可以看到窗口中有名为I 的变量,其值随着执行的次数而逐渐加大,如果在执行到mDelay(10)行时按F11 跟踪到mDelay 函数内部,该窗口的变量自动变为DelayTime 和j。另外两个标签页Watch #1 和Watch #2 可以加入自定义的观察变量,点击“type F2 to edit”然后再按F2 即可输入变量,试着在Watch #1 中输入I,观察它的变化。在程序较复杂,变量很多的场合,这两个自定义观察窗口可以筛选出我们自己感兴趣的变量加以观察。观察窗口中变量的值不仅可以观察,还可以修改,以该程序为例,I 须加10 次才能到10,为快速验证是否可以正确执行到P1_0=!P1_0 行,点击I 后面的值,再按F2,该值即可修改,将I 的值改到9,再次按F10 单步执行,即可以很快执行到P1_0=!P1_0 程序行。该窗口显示的变量值可以以十进制或十六进制形式显示,方法是在显示窗口点右键,在快捷菜单中选择如图 5 所示。

图 5 设定观察窗的显示方式

点击View->Dissambly Window 可以打开反汇编窗口,该窗口可以显示反汇编后的代码、源程序和相应反汇编代码的混合代码,可以在该窗口进行在线汇编、利用该窗口跟踪已找行的代码、在该窗口按汇编代码的方式单步执行,这也是一个重要的窗口。打开反汇编窗口,点击鼠标右键,出现快捷菜单,如图6 所示,其中Mixed Mode 是以混合方式显示,Assembly Mode 是以反汇编码方式显示。

程序调试中常使用设置断点然后全速运行的方式,在断点处可以获得各变量值,但却无法知道程序到达断点以前究竟执行了哪些代码,而这往往是需要了解的,为此,Keil 提供了跟踪功能,在运行程序之前打开调试工具条上的允许跟踪代码开关,然后全速运行程序,当程序停止运行后,点击查看跟踪代码按钮,自动切换到反汇编窗口,如图 6 所示,其中前面标有“-”号的行就是中断以

前执行的代码,可以按窗口边的上卷按钮向上翻查看代码执行记录。

图6 反汇编窗口

利用工程窗口可以观察程序执行的时间,下面我们观察一下该例中延时程序的延时时间是否满足我们的要求,即是否确实延时10 毫秒,展开工程窗口R egs 页中的Sys 目录树,其中的Sec 项记录了从程序开始执行到当前程序流逝的秒数。点击RST 按钮以复位程序,Sec 的值回零,按下F10 键,程序窗口中的黄色箭头指向mDelay(10)行,此时,记录下Sec 值为0.00038900,然后再按F10 执行完该段程序,再次查看Sec 的值为0.01051200,两者相减大约是0.01 秒,所以延时时间大致是正确的。读者可以试着将延时程序中的unsig ned int 改为unsigned char 试试看时间是否仍正确。注意,使用这一功能的前提是在项目设置中正确设置晶振的数值。

Keil 提供了串行窗口,我们可以直接在串行窗口中键入字符,该字符虽不会被显示出来,但却能传递到仿真CPU 中,如果仿真CPU 通过串行口发送字符,那么这些字符会在串行窗口显示出来,用该窗口可以在没有硬件的情况下用键盘模拟串口通讯。下面通过一个例子说明Keil 串行窗口的应用。该程序实现一个行编缉功能,每键入一个字母,会立即回显到窗口中。编程的方法是通过检测RI 是否等于 1 来判断串行口是否有字符输入,如果有字符输入,则将其送到SBUF,这个字符就会在串行窗口中显示出来。其中ser_init 是串行口初始化程序,要使用串行口,必须首先对串行口进行初始化。例3:

MOV SP,#5FH ;堆栈初始化

CALL SER_INIT ;串行口初始化

LOOP:

JBC RI,NEXT ; 如果串口接收到字符,转

JMP LOOP ;否则等待接收字符

NEXT:

MOV A,SBUF ;从SBUF 中取字符

MOV SBUF,A ;回送到发送SBUF 中

SEND:

JBC TI,LOOP ;发送完成,转LOOP

JMP SEND ;否则等待发送完

SER_INIT: ;中断初始化

MOV SCON,#50H ORL TMOD,#20H ORL PCON,#80H

MOV TH1,#0FDH ;设定波特率

SETB TR1 ;定时器1 开始运行

SETB REN ;允许接收

SETB SM2

RET END

输入源程序,并建立项目,正确编译、连接,进入调试后,全速运行,点击串行窗口1 按钮,即在原源程序窗口位置出现一个空白窗口,击键,相应的字母就会出现在该窗口中。在窗口中击鼠标右键,出现一个弹出式菜单,选择“As cii Mode”即以Ascii 码的方式显示接收到的数据;选择“Hex Mode”以十六进制码方式显示接收到的数据;选择“Clear Window” 可以清除窗口中显示的内容。

由于部份CPU 具有双串口,故Keil 提供了两个串行窗口,我们选用的89 C51 芯片只有一个串行口,所以Serial 2 串行窗口不起作用。

小技巧:凡是鼠标单击然后按F2 的地方都可以用鼠标连续单击两次(注意:不是双击)来替代。

Keil 的辅助工具和部份高级技巧

在前面的几讲中我们介绍了工程的建立方法,常用的调试方法,除此之外,K eil 还提供了一些辅助工具如外围接口、性能分析、变量来源分析、代码作用分析等,帮助我们了解程的性能、查找程序中的隐藏错误,快速查看程序变量名信息等,这一讲中将对这些功工具作一介绍,另外还将介绍Keil 的部份高级调试技巧。

一、辅助工具

这部份功能并不是直接用来进行程序调试的,但可以帮助我们进行程序的调试、程序性能的分析,同样是一些很有用的工具。

1、外围接口

为了能够比较直观地了解单片机中定时器、中断、并行端口、串行端口等常用外设的使用情况,Keil 提供了一些外围接口对话框,通过Peripherals 菜单选择,该菜单的下拉菜单内容与你建立项目时所选的CPU 有关,如果是选择的89C51 这一类“标准”的51 机,那么将会有Interrupt(中断)、I/O Ports (并行I/O 口)、Serial(串行口)、Timer(定时/计数器)这四个外围设备菜单。打开这些对话框,列出了外围设备的当前使用情况,各标志位的情况等,可以在这些对话框中直观地观察和更改各外围设备的运行情况。

图1 外围设备之并行端口

下面我们通过一个简单例子看一看并行端口的外围设备对话框的使用。例4:

MOV A,#0FEH

LOOP: MOV P1,A

RL A

CALL DELAY ;延时100 毫秒

JMP LOOP

其中延时100 毫秒的子程序请自行编写。

编译、连接进入调试后,点击Peripherals->I/O-Ports->Port 1 打开,如图1 所示,全速运行,可以看到代表各位的勾在不断变化(如果看不到变化,请点击View->Periodic Window Updata),这样可以形象地看出程序执行的结果。

注:如果你看到的变化极快,甚至看不太清楚,那么说明你的计算机性能好,模拟执行的速度快,你可以试着将加长延时程序的时间以放慢速度。模拟运行速度与实际运行的速度无法相同是软件模拟的一个固有弱点。

点击Peripherals->I/O-Ports->Timer0 即出现图2 所示定时/计数器0 的外围接口界面,可以直接选择Mode 组中的下拉列表以确定定时/计数工作方式,0-3 四种工作方式,设定定时初值等,点击选中TR0,status 后的stop

就变成了run,如果全速运行程序,此时th0,tl0 后的值也快速地开始变化(同样要求Periodic Window Updata 处于选中状态),直观地演示了定时/计数器的工作情况(当然,由于你的程序未对此写任何代码,所以程序不会对此定时/计数器的工作进行处理)。

图2 外围设备之定时器

2、性能分析

Keil 提供了一个性能分析工具,利用该工具,我们可以了解程序中哪些部份的执行时间最长,调用次数最多,从而了解影响整个程序中执行速度的瓶颈。下面通过一个实例来看一看这个工具如何使用,例5:

#include "reg51.h"

sbit P1_0=P1^0; //定义P1.0

void mDelay(unsigned char DelayTime)

{ unsigned int j=0;

for(;DelayTime>0;DelayTime--)

{ for(j=0;j<125;j++) {;} }

}

void mDelay1(unsigned char DelayTime)

{ unsigned int j=0;

for(;DelayTime>0;DelayTime--)

{ for(j=0;j<125;j++) {;} }

}

void main()

{ unsigned int i;

for(;;){ mDelay(10); // 延时10

毫秒

i++;

if(i==10)

{ P1_0=!P1_0; i=0; mDelay1(10);}

} }

编译连接。进入调试状态后使用菜单View->Performance Analyzer Window,打开性能分析对话框,进入该对话框后,只有一项unspecified,点鼠标右键,在快捷菜单中选择Setup PA 即打开性能分析设置对话框,对于 C 语言程序,该对话框右侧的“Function Symbol”下的列表框给出函数符号,双击某一符号,该符号即出现在Define Performance Analyzer 下的编缉框中,每输入一个符号名字,点击Define 按钮,即将该函数加入其上的分析列表框。对于汇编语言源程序,Function Symbol 下的列表框中不会出现子程序名,可以直接在编缉框中输入子程序名,点击Close 关闭窗口,回到性能分析窗口,此时窗口共有4 个选项。全速执行程序,可以看到mDelay 和mDelay1 后出现一个蓝色指示条,配合上面的标尺可以直观地看出每个函数占整个执行时间的比例,点击相应的函数名,可以在该窗口的状态栏看到更详细的数据,其中各项的含义如下:

Min:该段程序执行所需的最短时间;Max:该段程序执行所需的最长时间;Avg:该段程序执行所花平均时间;Total:该段程序到目前为目总共执行的时间;%:占整个执行时间的百分比;count:被调用的次数。

本程序中,函数mDelay 和mDelay1 每次被调用都花费同样的时间,看不出Min、Max、和Avg 的意义,实际上,由于条件的变化,某些函数执行的时间不一定是一个固定的值,借助于这些信息,可以对程序有更详细的了解。下面将mDelay1 函数略作修改作一演示。

void mDelay1(unsigned char DelayTime)

{ static unsigned char k;

unsigned int j=0;

mongoDb使用教程

MongoDB Java API 该文档是翻译自文档[mongodb-docs-2010-10-24.pdf]的[Java Language Center]章节,根据自己的理解整理而成。 希望能给像我这样开始接触的朋友一点帮助,同时也做个备忘,因为是刚刚学习,其中的很多功能目前都用不上,以后万一有什么功能不太清楚,也可以直接查阅该文档了。首先安装可视化工具mongoDBvue可去百度搜索 MongoDB Java Driver 简单操作 一、Java驱动一致性 MongoDB的Java驱动是线程安全的,对于一般的应用,只要一个Mongo实例即可,Mongo有个内置的连接池(池大小默认为10个)。 对于有大量写和读的环境中,为了确保在一个Session中使用同一个DB时,我们可以用以下方式保证一致性: DB mdb = mongo.getDB('dbname'); mdb.requestStart(); // // 业务代码 // mdb.requestDone(); DB和DBCollection是绝对线程安全的,它们被缓存起来了,所以在应用中取到的可能是同一个对象。 二、保存/查找对象(DBObject) Java驱动提供了DBObject接口,方便我们保存对象到数据库中。 定义需要保存的对象: public class Tweet implements DBObject { /** ...... */ } 然后我们可以使用该对象: Tweet tweet = new Tweet(); tweet.put("user", userId); tweet.put("message", message); tweet.put("date", new Date()); collection.insert(tweet); 当从数据库中查询时,结果会自动的转换成DBObject对象,我们可以转换成我们自己的类型: collection.setObjectClass(Tweet); Tweet myTweet = (Tweet)collection.findOne(); 三、创建连接 Mongo m = new Mongo(); Mongo m = new Mongo("localhost"); Mongo m = new Mongo("localhost", 27017); DB db = m.getDB("mydb); 注意:事实上,Mongo实例代表了一个数据库连接池,即使在多线程的环境中,一个Mongo实例对我们来说已经足够了。

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使用教程

单片机原理k e i l使用教 程 Prepared on 22 November 2020

k e i l教程 Keil 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和 C 语言的程序设计,界面友好,易学易用。下面介绍Keil软件的使用方法,这应该算一个入门教程,进入 Keil 后,屏幕如下图所示。几秒钟后出现编辑界 启动Keil uVision4时的屏幕。 简单程序的调试学习程序设计语言、学习某种程序软件,最好的方法是直接操作实践。下面通过简单的编程、调试,引导大家学习Keil C51软件的基本使用方法和基本的调试技巧。 1) 对于单片机程序来说,每个功能程序,都必须要有一个配套的工程(Project),即使是点亮LED这样简单的功能程序也不例外,因此我们首先要新建一个工程,打开我们的Keil软件后,点击:Project-- >New uVision Project...然后会出现一个新建工程的界面,如图2-8所示。 2)因为是第一个实验,所以我们在硬盘上建立了一个实验1 的目录,然后把LED这个工程的路径指定到这里,这样方便今后管理程序,不

同的功能程序放到不同的文件夹下,并且给这个工程起一个名字叫做LED,软件会自动添加扩展名。如图2-9所示。 下次要打开LED这个工程时,可以直接找到文件夹,双击这个.uvproj 文件就可以直接打开了。 图2-9 保存工程 3)保存之后会弹出一个对话框,这个对话框让我们选择单片机型号。因为Keil软件是外国人开发的,所以我们国内的STC89C52RC并没有上榜,但是只要选择同类型号就可以了。Keil 几乎支持所有的51核的单片机,这里还是以大家用的比较多的Atmel 的AT89S51来说明,如下图2-10、图2-11所示,选择AT89S51之后,右边栏是对这个单片机的基本的说明,然后点击确定。 图2-10 选择芯片公司 图2-11 选择具体芯片

MHDD使用方法以及图文教程

MHDD使用方法以及图文教程(附带MHDD4.6光盘版和DOS版下载) MHDD软件简介 MHDD 是一款由俄罗斯人所开发的免费硬盘实体扫描维护程序,比起一般的硬盘表层扫描,MHDD 有相当令人激赏的扫描速度,让使用者不再需要花费数个小时来除错,只需几十分钟,一颗 80G 大小的硬盘就可以扫瞄完成,且 MHDD 还能够帮使用者修复坏轨,让使用者能够继续延续该硬盘的生命余光。此外, MHDD 还能够对硬盘进行低阶清除的动作,让想要卖掉硬盘的你不必担心硬盘中的数据被接手的买家回复盗用的困扰喔!官方所提供的 MHDD 可分为磁盘版与光盘版两种,如果使用者需要光盘版的话,要用刻录机烧录成光盘后使用。 简洁教程:(MHDD详细图文教程地址 https://www.360docs.net/doc/c116997394.html,/thread-1161-1-1.html) 1、进入MHDD后,按shift+F3扫描端口上的硬盘,制作的这个光盘版启动后自动扫描硬盘; 2、选择要检测硬盘的对应序号并回车; 3、按一下F4进入扫描设置,再按一下F4开始扫描。默认的只是扫描不修复. 4、扫描完毕之后,在/MHDD/LOG下有个MHDD.LOG,是扫描生成的日志文件。在光盘里,已经集成https://www.360docs.net/doc/c116997394.html,在/MHDD目录里面,可以输入EDIT打开文本编辑器,然后定位到/MHDD/LOG/MHDD.LOG,查看扫描结果,并采取下一步措施; 5、如果在按下F4没有反应的时候,可以从新光盘启动,运行一次/MHDD目录下的FBDISK,按ESC退出返回到DOS再输入MHDD,启动MHDD 4.6,这时候MHDD就能正常扫描了,这应该是软件的一个BUG; 6、在MHDD里输入man en all可以查看详细的帮助,输入help只是简短的帮助。《MHDD》工具使用详解与命令解释 1、MHDD是俄罗斯Maysoft公司出品的专业硬盘工具软件,具有很多其他硬盘工具软件所无法比拟的强大功能。 2、MHDD无论以CHS还是以LBA模式,都可以访问到128G的超大容量硬盘(可访问的扇区范围从512到137438953472),即使你用的是286电脑,无需BIOS支持,也无需任何中断支持; 3、MHDD最好在纯DOS环境下运行;中国硬盘基地网 https://www.360docs.net/doc/c116997394.html, 4、MHDD可以不依赖于主板BIOS直接访问IDE口,但要注意不要使用原装Intel品牌主板; 5、不要在要检测的硬盘中运行MHDD;中国硬盘基地网 https://www.360docs.net/doc/c116997394.html, 6、MDD在运行时需要记录数据,因此不能在被写保护了的存储设备中运行(比如写保护的软盘、光盘等); MHDD命令详解 EXIT(热键Alt+X):退出到DOS。 ID:硬盘检测,包括硬盘容量、磁头数、扇区数、SN序列号、Firmware固件版本号、LBA 数值、支持的DMA级别、是否支持HPA、是否支持AAM、SMART开关状态、安全模式级别及

单片机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,屏幕如下图所示,

thinkcms安装使用教程

程序安装环境: - PHP(5.2.x)需要开启mysql(5.0以上), gd, curl, mbstring支持 - _runtime和data目录需要可写权限(777) - 安装有ZendOptimizer 安装初始化账号为: 用户名:admin@https://www.360docs.net/doc/c116997394.html, 密码:52001314 后台地址:https://www.360docs.net/doc/c116997394.html,/index.php?app=admin 架构步骤(FTP上传,记得务必要采用二进制上传): 修改采集工具的地址: 1、根目录下pinpick.js 中查找var siteDomain,修改为对应你的域名网址(不要添加http://) 以及修改文件\apps\home\Tpl\default\Caiji\tools.html 查找pinpick.js ,修改前面为你的域名。 2、\apps\weibo\Tpl\default\Pick\index.html 第56行和70行,修改前面为你的域名。 第一种方法:运行/install(安装完毕后,进行第三操作)。表名前缀不要修改。 安装初始化账号为: 用户名:admin@https://www.360docs.net/doc/c116997394.html, 密码:52001314 安装完后提示管理员账号出错,不用管,用以上默认账号登陆即可。 第二种方法: 首先:用phpmyadmin将install/t_thinksns_com.sql 导入到数据库(utf-8)。 第二:修改文件config.inc.php配置,改为你数据库的相关设置。 第三: 登录后台 1、全局\ 平台配置修改为你的淘宝KEY(12166995)和淘宝密钥(fe0c6fafc476d2fc0555e2f52389f786),(有时出现获取不了宝贝或超时,请更换稳定的淘宝KEY 和淘宝密钥。)

Keil uVision4使用说明

Keil uVision4使用说明 一、RealView MDK 的安装步骤 (1) 二、J-link的使用 (2) 1. 安装J-link驱动 (2) 2. JLINK仿真器在Keil uVision4下的配置与使用 (3) 三、M3-LINK仿真器使用说明书 (7) 1. 仿真器的驱动安装 (7) 2. M3-LINK仿真器在Keil uVision4下的配置与使用 (10) 四、芯片型号的判定: (16) 五、安装流明诺瑞驱动库 (17)

Keil uVision4使用说明 软件地址:\\192.168.1.5\刻盘\工具软件\EXP-M3\开发环境4.20 一、RealView MDK 的安装步骤 将安装文件拷贝到电脑根目录下,然后双击图标, 如图所示: 注意:去掉属性里的只读选项。 一直点Next,选择默认路径即可。出现以下图标后随便输,直至安装完成。

说明:安装完成以后,必须先更新流明诺瑞驱动库才能使用软件 二、J-link的使用 1.安装J-link驱动 第一步:找到并打开“J-LINK驱动”文件夹,双击运行可执行文件Setup_JLinkARM_V408l.exe,出现如下界面: 第二步:点击Yes,后面出现的对话框一直Next即可,安装目录选择默认的路径C:盘下即可,如下图所示:

第三步:安装完成后,用USB电缆把仿真器与开发板连接上后,在我的电脑设备管理器的通用串行总线控制器下能找到J-link driver。如下图所示:右击我的电脑,依次点击管理、设备管理器、通用串行总线控制器即可查看。 安装完成后显示的驱动信息 2.JLINK仿真器在Keil uVision4下的配置与使用 第一步: (1)确保仿真器的驱动已经正确安装。 (2)确认开发环境Keil uVision4软件已经安装并可以使用。 第二步:进入到附带的“Keil工程\EXP-LM3S811”文件夹下,参考这个针对EXP-LM3S811板卡的工程设置进行其它工程的设置。双击运行TIMER_SECOND.uvproj工程,出现下图所示的窗口,见下图:

GHOST使用教程(图解

GHOST使用教程(图解)人人都可“拥有”4GHz的CPU **** 本内容跟帖回复才可浏览***** 河北的刘宗元朋友打电话告诉董师傅,他在查看朋友电脑的系统属性时,发现系统属性里显示这台电脑采用的是Intel的4GHz的P4 CPU(图1)。他很是好奇,要知道去年因4GHz P4 CPU难产,Intel的首席执行官贝瑞特曾当众下跪祈求原谅。 董师傅自然也不相信Intel真的出了4GHz的P4 CPU,不过对这个显示结果还是非常感兴趣,经过一番摸索,发现只要略施小计,我们每一个人都可以“拥有”4GHz的P4 CPU。你也想有这样一颗“心”?别着急,且听师傅慢慢道来。 都是sysdm.cpl文件“惹的祸” 知道了问题的关键,下面要做的就是修改信息了。 首先将C:WindowsSystem32文件夹下的sysdm.cpl文件复制一份出来,然后用资源编辑工具EXESCOPE打开复制出的sysdm.cpl文件,展开“资源→对话框→101”分支。在右侧一共有9个“Link Window”。除了第4、5个外,把另外七个的“可见”属性去掉(即去掉右侧“可见”前的钩),目的是在检测系统属性时只显示第4、5个的内容。 选中第4个“Link window”,在“标题”栏输入文字“Intel(R) Pentium4(R)处理器”;在第5个“Link window”的“标题”栏中输入“4 GHz,2048 MB 的内存”等信息(连内存信息也一并改了。数字可随意输入,但不可过长,否则显示效果较别扭);再将第4个“Link window”的“Y”坐标值改为“149”,将第5个的调整为“170”,以占据原来第1、2个“Link Window”的位置。 修改好后保存该文件,接下来只要用该文件替换原始文件即可。不过,在替换过程中,董师傅又遇到了一个新问题: 文件保护功能会“作祟” 董师傅使用的是Windows XP+SP2系统,要把修改后的sysdm.cpl文件复制到C:WindowsSystem32中替换原文件有些麻烦——SP2强大的文件保护功能会自动还原原始文件。 师傅我并不想禁用文件保护功能,所以借助文件替换工具Replacer解决了这个问题。 将下载回来的文件解压到任一文件夹,双击“replace.cmd”出现命令提示符窗口,将 C:WindowsSystem32sysdm.cpl文件拖到其中,回车;再将修改过的sysdm.cpl文件拖入其中并回车,输入“Y”后按回车,这样就能替换掉系统文件了(在弹出的Windows文件保护时请点“取消”)。 至此,董师傅所想要的4GHz的P4 CPU终于“出现”!心动了吧?那就赶快动手吧。 以上软件下面有得下载 资源编辑工具EXESCOPE 文件替换工具Replacer 一、什么是Ghost? Ghost(幽灵)软件是美国赛门铁克公司推出的一款出色的硬盘备份还原工具,可以实现FAT16、FAT32、NTFS、OS2等多种硬盘分区格式的分区及硬盘的备份还原。俗称克隆软件。 1、特点:既然称之为克隆软件,说明其Ghost的备份还原是以硬盘的扇区为单位进行的,也就是说可以将一个硬盘上的物理信息完整复制,而不仅仅是数据的简单复制;克隆人只能克隆躯体,但这个Ghost却能克隆系统中所有的东东,包

Keil C51 μVision4的使用

Keil C51 μVision4的使用 和春技术学院资工系李鸿鹏老师编写 教育人员或学生可任意下载使用或連结但不得有商业行为

Keil C51 μVision4的使用 Keil C51 μVision4是美国Keil Software公司出品的51系列兼容单芯片C语言整合 发展环境(Integrated Development Environment, IDE),与汇编语言相比,C语言在功能上、架构性、可讀性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C语言來开发,会更加体会深刻。目前最新的版本是C51 Version 9.00 Release,也就是所谓的μVision4。 Keil C51软件提供丰富的函數库和功能强大的除错工具,及全窗口界面。另外 重要的一点,只要看一下编译后生成的汇编语言代码,就能体会到Keil C51生成的 目标代码效率非常之高,多數语句生成的汇编语言代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的便利与优势。 Keil C51 μVision4较之前的版本,新增了下面几个功能: 多重的监控和弹性的窗口管理系统。 系统查看器(System Viewer) - 显示设备周边缓存器的讯息。 除错恢復检视(Debug Restore Views) - 建立和储存多重除错窗口设计。 多项目工作区(Multi-Project Workspace) - 与许多项目简化工作。 源码和解组译連结(Source and Disassembly Linking) - 解组译窗口和源码窗口完全同步使程序除错和光标导航较容易。 内存窗口固定(Memory Window Freeze) - 储存目前内存窗口检视允许容易在不同的 点及时比较。 设备模拟- 更新支持很多新设备(例如Infineon XC88x,SiLABS C8051Fxx,Atmel SAM7/9和从Luminary, NXP, and Toshiba 來的Cortex M3 MCUs)。 支持硬件除错转接器(Support for Hardware debug adapters) - 包括ADI。miDAS-Link,Atmel SAM-ICE,Infineon DAS, 和ST-Link。 新资料和指令追踪(New Data and instruction trace) - 对ARM和Cortex MCUs。 基于XML的项目文件(XML based Project files) - 建立,检视和修改项目如同容易可

实验一-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)将文件添加到工程中 单击“T arget 1”前的“+”号则展开后变成“-”号,并右键单击“Source Group 1”在弹出的下拉菜单中执行“Add Files to Group ‘Source Group 1’”命令并弹出对话框在该对话框中的“文件类型”下拉列表中选择“Asm source file”后找到要添加的文件名并选中,单击“Add”即可。

sniffer使用及图解教程

sniffer使用及图解 注:sniffer使用及图解sniffer pro 汉化注册版下载 黑白影院高清免费在线电影聚集网无聚集无生活,聚集网络经典资源下载 sniffer软件的安装还是比较简单的,我们只需要按照常规安装方法进行即可。需要说明的是: 在选择sniffer pro的安装目录时,默认是安装在c:\program files\nai\snifferNT目录中,我们可以通过旁边的Browse按钮修改路径,不过为了更好的使用还是建议各位用默认路径进行安装。 在注册用户时,随便输入注册信息即可,不过EMAIL一定要符合规范,需要带“@”。(如图1) 图1 点击放大 注册诸多数据后我们就来到设置网络连接状况了,一般对于企业用户只要不是通过“代理服务器”上网的都可以选择第一项——direct connection to the internet。(如图2) 图2 接下来才是真正的复制sniffer pro必需文件到本地硬盘,完成所有操作后出现setup complete提示,我们点finish按钮完成安装工作。 由于我们在使用sniffer pro时需要将网卡的监听模式切换为混杂,所以不重新启动计算机是无法实现切换功能的,因此在安装的最后,软件会提示重新启动计算机,我们按照提示操作即可。(如图3) 重新启动计算机后我们可以通过sniffer pro来监测网络中的数据包。我们通过“开始->所有程序->sniffer pro->sniffer”来启动该程序。 第一步:默认情况下sniffer pro会自动选择你的网卡进行监听,不过如果不能自动选择或者本地计算机有多个网卡的话,就需要我们手工指定网卡了。方法是通过软件的file菜单下的select settings来完成。 第二步:在settings窗口中我们选择准备监听的那块网卡,记得要把右下角的“LOG ON”前打上对勾才能生效,最后点“确定”按钮即可。(如图4) 图4 第三步:选择完毕后我们就进入了网卡监听模式,这种模式下将监视本机网卡流量和错误数据包的情况。首先我们能看到的是三个类似汽车仪表的图象,从左到右依次为“Utiliz ation%网络使用率”,“Packets/s 数据包传输率”,“Error/s错误数据情况”。其中红色区域是警戒区域,如果发现有指针到了红色区域我们就该引起一定的重视了,说明网络线路不好或者网络使用压力负荷太大。一般我们浏览网页的情况和我图11中显示的类似,使用率不高,传输情况也是9到30个数据包每秒,错误数基本没有。(如图5) 图5

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_( );

Keil4使用方法

Keil4使用方法 Keil4使用教程 使用汇编语言或C语言要使用编译器,以便把写好的程序编译为机器码,才能 把HEX可执行文件写入单片机内。KEIL uVISION是众多单片机应用开发软件中最 优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,甚至ARM,它集编 辑,编译,仿真等于一体,它的界面和常用的微软VC++的界面相似,界面友好, 易学易用,在调试程序,软件仿真方面也有很强大的功能。因此很多开发51应用 的工程师或普通的单片机爱好者,都对它十分喜欢。 KEIL uVision4比起uVision3或是uVision2界面感觉舒服一些,增加了哪些 功能暂且不去研究,毕竟大家都喜欢用新的软件,感叹发展太快了,很多人连uVision2都没有摸透,呵呵。安装的方法和普通软件差不多,这里就不做介绍 了。另外提醒大家不要崇拜汉化版软件,还是E文的干净没有BUG~在这里以51单片机并结合C程序为例(汇编操作方法类似,唯一不同的是汇编 源程序文件名后缀为“.ASM ”),图文描述工程项目的创建和使用方法: 一、首先我们要养成一个习惯:最好先建立一个空文件夹,把您的工程文件放 到里面,以避免和其他文件混合,如下图笔者先创建了一个名为“Mytest”文件夹: 二、点击桌面上的Keil uVision4图标,出现启动画面: 三、点击“project --- New uVision Project”新建一个工程: 四、在对话框,选择放在刚才建立的“Mytest”文件夹下,给这个工程取个名 后保存,不需要填后缀,注意默认的工程后缀与uVision3及uVision2版本不同 了,为uvporj: 五、弹出一个框,在CPU类型下我们找到并选中“Atmel”下的AT89S51或52: 六、以上工程创建完毕,接下来开始建立一个源程序文本:

(完整版)电脑简单使用说明书初学电脑实用教程

认知电脑 电脑的主要设备包括: 显示器 显示器开关,用来打开显示器,通常显示器打开状态下为开关指示灯(位于显示器开关旁边或显示器后方)亮着,显示器关闭状态开关指示灯则为熄灭。 电 脑 显示器 音箱 键盘 鼠标 主机 输出设备 输入设备 显示器开关

主机开关 主机重启开关 电脑主机如上图示主要有2个开关按钮,主机开关(通常为个头较大位于上方的开关按钮)用于作为电脑主机的开关,主机重启按钮(通常为个头较小位于较下方的开关按钮)用于作为电脑出现死机故障无法正常关机或重启的开关按钮,通常也叫短路开关。 键盘 键盘,电脑的重要输入设备之一,用于信息和操作录入的重要输入设备。

鼠标也作为电脑的重要输入设备,如上图所示,通常的鼠标主要有左键,滚动滑轮键, 右键这三个功能键组成。左右键的操作方式主要有:单击,双击,按住不放拖动鼠标等操作。 左键单击的作用:选中、连接、按钮的按入(像我们通常按电视遥控器按钮一样,打开了按钮显示的对应功能)。 左键双击的作用:打开windows 桌面的功能图标对应的功能。 注:通常2次敲击左键的间隔要尽可能小点,要快,否则电脑只认为你是做了2 次左键单击事件(只是对图标进行了2次选中操作),而不认为你是做1次左键双击事件,就不能达到你想要的打开这个功能的操作。如果出现上述的点击不够快的情况,只需重复回一次正确的双击操作就可以打开对应你所点击的图标功能。 右键单击的作用:打开你所点击的地方的高级菜单(高级功能菜单中有对你所点击的地方的大部分功能操作选项,通常有打开、改名即重命名、复制、删除、属性设置等功能)。右键单击弹出高级菜单后,将光标移进高级功能菜单里面,可以看见光标所在的菜单选项背景色改变为蓝色,这时你只要左键单击一下就可以进入这项功能。 注:如果失误右键点击弹出了高级菜单,只需将光标移到空白的地方(没文字,没图标,没按钮的地方)左键单击一次就可以退出并关闭高级菜单。 右键双击的作用:通常不使用右键双击,所以在不做详细介绍。 滚动滑轮的作用:通常文档或网页显示器不能一屏显示完,所以通常有部分在下方,这时我们想看下面的内容,就要将下面的内容拖上来看,这时就要使用滚动滑轮了。 滚轮向下滑动:页面向上拖动可以看到下面的内容。 滚轮向上滑动:页面向下拖动可以看到上面的内容。 左键 右键 滚动滑轮

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软件使用方法简介

Keil软件使用方法简介: Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,汇编语言和 C 语言的程序设计,界面友好,易学易用。 下面介绍Keil C51软件的使用方法 进入 Keil C51 后,屏幕如下图所示。几秒钟后出现编辑界 进入Keil C51后的编辑界面 简单程序的调试 学习程序设计语言、学习某种程序软件,最好的方法是直接操作实践。下面通过简单的编程、调试,引导大家学习Keil C51软件的基本使用方法和基本的调试技巧。

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

完成上一步骤后,屏幕如下图所示 到现在为止,我们还没有编写一句程序,下面开始编写我们的第一个程序。(2)新建文件 在下图中,单击“File”菜单,再在下拉菜单中单击“New”选项

新建文件后屏幕如下图所示 此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了。 键入程序后界面如下: 单击file菜单下的save,出现一个对话框,键入文件名,后缀名为.asm,进行保存到D盘CMJ51文件夹下。界面如下:

GHOST使用教程(图解)

GHOST使用教程(图解) 收集者:小路发布于:https://www.360docs.net/doc/c116997394.html, 发布时间:2007- 5-6 12:50:48 发布人:小路 减小字体增大字体 一、什么是Ghost? Ghost(幽灵)软件是美国赛门铁克公司推出的一款出色的硬盘备份还原工具,可以实现FAT16、FAT32、NTFS、O S2等多种硬盘分区格式的分区及硬盘的备份还原。俗称克隆软件。 1、特点:既然称之为克隆软件,说明其Ghost的备份还原是以硬盘的扇区为单位进行的,也就是说可以将一个硬盘上的物理信息完整复制,而不仅仅是数据的简单复制;克隆人只能克隆躯体,但这个Ghost却能克隆系统中所有的东东,包括声音动画图像,连磁盘碎片都可以帮你复制,比克隆人还厉害哟:)。Ghost支持将分区或硬盘直接备份到一个扩展名为.gho的文件里(赛门铁克把这种文件称为镜像文件),也支持直接备份到另一个分区或硬盘里。 2、运行ghost:至今为止,ghost只支持Dos的运行环境,这不能说不是一种遗憾:(。我们通常把ghost文件复制到启动软盘(U盘)里,也可将其刻录进启动光盘,用启动盘进入Dos环境后,在提示符下输入ghost,回车即可

运行ghost,首先出现的是关于界面,如图 按任意键进入ghost操作界面,出现ghost菜单,主菜单共有4项,从下至上分别为Quit(退出)、Options(选项)、Peer to Peer(点对对,主要用于网络中)、Loca l(本地)。一般情况下我们只用到Local菜单项,其下有三个子项:Disk(硬盘备份与还原)、Partition(磁盘分区备份与还原)、Check(硬盘检测),前两项功能是我们用得最多的,下面的操作讲解就是围绕这两项展开的。 3、由于Ghost在备份还原是按扇区来进行复制,所以在操作时一定要小心,不要把目标盘(分区)弄错了,要不

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、编译(汇编)文件 选择主菜单栏中的“工程”,在下拉菜单中选中“重建

Keil4使用Jlink设置指南

KEIL4环境,使用Jlink仿真器调试M3说明 1.安装keil4 首先要安装集成开发环境KEIL4MDK,这是ARM公司最新的调试软件,我们提供的工程例程都在KEIL4MDK开发环境下,调试通过! 2.安装jlink驱动, 驱动位于光盘的工具软件文件夹里,目前稳定的版本是JLinkARM_V408i。用户只需一步步安装即可,安装过程中不需要任何设置!安装完成后出现下图的可用快捷方式! 下边接收几个很有用的: 1.)J-Flash ARM:这是一个单独的程序烧写软件,J-Flash ARM配合Jlink仿真器可以完成绝大多数ARM芯片或扩展FLASH的烧录工作! 2.)J-Link GDB Server:打开这个软件,同时连接上开发板,就可一看到目标板MCU 内核和目标板电压! 3.)J-Link Commander:打开这个软件之前电脑要先连接jlink,可以看到jlink的硬件版本和序列号! 3.Keil4仿真调试配置 打开你要调试的工程(就是实验例程,请注意每个工程都可单独配置,KEIL4MDK工程一般是工程名+.uvproj的方式存在的),工程打开后,出现下边的界面:

我们提供了两种调试模式:内部flash调试和内部SRAM调试!我们首先要选择调试模式,是在内部flash调试还是内部SRAM调试。用户可以在下图的位置选择调试模式: 每颗芯片的RAM相对FLASH来说,都较小,所以如果程序量超过RAM的范围,请选择flash调试模式! 选择完调试模式后,接着配置该调试模式下的参数!点击下图所示图标 或者点击Flash--Configure Flash Tools......,如下图所示 点击后,会打开下图所示的配置窗口

关于如何使用Proteus和keil4联调

一、关于如何使用Proteus。软件下载地址:59.77.2.173/edown25/ Proteus有点类似protel,在本学期的单片机实验课中所起的作用主要是考虑到同学们只利用上课时间在单片机实验室编程时间比较紧,所以老师采用Proteus让大家可以自己先做仿真,看看实验现象,关于Proteus大家不用懂得太多,只要懂得如何用Proteus看现象及与如何与Keil uVision4联调即可。 当然,软件要先安装好,并且是破解好的。否则会出错。 下面先讲讲如何用Proteus看实验现象。其实就是助教会在下一周实验前将Proteus 电路图画好,大家直接打开电路图,在51芯片上双击出窗口导入.hex文件(编译.成功asm 或.c文件时会生成),然后点击运行即可观看现象。想要停止,点击停止就OK。以观察实验二的例子为例。如图。打开.DSN文件 出现如下界面。 运行、停止 用于控制界面大小等 双击单片机芯片,出现对话框

双击单片机芯片,出现对话框 此处导入同文件夹下的.hex文件 点击运行或者停止即可观察实验室现象。 二、如何使用Keil uVision4与Proteus联调。 打开Keil uVision4 。如下图所示。

1、菜单栏的project菜单下新建一个工程。 2、保存工程名称后,出现如下菜单。

选择Atmel下的AT89C51,点击OK后在跳出来的菜单后点击“否”。 3、在生成的新工程的“Target1”上点鼠标右键,菜单上选择“Option for Target Target1”。出现如下对话框。

Output框下将“Create HEX file”前打钩,使得在编译成功后能生成.hex文件,用于在Proteus中作仿真,也是用于烧录的。 Debug框将“Use:Proteus VSM Simulator”选择,如下图显示: 注意,在设置“debug”前要将keil与Proteus的联调软件安装好!

相关文档
最新文档