新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于單片機的角度測量儀的設計

        基于單片機的角度測量儀的設計

        作者: 時間:2012-04-30 來源:網絡 收藏

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

          1. 3 與外圍器件的數據通信

          與光電編碼器:因為光電編碼器獲得值的速度遠大于的工作速度,所以,單片機可以認為光電編碼器上的數據總是處于準備好狀態,單片機隨時可以讀取有效數據,16 位的值分成高8 位和低8 位兩次讀取,它們之間的數據是并行無條件傳送。

          單片機與MAX7219 :從單片機和MAX7219的工作速度來看,CPU 兩次發送數據給MAX7219 的時間間隔,足以保證單片機訪問MAX7219 時,MAX7219 總是處于準備好狀態。而MAX7219 又是串行L ED 顯示驅動器,因此,單片機與MAX7219 的數據傳送是串行無條件傳送。

          單片機與MAX813 :因為單片機向MAX813發送數據時,MAX813 只等待接收單片機的初始化數據而并無其它的工作其工作速度足夠快,可以認為MAX813 總是處于準備好狀態。因此,單片機與MAX813 的數據傳送也是串行無條件傳送。

          2 軟件原理

          啟動工作后,單片機的工作過程是:系統啟動后,初始化外部看門狗,初始化顯示驅動芯片MAX7219 ,給看門狗計數器賦初值,讀取光電編碼器獲取的角度值,當角度偏差值處在某一特定范圍時,單片機發出控制信號點亮與該范圍相對應的指示燈,將當前的角度值轉換成密位值顯示在數碼屏,又重新給看門狗計數器賦初值,進入下一個工作循環。主函數的工作流程如圖3 所示。

        圖3  主函數流程圖

        圖3 主函數流程圖

        請注意,流程圖中,帶雙線邊的矩形框表示該部分為函數。在本課題的軟件中,采用了C51 編程語言,因為用C51 編程不僅效率高,而且可讀性很強。

          下面給出主函數的源代碼。

          void main (void)

          {

          WDI = 0 ; / / 初始化看門狗

          InitMax7219 () ; / / 初始化MAX7219 的函數

          while (1) {

          WDI = 1 ; / /喂狗

          WDI = 0 ; / /喂狗

          GetAngle () ; / / 讀角度值的函數

          MachView() ; / / 指示燈匹配顯示的函數

          GetMil () ; / / 計算密位值的函數

          DisplayMil () ; / / 顯示密位的函數

          }

          }

          在主函數調用的幾個函數中,InitMax7219() 的功能是初始化L ED 顯示驅動器MAX7219 ,單片機向MAX7219 發送消影控制、亮度、掃描范圍、譯碼方式信息。

          GetAngle () 的功能是從光電編碼器讀角度值,先讀高8 位,再讀低8 位,然后將高8 位和低8 位合并,最后舍去最低位(光電編碼器的有效數據是15 位) .

          MachView() 的功能是角度偏差指示燈匹配顯示,將該角度值與系統預設的角度值比較,判斷瞄準的角度值是偏高、偏低還是適中。如果角度值偏高,那么單片機就發出控制命令,使偏高指示燈亮,如果偏低,則令偏低指示燈亮,否則令適中指示燈亮。

          值得注意的是,計算密位值的函數GetMil() 的代碼編寫,要考慮角度的轉換精度,在本課題中,采用了C51 中的long 型變量來分別存放密位的整數和小數部分,并將角度的小數部分放大十萬倍后參加運算,保證轉換精度。

          DisplayMil( )的功能是驅動MAX7219 顯示密位。首先顯示密位,判斷此角度是否進入預設區,如果是,熄滅符號燈,各位顯示0;如果沒有,判斷角度值是否為負,如果是,顯示負號,如果是正,不顯示負號,然后將角度值顯示在L ED顯示屏上。

          由于篇幅所限,程序的源代碼沒有給出。

          3 結束語

          為了使角度能在各種可能的惡劣環境下(如高溫、低溫、振動等環境) 正常工作,在整個過程中,要著重考慮的問題是硬件的可靠性和軟件的可靠性。設計時的注意事項如下: (1)電源芯片的額定功率選擇要留有余量。(2) 元器件選擇工業級或軍用級產品。(3) 采用硬件看門狗方案,防止單片機程序鎖死。本課題設計的樣機已處于測試階段,目前已通過了常溫和多種環境試驗的測試。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 麻江县| 慈利县| 海伦市| 区。| 渭源县| 澄迈县| 金平| 威信县| 革吉县| 阳东县| 海安县| 循化| 永济市| 柘城县| 烟台市| 新巴尔虎右旗| 启东市| 吉木乃县| 招远市| 永德县| 鄂尔多斯市| 阿合奇县| 峡江县| 彭山县| 化德县| 伊春市| 威海市| 徐水县| 鸡东县| 云安县| 金阳县| 隆回县| 普宁市| 台山市| 沂南县| 海林市| 崇礼县| 红河县| 尤溪县| 隆德县| 新乡市|