这里特别说明一下,本章的讲解的重点是Keil软件的使用,因此,我们直接在“main.c”文件中输入“实验2-1-1:点灯实验”的代码,至于代码的编写和原理在后续的章节会讲解的。
图1:3种编译方式
我们可以看到,Keil C51的编译按钮共有3个,从左到右分别是: Translate,Build,Rebuild三个编译按钮,他们的区别如下:
通常,我们用的是Build和Rebuild。编译后,注意观察信息窗口输出的信息,若输出信息提示无错误表示编译成功。
图2:编译信息
编译成功后会生成HEX文件“led_blinky.hex”,HEX文件位于工程的“Project\Objects”文件夹。有了HEX文件,我们即可使用STC-ISP软件将HEX文件烧写到开发板中运行。
程序烧写的步骤包括配置STC-ISP软件参数、打开HEX文件和烧写,详细流程如下。
打开STC-ISP软件,主要设置项目如下图所示。
图3:配置STC-ISP软件参数
这里要根据实际使用的单片机型号选择,如开发板主控单片机是STC8A8K64D4,应选择:STC8A8K64D4;如开发板主控单片机是STC8A8K48D4,应选择:STC8A8K48D4。
选择开发板USB转串口枚举的COM口,可以在电脑的设备管理器中查看COM口端口号,这一点在《第二章:搭建开发环境》中的“安装USB转串口驱动”小节讲过,不清楚如何查看COM口端口号的读者可以参看这一节。
本教程配套的例子使用的时钟源均为片内时钟,频率为24MHz,因此IRC频率应设置为24MHz,否则,程序下载后无法正常运行。
STC8A8K64D4单片机片内集成了复位电路,用户可以通过此设置项选择使用片内复位或者外部复位,使用片内复位时,无需搭建外部复位电路。
勾选后,每次点击“下载/编程”按钮,STC-ISP软件会重新读取选定的HEX文件。这一条在开发的过程中一定要勾选,否则,当我们重新编译程序后,生产的HEX文件内容已经改变,但是下载时仍然下载的是STC-ISP软件缓存的HEX文件,而不是重新编译生产的HEX文件。
如下图所示,点击“打开程序文件”按钮,在弹出的窗口中导航到HEX文件目录,选中HEX文件后打开即可。
图4:打开待下载的HEX文件
开发板支持自动冷启动下载和手动冷启动下载,可通过J4端子的跳线切换这2种下载方式,开发板出厂默认设置的是自动冷启动下载。
通过开发板上的J4端子将下载方式设置为自动冷启动,之后点击STC-ISP软件上的“下载/编程”按钮即可启动下载。下载完成后,信息窗口会提示下载成功与否,如下图所示。
图5:自动下载操作流程
下载成功后,观察开发板,会看到指示灯D3闪烁。
手动冷启动下载需要我们在下载的时候按一下冷启动按键,具体步骤如下:
点击STC-ISP软件上的“下载/编程”按钮,点击后,STC-ISP软件开始检测单片机,,这时,我们需要按一下开发板上的冷启动下载按键S2,启动下载。下载完成后,信息窗口会提示下载成功与否,如下图所示。
图6:手动下载操作流程
下载成功后,观察开发板,会看到指示灯D3闪烁。
仿真调试对于开发人员来说,是一扇通向嵌入式系统内部的窗户。通过仿真,开发人员可以单步执行程序、观察程序运行结果与中间值,从而可以大大提高单片机的编程效率和效果。
STC8A8K64D4系列单片机仿真时需要分别对Keil C51和STC-ISP软件进行配置,详细的步骤如下。
图7:Keil C51中的配置
如上图所示,Keil C51中需要配置的项目如下:
设置完成后,点击“OK”按钮保存设置。
STC-ISP软件中需要将STC8A8K64D4设置为仿真芯片,如下图所示。
图8:设置STC8A8K64D4为仿真芯片
完成上述的设置后,点击Keil C51中的仿真按钮即可进入仿真界面。
图9:点击仿真按钮,进入仿真
仿真界面如下,因为之前我们勾选了Run to main():勾选后,仿真时,程序会自动运行到main()函数。
图10:仿真界面
仿真时,常用的运行按钮如下图所示,通过这些按钮,我们可以单步、全速运行或者复位程序。
图11:仿真常用的运行按钮
上图中,1~4为单步执行按钮,他们的作用如下:
按钮5和按钮6的作用如下:
仿真调试时,仅仅依靠单步执行显然是不够的。当程序代码比较多,我们需要观察程序中某条语句或者某段代码的执行情况时,一种更方便的方法是在待观察的地方设置断点,当程序运行到断点处时会自动暂停,这样分析问题就会方便很多。
Keil C51中设置断点相关的按钮如下图所示。
图12:设置断点相关的按钮