STC单片机原理及应用:从器件、汇编、C到操作系统的分析和设计(立体化教程)(第2版)
上QQ阅读APP看书,第一时间看更新

3.3 KeilμVision基本开发流程的实现

本节将通过一个简单的C语言程序,对C语言程序框架,以及开发流程进行详细说明。内容包括:建立新的设计工程、添加新的C语言文件、设计建立、下载程序到目标系统、硬件在线调试。

3.3.1 建立新的设计工程

本节将建立新的设计工程,建立新设计工程的步骤主要包括:

(1)打开μVision5集成开发环境。

(2)在μVision5集成开发环境主界面主菜单下,选择Project→NewμVision Project…。

(3)出现Create New Project对话框界面。选择并定位到合适的路径,然后在文件名右侧的文本框中输入top。

注:①表示该工程的名字是top.uvproj。

②可在本书所提供资料的\stc_example\例子3-1目录下,在KeilμVision5集成开发环境下打开该设计。

(4)单击OK按钮。

(5)出现Select a CPU Data Base File对话框界面。在该界面中的下拉框中,选择STC MCU Database选项。

(6)单击OK按钮。

(7)出现Select Device for Target‘Target 1’...对话框界面,如图3.11所示。在该界面上方的下拉框中,选择STC MCU Database。然后,在下面的左侧窗口中找到并展开STC前面的“+”。可以看到以列表的形式给出了可用的STC单片机型号。在展开项中,找到并选择STC15W4K32S4。

图3.11 器件选择界面

注:①全书涉及的是STC公司的IAP15W4K58S4单片机。该单片机属于STC15W4K32S4系列。

②当使用STC8系列单片机时,根据使用的硬件平台选择所对应的单片机型号即可。

(8)单击OK按钮。

(9)出现Copy‘STARTUP.A51’to Project Folder and Add File to Project?对话框界面。该界面提示是否在当前设计工程中添加STARTUP.A51文件。

(10)单击“否(N)”按钮。

(11)在主界面左侧窗口中,选择Project标签。在该标签窗口下,给出了工程信息,如图3.12所示。

图3.12 新建工程界面

其中,顶层文件夹名字为Target1。在该文件夹下,存在一个Source Group 1子目录。

3.3.2 添加新的C语言文件

本节将为当前工程添加新的C语言文件。添加C语言文件的步骤主要包括:

(1)在图3.12的Project窗口界面下,选择Source Group 1,右击,出现浮动菜单。在浮动菜单内,选择Add New Item to Group‘Source Group 1’选项。

(2)出现Add New Item to Group‘Source Group 1’对话框界面,如图3.13所示,按下面设置参数:

图3.13 选择C语言文件模板

①在该界面左侧窗口中,选中C File(.c)。

②在Name右侧的文本框中输入main。

注:①该C语言的文件名称为main.c。

②如果使用汇编语言编程,则选择Asm File(.s)。

(3)单击Add按钮。

(4)在图3.12所示的Project窗口中,在Source Group 1子目录下添加了名字为main.c的C语言文件。

(5)在右侧窗口中,自动打开了main.c文件。

(6)输入C程序代码,如代码清单3-1所示。

代码清单3-1 main.c文件

(7)保存设计代码。

3.3.3 设计建立

本节将对设计建立(Build)参数进行设置,并实现对设计的建立过程,其步骤主要包括:

(1)在如图3.12所示的窗口中,选中Target 1文件夹,并右击,出现浮动菜单。在浮动菜单内,选中Options for Target‘Target 1’...选项。

(2)出现Options for Target‘Target 1’对话框界面。在该对话框界面下,选中Output选项卡,如图3.14所示。在该选项卡界面下,选中Create HEX File的复选框。

图3.14 Output标签页下的选项

注:该设置用于说明在建立过程结束后,会生成可用于编程STC单片机的十六进制HEX文件。

(3)单击OK按钮,退出目标选项对话框界面。

