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