《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 用AVR微處理器實現(xiàn)的簡易示波器
用AVR微處理器實現(xiàn)的簡易示波器
摘要: 用這種方法可以實現(xiàn)一個簡易的示波器,整個系統(tǒng)結(jié)構(gòu)簡單,清晰。充分利用了AVR單片機內(nèi)部資源使系統(tǒng)電路得以簡單化,就連系統(tǒng)的工作時鐘也是AVR內(nèi)部自帶的。通過測試該系統(tǒng)在測量頻率方向的誤差很小,可以用來比較準(zhǔn)確的測量測試信號的頻率。
關(guān)鍵詞: avr 示波器
Abstract:
Key words :

46.jpg

1.1、信號調(diào)理電路

信號調(diào)理電路要完成的功能是:程控放大,疊加直流分量。程控放大的作用是:當(dāng)輸入信號的幅度很小的時候就需要對輸入信號進(jìn)行放大,使得被測信號可以在LCD上盡可能清楚的顯示出來。疊加直流分量的作用是:ATmega16自帶的A/D是單電源的,沒辦法輸入負(fù)壓而待測信號又往往有負(fù)壓。這時候就需要這樣一個電路,可以把負(fù)壓抬高到0電平以上。

 

47.jpg

 R1,R2分別由一個模擬開關(guān)CD4051來連接不同的電阻,不同的R1,R2通過公式: 這樣就可以實現(xiàn)程控放大功能了。可調(diào)電阻R9用來設(shè)置信號調(diào)理電路加入的直流分量的大小。放大后的信號和直流分量最后由U3模擬加法器疊加后輸出。

輸入信號與輸出信號的關(guān)系:  只要R4、R6、R7的阻值相同,調(diào)理電路輸入與輸出的關(guān)系簡化為: 。 

Ux為U3的輸出電壓,輸出電壓的電壓值與可調(diào)電阻R9中間抽頭的電壓一至。

1.2、主控芯片軟件設(shè)計

這個系統(tǒng)的主控芯片選擇的是,Atmel公司的AVR系列單片機ATmega16,最高可達(dá)到16MPIS指令速度。ATmega16有16K的flash, 1K 的SRAM, 512 B的EEPROM,單片機內(nèi)部自帶一個10 bits精度的逐次逼近型模數(shù)轉(zhuǎn)換器,內(nèi)建采樣/保持電路。ADC的時鐘是可編程的,在這個設(shè)計中為了太到最高的采樣頻率100KHz ADC的時鐘設(shè)置為2MHz。ADC的觸發(fā)源選擇為定時器/計數(shù)器0溢出,ATmega16的定時器的時鐘源也是可編程的。這樣就可以通過控制定時器/計數(shù)器0溢出中斷頻率來控制ADC的采樣頻率。

 

48.jpg

1.2.1、鍵盤功能

在這個系統(tǒng)中設(shè)置了7個按鈕分別為:運行與停止,放大倍數(shù)增大,放大倍數(shù)減小,采樣頻率增大,采樣頻率減小,觸發(fā)電平上移,觸發(fā)電平下移。

運行與停止鍵:是通過開啟和關(guān)閉ATmega16 ADC轉(zhuǎn)換完畢中斷的方式來實現(xiàn)的。

放大倍數(shù)的增大與減小:是通過ATmega16控制模擬開關(guān)CD4051來實現(xiàn)放大倍數(shù)的數(shù)字化控制。CD4051為8通道的模擬開關(guān),所以程控放大器可以有8檔。

采樣頻率的增大與減小:是通過控制ATmega16的定時器0的時鐘源及定時器的初始值來實現(xiàn)系統(tǒng)所需要的各個采樣頻率。定時器0的中斷頻率就等于ADC的采樣頻率。

觸發(fā)電平的上移與下移:是通過對采樣來的數(shù)據(jù)進(jìn)行數(shù)字觸發(fā)時,當(dāng)數(shù)據(jù)的二進(jìn)制值在增加的過程中某個數(shù)據(jù)的大小剛好與數(shù)字觸發(fā)的二進(jìn)制數(shù)值一樣,在此以后的波形數(shù)據(jù)才存入顯示RAM中。

當(dāng)這7個按鍵中的某一個被觸發(fā),都會置位相應(yīng)的標(biāo)志位,以便刷新LCD液晶屏上相應(yīng)的顯示信息。

1.2.3、數(shù)字觸發(fā)功能

如何實現(xiàn)觸發(fā)呢?用硬件來完成的話又會增加系統(tǒng)硬件電路的復(fù)雜度,我就想了一個辦法,有軟件的方式來實現(xiàn)觸發(fā)的功能。實現(xiàn)的過程如下:
                              for (ik=0;ik<500;ik++){
                        if (k0_ram){
                                if (box_buff[ik] < trigger) {
                                        kk_ram = 1 ;
                                }              
                                if (kk_ram){
                                        if ((box_buff[ik] >= trigger) & (ik < 402)){
                                                en_ram = 1 ; 
                                                k0_ram = 0 ;
                                                kk_ram = 0 ;
                                        }}}
                        if (en_ram){
                                boxing[adc_data]=box_buff[ik] ;
                                adc_data++ ; 
                                if (adc_data > 96){
                                        adc_data = 0x00 ;
                                        en_ram = 0 ;
                                }}}

trigger的大小可以通過觸發(fā)電平上移與觸發(fā)電平下移按鍵來設(shè)置它的大小。

1.2.3、還原波形

