您现在的位置: 首页 >> 期刊 >> 天频第三期主刊>> 在没有仿真器的情况下如何调试程序 >>正文

在没有仿真器的情况下如何调试程序

作者:李卓生 班级:03智电1班 栏目:学生制作 推荐度:★★★★★ 更新时间:2005-07-20

    在调试单片机程序时,有许多人依赖于仿真器,一旦离开了仿真器,程序调试时就感觉无从下手。但是,一套仿真系统动不动就几千元,对于我们这些还在校读书的学生来说,只能是可望不可及。其实对内部有 FLASH 存贮器的单片机,不要仿真器也能方便快速地调试程序。以下和大家分享一下我在这方面的经验:

    一、尽量使用软件模拟仿真。现在许多单片机都提供软件模拟仿真环境,如 51 系列的可以用伟福的仿真系统,它除了能编写编译程序外,还支持高级语言和汇编语言的源代码级软件模拟调试。在模拟仿真条件下调试算法、程序流程等可以说和硬件仿真机是没有区别的;而调试延时程序、计算一段程序运行所花的时间等方面,可以说比硬件仿真器更方便,因为许多仿真器是无法提供程序运行时间等调试参数的。另外,我们也可以采用软件的单步运行、设置断点等手段,分析内存和查看单片机内所有的硬件资源的数据以及使用情况。

    二、利用 LCD 显示器。通常,我们在开发一些小项目的时候,一般会有很 I/O 用不着,那么,我们就可以利用这些多余的 I/O 接上个 LCD 显示器。这些 LCD 显示器一般占用 11 个 I/O ,由于它采用静态显示方式,因此对系统时间占用较小,不会对系统运行造成太大的影响。以一个 1602 的字符型显示器为例,它可以显示 32 个字符,以 16 进制的方式可以显示 16 个字节的数据。这样,我们就可以把 MCU 内的状态和一些重要数据显示出来,从而判断 MCU 的运行状况,以便修改程序。另外,如果系统最终使用如 89C 2051 这些较少 I/O 的单片机,那么在调阶段,我们可以选同一系列 I/O 较多的单片机,如 89C 51 。

    三、善用目标板上的硬件资源   。在许多系统目标板上均有 LED 、数码管、蜂鸣器、 RS232 等附件和接口,其实利用好这些附件接口,也能很方便地调试程序。   我们使用仿真器的目的是要观察单片机内部的状态和数据,利用这些附件和 RS232 接口,完全可以观察到单片机内部的状态。在需要观察单片机内部状态时,可以在程序的适当位置加入少部分代码,把 MCU 的内部状态和数据通过 LED 、数码管等显示出来。在有 RS232 通信接口的应用中,可以直接将需要观察的 MCU 内部状态和数据送到电脑,在电脑上用串口调试器等一些超级终端将数据显示出来。利用 RS232 发送数据的方法比利用 LCD 显示的方法更好,因为它能显示更多的数据,而且只占用2个 I/O ,在系统剩余 I/O 较少的情况下,这种方法最适合。但如果系统要占用 RS232 接口,那么调试时就不能使用了。

    我们在调试程序的时候,只要充分利用板上的各种资源,把系统内的状态和数据显示出来,逐一分析,排除问题,这样,即使没有仿真器的情况下,调试程序也不是一件困难的事情。

文章录入:xin 责任编辑:xin
Copyright & copy; 2005-2006 All Rights Reserved
农工商学院天频编辑部 版权所有
Tel:020-85233397 E-mail:tianpin16@163.com