程序运行监控系统:
(1)防止程序进入死循环。为了提高系统的抗干扰性,防止程序进入死循环,系统采用计数器构成的WATCHDOG电路。将555接成一个多谐振荡器,周期为t0,将74LS93接成16进制计数器,当数到第8个脉冲时,QD端变成高电平,
单片机用P3.7输出清零脉冲,只要每次清零脉冲的时间间隔短于8个脉冲周期,计数器就永远计不到8,QD端保持低电平。当CPU受干扰而掉入死循环时,就不能送出复位脉冲了,计数器很快数到8,QD端立即变为高电平,经过微分电路C2、R3输出一个正脉冲,使CPU复位。该电路CPU有上电复位(C1、R1)、人工复位(KA、R2、R3)和WATCHDOG复位(C2、R3)3个复位信号。通过或门后加到RESET端,74LS93的清零信号为高电平,为防止CPU掉人死循环前将P3.7变为高电平,使WATCHDOG失效,故在P3.7和计数器的清零端之间加一个微分隔离电路。
(2) 显示部分。系统选用4只七段共阳LED
数码管、9015
三极管和电阻等组成显示电路。系统检测信号经AT89C2051单片机处理后通过P1口直接驱动LED数码管,LED显示已盖章的证件数目。另外,选用一个红色发光
二极管作为电源指示灯。
(3)软件设计。系统软件采用汇编语言编制,包括主程序和中断巡回检测子程序、动态显示子程序。主程序的功能是完成系统自检、系统初始化。系统初始化包括硬件初始化和软件初始化,后者包括对中断的安排、系统时钟的初始化、堆栈的设置、状态变量的初始化等。中断巡回检测程序如下图所示。
由于单片机系统工作在电磁铁的
强磁场附近区域,承受强大的干扰,系统除了应用WATCHDOG监控系统外,还采用了软件抗干扰陷阱技术,当CPU受到干扰后,往往将一些操作数当作指令码来执行,引起程序混乱。这时首先要尽快将程序纳入正轨(执行真正的指令系列)。为了去掉弹飞的程序自动形成的死循环,系统设立了软件陷阱,将其安排在程序区、表格、未使用的ROM区、未使用的中断向量区。由于软件陷阱都安排在正常程序执行不到的区域,故不会影响程序的执行效率。