利用简单工具对单片机硬件调试的方法

在单片机开发过程中 , 从硬件设计到软件设计几乎是开发者针对本系统特点亲自完成的 。这样虽然可以降低系统成本 , 提高系统的适应性 , 但是每个系统的调试占去了总开发时间的2/3 , 可见调试的工作量比较大 。单片机系统的硬件调试和软件调试是不能分开的 , 许多硬件错误是在软件调试中被发现和纠正的 。但通常是先排除明显的硬件故障以后 , 再和软件结合起来调试以进一步排除故障 。可见硬件的调试是基础 , 如果硬件调试不通过 , 软件设计则是无从做起 。本文结合作者在单片机开发过程中体会 , 讨论硬件调试的技巧 。
当硬件设计从布线到焊接安装完成之后 , 就开始进入硬件调试阶段 , 调试大体分为以下几步 。
1 硬件静态的调试
【利用简单工具对单片机硬件调试的方法】1.1排除逻辑故障
这类故障往往由于设计和加工制板过程中工艺性错误所造成的 。主要包括错线、开路、短路 。排除的方法是首先将加工的印制板认真对照原理图 , 看两者是否一致 。应特别注意电源系统检查 , 以防止电源短路和极性错误 , 并重点检查系统总线(地址总线、数据总线和控制总线)是否存在相互之间短路或与其它信号线路短路 。必要时利用数字万用表的短路测试功能 , 可以缩短排错时间 。
1.2排除元器件失效
造成这类错误的原因有两个:一个是元器件买来时就已坏了;另一个是由于安装错误 , 造成器件烧坏 。可以采取检查元器件与设计要求的型号、规格和安装是否一致 。在保证安装无误后 , 用替换方法排除错误 。
1.3排除电源故障
在通电前 , 一定要检查电源电压的幅值和极性 , 否则很容易造成集成块损坏 。加电后检查各插件上引脚的电位 , 一般先检查VCC与GND之间电位 , 若在5V~4.8V之间属正常 。若有高压 , 联机仿真器调试时 , 将会损坏仿真器等 , 有时会使应用系统中的集成块发热损坏 。
2 联机仿真调试
联机仿真必须借助仿真开发装置、示波器、万用表等工具 。这些工具是单片机开发的最基本工具 。
信号线是联络8031和外部器件的纽带 , 如果信号线连结错误或时序不对 , 那么都会造成对外围电路读写错误 。51系列单片机的信号线大体分为读、写信号线、片选信号线、时钟信号线、外部程序存贮器读选通信号(PSEN)、地址锁存信号(ALE)、复位信号等几大类 。这些信号大多属于脉冲信号 , 对于脉冲信号借助示波器(这里指通用示波器)用常规方法很难观测到 , 必须采取一定措施才能观测到 。应该利用软件编程的方法来实现 。例如对片选信号 , 运行下面的小程序就可以检测出译码片选信号是否正常 。
MAIN:MOVDPTR , #DPTR
;将地址送入DPTR
MOVXA , @DPTR
;将译码地址外RAM中的内容送入ACC
NOP;适当延时
SJMPMAIN;循环
执行程序后 , 就可以利用示波器观察芯片的片选信号引出脚(用示波器扫描时间为1μs/每格档) , 这时应看到周期为数微秒的负脉冲波形 , 若看不到则说明译码信号有错误 。
对于电平类信号 , 观测起来就比较容易 。例如对复位信号观测就可以直接利用示波器 , 当按下复位键时 , 可以看到8031的复位引脚将变为高电平;一旦松开 , 电平将变低 。
总而言之 , 对于脉冲触发类的信号我们要用软件来配合 , 并要把程序编为死循环 , 再利用示波器观察;对于电平类触发信号 , 可以直接用示波器观察 。
下面结合在自动配料控制系统中键盘、显示部分的调试过程来加以说明 。本系统中的键盘、显示部分都是由并行口芯片8155扩展而成的 。8155属于可编程器件 , 因而很难划分硬件和软件 , 往往在调试中即使电路安装正确没有一定的指令去指挥它工作 , 也是无法发现硬件的故障 。因此要使用一些简单的调试程序来确定硬件的组装是否正确、功能是否完整 。在本系统中采取了先对显示器调试 , 再对键盘调试 。
(1)显示器部分调试为了使调试顺利进行 , 首先将8155与LED显示分离 , 这样就可以用静态方法先测试LED显示 , 分别用规定的电平加至控制数码管段和位显示的引脚 , 看数码管显示是否与理论上一致 。不一致 , 一般为LED显示器接触不良所致 , 必须找出故障 , 排除后再检测8155电路工作是否正常 。对8155应进行编程调试时 , 分为两个步骤:第一 , 对其进行初始化(即写入命令控制字 , 最好定义为输出方式)后 , 分别向PA、PB、PC三个口送入#0FFH , 这时可以利用万用表测试各口的位电压为3.8V左右 , 若送入#00H , 这时各口的位电压应为0.03V;第二 , 将8155与LED结合起来 , 借助开发机 , 通过编制程序(最好采用“8”字循环程序)进行调试 。若调试通过后 , 就可以编制应用程序了 。
(2)键盘调试一般显示器调试通过后 , 键盘调试就比较简单 , 完全可以借助于显示器 , 利用程序进行调试 。利用开发装置对程序进行设置断点 , 通过断点可以检查程序在断点前后的键值变化 , 这样可知键盘工作是否正常 。
以上讨论了借助简单工具对单片机硬件调试的方法 , 这些方法如果利用得好 , 就可以大大缩短单片机的开发周期 。

    推荐阅读