<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 由STC12C5A50S2與NOKIA1100液晶屏構(gòu)成的袖珍示波器

          由STC12C5A50S2與NOKIA1100液晶屏構(gòu)成的袖珍示波器

          作者: 時(shí)間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
          由STC12C5A50S2與NOKIA1100液晶屏構(gòu)成的袖珍示波器,功能簡(jiǎn)介:可測(cè)量雙通道波形,采樣率從75KHz到15Hz,輸入電壓應(yīng)該能到50V(本人沒有測(cè)試過較高的電壓)。
          主要器件:手機(jī)電池供電,PT1301升壓到5V,以TL431輸出的2.5V為探頭的信號(hào)地,運(yùn)放TL082做信號(hào)放大,數(shù)字電位器MCP41010做增益調(diào)節(jié),NOKIA1100液晶屏做為顯示,96*65像素點(diǎn),其工作所需3.3V電壓是5V電壓串聯(lián)LED后得來的。STC12C5A50S2做為核心控制,據(jù)資料介紹其ADC采樣速度可達(dá)250KHz,兩路ADC采集波形數(shù)據(jù),一路ADC采集2.5V電壓,一路ADC采集電池電壓,兩路PWM經(jīng)低通濾波后控制調(diào)理電路的偏移。探頭接口是用的雙聲道耳機(jī)接口,比較節(jié)省空間,但是通道間會(huì)有干擾。按鍵有9個(gè),CH:選通道; Vp/Hp:主菜單選擇:POWER:開機(jī);Vs/Hs:(本程序未用) INC:+,STOP:關(guān)機(jī) SET:進(jìn)彈出菜單 DEC:- ESC:退出/暫停
          程序介紹:
          程序中為了方便圖形操作,為液晶屏建立了內(nèi)存緩沖,繪圖操做在單片機(jī)內(nèi)存中進(jìn)行,然后整體復(fù)制到液晶屏.由于內(nèi)存不太充裕,采用了分塊的方法,以時(shí)間換取空間:
          #define LCD_WIDTH 96
          #define LCD_HEIGHT 8
          //液晶分區(qū)數(shù)
          #define LCD_PART 2
          //U8 lcd_x=0;
          //U8 lcd_y=0;
          xdata U8 lcd_buf[LCD_HEIGHT/LCD_PART][LCD_WIDTH];//lcd顯示緩存(1/LCD_PART屏)
          xdata S16 lcd_bufx0=0,lcd_bufy0=0,lcd_bufx1=0,lcd_bufy1=0;//緩沖區(qū)對(duì)應(yīng)四角坐標(biāo),(去掉右邊框)
          //x0 <= x < x1;y0 <= y < y1;
          //-------------------------------------------------------
          //選擇液晶屏區(qū)域
          //s=0~LCD_PART-1
          //-------------------------------------------------------
          void lcd_buf_sel(U8 s)
          {
          if(s>=LCD_PART)return;
          lcd_bufx0=0;
          lcd_bufx1=LCD_WIDTH;
          lcd_bufy0=LCD_HEIGHT*s/LCD_PART;
          lcd_bufy1=LCD_HEIGHT*(s+1)/LCD_PART;
          }

          繪圖時(shí)需遍歷每個(gè)顯示緩存塊:
          for(p=0;p {
          lcd_buf_sel(p);
          //LCD_DrawPic(0,0,160,123,0,gImage_t1);
          lcd_buf_fill(0x04);
          GUI_SetFont6x8();
          GUI_dispnum(i,3,0,5,13,0);
          GUI_PutStr(5,5,"welcome...");
          GUI_SetFont8x16();
          GUI_PutStr(5,25,"welcome...");
          lcd_refresh();
          }

          程序在timer0中斷里采集波形數(shù)據(jù),主要代碼如下:
          //--------------------------------------------------
          //定時(shí)器中查詢AD
          //--------------------------------------------------
          void timer0(void) interrupt 1 using 3 //T0中斷,用寄存器組0
          {
          //while(TF0==0);
          //TF0=0;
          U8 ad;
          //static U8 fp=0;//分頻
          if(T0EXC==0)
          {
          //mmm++;
          TH0=TH0RLD;//重裝初值
          TL0=TL0RLD;
          T0EXC=T0EXH;
          //dosamp();
          while(ADC_CONTR&BIT(3));//等待通道0轉(zhuǎn)換完成
          //while(!(ADC_CONTR&BIT(4)));
          ad=ADC_RES;//讀通道0
          if(TrigCh==0)//通道1觸發(fā)
          {
          if(ChEnable & BIT(1))//通道2使能
          ADC_CONTR=(0xE8|ADCH2);//選通道2
          else //否則選通道1
          ADC_CONTR=(0xE8|ADCH1);//選通道1
          ADCBuf[0][BUF_Wps]=ad;//循環(huán)存儲(chǔ)數(shù)據(jù)
          }
          else
          {
          if(ChEnable & BIT(0))//通道1使能
          ADC_CONTR=(0xE8|ADCH1);//選通道1
          else //否則選通道1
          ADC_CONTR=(0xE8|ADCH2);//選通道2
          ADCBuf[1][BUF_Wps]=ad;//循環(huán)存儲(chǔ)數(shù)據(jù)
          }

          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();