摘 要 本文論述了以單片機(jī)為控制核心的電子平衡檢測(cè)儀各個(gè)接口模塊(信號(hào)采集、A/D轉(zhuǎn)換、單片機(jī)控制編程模塊)的功能及實(shí)現(xiàn)過(guò)程,并闡述了程序的流程和實(shí)現(xiàn)過(guò)程。
關(guān)鍵詞 單片機(jī) A/D轉(zhuǎn)換 電子平衡儀 檢測(cè)
汽車(chē)儀表是人和汽車(chē)的交互界面,為駕駛員提供所需的汽車(chē)運(yùn)行參數(shù)、故障、里程等信息,是每一輛汽車(chē)必不可少的部件。隨著汽車(chē)工業(yè)與電子工業(yè)的不斷結(jié)合發(fā)展,電子控制技術(shù)在現(xiàn)代汽車(chē)的儀表系統(tǒng)中得到了廣泛的應(yīng)用。車(chē)用傳感器是汽車(chē)電子設(shè)備中的重要組成部分,主要用于測(cè)量和控制系統(tǒng),其性能好壞直接影響汽車(chē)是否正常工作。在自動(dòng)測(cè)量過(guò)程或控制系統(tǒng)中,首先由傳感器感受被測(cè)量,而后將其轉(zhuǎn)換成電信號(hào),供顯示儀表指示或用以控制執(zhí)行機(jī)構(gòu)。如果傳感器不能靈敏地感受被測(cè)量,或者不能把感受到的被測(cè)量精確地轉(zhuǎn)換成電信號(hào),則其他儀表和裝置的精確度再高也無(wú)意義。
一、系統(tǒng)分析與論證
系統(tǒng)要求分別連接滑線變阻器左右兩端接線頭,從而要求系統(tǒng)分別顯示測(cè)得的阻值,然后在將測(cè)得的兩個(gè)阻值相減,得到的差值即為系統(tǒng)所要求的最后結(jié)果(結(jié)果精確到0.5‰)。如果差值的絕對(duì)值小于0.3€%R,我們說(shuō)系統(tǒng)合格,否則不合格。根據(jù)系統(tǒng)要求,此系統(tǒng)首先通過(guò)A/D轉(zhuǎn)換系統(tǒng)的A/D轉(zhuǎn)換器作為模擬量的采集和輸入,然后將數(shù)據(jù)送入51系列的單片機(jī)中進(jìn)行數(shù)據(jù)的存儲(chǔ)、處理,并通過(guò)單片機(jī)控制的LED顯示系統(tǒng)送入LED顯示管顯示。
(一)A/D轉(zhuǎn)換系統(tǒng)
A/D轉(zhuǎn)換系統(tǒng)所需用為A/D轉(zhuǎn)換器,它的作用就是把模擬量轉(zhuǎn)換成數(shù)字量,以便于計(jì)算機(jī)進(jìn)行處理。A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo):轉(zhuǎn)換時(shí)間和轉(zhuǎn)換速率,分辨率和轉(zhuǎn)換精度。同時(shí)為了適應(yīng)系統(tǒng)集成的需要,有些轉(zhuǎn)換器還將多種轉(zhuǎn)換開(kāi)關(guān)、時(shí)鐘電路、基準(zhǔn)電壓源、二/十進(jìn)制譯碼器和轉(zhuǎn)換電路集成在一個(gè)芯片內(nèi),為用戶提供了很多方便。我們可以根據(jù)A/D轉(zhuǎn)換器位數(shù)、A/D轉(zhuǎn)換器轉(zhuǎn)換速率、是否要加采樣保持器、基準(zhǔn)電壓等4個(gè)方面來(lái)選擇一個(gè)適合于各自系統(tǒng)的A/D轉(zhuǎn)換器。
(二)LED顯示系統(tǒng)
此系統(tǒng)舍棄了傳統(tǒng)的通過(guò)譯碼器來(lái)控制LED的顯示,通過(guò)單片機(jī)89C51的I/O接口,加以軟件程序上的控制,來(lái)充當(dāng)譯碼器的作用,使之控制LED的顯示。這恰恰體現(xiàn)了單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)的要求,即在系統(tǒng)設(shè)計(jì)中,應(yīng)以使用的硬件最少為原則,這樣即能減少產(chǎn)品的成本,又可以降低系統(tǒng)產(chǎn)生錯(cuò)誤的概率,取而代之的是軟件的控制,即使出現(xiàn)錯(cuò)誤,可以及時(shí)、方便的找出錯(cuò)誤原因,加以修正。此系統(tǒng)采用的是共陰極LED動(dòng)態(tài)顯示方式,既將所有位的段選線并接在一個(gè)I/O口上,共陰極端由相應(yīng)的I/O口線控制,如圖所示為一個(gè)4位LED動(dòng)態(tài)顯示電路。
(三)復(fù)位系統(tǒng)
在實(shí)際的應(yīng)用系統(tǒng)中,若有外部擴(kuò)展的I/O接口電路也需初始復(fù)位,如果它們的復(fù)位端和MCS-51的復(fù)位端相連,復(fù)位電路中的R、C參數(shù)要受到影響,這時(shí)復(fù)位電路中的R、C參數(shù)要統(tǒng)一考慮,以保證可靠的復(fù)位。如果MCS-51與外圍I/O接口電路的復(fù)位電路和復(fù)位時(shí)間不完全一致,使單片機(jī)初始化程序不能正常運(yùn)行,外圍I/O接口電路的復(fù)位也可以不和MCS-51復(fù)位端相連,僅采用獨(dú)立的上電復(fù)位電路。若RC上電復(fù)位電路接斯密特電路輸入端,斯密特電路輸出接MCS-51單片機(jī)和外圍電路復(fù)位端,則能使系統(tǒng)可靠地同步復(fù)位。一般來(lái)說(shuō),單片機(jī)的復(fù)位速度比外圍I/O接口電路快些。為保證系統(tǒng)可靠復(fù)位,在初始化程序中應(yīng)安排一定的復(fù)位延遲時(shí)間。
(四)系統(tǒng)抗干擾性
電路能夠很好的起到抗干擾性的作用,正常工作時(shí),由89C51為其定時(shí)提供觸發(fā)信號(hào),不產(chǎn)生復(fù)位;若發(fā)生錯(cuò)誤,則在距上次觸發(fā)信號(hào)1.6s后,該電路會(huì)自動(dòng)產(chǎn)生復(fù)位信號(hào),對(duì)89C51進(jìn)行復(fù)位。
二、系統(tǒng)硬件設(shè)計(jì)
根據(jù)系統(tǒng)方案分析,可以確定系統(tǒng)硬件部分(A/D轉(zhuǎn)換、單片機(jī)控制編程、A/D轉(zhuǎn)換與單片機(jī)接口、復(fù)位模塊),元器件主要有:?jiǎn)纹瑱C(jī)89C51,模/數(shù)轉(zhuǎn)換器AD574,74LS373芯片,共陰極數(shù)碼顯示管,9013三極管,10K,5K電阻,100uF電容若干。
(一)系統(tǒng)各部分硬件設(shè)計(jì)
(1)基于A/D轉(zhuǎn)換系統(tǒng)的芯片
由于此系統(tǒng)中要求數(shù)據(jù)的精度為0.5‰,由A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo)相對(duì)誤差公式得n=11,又因?yàn)锳/D轉(zhuǎn)換器的位數(shù)至少要比總精度要求的最低分辨率高一位,所以選擇具有12位的A/D轉(zhuǎn)換芯片。AD574是一種快速的12位逐次比較式A/D轉(zhuǎn)換芯片,片內(nèi)有兩片雙極型電路組成的28腳雙插直列式芯片,無(wú)需外接元器件就可獨(dú)立完成A/D轉(zhuǎn)換功能。內(nèi)部設(shè)有三態(tài)數(shù)據(jù)輸出鎖存器。一次轉(zhuǎn)換時(shí)間為25€%eS。
(2)89C51芯片
在眾多的MCS-51單片機(jī)及各種增強(qiáng)型、擴(kuò)展型等衍生品種的兼容機(jī)中,美國(guó)ATMEL公司的89C51單片機(jī)在我國(guó)使用較多,它是一個(gè)低功耗、高性能的含有4Kbyte閃爍存儲(chǔ)器的8位CMOS單片機(jī),時(shí)鐘頻率高達(dá)20MHz,與MCS-51的指令系統(tǒng)和引腳完全兼容。閃爍存儲(chǔ)器允許在線(+5V)電擦除、電寫(xiě)入或使用編程器對(duì)其重復(fù)編程。此外89C51還支持有軟件選擇的兩種掉電工作方式,非常適用與電池供電或其他要求低功耗的場(chǎng)合。由于片內(nèi)帶EPROM的87C51芯片內(nèi)的4Kbyte閃爍器可在線編程或使用編程器重復(fù)編程,且價(jià)格較低,因此在此系統(tǒng)中我們采用89C51芯片。
(3)A/D574與89C51的接口
(二)復(fù)位電路
89C51的復(fù)位是由外部電路來(lái)實(shí)現(xiàn)的。復(fù)位引腳RST通過(guò)一個(gè)斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來(lái)抑制噪聲,在每個(gè)機(jī)器周期的S5P2,斯密特出發(fā)器的輸出電平由復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要的信號(hào)。本系統(tǒng)中采用的是按鍵電平復(fù)位電路,當(dāng)用戶按下“復(fù)位”按鈕,使單片機(jī)進(jìn)入復(fù)位狀態(tài)。電路如圖3所示,按鍵電平復(fù)位是通過(guò)RST端經(jīng)電阻與電源Vcc接通而實(shí)現(xiàn)的,當(dāng)時(shí)鐘頻率選用1MHz,C取100€%ef,R1取10K€%R。
(三)輔助電路設(shè)計(jì)
此系統(tǒng)的輔助電路為一個(gè)可產(chǎn)生+5V、+12V的電源。通過(guò)變壓器的降壓、橋式整流電路、和電容的濾波,得到直流電壓。電路采用LM7S12、LM7S05芯片,使得輸出的直流電壓為+12V和+5V,從而為系統(tǒng)提供電源。
三、系統(tǒng)軟件設(shè)計(jì)
(一)軟件設(shè)計(jì)思想
系統(tǒng)通過(guò)A/D轉(zhuǎn)換器的轉(zhuǎn)換,將測(cè)得的來(lái)自滑動(dòng)變阻器的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),分別送入89C51單片機(jī)存儲(chǔ)、處理??偣残铚y(cè)的3個(gè)數(shù)據(jù)。K0為前測(cè)點(diǎn),通過(guò)K0的閉合,將測(cè)得的數(shù)據(jù)稱之為前測(cè)值并存儲(chǔ)、顯示。同理,將K2設(shè)置為后測(cè)點(diǎn),通過(guò)K2的閉合,將測(cè)得的數(shù)據(jù)稱之為后測(cè)值并存儲(chǔ)、顯示。最后通過(guò)閉合K3,使得前兩個(gè)數(shù)據(jù)在單片機(jī)中相減,得到的差值就為此系統(tǒng)的最后測(cè)量值并送入LED顯示管顯示。另外K3為系統(tǒng)的復(fù)位按鈕,控制單片機(jī)的復(fù)位、數(shù)碼管的清零。
(二)系統(tǒng)程序流程圖
(三)軟件陷阱的設(shè)計(jì)
當(dāng)程序跑飛時(shí),冗余指令便無(wú)法起作用。通過(guò)軟件陷阱,攔截亂飛程序,將其引向指定位置,再進(jìn)行出錯(cuò)處理。軟件陷阱是指用來(lái)將捕獲的亂飛程序引向復(fù)位入口地址0000H的指令。通常在程序中未使用的EPROM空間填0000020000。最后一條應(yīng)填入020000,當(dāng)亂飛程序 落到此區(qū),即可自動(dòng)入軌。在用戶程序區(qū)各模塊之間的空余單元也可填入陷阱指令。當(dāng)使用的中斷因干擾而開(kāi)放時(shí),在對(duì)應(yīng)的中斷服務(wù)程序中設(shè)置軟件陷阱,能及時(shí)捕獲錯(cuò)誤的中斷。返回指令可用“RETI”,也可用“LJMP 0000H”。如果故障診斷程序與系統(tǒng)自恢復(fù)程序的設(shè)計(jì)可靠、完善,用“LJMP 0000H”作返回指令可直接進(jìn)入故障診斷程序,盡早地處理故障并恢復(fù)程序的運(yùn)行??紤]到程序存貯器的容量,軟件陷阱一般1K空間有2-3個(gè)就可以進(jìn)行有效攔截。
四、結(jié)論
至此,系統(tǒng)的軟、硬件全部設(shè)計(jì)完畢?;具_(dá)到了系統(tǒng)的要求,接觸滑線變阻器的兩端線頭,可以在顯示器上顯示數(shù)字,通過(guò)A/D轉(zhuǎn)換器的轉(zhuǎn)換,可以產(chǎn)生精確的數(shù)字量,并送入單片機(jī)89C51進(jìn)行數(shù)據(jù)處理。系統(tǒng)通過(guò)軟/硬件的結(jié)合,能夠很好發(fā)揮系統(tǒng)的功效,同時(shí)硬件也最大程度上滿足系統(tǒng)的設(shè)計(jì)要求。在成本上,所選取的芯片都是市場(chǎng)上非常流行的芯片,并且具有價(jià)格優(yōu)勢(shì)。這些都滿足了設(shè)計(jì)系統(tǒng)的一般要求。
參考文獻(xiàn):
[1]張毅剛,劉杰.單片機(jī)原理及應(yīng)用[M].哈爾濱工業(yè)大學(xué)出版社,2004.
[2]李建忠.單片機(jī)原理及應(yīng)用[M].西安電子科技大學(xué)出版社,2001.
[3]王辛之.單片機(jī)應(yīng)用系統(tǒng)抗干擾技術(shù)[M].航空航天大學(xué)出版社,2000.
[4]張毅剛.新編MCS-51單片機(jī)應(yīng)用設(shè)計(jì)[M].哈爾濱工業(yè)大學(xué)出版社,2003.
(作者單位:武漢商學(xué)院機(jī)電工程與汽車(chē)服務(wù)學(xué)院)