王 娟,王仁波,魏 雄
(東華理工大學(xué)機(jī)械與電子工程學(xué)院,江西 南昌 330013)
待測(cè)信號(hào)經(jīng)限幅放大電路分兩路進(jìn)入單片機(jī)系統(tǒng),一路送入施密特觸發(fā)器整形得到單片機(jī)計(jì)數(shù)所需的矩形波信號(hào),通過(guò)選擇測(cè)量頻率的方法進(jìn)行頻率測(cè)量;一路經(jīng)模/數(shù)轉(zhuǎn)換器進(jìn)入單片機(jī)進(jìn)行數(shù)據(jù)的采集與存儲(chǔ),然后通過(guò)數(shù)/模轉(zhuǎn)換器將還原的模擬信號(hào)在示波器上顯示出來(lái)。這樣我們的整個(gè)硬件設(shè)計(jì)工作便有兩大部分組成:頻率測(cè)量、存儲(chǔ)顯示。
圖1 系統(tǒng)硬件原理框圖
(1)頻率測(cè)量部分。正弦波或方波信號(hào)的頻率是由每秒鐘振蕩的次數(shù)來(lái)表示的。為了檢測(cè)一個(gè)持續(xù)的信號(hào)的頻率,我們僅僅只需數(shù)它的振蕩次數(shù)就可以了。假設(shè)我們所取樣的信號(hào)在某個(gè)時(shí)間段內(nèi)頻率是不變的。我們采用應(yīng)用比較普遍的單片機(jī)AT89C51來(lái)實(shí)現(xiàn)頻率測(cè)量。頻率測(cè)量分三步進(jìn)行:①通過(guò)一個(gè)施密特觸發(fā)器74LS132(整形芯片)把經(jīng)放大后的信號(hào)轉(zhuǎn)換成單片機(jī)所需的方波信號(hào)。②先通過(guò)測(cè)頻法測(cè)出其大致頻率最后決定用測(cè)周法或測(cè)頻法。③然后將計(jì)的數(shù)送AT89C51,進(jìn)行處理,送數(shù)碼管顯示得出頻率。
(2)波形存儲(chǔ)與顯示部分。被測(cè)信號(hào)經(jīng)過(guò)放大整形電路,進(jìn)入ADC0809(模/數(shù)轉(zhuǎn)換器)進(jìn)行A/D轉(zhuǎn)換,將轉(zhuǎn)換后的數(shù)字量送入單片機(jī)。由單片機(jī)根據(jù)不同的要求對(duì)采集的數(shù)據(jù)進(jìn)行存儲(chǔ)和運(yùn)算,將存儲(chǔ)后的結(jié)果在通過(guò)DAC0832(數(shù)/模轉(zhuǎn)換器)在示波器上復(fù)現(xiàn)出來(lái),并可通過(guò)運(yùn)算放大器部件對(duì)輸出波形進(jìn)行放大、縮小的變換。
本設(shè)計(jì)中人通過(guò)對(duì)鍵盤(pán)的控制,可以控制和干預(yù)整個(gè)數(shù)據(jù)采集及處理的全過(guò)程,因此,各鍵的功能及其軟件實(shí)現(xiàn)就尤為重要,各鍵的功能及定義如下:
K1:?jiǎn)?dòng)頻率測(cè)量并進(jìn)行數(shù)字顯示。
K2:?jiǎn)?dòng)A/D轉(zhuǎn)換對(duì)數(shù)據(jù)進(jìn)行采集并存儲(chǔ)到6264里。
K3:?jiǎn)?dòng)D/A轉(zhuǎn)換用示波器顯示波形。
K4:輸出波形的放大。
具體描述如下:
當(dāng)接通電源后,系統(tǒng)進(jìn)行自檢,然后CPU進(jìn)行對(duì)按鍵的查詢,當(dāng)按下K1鍵時(shí),CPU查到K1鍵,通過(guò)延時(shí)去抖,既而跳轉(zhuǎn)到K1鍵的處理程序?qū)︻l率進(jìn)行實(shí)時(shí)的測(cè)量并在數(shù)碼管上顯示。顯示完畢CPU又進(jìn)入對(duì)按鍵的查詢。當(dāng)按下K2鍵時(shí),啟動(dòng)ADC0809進(jìn)行轉(zhuǎn)換,其中程序設(shè)定A/D0809對(duì)數(shù)據(jù)采集10次,并存儲(chǔ)到6264里。存儲(chǔ)完畢,CUP又跳回查詢狀態(tài)。當(dāng)K3按下時(shí),啟動(dòng)D/A0832,用示波器顯示前段時(shí)間的頻率波形。K4鍵為手動(dòng)的對(duì)示波器顯示的波形進(jìn)行放大。
因此,本設(shè)計(jì)主要分為以下幾個(gè)部分:
>頻率的測(cè)量部分
>數(shù)據(jù)的采集及A/D轉(zhuǎn)換部分
>數(shù)據(jù)的存儲(chǔ)及讀寫(xiě)部分
>數(shù)據(jù)的顯示部分
>數(shù)據(jù)的D/A轉(zhuǎn)換部分
圖2 系統(tǒng)流程圖
(1)A/D、D/A轉(zhuǎn)換程序的調(diào)試。我們?cè)谕ǖ?口接入一個(gè)0~5V電源,對(duì)于不同的值,應(yīng)該分別得到不同的數(shù)字量,看看數(shù)字量是否與預(yù)期的值相同,相同的話,說(shuō)明A/D轉(zhuǎn)換器能夠正常工作,看是否能夠正常工作,不能的話,就檢查是不是A/D轉(zhuǎn)換器被損壞,還是軟件編程有問(wèn)題,同樣的道理,首先我們可以向D/A轉(zhuǎn)換器發(fā)送一個(gè)數(shù)據(jù),通過(guò)示波器觀察,是否有誤,確定D/A轉(zhuǎn)換器的完好,再進(jìn)行程序的調(diào)試。
(2)中斷服務(wù)程序的調(diào)試。在中斷程序中多采用全速運(yùn)行的調(diào)試方法,有多個(gè)中斷中斷的話,應(yīng)該一個(gè)一個(gè)調(diào)試,若中斷不能正常返回的話,應(yīng)該把下一步不用的中斷關(guān)掉,把用到的中斷打開(kāi)且設(shè)初值,這點(diǎn)尤為重要,當(dāng)單個(gè)中斷都沒(méi)有問(wèn)題時(shí),再進(jìn)行統(tǒng)調(diào)。
(3)顯示模塊的調(diào)試。顯示模塊的調(diào)試,首先應(yīng)該確認(rèn)LED能夠正常顯示,若能正常顯示的話,可以先在顯示緩沖區(qū)中預(yù)先放入自己預(yù)置的值,若能正常顯示的話,說(shuō)明顯示無(wú)誤。
在理論基礎(chǔ)上設(shè)計(jì)了頻率測(cè)量、波形存儲(chǔ)以及輸出再現(xiàn)系統(tǒng),該系統(tǒng)能對(duì)頻率進(jìn)行現(xiàn)場(chǎng)的測(cè)量、數(shù)據(jù)顯示,并能對(duì)一段時(shí)間內(nèi)的采集數(shù)據(jù)進(jìn)行存儲(chǔ)并用示波器顯示。