新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AVR單片機(jī)在無(wú)線自動(dòng)報(bào)靶系統(tǒng)中的應(yīng)用

AVR單片機(jī)在無(wú)線自動(dòng)報(bào)靶系統(tǒng)中的應(yīng)用

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

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

AVR單片機(jī)在無(wú)線自動(dòng)報(bào)靶系統(tǒng)中的應(yīng)用

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

AVR單片機(jī)在無(wú)線自動(dòng)報(bào)靶系統(tǒng)中的應(yīng)用

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


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