GDM12864A是一個具有128點x 64點的點陣LCD。根據(jù)所選的LCD的特點,Y軸上只有64個點,所以能顯示的數(shù)據(jù)范圍為0到63而采樣得到的數(shù)據(jù)為8位的二進(jìn)制數(shù)據(jù)為0到255。為了能在這個LCD上顯示只取8位數(shù)據(jù)的高6位。那么如何把這高6位的二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成在LCD上的Y軸座標(biāo)和數(shù)據(jù)值呢?我想了這樣一個計算的方法:

LCD的縱向分為8個地址從上到下依次為0~7,每個地址段有8個數(shù)據(jù)點。在某個數(shù)據(jù)段中如果想依次讓這些位從上到下點亮就需要依次向這個地址段送數(shù)據(jù)0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,送入0x00后這個地址段的8個數(shù)據(jù)點將不被點亮。實現(xiàn)的具體過程如圖4 所示。
dat = dat>>2
y = 7
dat >= 8 ?
dat = dat – 8; y--;
y == 1 ?
dat > 7 ?
dat = 7 ;
dat = 0x80 >> dat
write_add(y,x) ;
write_data(dat) ;
 

 

 

49.jpg

1.2.4、ADC采樣頻率控制

ADC的采樣頻率在上文已有提及,ADC中斷的計算公式為: ,通過ATmega16的特殊功能寄存器TCCR0的低3位CS02,CS01,CS00的設(shè)置就可以改變 的頻率,再把TCNT0設(shè)置成不同的數(shù)值就可以得到這個系統(tǒng)所需要的各個采樣頻率值了。表1中的數(shù)據(jù)是通過上面的公式計算出來的數(shù)據(jù)再經(jīng)實際的系統(tǒng)調(diào)試并修正后的數(shù)據(jù)。

50.jpg
2.2、系統(tǒng)誤差

系統(tǒng)的誤差主要出在信號調(diào)理電路,因為模擬開關(guān)有一定的內(nèi)阻約為80Ω對調(diào)理電路的放大倍數(shù)會造成一定的影響。通過1.1中的計算公式計算出來的電阻值在實際中不存在,通過幾個電阻串聯(lián)來實現(xiàn)也還是會有一定的誤差。平衡電阻R3是固定的在R1,R2發(fā)生變化的時候,平衡電阻可能就不能平衡也會給運算放大器引入一定的誤差。

2.3、可以改進(jìn)的地方

系統(tǒng)可以進(jìn)一步改進(jìn)的地方在于信號調(diào)理電路,可以通過選擇性能更好的模擬開關(guān)和運算放大器,更合理的選擇電阻這樣就可以提高信號調(diào)理電路的放大的準(zhǔn)確度。使整個系統(tǒng)的性能得以進(jìn)一步改善。

2.4、系統(tǒng)實際工作情況

LCD顯示的信息分別有,波形圖像,在波形的上面是橫軸的標(biāo)尺,在屏幕的右邊為系統(tǒng)的運行狀態(tài)(Run / Stop),Time 為整個波形框的時間長度,Volt- 為電壓檔,在波形框與信息框之間有個小點為信號的觸發(fā)電平。信號的頻率=波形框中信號的周期數(shù)/Time。

51.jpg

3、   結(jié)論

用這種方法可以實現(xiàn)一個簡易的示波器,整個系統(tǒng)結(jié)構(gòu)簡單,清晰。充分利用了AVR單片機內(nèi)部資源使系統(tǒng)電路得以簡單化,就連系統(tǒng)的工作時鐘也是AVR內(nèi)部自帶的。通過測試該系統(tǒng)在測量頻率方向的誤差很小,可以用來比較準(zhǔn)確的測量測試信號的頻率。

[參考文獻(xiàn)]
[1]     劉海成.  AVR單片機原理及測控工程應(yīng)用 [M] 北京:北京航空航天大學(xué)出版社,2008.3.
[2]     高吉祥. 全國大學(xué)生電子設(shè)計競賽培訓(xùn)系列教程 [M] 北京:電子工業(yè)出版社,2007.6.
[3]     劉祖剛. 模擬電路分析與設(shè)計基礎(chǔ) [M] 北京:機械工業(yè)出版社,2007.10.
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 欧美一级免费观看 | 一级成人a毛片免费播放 | 久综合网| 操极品| 成人黄色在线免费观看 | 成人十八影院在线观看 | 亚洲精品三级 | www.色网 | 狠狠躁狠狠躁 | 欧美极品在线 | 国产伦精品一区二区三区免 | 小处雏一区二区三区精 | 久久精品国产欧美日韩99热 | 制服丝袜在线一区 | 国产黄大片在线观 | 欧美激情人成日本在线视频 | 在线a视频| 国产成人一区二区在线不卡 | 黄色片a| 日韩午夜高清福利片在线观看 | 国产自愉怕一区二区三区 | 国产亚洲精品成人久久网站 | www.香蕉视频.com | 日韩一级黄色 | 亚欧成人 | 18成禁人视频免费网站 | 欧美久 | 在线观看嗯啊成人动作片 | 黄色大片免费观看 | 午夜视频18| 久久久青草青青国产亚洲免观 | 影音先锋激情 | 蜜臀91精品国产高清在线观看 | 久久女同互慰一区二区三区 | a级午夜毛片免费一区二区 a级午夜理论免费毛片 | 在线亚洲精品自拍 | 一本久道综合久久精品 | 午夜爱爱毛片xxxx视频免费看 | 中文字幕一区二区在线播放 | 欧美不卡在线视频 | 中文字幕丝袜 |