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

          新聞中心

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

          巧設(shè)pic877a單片機(jī)的AD轉(zhuǎn)換模塊

          作者: 時(shí)間:2016-12-03 來(lái)源:網(wǎng)絡(luò) 收藏
          //由于AD 采樣的值不斷地變化,我們用C語(yǔ)言的關(guān)鍵詞volatile來(lái)定義AD采樣過程的臨時(shí)變量。

          volatile unsigned int ad0_res,ad1_res,ad2_res=0;//存放AD初始化值

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

          //下面對(duì)其進(jìn)行初始化,為了具有統(tǒng)一性,我將RA、RE口均進(jìn)行初始化。

          /**********************************************************
          *AD結(jié)果為10位精度,從0-1023、
          *在使用時(shí)必設(shè)定ADCON1=0X80;存貯形式為((ADRESH<<8)+(ADRESL)).
          *AD通道的選擇是從0開始的如:0->RA01->RA1 ....6->RE2.7->RE3
          ***********************************************************/

          void
          ad_init (void)
          {
          INTCON = 0X00;
          ADIF = 0X00;
          ADCON1 = 0x80;
          ADCON0 = 0X81; //十位結(jié)果必須高為8位
          TRISA = 0X0FF;//默認(rèn)為AD輸入

          TRISE= 0X0FF;//默認(rèn)為AD輸入
          PORTA = 0X00;
          ADON = 1;
          }

          //這是一個(gè)延時(shí)函數(shù)

          void
          delay(unsigned int x)
          {
          unsigned int a, b;
          a = (2*x/8);
          for(a; a>0; a--);
          for(b=5; b>0; b--);
          }

          //下面這個(gè)函數(shù)就是具體采樣AD的結(jié)果值,它一個(gè)很好的妙用

          unsigned int //返回一個(gè)整型值
          read_ADresult(unsigned char channel)//通道轉(zhuǎn)換
          {
          channel &= 0x07;// 讀出當(dāng)前通道的值
          ADCON0 &= 0x85;// 清所有通道
          ADCON0 |= (channel<<3);//10 xxx 001 將當(dāng)前通道對(duì)應(yīng)的值賦予ADCON0
          delay(30);
          ADGO = 1;
          while(ADGO) continue;
          return(ADRESH << 8)+(ADRESL);
          }



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