程序運行監控系統: (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區、未使用的中斷向量區。由于軟件陷阱都安排在正常程序執行不到的區域,故不會影響程序的執行效率。 |