(4)在主界面主菜单下,选择Project→Build target。开始对设计进行建立的过程。在下面的Build Output窗口中给出了建立过程的信息,如图3.15所示。从该窗口输出的信息可知,建立过程包括编译(compile)、链接(link),并且最终生成top.hex文件。

图3.15 建立过程中输出的信息

3.3.4 下载程序到目标系统

本节将使用STC公司专用的下载工具STC-ISP,将top.hex文件下载到单片机的片内程序存储器中,主要步骤包括:

(1)打开STC-ISP(V6.86C)软件工具。

(2)通过USB电缆将STC单片机硬件开发平台和PC连接。

(3)单击“打开程序”按钮,定位到\stc_example\例子3-1\Objects目录下,选择top.hex文件。

(4)单击STC-ISP软件左下方的下载/编程按钮。

(5)操作目标系统的上电按钮,使得单片机系统先断电,然后再上电。

(6)STC-ISP工具自动将top.hex文件下载到单片机IAP15W4K58S4的程序存储器中。

思考与练习3-4:观察开发平台上LED的状态,验证设计是否成功。

3.3.5 硬件在线调试

硬件在线调试(硬件仿真)是IAP15W4K58S4提供的一个重要的功能,通过硬件在线调试能够发现软件仿真时不能探测到的一些更深层次的设计问题。比如:当程序不能响应外部中断的时候,可能有以下几种情况,全局中断没有使能;对应的外部中断没有使能;中断服务程序代码有问题(没有进入中断服务程序;没有从中断服务程序正常返回),这些可能性只有通过硬件在线调试功能才能确认。因此,软件仿真绝不能代替硬件在线调试。

本节将通过该设计实例,介绍硬件在线调试的基本设计流程,主要步骤包括:

(1)保持定位在刚才的top.hex文件目录下,并且使STC单片机开发平台通过USB正确连接到PC的USB接口。

(2)打开STC-ISP软件,在该软件工具右侧找到并打开Keil仿真设置选项卡,如图3.16所示。在该选项卡设置界面中,单击“将IAP15W4K58S4设置为仿真芯片(宽压系统,支持USB下载)”按钮。

图3.16 Keil仿真设置入口

(3)给STC单片机开发平台执行先断电,然后再上电的操作。将top.hex文件成功下载到STC单片机中。

(4)在KeilμVision集成开发环境的project窗口中,单击Target,出现浮动菜单。在浮动菜单内,选择Options for Target‘Target 1’...选项。

(5)在Options for Target‘Target 1’对话框界面中,单击Debug标签,如图3.17所示。在该标签界面中,将默认选中Use Simulator前面的复选框切换到选择Use:的复选框。并且在Use:的下拉框中选择STC Monitor-51 Driver。

图3.17 Keil仿真目标设置

注:Use Simulator用于软件仿真(脱机仿真),而Use:STC Monitor-51 Driver用于硬件仿真(在线调试)。

(6)单击下拉框右侧的Settings按钮。出现Target Setup对话框界面。特别要注意,在该界面中所选择的COM Port应该与STC-ISP软件中所检测到的串口号相同,在此处使用的COM8设置,需要按照自己PC的串口号进行,Baudrate(波特率)使用默认设置115200。

(7)单击OK按钮,退出Target Setup对话框界面。

(8)单击OK按钮,退出Options for Target‘Target 1’对话框界面。

(9)打开main.c文件,单击第9行和第11行所对应的灰色区域,为第9行和第11行代码设置断点。

(10)在KeilμVision集成开发环境主界面主菜单下,选择Debug→Start/Stop Debug Session选项,进入调试器界面。

(11)在调试界面内,按F5键,进行硬件断点调试(见图3.18)。此时可以观察STC硬件开发平台上LED灯的变化情况。

图3.18 在C源文件上设置断点

(12)当调试完成后,通过再次选择Debug→Start/Stop Debug Session选项,退出调试器界面。

思考与练习3-5:硬件在线调试体现软件和硬件协同调试的重要思想,通过尝试执行纯软件仿真,比较并体会两者的联系和区别。