<abbr id="kc8ii"><menu id="kc8ii"></menu></abbr>
  • <input id="kc8ii"><tbody id="kc8ii"></tbody></input><table id="kc8ii"><source id="kc8ii"></source></table><kbd id="kc8ii"></kbd>
    <center id="kc8ii"><table id="kc8ii"></table></center>
  • <input id="kc8ii"></input>
    <abbr id="kc8ii"></abbr>
  • <abbr id="kc8ii"></abbr>
  • <center id="kc8ii"><table id="kc8ii"></table></center>
    <abbr id="kc8ii"></abbr>
    你的位置:首頁 > 測試測量 > 正文

    給你一個單片機,你能造出一個示波器嗎?

    發布時間:2017-03-01 責任編輯:susan

    【導讀】本文解析如何實現一個簡易的示波器,整個系統結構簡單,清晰。充分利用了AVR單片機內部資源使系統電路得以簡單化,通過測試該系統在測量頻率方向的誤差很小,可以用來比較準確的測量測試信號的頻率。
     
    1、系統結構框圖
     
    圖1.系統結構圖
     
    1.1、信號調理電路
     
    信號調理電路要完成的功能是:程控放大,疊加直流分量。程控放大的作用是:當輸入信號的幅度很小的時候就需要對輸入信號進行放大,使得被測信號可以在LCD上盡可能清楚的顯示出來。疊加直流分量的作用是:ATmega16自帶的A/D是單電源的,沒辦法輸入負壓而待測信號又往往有負壓。這時候就需要這樣一個電路,可以把負壓抬高到0電平以上。
     
    圖2.信號調理電路原理圖
     
    R1,R2分別由一個模擬開關CD4051來連接不同的電阻,不同的R1,R2通過公式:這樣就可以實現程控放大功能了。可調電阻R9用來設置信號調理電路加入的直流分量的大小。放大后的信號和直流分量最后由U3模擬加法器疊加后輸出。
     
    輸入信號與輸出信號的關系:只要R4、R6、R7的阻值相同,調理電路輸入與輸出的關系簡化為:。
     
    Ux為U3的輸出電壓,輸出電壓的電壓值與可調電阻R9中間抽頭的電壓一至。
     
    1.2、主控芯片軟件設計
     
    這個系統的主控芯片選擇的是,Atmel公司的AVR系列單片機ATmega16,最高可達到16MPIS指令速度。ATmega16有16K的flash, 1K的SRAM, 512 B的EEPROM,單片機內部自帶一個10 bits精度的逐次逼近型模數轉換器,內建采樣/保持電路。ADC的時鐘是可編程的,在這個設計中為了太到最高的采樣頻率100KHz ADC的時鐘設置為2MHz。ADC的觸發源選擇為定時器/計數器0溢出,ATmega16的定時器的時鐘源也是可編程的。這樣就可以通過控制定時器/計數器0溢出中斷頻率來控制ADC的采樣頻率。
     
    圖3.簡易示波器系統程序流程圖
     
    1.2.1、鍵盤功能
     
    在這個系統中設置了7個按鈕分別為:運行與停止,放大倍數增大,放大倍數減小,采樣頻率增大,采樣頻率減小,觸發電平上移,觸發電平下移。
     
    運行與停止鍵:是通過開啟和關閉ATmega16 ADC轉換完畢中斷的方式來實現的。
     
    放大倍數的增大與減小:是通過ATmega16控制模擬開關CD4051來實現放大倍數的數字化控制。CD4051為8通道的模擬開關,所以程控放大器可以有8檔。
     
    采樣頻率的增大與減小:是通過控制ATmega16的定時器0的時鐘源及定時器的初始值來實現系統所需要的各個采樣頻率。定時器0的中斷頻率就等于ADC的采樣頻率。
     
    觸發電平的上移與下移:是通過對采樣來的數據進行數字觸發時,當數據的二進制值在增加的過程中某個數據的大小剛好與數字觸發的二進制數值一樣,在此以后的波形數據才存入顯示RAM中。
     
    當這7個按鍵中的某一個被觸發,都會置位相應的標志位,以便刷新LCD液晶屏上相應的顯示信息。
     
    1.2.3、數字觸發功能
     
    如何實現觸發呢?用硬件來完成的話又會增加系統硬件電路的復雜度,我就想了一個辦法,有軟件的方式來實現觸發的功能。實現的過程如下:
     
    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的大小可以通過觸發電平上移與觸發電平下移按鍵來設置它的大小。
     
    1.2.3、還原波形
     
    GDM12864A是一個具有128點x 64點的點陣LCD。根據所選的LCD的特點,Y軸上只有64個點,所以能顯示的數據范圍為0到63而采樣得到的數據為8位的二進制數據為0到255。為了能在這個LCD上顯示只取8位數據的高6位。那么如何把這高6位的二進制數據轉換成在LCD上的Y軸座標和數據值呢?我想了這樣一個計算的方法:
     
    LCD的縱向分為8個地址從上到下依次為0~7,每個地址段有8個數據點。在某個數據段中如果想依次讓這些位從上到下點亮就需要依次向這個地址段送數據0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,送入0x00后這個地址段的8個數據點將不被點亮。實現的具體過程如圖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) ;
     
    圖4.數據還原成波形上點的程序流程圖
     
    1.2.4、ADC采樣頻率控制
     
    ADC的采樣頻率在上文已有提及,ADC中斷的計算公式為:,通過ATmega16的特殊功能寄存器TCCR0的低3位CS02,CS01,CS00的設置就可以改變的頻率,再把TCNT0設置成不同的數值就可以得到這個系統所需要的各個采樣頻率值了。表1中的數據是通過上面的公式計算出來的數據再經實際的系統調試并修正后的數據。
     
    表1.采樣頻率的設置
     
    系統性能指標及誤差

    2.1、系統性能指標
     
    系統主要性能指標見表2所示。
     
    表2.系統主要性能指標
     
    2.2、系統誤差
     
    系統的誤差主要出在信號調理電路,因為模擬開關有一定的內阻約為80Ω對調理電路的放大倍數會造成一定的影響。通過1.1中的計算公式計算出來的電阻值在實際中不存在,通過幾個電阻串聯來實現也還是會有一定的誤差。平衡電阻R3是固定的在R1,R2發生變化的時候,平衡電阻可能就不能平衡也會給運算放大器引入一定的誤差。
     
    2.3、可以改進的地方
     
    系統可以進一步改進的地方在于信號調理電路,可以通過選擇性能更好的模擬開關和運算放大器,更合理的選擇電阻這樣就可以提高信號調理電路的放大的準確度。使整個系統的性能得以進一步改善。
     
    2.4、系統實際工作情況
     
    LCD顯示的信息分別有,波形圖像,在波形的上面是橫軸的標尺,在屏幕的右邊為系統的運行狀態(Run / Stop),Time為整個波形框的時間長度,Volt-為電壓檔,在波形框與信息框之間有個小點為信號的觸發電平。信號的頻率=波形框中信號的周期數/Time。
     
    結論
     
    用這種方法可以實現一個簡易的示波器,整個系統結構簡單,清晰。充分利用了AVR單片機內部資源使系統電路得以簡單化,就連系統的工作時鐘也是AVR內部自帶的。通過測試該系統在測量頻率方向的誤差很小,可以用來比較準確的測量測試信號的頻率。
    要采購開關么,點這里了解一下價格!
    特別推薦
    技術文章更多>>
    技術白皮書下載更多>>
    熱門搜索
    ?

    關閉

    ?

    關閉

    中文字幕国产| 无码国内精品人妻少妇蜜桃视频| 中文字幕无码播放免费| 无码人妻精品一区二区三区66| 久久亚洲av无码精品浪潮| 最近2019免费中文字幕视频三| 中文字幕人妻无码专区| 亚洲av麻豆aⅴ无码电影| 白嫩少妇激情无码| 亚洲av无码专区在线观看下载 | 亚洲精品无码成人AAA片| 刺激无码在线观看精品视频 | 亚洲精品无码久久不卡| 熟妇人妻中文a∨无码| 丰满人妻AV无码一区二区三区| 最近免费中文字幕mv电影| 青青草无码免费一二三区| 久久综合中文字幕| 成人av片无码免费天天看| 日本三级在线中文字幕在线|中文| 人妻AV中出无码内射| 久久中文字幕精品| 国精无码欧精品亚洲一区| 中文字幕日韩精品有码视频 | 亚洲午夜无码久久久久| 熟妇人妻不卡中文字幕| 国产AV无码专区亚洲AV男同| 无码播放一区二区三区| 亚洲中文字幕无码久久2020| 久久久久久久亚洲Av无码| 特级做A爰片毛片免费看无码| 久久中文字幕精品| 精品久久久久久无码专区不卡| 中文字幕亚洲图片| 日韩人妻无码中文字幕视频| 精品久久久久久无码免费| 无码视频一区二区三区在线观看| 亚洲日韩在线中文字幕综合| 日韩精品久久无码人妻中文字幕 | 亚洲国产精品无码久久一线| 中文字幕无码成人免费视频|