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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > AVR單片機在無線自動報靶系統(tǒng)中的應(yīng)用

          AVR單片機在無線自動報靶系統(tǒng)中的應(yīng)用

          作者: 時間:2011-09-21 來源:網(wǎng)絡(luò) 收藏

           主程序流程圖如圖4所示。

          AVR單片機在無線自動報靶系統(tǒng)中的應(yīng)用

           信號采集檢測直接利用芯片內(nèi)置的10 bitA/D轉(zhuǎn)換器,采樣PA0端口的輸入模擬電壓。將該模擬電壓轉(zhuǎn)換成數(shù)字電壓,首先要對A/D轉(zhuǎn)換器進行初始化,具體程序如下:
           void AVR_ADC_Init(void)
           {
           ADMUX = 0x00; //選擇參考電壓源為+5 V,
           //左對齊方式,并選擇模擬通道ADC0
           ADCSRA = 0xCF;//使能ADC模塊,
           //并啟動ADC轉(zhuǎn)換開始,配置預(yù)分頻比1:128
           }
           為了提高實時采樣保護電機,過流檢測分析程序段放在A/D轉(zhuǎn)換的中斷服務(wù)程序中完成。A/D轉(zhuǎn)換中斷服務(wù)程序如下:
           #pragma vector=ADC_INT
           __interrupt void ADC_vect_isr(void)
           {
           if(ADCH>200)MotorBreak(); //若檢測到電流
           //超過20 A,則讓電機停止
           }
           在進行電機驅(qū)動程序設(shè)計時,利用內(nèi)置的PWM模塊來實現(xiàn)。該模塊具有如下特征:(1)支持快速PWM產(chǎn)生模式;(2)支持相位修正的PWM產(chǎn)生模式;(3)支持相位與頻率修正的PWM產(chǎn)生模式。這些模式都能夠很好地產(chǎn)生所需的PWM信號,利用PWM信號可很容易實現(xiàn)對電機速度的調(diào)節(jié)。利用PWM模塊的特點,設(shè)計的電機驅(qū)動函數(shù)為MotorStartRun(unsigned char direction,unsigned int speed)。在該函數(shù)中,參數(shù)direction用于控制電機轉(zhuǎn)換方向,參數(shù)speed用于調(diào)節(jié)電機運行速度。電機驅(qū)動程序流程圖如圖5所示。

          AVR單片機在無線自動報靶系統(tǒng)中的應(yīng)用

           該報靶系統(tǒng)實現(xiàn)了射擊環(huán)數(shù)和方位在靶區(qū)域的實時顯示以及PC機監(jiān)控終端的實時監(jiān)控,射擊中可統(tǒng)計個人及單位的單發(fā)成績和總體成績。經(jīng)大量實驗證明,其分析原理正確、設(shè)計指標(biāo)先進、攜帶方便、報靶準(zhǔn)確,適用于各式槍械的報靶;抗干擾強,適合野外使用?,F(xiàn)已在現(xiàn)場使用,并取得了良好的效益。
          參考文獻
          [1] 黃勝.自動報靶機的設(shè)計與實現(xiàn)[J].毅據(jù)采集與處理,1997,12(2):155-156.
          [2] Atmel Corporation. ATmega32(L)datasheet. 200l.


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

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