Keil-C51-基本使用方法 (1) 。。。。2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
、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、编译(汇编)文件
选择主菜单栏中的“工程”,在下拉菜单中选中“重建
所有目标文件”,这时输出窗口出现源程序的编译结果,如图7所示。如果编译出错,将提示错误ERROR(S)的类型和行号。
图7 编译文件
5、检查并修改源程序文件中的错误
我们可以根据输出窗口的提示重新修改源程序,直至编译通过为止,编译通过后将输出一个以HEX为后缀名的目标文件,如my-test.HEX。
6、软件模拟仿真调试
在主菜单中打开“除错”界面,点击“开/关DEBUG”,出现2K代码限制的提示窗口后点确定,这时进入软件模拟仿真调试界面(图3-8)。点击“除错”栏,可看到下拉菜单中的“单步到之外”快捷键为F10,按一下F10,程序的光标箭头往下移一行。打开“外围设备”栏,在其下拉菜单中
选“I/O-Ports>Port0”、“I/O-Ports>Port1”、“I/O-Ports>Port2”、“I/O-Ports>Port3”,将四个输出窗口全部打开(图9)。鼠标在程序的光标箭头上点一下,随后继续按动F10,可发现Port0~3依次变为低电平(打勾消失),再按动F10,同时注意观察左边寄存器窗口中的Sec(时间)数值,可发现,Port0~3输出低电平到高电平的时间间隔约为0.5秒,反复循环。仿真调试通过后,关闭Keil C51开发环境。
图3-8 软件模拟仿真调试界面
图9 打开四个输出窗口
二、Keil 程序调试窗口
1、程序调试时的常用窗口
Keil软件在调试程序时提供了多个窗口,主要包括输出窗口(Output Windows)、观察窗口(Watch&Call Statck W indows)、存储器窗口(Memory Window)、反汇编窗口(Dis sambly Window)串行窗口(Serial Window)等。进入调试模式后,可以通过菜单View下的相应命令打开或关闭这些窗口。
图1是输出窗口、观察窗口和存储器窗口,各窗口的大小可以使用鼠标调整。进入调试程序后,输出窗口自动切换到
Command页。该页用于输入调试命令和输出调试信息。
图10 输出窗口、观察窗口和存储器窗口
2、存储器窗口
存储器窗口中可以显示系统中各种内存中的值,通过在A ddress后的编缉框内输入“字母:数字”即可显示相应内存值,其中字母可以是C、D、I、X,分别代表代码存储空间、直接寻址的片内存储空间、间接寻址的片内存储空间、扩展的外部RAM空间,数字代表想要查看的地址。例如输入D:0即可观察到地址0开始的片内RAM单元值、键入C:0即可显示从0开始的ROM单元中的值,即查看程序的二进制代码。该窗口的显示值可以以各种形式显示,如十进制、十六进制、字符型等,改变显示方式的方法是点鼠标右键,在弹出的快捷菜单中选择,该菜单用分隔条分成三部份,其中第一部份与第二部份的三个选项为同一级别,选中第一部份的任一选项,内容将以整数形式显示,而选中第二部份的Ascii项则将以字符型式显示,选中Float项将相邻四字节组成的浮点数形式显示、选中Double项则将相邻8字节组成双精度形式显示。第一部份又有多个选择项,其中Decimal项是一个开关,如果选中该项,则窗口中的值将以十进制的形式显示,否则按默认的十六进制方式显示。Unsigned和Signed后分别有三个选项:Char、Int、Long,分别代表以单字节方式显示、将相邻双字节组成整型数方式显示、将相邻四字节组成长整型方式显示,而Unsigned和Signed则分别代表无符号形式和有符号形式,究竟从哪一个单元开始的相邻单元则与你的设置有关,以整型为例,如果你输入的是I:0,那么00H和01H单元的内容将会组成一个整型数,而如果你输入的是I:1,01H和02H单元的内容全组成一个整型数,以此类推。有关数据格式与C语言规定相同,请参考C语言书籍,默认以无符号单字节方式显示。第三部份的Modify Memory at X:xx用于更改鼠标处的内存单元值,选中该项即出现如图12所示的对话框,可以在对话框内输入要修改的内容。