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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 從零開(kāi)始學(xué)單片機(jī)(五)A/D轉(zhuǎn)化

          從零開(kāi)始學(xué)單片機(jī)(五)A/D轉(zhuǎn)化

          作者: 時(shí)間:2016-11-22 來(lái)源:網(wǎng)絡(luò) 收藏
          所謂A/D轉(zhuǎn)換器就是模擬/數(shù)字轉(zhuǎn)換器(Analog to Digital Converter 簡(jiǎn)稱ADC)是將輸入的模擬信號(hào)轉(zhuǎn)換成為數(shù)字信號(hào)。這里我們用ADC0804做這個(gè)試驗(yàn),下面的圖示它的引腳圖。

          /CS:芯片選擇信號(hào)。
          VREF:輔助參考電壓。
          /WR:用來(lái)啟動(dòng)轉(zhuǎn)換的控制,當(dāng)/WR自1變?yōu)?時(shí),轉(zhuǎn)換器被清除;當(dāng)/WR回到1時(shí),轉(zhuǎn)換正式啟動(dòng)。
          /RD:外部讀取轉(zhuǎn)換結(jié)果的控制腳輸出信號(hào)。
          /INTR:中斷請(qǐng)求信號(hào)輸出,低電平動(dòng)。
          AGND,DGND:模擬信號(hào)以及數(shù)字信號(hào)接地。
          CLK IN,CLK R:時(shí)鐘輸入或接振蕩元件(R,C),頻率約限制在100KHz~1460KHz。
          VIN(+),VIN(-):差動(dòng)模擬電壓輸入。輸入單端正電壓時(shí),VIN(-)接地。
          DB0~DB7:8位數(shù)字輸出。
          ADC0804電壓輸入與數(shù)字輸出關(guān)系如表所示


          十六進(jìn)制

          二進(jìn)制碼
          與滿刻度的比率相對(duì)電應(yīng)值VREF=2.560伏
          高四位字節(jié)低四位字節(jié)高四位字節(jié)電壓低四位字節(jié)電壓
          F111115/1615/2564.8000.300
          E111014/1614/2564.4800.280
          D110113/1613/2564.1600.260
          C110012/1612/2563.8400.240
          B101111/1611/2563.5200.220
          A101010/1610/2563.2000.200
          910019/169/2562.8800.180
          810008/168/2562.5600.160
          701117/167/2562.2400.140
          601106/166/2561.9200.120
          501015/165/2561.6000.100
          401004/164/2561.2800.080
          300113/163/2560.9600.060
          200102/162/2560.6400.040
          100011/161/2560.3200.020
          0000000

          接下來(lái)看看實(shí)驗(yàn)電路的原理圖

          片選CS接P2.4,RD接P3.7,WR接P3.6,為了簡(jiǎn)單起見(jiàn)INTR沒(méi)有使用它
          AD芯片的VIN(+)接一個(gè)可調(diào)電阻,改變阻值能夠帶來(lái)不同的電壓,以此作為輸入。
          寫(xiě)程序前還得看看時(shí)序圖

          不同的電阻值顯示0-255不同大小的值,延時(shí)時(shí)間略長(zhǎng),有點(diǎn)閃爍
          #include
          #include
          sbit ADCS = P2^4; //ADC0804片選信號(hào),低電平有效
          sbit ADWR = P3^6; //ADC0804寫(xiě)信號(hào),低電平有效
          sbit ADRD = P3^7; //ADC0804讀信號(hào),低電平有效
          unsigned char code_table[]=
          {
          0x3f,0x06,0x5b,0x4f,
          0x66,0x6d,0x7d,0x07,
          0x7f,0x6f,0x77,0x7c,
          0x39,0x5e,0x79,0x71,0
          };
          sbit Led8En = P2^6; //數(shù)碼管,鎖存器使能信號(hào),高電平有效 ,數(shù)碼管輸出P0
          sbit Led8CS = P2^7; //數(shù)碼管片選,鎖存器使能信號(hào),電平有效,低電平選中
          void delay(unsigned int times);
          void dlight(unsigned char i, unsigned char number, unsigned int duration);
          void ADC0804();
          void main()
          {
          while(1)
          {
          ADC0804();
          delay(100);
          }
          }
          void delay(unsigned int times)
          {
          unsigned int i,j;
          for (i=0; i
          for (j=0; j<125; j++)
          _nop_();
          }
          void ADC0804()
          {
          unsigned char temp;
          ADCS = 0;
          ADWR = 0;
          delay(1);
          ADWR = 1;
          ADCS = 1;
          delay(10);
          ADCS = 0;
          ADRD = 0;
          _nop_();
          temp = P1;
          ADRD = 1;
          ADCS = 1;
          dlight(0xEE,code_table[temp % 10],1);
          dlight(0xDD,code_table[temp / 100],1);
          dlight(0xBB,code_table[(temp/10 )% 10],1);
          }
          void dlight(unsigned char cs, unsigned char display, unsigned int duration)
          {
          Led8CS = 1;
          P0=cs; //片選
          Led8CS = 0;
          Led??8En = 1;
          P0=display; //. a b c d e f g, 高電平亮
          Led8En = 0;
          delay(duration);
          }


          關(guān)鍵詞: 單片機(jī)AD轉(zhuǎn)

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