色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于AVR的簡易示波器設(shè)計(jì)

          基于AVR的簡易示波器設(shè)計(jì)

          作者: 時(shí)間:2011-12-16 來源:網(wǎng)絡(luò) 收藏

          46.jpg

          本文引用地址:http://cafeforensic.com/article/172335.htm

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

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

          47.jpg

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

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

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

          1.2、主控芯片軟件

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

          48.jpg

          1.2.1、鍵盤功能

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

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

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

          采樣頻率的增大與減?。菏峭ㄟ^控制ATmega16的定時(shí)器0的時(shí)鐘源及定時(shí)器的初始值來實(shí)現(xiàn)系統(tǒng)所需要的各個(gè)采樣頻率。定時(shí)器0的中斷頻率就等于ADC的采樣頻率。

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

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

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

          如何實(shí)現(xiàn)觸發(fā)呢?用硬件來完成的話又會(huì)增加系統(tǒng)硬件電路的復(fù)雜度,我就想了一個(gè)辦法,有軟件的方式來實(shí)現(xiàn)觸發(fā)的功能。實(shí)現(xiàn)的過程如下:
          for (ik=0;ik500;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是一個(gè)具有128點(diǎn)x 64點(diǎn)的點(diǎn)陣LCD。根據(jù)所選的LCD的特點(diǎn),Y軸上只有64個(gè)點(diǎn),所以能顯示的數(shù)據(jù)范圍為0到63而采樣得到的數(shù)據(jù)為8位的二進(jìn)制數(shù)據(jù)為0到255。為了能在這個(gè)LCD上顯示只取8位數(shù)據(jù)的高6位。那么如何把這高6位的二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成在LCD上的Y軸座標(biāo)和數(shù)據(jù)值呢?我想了這樣一個(gè)計(jì)算的方法:

          LCD的縱向分為8個(gè)地址從上到下依次為0~7,每個(gè)地址段有8個(gè)數(shù)據(jù)點(diǎn)。在某個(gè)數(shù)據(jù)段中如果想依次讓這些位從上到下點(diǎn)亮就需要依次向這個(gè)地址段送數(shù)據(jù)0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,送入0x00后這個(gè)地址段的8個(gè)數(shù)據(jù)點(diǎn)將不被點(diǎn)亮。實(shí)現(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) ;


          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