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

          新聞中心

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

          AVR單片機(jī)入門(mén)系列(27)AVR AD轉(zhuǎn)換中斷

          作者: 時(shí)間:2016-12-03 來(lái)源:網(wǎng)絡(luò) 收藏
          系統(tǒng)功能

          大部分AVR內(nèi)部帶有AD,本節(jié)以使用ATMEGA16的內(nèi)部AD為例,給出AD轉(zhuǎn)換中斷程序。

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

          硬件設(shè)計(jì)

          AVR主控電路原理

          軟件設(shè)計(jì)

          //目標(biāo)系統(tǒng):基于AVR單片機(jī)

          //應(yīng)用軟件: ICC AVR

          /*01010101010101010101010101010101010101010101010101010101010101010101

          ----------------------------------------------------------------------

          實(shí)驗(yàn)內(nèi)容:

          使用中斷檢測(cè)AD0口,使用PB/PD口的LED指示AD讀到的數(shù)據(jù)。

          ----------------------------------------------------------------------

          硬件連接:

          將“ADJ0.AD0”引針與“MCU.AD0”引針使用短路帽短接。

          將PB/PD口的LED指示燈使能開(kāi)關(guān)切換到"ON"狀態(tài)。

          ----------------------------------------------------------------------

          注意事項(xiàng):

          (1)若有加載庫(kù)程序,請(qǐng)將光盤(pán)根目錄下的“庫(kù)程序”下的“ICC_H”文件夾拷到D盤(pán)

          (2)請(qǐng)?jiān)敿?xì)閱讀:光盤(pán)根目錄下的“產(chǎn)品資料開(kāi)發(fā)板實(shí)驗(yàn)板SMK系列SMK1632說(shuō)明資料”

          ----------------------------------------------------------------------

          10101010101010101010101010101010101010101010101010101010101010101010*/

          #include

          #include "D:ICC_HCmmICC.H"

          #define H_VAL_DISP_DDR DDRD

          #define L_VAL_DISP_DDR DDRB

          #define H_VAL_DISP_PORT PORTD

          #define L_VAL_DISP_PORT PORTB

          const uint8 ADEnStatus[8] = {0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};

          uint8 AdcMux; //ADC通道

          uint16 AdcVal; //ADC轉(zhuǎn)換值

          /*--------------------------------------------------------------------

          程序名稱:AD轉(zhuǎn)換初始化程序

          程序功能:

          注意事項(xiàng):

          提示說(shuō)明:

          輸入:

          返回:

          --------------------------------------------------------------------*/

          void adc_init()

          {

          /*設(shè)置對(duì)應(yīng)的IO口為輸入高阻態(tài)*/

          DDRA &= ADEnStatus[AdcMux];

          PORTA &= ADEnStatus[AdcMux];

          ADCSRA = 0x00;//disable adc

          ADMUX = (1<

          ACSR = (1<

          ADCSRA=(1<

          }

          /*--------------------------------------------------------------------

          程序名稱:AD轉(zhuǎn)換中斷服務(wù)程序

          程序功能:

          注意事項(xiàng):

          提示說(shuō)明:

          輸入:

          返回:

          --------------------------------------------------------------------*/

          #pragma interrupt_handler adc_isr:15

          void adc_isr(void)

          {

          AdcVal = ADC&0x3FF;

          ADMUX = (1<電源

          ADCSRA |= (1<

          }

          /*--------------------------------------------------------------------

          程序名稱:

          程序功能:

          注意事項(xiàng):

          提示說(shuō)明:

          輸入:

          返回:

          --------------------------------------------------------------------*/

          void main(void)

          {

          H_VAL_DISP_DDR = 0xFF;

          L_VAL_DISP_DDR = 0xFF;

          AdcMux = 0; //使用ADC通道0

          adc_init();

          SEI();

          while(1)

          {

          H_VAL_DISP_PORT = (AdcVal&0x300)>>8;//ADC的高2位Val

          L_VAL_DISP_PORT = AdcVal&0xFF;//ADC的低8位Val

          }

          }

          系統(tǒng)調(diào)試

          用LED顯示AD轉(zhuǎn)換值,調(diào)“ADJ0.AD0”的可調(diào)電阻可改變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); })();