环境搭建
Keil 安装[*]准备 Keil C51 的安装源文件,双击安装源文件,弹出安装的欢迎界面
[*]单机 Next 按钮,弹出 License Agreement 对话框,这里显示的是安装许可协议,需要在 "I agree to all the terms of the preceding License Agreement" 前打勾
[*]单击 Next 按钮,弹出 Foder Selection 对话框,这里可以设置安装路径,默认在 C 盘。单击 Browse 按钮,可以修改安装路径,建议路径全英文
[*]点击 Next 按钮,弹出 Customer Information 对话框,输入用户信息
[*]单击 Next 按钮,就会自动安装软件
[*]安装完成后弹出安装完成的对话框,并且出现几个选项,首次安装时可以全部不勾选
[*]单击 Finish 按钮,Keil 编程软件开发环境安装完成
Keil 界面介绍
首界面
字体修改界面
Keil新建工程
打开Keil软件
单击Project->New uVision Project,然后会出现一个新建工程的界面
选择工程路径,并给工程命名,然后保存
选择单片机型号
单片机型号选择完毕后点击OK,选择是否需要启动代码,新手建议选择是
工程就建好了,其中STARTUP.A51为启动代码
工程建好了之后就需要建立文件来写代码了
单击 File->New,新建一个文件
单击File->Save或直接单击Save按钮,可以保存文件,保存时文件命名为xx.c
这个地方必须要加上.c扩展名,如果是汇编语言写的,这个地方的扩展名是.asm,头文件就是.h
文件建立好之后就可以编写代码了
Keil编译
单击Project->Option for Target 'Target1'...
或者单击如下图标
弹出如下对话框
单击 Output 选项,选中其中的 Create HEX File 复选框,然后单击 OK 按钮
设置好以后,单击 Project -> rebuild all target files
或者点击如下图标
这样子就可以对程序进行编译了
编译完成后,在 Keil 下方的 Output 窗口会出现相应的提示
这个窗口告诉我们编译完成后的情况
其中 data = 9.0 指的是程序使用了单片机内部的256 字节 RAM 资源中的 9 个字节,code = 29 的意思是使用了 8k 代码 Flash 资源中的 29 个字节
当提示“0 Error(s),0 Warning(s)”表示程序没有错误和警告,就会出现“Creating hex file from "LED"...”,意思是从当前工程生成了一个 HEX 文件,要下载到单片机上的就是这个 HEX 文件。
到此程序就编译完毕。
程序下载
首先连接号硬件,把板子插到计算机上,打开设备管理器查看所使用的是哪个 COM 口
然后打开 STC 系列单片机的下载软件——STC-ISP
[*]选择单片机型号,现在用的单片机型号是 STC89C52RC
[*]单击“打开程序文件”,找到 .HEX 文件,单击打开
[*]选择对应的 COM 口,波特率使用默认的就可以
[*]其他选项均为默认
[*]因为 STC 单片机要冷启动下载,就是先点下载,然后再给单片机上电,所以先关闭板子上的电源开关,然后单击 Download 按钮,等待软件提示请上电后,再按下板子的电源开关,就可以将程序下载到单片机里面了
当软件显示“已加密”就表示程序下载成功了
Keil调试
选择 Keil 菜单项的 Project-> Options for Target 'Target1'...进入属性页
找到里边的Xtal(MHZ)这个位置
这是填写进行模拟时间的晶振选项,使用的板子的晶振是11.0592MHz,所以这个地方要填上11.0592
然后找到Debug这个选项卡,选择左侧的Use Simulator ,然后点击OK按钮就可以了
选择菜单项Debug->Start/Stop Debug Session ,或者单击快捷按钮
就会进入到一个新的界面
最左侧那一栏显示单片机一些寄存器的当前值和系统信息,最上边的那一栏是Keil将C语言转换成汇编的代码,下边就是写C语言的程序,调试界面包含很多子窗口,都可以通过View中的选项打开和关闭,窗口位置可以直接拖放来改变
在C语言的源代码和反汇编窗口内部都有一个黄色的箭头,这个箭头所代表的就是程序当前运行的位置,因为反汇编内的代码就由源文件编译生成的,所以它们指示的是相同的实际位置。在这个调试界面里,可以看到程序运行的过程。
在左上角的工具栏有这样三个按钮:
第一个标注RST字样的是复位,单击一下后,程序就会跑到最开始的位置运行;
右侧紧挨着的按钮是全速运行,单击一下之后,程序就会全速跑起来;
右边打叉的是停止按钮,当程序全速运行起来,可以通过单击第三个图标来让程序停止,观察程序运行到了哪里。
单击一下复位,就会发现C语言程序左侧有灰色或者绿色,有的地方还保持了原来的白色,可以在全灰色的位置双击设置断点。
有的位置可以设置断点,有道地方不可以设置断点,是因为 Keil 软件本身具备程序优化功能,如果想要在所有的代码位置都能设置断点,可以在工程选项里面把优化等级设置为0,就是告诉 Keil 不要进行优化。
在最左侧的register那个框内,有一个sec选项,这个选项显示的就是单片机运行了多少时间。单击一下复位按钮,会发现这个sec变成了0
运行到第一个断点处,时间变成了0.00042752秒
该处的优化等级是默认等级,即8,若是其他等级,时间会不一样,因为优化等级会直接影响程序的执行效率
再单击一下全速运行后,运行至第二个断点,会发现sec变成了0.16342556秒
减去第一个断点的时间,即是两个断点间程序的运行时间,也就是for循环的运行时间,即延时时间。此处延时时间是0.16299804秒,也就是差不多163毫秒
实际上,进入debug模式后,除了可以看程序运行的时间外,还可以观察各个寄存器、各个变量的数值变化情况。单击View菜单内的Watch Windows->Watch 1,可以打开变量的观察窗口
在这个窗口内,可以通过双击或者按F2键,然后输入想要观察的变量或者寄存器的名字,后边就会显示出它的数值,这个功能在调试程序中经常会用到。
来源:豆瓜网用户自行投稿发布,如果侵权,请联系站长删除
页:
[1]