第5章 系统调试
系统调试主要用到 Keil 和 Protues 两大软件,Keil 用于编程,Protues可以和 Keil 联调,可以直观的看到程序效果。
5.1 软件系统调试
Keil C51 是美国 Keil Software 公司出品的51系列兼容单片机C语言软件开发系统,Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,理解起来比较容易。在开发大型软件时,高级语言的优势更加明显。
与汇编比较起来,C语言在结构性、可维护性、可读性、功能上等方面的优势比较明显,所以学习和使用比较容易。用过汇编语言之后再使用C语言来,就会有更深的体会, Keil C51提供大量的库函数与功能强的调试工具,全 Windows 界面。
本设计的程序是用C语言编写的,用 Keil uVision4编译软件进行编译。将源文件:多路温度巡检系统设计.c进行编译,Keil作为编译的程序,当编译成功后可以用自带的仿真功能仿真,Keil编译成功如图5-1所示。
图5-1 Keil 编译成功
7 2
在进行程序编译完成之后,我们将对其生成多路温度巡检系统.hex文件,具体操作如图5-2所示。
图5-2生成.hex文件
5.2 硬件系统仿真调试
Protues 软件是英国 Labcenter electronics 公司出版的 EDA 工具软件。它不仅具有EDA软件的仿真功能,还具有仿真单片机以及外围器件。虽然目前国内推广刚起步,但已受到单片机喜爱者,以及致力于单片机开发的科技工作者的青睐。Proteus 是世界上比较著名的EDA软件仿真工具,从原理图的布置、代码的调试到单片机以及外围电路的仿真,可以更快的切换到 PCB的设计,操作简单。
它是目前世界上可以将电路、PCB的设计、虚拟模型集合在一起的仿真软件,可以使用8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086 和 MSP430 等处理器处理,持续增加其他系列处理器模型。
先用 Protues软件画好仿真原路图,然后后将多路温度巡检系统.hex文件加载到单片机进行调试,然后开始仿真,Protues 原理图如图5-3所示。
在本文中选择了对第一路,第三路,第五路,第七路的温度从100℃到200℃随机选取几组温度值,进行了抽样测量。
28
图5-3 Protues 原理图
当按下S1按键时,系统进行8路巡检,当两位数码管显示01时,按下S2按键时,即对第一路温度进行定点检测,四位数码管显示温度为137.0℃。
图5-4第一路温度显示
9 2
当按下S1按键时,系统进行8路巡检,当两位数码管显示03时,按下S2按键时,即对第三路温度进行定点检测,四位数码管显示温度为142.2℃。
图5-5第三路温度显示
当按下S1按键时,系统进行8路巡检,当两位数码管显示05时,按下S2按键时,即对第五路温度进行定点检测,四位数码管显示温度为158.0℃。
图5-6第五路温度显示
30
当按下S1按键时,系统进行8路巡检,当两位数码管显示07时,按下S2按键时,即对第七路温度进行定点检测,四位数码管显示温度为167.5℃。
图5-7 第七路温度显示
调试中遇到的问题及解决:一开始仿真的时候,系统不能够进行多路切换,只能够进行一路温度定点检测,通过检查程序,并且向导师请教,发现编写的程序有问题,导致了系统不能够进行多路切换,通过改写程序,再将程序生成的hex文件加载到单片机中,继续进行仿真,终于可以实现多路巡检。
5.3 实物调试
软件仿真成功,将程序烧至单片机,进行实物调试,在调试过程中遇到了一些问题,下文将进行讲述和分析。
第一个问题:仪器上电后数码管出现闪屏现象。
排查分析:由原理图可知,单片机控制数码管的显示。我们可以进行逐级排查的方法来查找问题。
排查1:检查4位数码管是共阴还是共阳。方法:用两根导线一端分别接电源的正负极,接正的导线另一端接数码管任意一位位选端,接负的导线接段码a~Dp 中的任意一端发现数码管不亮,相反接法对应段发光,说明管子是共阴管。由此得出数码管是符合要求的。
排查2:排除数码管的嫌疑后,就只剩下单片机的原因了。首先用万用表检查单片机的P0.0~P0.7是否正常,是否有短接可能,通过检查发现单片机20号引脚(GND)
1 3