在属性框(attributes column)中可以快速浏览断点设置情况和源程序行的位置,代码覆盖率信息可以让你区分程序中已执行和未执行的部分。
(3) 调试函数语言
uVision2中,你可以编写或使用类似C的数语言进行调试。 内部函数:如printf, memset, rand及其它功能的函数; 信号函数:模拟产生CPU的模拟信号和脉冲信号; 用户函数:扩展指令范围,合并重复动作。 (4) 变量和存储器
用户可以在编辑器中选中变呈来观察其取值。双层窗口显示,可进行以下调整: 当前函数的局部变量;
用户在两个不同watch窗口页面上的自定义变量; 堆栈调用(call stack)页面上的调用记录(树)(call tree); 不同格式的四个存储区[14]。 4.2.4 测试程序
uVision2调试器具备所有常规源极调试,符号调试特性以及历史跟踪,代码覆盖,复杂断点等功能。DDE界面和shift语言支持自动程序测试。
(1) CPU和外设模拟装置
uVision2为8051及衍生产品提供了高速CPU模拟功能和片上扩展口.在对话框内可直接观察和修改I/O值,也可以用预装的C-LIKE宏指令书写符号函数来提供动态输入。
(2) 目标监控器
uVision2含一个可配置的监控器,可测试目标器件上的软件体。监控器用uVision2的调试器直接工作,可支持代码区。它要求目标系统具备6字节堆栈空间,6KB的代码ROM和256字节Xdata RAM。
(3) MCB517/251启动工具包
在开始一项8051工程时,MCB启动工具会对你有很大帮助。每一个启动工具包括一套2K字节的开发工具和许多可快速运行的举例程序。用户可在检测8051性能的同时,查看开发工具的可行性。
22
MCB517AC板含高性能InfineonC517A单片机,它提供标准8052外围设备和A/D转换器,PWM,搜索/比较,8位数据指针,一个高速运算单元[15]。同时包含对81C90CAN控制器和代码区的支持。本次设计软件采用了C语言程序编写,并在Keil uVision2开发环境下编译、调试。 4.2.5 Keil C编译步骤
Keil uVision2 C51软件是目前功能最强大的单片机C语言集成开发环境,这里介绍简单的编译步骤。
(1) 运行Keilc51进入编辑界面,如图4.1所示。
图4.1 Keilc51编辑界面
(2) 首先进入菜单project/new project建立一个新工程,如图4.2所示。
图4.2 建立新工程
(3) 选择要保存的路径,输入工程文件的名字,如图4-3所示。
23
图4.3 保存路径
(4) 根据使用的单片机选择相应的型号,如图4.4所示。
图4.4 选择单片机型号
(5) 单击“Target 1”前面的“+”号,然后在“Source Group 1”上单击右键,弹出如图4.5所示界面加入源文件。如还没有源文件请先进入菜单File/New生成一个*.C格式的文件。
图4.5 加入源文件界面
24
(6) 进行输出文件设置,进入菜单project/options for target选择OUTPUT选项卡,勾选Crest HEX File项,如图4.6所示。
图4.6 输出文件设置
(7) 程序编写完成后进入菜单Project/Build target编译工程,如图4.7所示。生成的*.HEX文件即可作为下载程序使用[13]。
图4.7 生成文件
4.3 基于单片机的GPS软件设计思路
该GPS设计的核心部分是GPS接收模块与单片机的通讯,以及单片机将收到的信息筛选编排显示位置后送到LCD液晶显示模块显示。
在设计该软件时采用了模块化的思想,之所以采用模块化的设计思想,主要是想到了软件模块化后方便软件的调试,同时也方便了该软件的移植,在不同的硬件平台上运
25
行该软件只需要更改相应的软件模块就可以实现。该软件模块设计分为液晶模块初始化模块,GPS数据接收模块,单片机模块这三个主要模块。其程序流程图如图4.8所示。
图 4.8软件程序流程图
4.4 模块软件设计
4.4.1 液晶模块初始化模块
在该设计中所使用的是12864液晶显示模块,其初始化程序如下所示: #include \void clr_screen() {
Lcd_WriteCmd(0x34); //扩充指令操作 delay(5);
26