你了解MCS 51 应用系统的调试过程吗
扫描二维码
随时随地手机看文章
在完成应用系统的硬件组装和软件设计以后,便进入系统调试阶段。这个阶段的任务是排除样机中的硬件故 障和纠正软件中的设计错误,并解 决硬件和软件之间的不协调问题 。下面介绍几种调试方法。
一、硬件调试方法
单片机系统的硬件调试和软件调试是不能完全分开的,许多硬件错误是在软件调试中被发现和纠正的。但通常是先排除明显的硬件故障以后,再和软件结合起来调试。硬件调试方法有两种:静态调试和仿真调试。
1.静态调试
在样机加电之前,先用万用表等工具,根据硬件逻辑设计详细检查样机线路的正确性,核对元器件的型号、规格和安装是否符合要求。应特别注意电源系统的检查,以防止电源短路和极性错误。并重点检查系统总线是否存在相互之间短路或与其它信号线的短路。
第一步是加电后检查各插件上引脚的电位,一般先检查 VCC 与 GND 之间电位,若在 5V 左右属正常。若出现高压,联机仿真调试时,会损坏仿真器等,有时会使应用系统的集成块发热损坏。
第二步是在断电情况下,除 CPU 之外,插上所有元器件,仿真插头插入样机 CPU 插座,并和仿真机相连,用万用表检查连接的正确性后,准备联机仿真调试。连接图见图 8.2 。
图 8.2 应用系统连接仿真器开发系统简图
2.联机仿真调试
电路检查无误后,分别打开样机和仿真器的工作电源,启动 MBUG 进入监控状态,就 可进行联机仿真调试了。
调试的方案是:把整个应用系统按其功能分成若干模块,如系统扩展模块:输入模块、 输出模块、A/D 模块、D/A 模块等。针对不同的功能模块,编写一小段测试程序,并借助 于万用表、示波器、逻辑笔等仪器来检查硬件电路的正确性。
二、软件调试方法
软件调试可以一个模块一个模块地进行,下面给出一些常见的故障情况。
1.程序跳转错
这种错误的现象是程序运行不到指定的地方,或发生死循环,通常是由于错用了指令 或设错了标号,如:
这段程序的目的是为了延迟一段时间,由于 INC A 指令执行后的结果不影响任何标志,所以 JNCLP1 这条指令执行后总是转跳到 LP1 ,结果发生了死循环。可将 JNCLP1 改 为:CJNE A ,#00H ,LP1 。
2.程序错误
对于计算程序,经过反复测试后,才能验证它的正确性 。例如调试一个双字节十进制加法程序,该子程序的功能是将 31H 、30H 和 33H 、32H 单元 内 的 BCD 码相加 ,结果送 34H 、33H 、32H 单元。
调试这个程序时,先将加数写入 8031 的 30H ~ 33H 单元内,然后设置断点至 LOOP2,以 STRT 开始进行这个程序至断点,观察 34H~32H 的内容是否正确。若存在错误,再用单步方式从 STRT 开始逐条运行指令,并不断观察 8031 的状态变化,进一步查出错误原因。
3.动态错误
用单步、断点仿真运行命令,一般只能测试目标系统的静态功能。目标系统的动态性能要用全速仿真命令来测试,这时应选中目标机中晶振电路工作。
系统的动态性能范围很广,如控制系统的实时响应速度、显示器的亮度、定时器的精度等等。若动态性能没有达到系统设计的指标,有的是 由于元器件速度不够造成的;更多的是由于多个任务之间的关系处理不恰当引起的。
4.加电复位电路的错误
排除硬件和软件故障后,将 EPROM 和 CPU 插上目标系统,若能正常运行,应用系统的开发研制便完成。若目标机工作不正常,则主要是加电复位电路出现故障造成的。如 8031 没有被初始复位,则 PC 不是从 0000H 开始运行,故系统不会正常运行,必须及时检查加电复位电路。