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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于MXT8051單片機的電磁波測試儀的研制

          基于MXT8051單片機的電磁波測試儀的研制

          作者:劉晨亮 師麗菊 秦皇島市康泰醫(yī)學系統(tǒng)有限公司 時間:2010-06-29 來源:電子產(chǎn)品世界 收藏

            軟硬件設計

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

            硬件設計

            如圖1所示,整個系統(tǒng)由、信號采集、輸入輸出、電源、通訊接口五部分組成。系統(tǒng)工作流程如下:無線電波經(jīng)天線耦合成電信號,再經(jīng)過高頻二極管檢波送到放大單元,放大單元由一個運放和一個模擬開關組成可變增益放大器,根據(jù)用戶選擇對信號放大并送入第一路ADC,轉換成數(shù)字信號。

            程序對該數(shù)字信號進行處理,記錄單位時間內的最大值或平均值,送到顯示器上,如果超過安全值,通過發(fā)光二極管和蜂鳴器報警。顯示部分為段碼LCD。另外系統(tǒng)還通過串口把檢測到的實時數(shù)據(jù)上傳,以便電腦進行更復雜的分析。

            電源部分采用兩節(jié)7號電池供電,為了保證電池電壓低的時候系統(tǒng)正常工作,用一顆升壓芯片L6920把電壓升到3.3V,同時用的第二路ADC監(jiān)視電池電壓,如果電量過低,同樣報警。

            本次設計選用了市面上一款現(xiàn)有產(chǎn)品的外殼,殼子上未留按鍵的位置,但是有一個帶開關的電位器的位置,在此做了一個變通設計,即把它設計成一個單向飛梭,即用電位器不同的電阻值代替不同的按鍵,通過單片機的第三路ADC采集電位器分壓值,然后程序換算成不同的按鍵值,這樣剛好滿足本機的簡單輸入要求,實現(xiàn)系統(tǒng)的不同模式設置。該機設置了4種采集模式,如表1所列。

            軟件設計

            本項目代碼采用C語言編寫,分為三部分模塊,分別為主程序、定時器中斷程序和ADC中斷程序。其中定時器中斷程序用來產(chǎn)生ADC采樣的時基,ADC中斷程序用于轉存采樣結果和切換采集通道,這兩部分比較簡單,下面重點介紹一下主程序的執(zhí)行過程。

            如圖2所示,為系統(tǒng)主程序流程圖。首先系統(tǒng)上電后單片機進行各個模塊初始化。設置ADC進行3個通道的順序轉換,點亮綠色發(fā)光管表示系統(tǒng)正常運行,初始化串口,初始化PWM以驅動蜂鳴器。

            然后開始系統(tǒng)的大循環(huán)操作。先是不停判斷轉換完成標志位,如果轉換完成,則分別對三個通道的數(shù)據(jù)進行處理,包括去掉較大或較小的偽值,對數(shù)據(jù)取平均值。接下來先判斷電池電量是否低于預設值,如果是,則驅動蜂鳴器發(fā)聲,同時在LCD上顯示電池欠壓符號。下面判斷電位器分壓值是否變化,如果變化范圍超過預設值,說明用戶進行了操作,則根據(jù)轉換結果設置對應的工作模式,改變增益,同時LCD上顯示切換到顯示對應的模式代碼4秒鐘,在4秒內如再無操作則LCD繼續(xù)顯示轉切換前的內容。下一個運算是根據(jù)前面得到的電磁波信號強度計算其具體示值,如果計算完成則顯示出來并通過串口發(fā)出去,同時判斷示值是否超出預設值,如超出,則驅動蜂鳴器發(fā)聲,并點亮紅色發(fā)光二極管,進行聲光報警。到此整個大循環(huán)執(zhí)行了一遍,然后繼續(xù)從判斷轉換完成標志位開始執(zhí)行下一次循環(huán)。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();