新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于單片機的無線光電靶

        基于單片機的無線光電靶

        作者: 時間:2010-07-09 來源:網絡 收藏

        2.4 夜間指示燈
        為了夜間訓練方便,設計了由發光二極管組成的靶標指示燈,在夜間可以打開此指示燈,以便觀瞄。此指示燈是由靶心燈(內燈)和靶周燈(外燈)組成,可以由靶控制器控制其開關。

        3 靶控制器電路設計
        從圖1可以看出,靶控制器由、發光二極管陣列、通信模塊、激光模塊和語音播放模塊組成。另外還有用于操作的按鍵。
        3.1 電路
        使用的仍然是AT89S52,擴展5個8位并行口,其中4個并行口用來控制LED發光,1個用來連接通信模塊。
        3.2 發光二極管顯示陣列
        由AT89S52單片機擴展的并行口來驅動發光二極管(LED)的亮和滅,用來顯示擊中的位置。LED的排列方式與光敏元件的排列方式一致,便于指示射擊結果,如圖3所示。

        本文引用地址:http://www.104case.com/article/173281.htm


        圖3中,一個最小的圓圈代表一個LED。可以看出,10環只用1個LED,亮的時候表示擊中10環;9環只用4個LED,可以指示上下左右4種偏差,上邊的LED亮表示9環偏上等;8,7,6環都是8個LED,可以表示8種偏差。
        3.3 激光器
        購買市場常見的筆形半導體激光器。
        3.4 無線通信裝置
        購買市場常見的無線,加以改造以適合與單片機匹配。光電靶和控制器均為雙向收發(半雙工)。
        3.5 語音電路
        在單片機的控制下播放事先錄制好語音內容。

        4 光電靶程序設計
        4.1 光電靶的主程序

        整個光電靶的程序由開機自檢,光信號檢測,數據處理,向控制器發送檢測結果,無線命令接收和執行等子程序組成,由主程序根據條件調用子程序。主程序框圖如圖4所示。


        無線接收利用中斷完成。每次接收到一個有效的命令,就會將命令保存在一個指定地址,然后建立一個標志位,通知主程序。主程序根據命令內容,調用相應的子程序,完成命令要求的任務。中斷服務程序框圖略。
        4.2 數據處理程序
        數據處理程序的功能是根據讀取的光敏檢測數據,計算出激光擊中的位置。
        由于民用激光器的光斑直徑有的比較大,有的比較小。在幾十米的距離上,一般光斑直徑在10~30 mm。激光照射靶標,往往是同時照射幾個光敏元件,該程序就是要確定光斑的中心位置。
        對照圖3,假設光斑中心在10環,可能被照射光敏元件只有10環的,也可能還有9環的4個,還有可能8環的8個也被照射等。要確定10環,除了10環的光敏元件被照射,還有9環、8環、7環可能被照射,并且全環都被照射,否則不能確定10環。
        10環以外的其他環數的確定,需要根據光斑照射到的環數和區數來確定。環號,就是10,9,8,7,6環;環數就是光斑照射到的環有幾個,比如光斑照射到9,8,7環,環數就是3。區號和區數:正上方為1區,右上方為2區,按照順時針方向分為8個區,編號為1~8號區;光斑照射到3,4,5,6區,則區數為4。
        中心環號計算:首先要根據所有照射到的環號計算出環數,然后計算出中心環號。最大環號減去環數除以2取整,這就是光斑中心的環號。取整的目的是小數的環數不好顯示。如果用數碼顯示則可以保留小數。
        中心區號計算:根據所照射的所有區號計算出區數,再計算出中間區號,就是光斑的中心區號。這里有一個問題:當被照射的區號是7,8,1,2,3的時候,要把最大區號確定為11,最小區號確定為7,再計算出區數和中心區號。如果計算的中心區號大于8則減去8才是真正結果。以區號是7,8,1,2,3為例:區數=11-7+1=5,5/2=2.5,2.5取整=2,最大區號減去區數的一半取整,即11-2=9,由于9大于8,要減去8,即9-8=1,這就是中心區號,即偏上方。
        中心環號和區號確定,數據處理完畢。
        圖5是8個區的區號計算子程序框圖,其他子程序略。




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 德清县| 西和县| 阿拉善左旗| 开鲁县| 镇江市| 赫章县| 沈阳市| 东安县| 商都县| 灌云县| 靖西县| 陈巴尔虎旗| 桂平市| 乐山市| 河源市| 诸城市| 北海市| 宜丰县| 高邮市| 怀仁县| 吉隆县| 达州市| 常德市| 金坛市| 镇安县| 云浮市| 博客| 保靖县| 彰化市| 尼木县| 江都市| 贵港市| 杭锦后旗| 华阴市| 高碑店市| 云和县| 洪雅县| 拉萨市| 榆中县| 成安县| 台东县|