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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > c8051f330系列單片機(jī)AD轉(zhuǎn)換

          c8051f330系列單片機(jī)AD轉(zhuǎn)換

          作者: 時(shí)間:2016-11-23 來(lái)源:網(wǎng)絡(luò) 收藏
          c8051f330系列單片機(jī)AD轉(zhuǎn)換. 作者 lml198694 日期 2008-7-21 10:53:00
          2
          推薦

          根據(jù)最近自己學(xué)習(xí)的C8051F330單片機(jī).寫了一個(gè)關(guān)于AD轉(zhuǎn)換的程序,但是在調(diào)試的時(shí)候,總是發(fā)現(xiàn)其精度沒(méi)有我想象中的高,不知道是不是因?yàn)樽约核玫娜f(wàn)用表不準(zhǔn),還是因?yàn)槲业幕鶞?zhǔn)電壓不夠,其測(cè)試的結(jié)果總是比用萬(wàn)用表測(cè)試的相差那么0.1V左右.想了好久了,就是沒(méi)有解決的了啊.我想大概是因?yàn)槿f(wàn)用表的精度還不過(guò)的原因應(yīng)該是主要原因.呵呵.還是再調(diào)試..............

          本文引用地址:http://www.ex-cimer.com/article/201611/320197.htm

          主要是將數(shù)據(jù)通過(guò)串口傳到上位機(jī)上來(lái)顯示.

          其基本的代碼如下:

          #i nclude
          typedef unsigned char uint8;
          #define clk 24500000
          sfr16 adc0=0xbd;

          void delay(uint8 time)
          {
          uint8 i;
          while(--time)
          {
          for(i=0;i<125;i++);
          }
          }

          void systemclk(void)
          {
          RSTsrc="/0X04";
          OSCICN=0X83;
          }

          void port(void)
          {
          P0MDOUT=0X30;
          P1MDIN=0x00;
          XBR0=0X01; //將發(fā)送位設(shè)置為推挽輸出。
          XBR1=0X40;
          }

          void timer(void)
          {
          TMOD = 0x20;
          CKCON = 0X00; //系統(tǒng)時(shí)鐘12分頻。 波特率為9600
          TH1 = 0x96;
          }
          void uart(void)
          {
          SCON0=0X10;//接受允許。
          }
          void AD_start(void)
          {
          ADC0CN=0X00; //采用AD0BUSY啟動(dòng)。
          REF0CN=0X0b; //采用內(nèi)部基準(zhǔn)電壓VDD. // REF0CN=0X03;
          AMX0P=0X08; //P1.0口采樣。
          AMX0N=0X11;//單端輸入方式。
          ADC0CF=((clk/3000000)-1)<<3;//設(shè)置SAR時(shí)鐘為3M。
          ADC0CF |=0X00; //設(shè)置為右對(duì)齊狀態(tài)。
          AD0EN=1; //AD轉(zhuǎn)換為活躍狀態(tài)。
          }

          void begin(void)
          {
          systemclk();
          port();
          timer();
          uart();
          AD_start();
          }

          void main(void)
          {
          PCA0MD &=~0x40;
          PCA0MD =0X00;
          begin();
          TR1=1;
          TI0=0;
          AD0INT=0; //清零。
          while(1)
          {
          AD0BUSY=1;
          while(AD0INT==0);
          ADC0H &=0X03;
          SBUF0=ADC0H;
          while(TI0==0);
          TI0=0;
          delay(200);
          SBUF0=ADC0L;
          while(TI0==0);
          AD0BUSY=0;
          TI0=0;
          delay(200);
          }
          }




          評(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); })();