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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > stc12c5a60s2使用片內(nèi)AD轉(zhuǎn)換

          stc12c5a60s2使用片內(nèi)AD轉(zhuǎn)換

          作者: 時間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
          #include

          #include
          #define uint unsigned int
          #define uchar unsigned char
          sfr adc_contr=0xbc;//adc控制寄存器,不可位尋址,用或運算來設(shè)置
          sfr adc_res=0xbd;//轉(zhuǎn)換結(jié)果寄存器,高八位
          sfr adc_low2=0xbe;//轉(zhuǎn)換結(jié)果寄存器,低兩位
          sfr p1asf=0x9d;//設(shè)置p1的那一口為輸入口,不可位尋址.
          //以下都是控制寄存器的各位地址
          #define adc_power 0x80;//adc電源,第7位
          #define adc_flag 0x10;//轉(zhuǎn)換結(jié)束標志位,第4位
          #define adc_start 0x08;//轉(zhuǎn)換開始,第3位
          #define adc_speedll 0x00;//速度位,第5,6位
          #define adc_speedl 0x20;
          #define adc_speedh 0x40;
          #define adc_speedhh 0x60;
          #define adc_chs 0x00;//輸入通道為第p1.0,1,2,3三位可設(shè)置p10-p17
          //位定義完成

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

          sbit duan=P2^6;
          sbit wei=P2^7;
          long unsigned int a,shu;
          uint b,wan,qian,bai,shi,ge,adc_finished;//轉(zhuǎn)換結(jié)束標志
          uchar code Temp[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
          void yanshi()
          {
          uchar i,j;
          for(i=5;i>0;i--)
          for(j=110;j>0;j--);
          }
          void adcinit()//adc初始化函數(shù)
          {
          p1asf=0x01;//設(shè)置p10 為ad轉(zhuǎn)換輸入口
          adc_contr=0xe0;//打開電源,設(shè)最高速度
          //adc_contr=adc_power|adc_speedh|adc_chs;//電源X0000000,速度0XX00000
          //通道:00000XXX
          yanshi();
          adc_contr|=adc_chs;//設(shè)置頻道
          }

          void fenshu()
          {

          shu=a;
          wan=shu/10000;
          shu=shu%10000;
          qian=shu/1000;
          shu=shu%1000;
          bai=shu/100;
          shu=shu%100;
          shi=shu/10;
          ge=shu%10;
          }
          void xianshi()
          {
          P0=Temp[ge];
          duan=1;
          duan=0;
          P0=0xff;
          P0=0x7f;
          wei=1;
          wei=0;
          P0=0x00;

          yanshi();
          P0=Temp[shi];
          duan=1;
          duan=0;
          P0=0xff;
          P0=0xbf;
          wei=1;
          wei=0;

          yanshi();
          P0=Temp[bai];
          duan=1;
          duan=0;
          P0=0xff;
          P0=0xdf;
          wei=1;
          wei=0;
          yanshi();
          P0=Temp[qian];
          duan=1;
          duan=0;
          P0=0xff;
          P0=0xef;
          wei=1;
          wei=0;
          }

          void main()
          {
          adcinit();
          adc_res=0;
          adc_low2=0;
          while(1)
          {
          adc_contr|=adc_start;//啟動ad轉(zhuǎn)換,置1為起動,轉(zhuǎn)換結(jié)束后自動置0
          yanshi();
          adc_finished=0;
          while(adc_finished==0)
          {
          adc_finished=adc_contr&adc_flag;//檢測是否轉(zhuǎn)換結(jié)束,沒結(jié)束一直等
          }

          adc_contr=adc_contr&0xef;//轉(zhuǎn)換結(jié)束標志清零
          //也可寫成


          a=adc_res*4+adc_low2;

          adc_contr|=adc_start;
          yanshi();
          fenshu();
          xianshi();
          }
          }



          評論


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