簡易數(shù)字存儲示波器的設(shè)計
摘要:隨著電子通信以及教學(xué)事業(yè)的發(fā)展,示波器的應(yīng)用越來越廣泛,它在教學(xué)中所起到的作用越來越重要,示波器可以測量信號的幅度,頻率以及波形等等,但是高精度的示波器非常昂貴,對于非盈利事業(yè)的教學(xué)組織來說無疑不合適,所以提出了一種以單片機(jī)為控制核心的簡易示波器設(shè)計方案。它由前向控制部分,數(shù)據(jù)采集和存儲部分,51單片機(jī)控制部分以及按鍵和MS12864R顯示部分組成。
關(guān)鍵詞:示波器;單片機(jī);數(shù)據(jù)采集和存儲;MS12864R
傳統(tǒng)意義上的模擬示波器雖然功能較全,但是價格昂貴,體積大、重量重、成本高、等一系列問題使應(yīng)用受到了限制。對于大多數(shù)學(xué)生以及教學(xué)組織來說,利用示波器主要是進(jìn)行一些理論性的測試與實驗,高精度高成本示波器的作用不是很必要,為此,筆者提出了一種便攜式數(shù)字存儲示波器的設(shè)計,它采用了LCD顯示、高速A/D采集與轉(zhuǎn)換、FIFO以及單片機(jī)等技術(shù),具有較強(qiáng)的實用性以及發(fā)展的市場潛力,前景可觀。
1 簡易數(shù)字示波器的工作原理以及總體框架
本設(shè)計硬件電路部分由單片機(jī)控制系統(tǒng)電路,前向輸入調(diào)理電路,模數(shù)轉(zhuǎn)換和存儲電路,以及按鍵顯示電路組成。其工作的基本思路就是以單片機(jī)為控制核心,讓AD芯片完成數(shù)據(jù)的離散化,采集數(shù)據(jù)經(jīng)過緩沖暫存于存儲器里面,當(dāng)波形顯示時,單片機(jī)從存儲器的讀使能端讀取采集數(shù)據(jù)存于數(shù)組中,然后進(jìn)行相應(yīng)的數(shù)據(jù)處理并把所存取得數(shù)據(jù)按一定的順序打在液晶顯示器相應(yīng)的位置上,從而再現(xiàn)波形信號;其中輸入調(diào)理電路由阻抗變換電路,信號抬升電路以及頻率測量電路構(gòu)成,阻抗變換電路是為了提高輸入阻抗,信號抬升是為了使信號的幅度滿足AD芯片的輸入幅度要求,頻率測量電路主要是測量周期性信號的頻率??傮w設(shè)計框圖如圖1所示。
2 硬件設(shè)計
2.1 前端信號的處理
本模塊具有兩大功能,一是輸入信號位置的變換;二是信號波形的變換。
信號位置的變換主要由阻抗變換電路,信號抬升電路構(gòu)成,阻抗變換采用ua741構(gòu)建的阻隨放大電路,信號抬升電路采用ua741構(gòu)成的加法電路,信號位置的處理主要是對被測輸入信號在幅度與偏移方面進(jìn)行線性處理,使信號在垂直方向上處于A/D轉(zhuǎn)換器的輸入范圍內(nèi)。波形變換電路是用來測量輸入信號的頻率,但是單片機(jī)屬于數(shù)字器件,為此,我們需要對輸入信號進(jìn)行波形變換以及脈沖整形;硬件電路設(shè)計如圖2所示。
2.2 信號的采集與存儲
數(shù)據(jù)采集部分㈣是本設(shè)計的核心部分,本設(shè)計采用BB公司的8位AD,試驗中讓AD完成數(shù)據(jù)采集,采集完數(shù)據(jù)送往FIFO,通過FIFO中繼再送往單片機(jī),F(xiàn)IFO是一種雙口RAM,它沒有地址線,隨著寫入數(shù)據(jù)或者讀取數(shù)據(jù)而使地址指針進(jìn)行遞增或者遞減來實現(xiàn)尋址,兩者中間接了一個緩沖器,這樣可以起到數(shù)據(jù)緩沖作用,在MCU與AD之間接入FIFO的作用是起到數(shù)據(jù)緩沖的作用,因為AD的時鐘高于MCU的工作頻率,所以讓AD和FIFO同步工作來存儲AD轉(zhuǎn)換的輸出數(shù)據(jù),實驗中AD與FIFO的時鐘同步,來自于ALE引腳,為了使時鐘更加穩(wěn)定,可以讓ALE信號先經(jīng)過與門再送往采集存儲模塊;FIFO有3個標(biāo)志位引腳,F(xiàn)F滿標(biāo)志,HF半滿標(biāo)志以及EF空標(biāo)志,本設(shè)計只利用了FF滿標(biāo)志,當(dāng)FIFO存滿時通知單片機(jī)來讀取數(shù)據(jù),這是單片機(jī)使FIFO的寫使能禁止,只來讀取數(shù)據(jù)以顯示,硬件電路設(shè)計如圖3所示。
2.3 液晶顯示
試驗中波形的顯示是借助Ms12864R,采用8位并行數(shù)據(jù)處理,利用了液晶的打點(diǎn)功能,數(shù)據(jù)采集的先后順序體現(xiàn)在液晶的橫軸上面,也就是波形顯示的時間先后,而數(shù)據(jù)值的大小則體現(xiàn)在液晶的縱軸上面,也就是波形的幅度體現(xiàn)。
由于采用FIFO,所以先采樣的點(diǎn)后顯示,這是波形顯示的核心,如圖4所示。12864主要有4個編程端口,RS(數(shù)據(jù)命令選擇),RW(讀寫選擇),EN(使能端)以及PSB(串并選擇),電路連接中分別接到單片機(jī)的某一I/O口上。
2.4 按鍵電路
本設(shè)計需要按鍵較少,因為設(shè)計要求X方向能夠設(shè)置10us/div,20us/div,40us/div三檔水平掃描速度,Y方向能夠設(shè)置0.5V/div、1V/div二檔垂直靈敏度,加之幅度和頻率的測量,所以本設(shè)計要6個獨(dú)立按鍵就夠了。
3 軟件部分
3.1 總體程序框圖
總體程序框圖如圖5所示。
3.2 測量頻率流程圖
測量頻率流程圖如圖6所示。本設(shè)計頻率測量是基于計數(shù)法和測周期法混合使用。其基本思想就是先測量1 s內(nèi)被測信號的上升沿個數(shù),來一個上升沿計數(shù)器加1,為了防止計數(shù)器產(chǎn)生溢出,設(shè)計中將1 s分成20個50 ms,中斷20次,測出信號頻率,如果頻率值小于1K,則改用測周期法。
3.3 液晶打點(diǎn)流程圖
打點(diǎn)操作是作圖的基礎(chǔ),由于st7920控制器的繪圖RAM是一次進(jìn)行兩個2個字節(jié)的數(shù)據(jù)的讀寫操作,也就是一次修改的是16個點(diǎn)的狀態(tài),而我們要想只修改一個點(diǎn)的狀態(tài)同時不改變其余相鄰15個點(diǎn)的狀態(tài),那只能是先把原來位置的16個點(diǎn)的狀態(tài)讀出,使用位操作指令修改其中一個點(diǎn)的狀態(tài),然后在回寫到RAM中。整體的過程即是:讀取-修改(位狀態(tài))-寫入。液晶畫點(diǎn)是編程的難點(diǎn)與重點(diǎn),需要把液晶縱向每隔轉(zhuǎn)換為電壓,要把水平方向轉(zhuǎn)化為時間,將波形顯示出來,其步驟如下:先確定打點(diǎn)的位置;其次讀出該點(diǎn)所在的數(shù)據(jù)值;接著修改該點(diǎn)相應(yīng)的位的值,對于單色液晶來說,只有兩種操作,一是點(diǎn)亮該點(diǎn),另一種是熄滅該點(diǎn);最后將修改后的數(shù)據(jù)值寫入對應(yīng)的地址。打點(diǎn)流程圖如圖7。
3.4 測試結(jié)果
波形測試結(jié)果(波形之一,其他略)頻率幅度測試結(jié)果如表1所示。
4 結(jié)束語
本系統(tǒng)按照功能全面,指標(biāo)合理,總體價格低廉的要求設(shè)計了硬件電路,充分地利用了單片機(jī)的I/O接口,使之成功地實現(xiàn)了頻率的測量,信號幅度的測量,以及不同靈敏度波形的顯示。而且幅度頻率測量誤差較小,顯示波形沒有明顯的失真,滿足設(shè)計要求。如果利用高端控制器,則可以實現(xiàn)高精度的測量,前景遠(yuǎn)大,很有研究價值。