相關(guān)元件pdf下載:at89c2051 ne555 74ls93 程序運(yùn)行監(jiān)控系統(tǒng):(1)防止程序進(jìn)入死循環(huán)。為了提高系統(tǒng)的抗干擾性,防止程序進(jìn)入死循環(huán),系統(tǒng)采用計(jì)數(shù)器構(gòu)成的watchdog電路。將555接成一個(gè)多諧振蕩器,周期為t0,將74ls93接成16進(jìn)制計(jì)數(shù)器,當(dāng)數(shù)到第8個(gè)脈沖時(shí),qd端變成高電平,單片機(jī)用p3.7輸出清零脈沖,只要每次清零脈沖的時(shí)間間隔短于8個(gè)脈沖周期,計(jì)數(shù)器就永遠(yuǎn)計(jì)不到8,qd端保持低電平。當(dāng)cpu受干擾而掉入死循環(huán)時(shí),就不能送出復(fù)位脈沖了,計(jì)數(shù)器很快數(shù)到8,qd端立即變?yōu)楦唠娖?,?jīng)過微分電路c2、r3輸出一個(gè)正脈沖,使cpu復(fù)位。該電路cpu有上電復(fù)位(c1、r1)、人工復(fù)位(ka、r2、r3)和watchdog復(fù)位(c2、r3)3個(gè)復(fù)位信號(hào)。通過或門后加到reset端,74ls93的清零信號(hào)為高電平,為防止cpu掉人死循環(huán)前將p3.7變?yōu)楦唠娖?,使watchdog失效,故在p3.7和計(jì)數(shù)器的清零端之間加一個(gè)微分隔離電路。(2) 顯示部分。系統(tǒng)選用4只七段共陽led數(shù)碼管、9015三極管和電阻等組成顯示電路。系統(tǒng)檢測(cè)信號(hào)經(jīng)at89c2051單片機(jī)處理后通過p1口直接驅(qū)動(dòng)led數(shù)碼管,led顯示已蓋章的證件數(shù)目。另外,選用一個(gè)紅色發(fā)光二極管作為電源指示燈。(3)軟件設(shè)計(jì)。系統(tǒng)軟件采用匯編語言編制,包括主程序和中斷巡回檢測(cè)子程序、動(dòng)態(tài)顯示子程序。主程序的功能是完成系統(tǒng)自檢、系統(tǒng)初始化。系統(tǒng)初始化包括硬件初始化和軟件初始化,后者包括對(duì)中斷的安排、系統(tǒng)時(shí)鐘的初始化、堆棧的設(shè)置、狀態(tài)變量的初始化等。中斷巡回檢測(cè)程序如下圖所示。由于單片機(jī)系統(tǒng)工作在電磁鐵的強(qiáng)磁場附近區(qū)域,承受強(qiáng)大的干擾,系統(tǒng)除了應(yīng)用watchdog監(jiān)控系統(tǒng)外,還采用了軟件抗干擾陷阱技術(shù),當(dāng)cpu受到干擾后,往往將一些操作數(shù)當(dāng)作指令碼來執(zhí)行,引起程序混亂。這時(shí)首先要盡快將程序納入正軌(執(zhí)行真正的指令系列)。為了去掉彈飛的程序自動(dòng)形成的死循環(huán),系統(tǒng)設(shè)立了軟件陷阱,將其安排在程序區(qū)、表格、未使用的rom區(qū)、未使用的中斷向量區(qū)。由于軟件陷阱都安排在正常程序執(zhí)行不到的區(qū)域,故不會(huì)影響程序的執(zhí)行效率。