电路中设计了键盘输入人机接口S1和S2。S1为输入功能键,S2为系统启动键。S1有两个功能:汽车汽缸数选择功能和汽缸数复位功能。按键S1与 89C52的P1.2相连,每按一次,缸数加1。选定缸数后,按下与P1.3相连的测试按键S2即开始测试,为减少按键设计,任何状态下,只要长按S1键就可立刻回到初始状态,缸数选择步骤重新选择缸数。
显示模块设计
在实际测量中,由于角度值以度为单位,不会超过百位,且精确到十分位,因此用4个数码管LED即可显示一路汽缸的点火闭合角,级联后可显示多路多缸的点火闭合角。本系统采用串行工作方式,使用4路LED数码管进行显示。
89C52 的数据串行输入到显示模块。移位时钟脉冲CLOCK和清零信号CLEAR均由软件控制。显示模块中采用了TTL单向8位移位寄存器,可实现串行输入并行输出,直接驱动共阴极八段LED数码管。此外,使用89C52的3个I/O引脚连接发光二极管L4~L6进行工作时的状态显示。当L4点亮时,表示当前正在显示的是闭合角角度,当L5点亮时,表示当前正在显示的是分火角角度。当测试的汽缸数大于4缸时,L6将点亮作为提示,如图4所示。
初始化时,按S1、LED数码管显示需要测试的气缸数。按S2后进入工作状态,以4缸发动机为例,在每一轮的显示中,4路LED显示模块先同时显示4缸闭合角的角度,同时L4点亮,持续3秒钟后换成L5点亮,LED板显示分火角的角度。为提高七段数码管的利用率,本设计针对缸数较多的发动机,采用了角度值翻页显示的方法。例如8缸发动机仍可以只采用4路LED显示模块,第一轮显示的只是前4缸的角度值,第二轮才显示后4缸的角度值,当显示的是后4缸角度时,L6会点亮作为提示。
软件设计
点火信号经过一定的预处理后传送给89C52单片机,完成测量、计算和相应显示。主程序的软件流程图如图5所示。软件设计主要包括缸数选择、计数器计数测量、中断服务、角度计算和显示等模块。
缸数选择模块程序设计
测试仪的面板上设有缸数选择按键S1,每按一次,缸数加1。选定缸数后,按下按键S2即开始测试。此外,程序中设有多处对按键S2的查询,如果在测试仪工作过程中要重新选择缸数,可以随时按下S2不松开,时间稍长就一定会被查询到,程序会重新进入缸数选择阶段。
计数器计数与中断服务程序设计
当转速超出测试仪标定的范围时,将产生计数器0或1溢出中断,此时LED显示"E",意为"ERROR",只需实时调整转速就可以重新进入计数程序,开始测量。
角度显示程序设计
在计算出闭合角或分火角的角度值后,通过译码程序将二进制形式的角度值转换成BCD码暂存在累加器中,累加器将角度数据串行传输至74LS164,然后送到八段数码管以显示当前BCD编码的十进制角度值。
结语
本文在SUPERIMAGE-3000开发环境下完成基于89C52的汽车点火性能测试仪的硬件和软件开发,实验数据和装车测试结果均稳定可靠、精度达标,可有效地作为分析发动机分电器和点火器质量的指标,对于调整高效的点火正时和点火提前角具有重要意义。