我們采用AT89C52單片機(jī)設(shè)計(jì)了集成芯片測試系統(tǒng)。該測試系統(tǒng)能夠?qū)崿F(xiàn)對高校實(shí)驗(yàn)室中常用的TTL、CMOS系列芯片及一些常用按鍵開關(guān)的功能檢測,同時(shí)通過RS232串行口與PC機(jī)相連,可以在PC機(jī)上直接對測試系統(tǒng)進(jìn)行操作。
1 系統(tǒng)組成框圖
該測試儀的硬件電路由AT89C52單片機(jī),并行擴(kuò)展接口8155,顯示驅(qū)動(dòng),鍵盤輸入,看門狗和復(fù)位電路以及串行接口電路組成。
按照芯片測試插座旁邊的指向,插入待測的數(shù)字芯片或按鍵;通過鍵盤輸入指令或數(shù)字,單片機(jī)經(jīng)過鍵盤掃描從8155讀回鍵值,根據(jù)鍵值執(zhí)行相應(yīng)的子程序。假設(shè)輸入測試命令鍵,單片機(jī)將調(diào)用測試子程序,并將測試結(jié)果送到顯示器上顯示(“good”or“bad”);假設(shè)輸入數(shù)字鍵,單片機(jī)會(huì)自動(dòng)將輸入的數(shù)字顯示到顯示器上;假設(shè)輸入其它命令鍵,單片機(jī)將調(diào)用相應(yīng)的功能子程序,執(zhí)行相應(yīng)的命令。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 單片機(jī)
單片機(jī)采用美國ATMEL公司生產(chǎn)的AT89C52單片機(jī)。該芯片不僅具有MCS-51系列單片機(jī)的所有特性,而且片內(nèi)集有8K字節(jié)的電擦除閃速存儲(chǔ)器(Flash ROM),價(jià)格低。由于使用片內(nèi)程序存儲(chǔ)器,所以,EA/VP接高電平;AT89C52的大工作頻率為24MHz,系統(tǒng)利用單片機(jī)的內(nèi)部振蕩器加石英晶體構(gòu)成時(shí)鐘源,為了工作可靠,晶體振蕩頻率選為12MHz。
2.2 8155接口芯片
由于AT89C52片內(nèi)的輸入輸出口有限,需要加外圍接口芯片。INTEL 8155H既有RAM又有I/O口,并且可直接與MCS/51系列單片機(jī)相連接,不需要增加任何硬件邏輯。因此,本設(shè)計(jì)中,用8155的I/O口作鍵盤顯示器的并行接口電路,以便AT89C52中的P1口、P2口用作被測芯片接口。
2.3 通信接口
采用MAXIM公司的串行接口芯片MAX487將PC機(jī)和測試儀器連接起來。測試儀接收PC機(jī)的信號(hào),執(zhí)行相應(yīng)的操作后再將處理結(jié)果上傳到PC機(jī),以便在PC機(jī)上直接對測試系統(tǒng)進(jìn)行操作(見圖2)。
2.4 測試芯片接口
根據(jù)AT89C52中的P1口與P2口的特點(diǎn),本設(shè)計(jì)采用AT89C52的P1口和P2口作為測試芯片的接口,其中,P1口中的P1.7用于控制14/16管腳的電源地的轉(zhuǎn)換,P2口中的P2.7作為高8位地址控制信號(hào)。
(1)單片機(jī)與測試芯片之間加電阻
需要注意的是,在單片機(jī)與測試芯片之間需串接470Ω(或510Ω)和電阻。首先,串接電阻的目的是對AT89C52起限流保護(hù)的作用,假設(shè),P1.0輸出高電平,此時(shí),測試芯片又為非門,那么,將引起灌電流現(xiàn)象,致使P1.0口線上的電流非常大,對AT89C52有害。其次可以保證邏輯電平的正確,在連接線上串接幾百歐的電阻而不接幾千歐的電阻原因在于:假設(shè)讓p1.0的邏輯低電平,這樣,基極將是高電平,又有,p1口上的上拉電阻為3K左右,如果連接線上的電阻也取3K,那么,將使p1.0輸出邏輯高電平,此時(shí)邏輯電平是錯(cuò)誤的;如果連接的電阻為470Ω左右,p1.0口仍然能夠正確地輸出邏輯低電平,這樣就保證了邏輯電平的正確性。
(2)測試芯片從14到16管腳時(shí)電源地的轉(zhuǎn)換
因?yàn)闇y試芯片管腳從14位到16位不定,所以,存在電源地轉(zhuǎn)換的問題。本設(shè)計(jì)中p1.6管腳是被轉(zhuǎn)換 的對象,用p1.7管腳電平的高低來控制p1.6接地與否,這個(gè)電路是利用晶體三極管來實(shí)現(xiàn)的。當(dāng)SETB P1.7時(shí),P1.6接地,此時(shí)能測14管腳的芯片;當(dāng)CLR P1.7時(shí),P1.6是正常的測試位,此時(shí)能測試16管腳的芯片。所以,只要在生個(gè)芯片測試子程序中將P1.7作相應(yīng)的設(shè)置即可。
2.5 鍵盤顯示電路
本設(shè)計(jì)是采用8155并行擴(kuò)展口構(gòu)成的鍵盤、顯示電路。LED8位8段顯示器共陰極,8155 PB口提供段選碼,PA提供位選碼。鍵盤為3×7矩陣鍵盤,饜列輸出由PA口提供,行輸入由PC0~PC2提供。LED的段、位信號(hào)分別采用74LS07與74LS06驅(qū)動(dòng)。LED采用軟件譯碼動(dòng)態(tài)掃描顯示工作方式,鍵盤采用逐列掃描查詢工作方式。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件由主程序和若干子程序構(gòu)成。有顯示子程序、鍵盤掃描子程序、鍵值處理子程序和測試子程序組成。其中,測芯睡的功能鍵包括:自動(dòng)測試并顯示型號(hào)(AUTO)和測試芯片(TEST),顯然,后者速度要快得多。程序流程框圖如圖4所示。
系統(tǒng)開機(jī)后,首先執(zhí)行主程序,完成系統(tǒng)初始化工作,然后調(diào)用顯示子程序,在顯示器上給出提示符rd,告訴聽任者機(jī)器已準(zhǔn)備好,可以接收鍵盤輸入;當(dāng)顯示器上出現(xiàn)提示符rd后,立即調(diào)入鍵盤掃描子程序,此時(shí),操作者可通過鍵盤輸入數(shù)據(jù)或命令,經(jīng)鍵盤掃描后從8155讀回鍵值并進(jìn)行按鍵分析,判斷按下的鍵是數(shù)字鍵還是功能鍵,如果是數(shù)字鍵,則將與鍵號(hào)相對應(yīng)的數(shù)據(jù)送往顯示緩沖區(qū)顯示;如果是功能鍵,則轉(zhuǎn)入相應(yīng)的功能鍵處理程序,后返回到顯示程序,開機(jī)狀態(tài)一直重復(fù)這個(gè)過程。
編制軟件時(shí),在掃描鍵盤前應(yīng)熄滅顯示器,即向8155的PA口輸出顯示空白的段碼OFFH,這樣,不會(huì)因?yàn)閷︽I盤的掃描而干擾顯示器的顯示。鍵盤掃描的延時(shí)10ms消抖,既可用延時(shí)子程序?qū)崿F(xiàn),也可用DISP顯示子程序?qū)崿F(xiàn)。本設(shè)計(jì)中,顯示完五位LED所需時(shí)間為10ms以上,因此,用顯示子程序延時(shí),效果更佳。
4 抗干擾措施
使用環(huán)境存在多種干擾源,如電磁干擾、電壓波動(dòng)大等,為此,我們從硬件、軟件兩方面采取了一些措施。
(1)硬件方面:采用特殊設(shè)計(jì)的開關(guān)電源,它能適應(yīng)較寬的電壓波動(dòng),可隨瞬間浪涌沖擊;注意多級去耦,電路中每片集成電路芯片的電源引腳上均加一個(gè)0.01μF瓷片電容;應(yīng)用看門狗電路,采用看門狗集成電路MAX1232,它是MAXIM公司推出的高性能、低價(jià)格、低功耗8腳雙列直插芯片。
(2)軟件方面:配合看門狗電路,有死機(jī)攔截程序和軟件陷阱。
5 結(jié)束語
實(shí)用結(jié)果表明,該測試儀設(shè)計(jì)簡單,占用硬件資源少,有良好的人機(jī)對話功能,便于攜帶、操作、能夠滿足課程教學(xué)實(shí)驗(yàn)的要求,性能穩(wěn)定、可靠。
從長遠(yuǎn)打算,增加測試芯片的類型勢在必行。首先,從擴(kuò)展被測芯片的管腳數(shù)量來說,可以在外接8155的基礎(chǔ)上再外接8255,利用8255的三個(gè)端口來擴(kuò)展測試芯片的接口;其次,隨著測試芯片數(shù)量的增加,程序存儲(chǔ)器的容量也將相應(yīng)地增大,那時(shí),我們可以采用P2口作為高8位地址,外掛程序存儲(chǔ)器。經(jīng)過以上擴(kuò)展,該測試儀功能將更加完善。