新聞中心

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

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

作者: 時間:2017-07-11 來源:網(wǎng)絡 收藏

  本文分析了基于 單片機的角度測量的硬件組成、電路設計原理。給出了主函數(shù)的工作流程和源代碼。設計樣機已通過多種環(huán)境實驗的測試。

本文引用地址:http://www.butianyuan.cn/article/201707/361581.htm

  是某控制系統(tǒng)中瞄準裝置的關鍵部件。在以往的控制系統(tǒng)中,多數(shù)都是僅憑設備操作人員眼睛瞄準指定目標,然后作出相應的控制,這樣就帶來一系列問題,如操作人員的經(jīng)驗、瞄準裝置轉盤的空回都可能會嚴重會影響瞄準目標的精確程度,從而嚴重影響控制系統(tǒng)的精度。為了提高控制系統(tǒng)的瞄準精度,在控制系統(tǒng)的瞄準裝置中增加了部件,操作人員瞄準目標后的角度值能夠精確定量地顯示在操作面板上,幫助操作人員更加準確地瞄準目標,因此,極大地提高了控制系統(tǒng)的控制精確度。

  利用光電編碼器讀取角度值,采用 單片機實現(xiàn)角度值數(shù)碼顯示、角度值偏差范圍的發(fā)光二極管指示功能(有三個指示燈,分別指示:偏高、偏低、適中)。不論在操作的復雜程度上還是在測量的精度上,都是傳統(tǒng)的眼瞄方法、刻度測量及標識方法無法比擬的。

  作為某控制系統(tǒng)的瞄準裝置的重要技術改進,此儀器的應用大大提高了控制系統(tǒng)瞄準的精度,增加瞄準偏差范圍的可讀性,淘汰了傳統(tǒng)的用刻度測量和標識角度的方法,使該控制系統(tǒng)的整體性能得到了顯著提高。此外,該角度測量儀只要稍作改動即可廣泛用于其它工業(yè)控制系統(tǒng)中。

  1 硬件基本原理

  首先,角度測量儀利用單片機讀取光電編碼器測出的角度值,再將角度值轉換成密位值并顯示在數(shù)碼屏上(注意: 密位(mil) 是一種角度單位,密位100 = 角度6°)。單片機判斷當前角度值的偏差范圍,給出控制信號點亮相應的發(fā)光二極管指示燈。此外,角度測量儀還可以通過控制面板上的開關控制實現(xiàn)瞄準鏡照明和低溫環(huán)境下瞄準鏡自動除霜功能。單片機的主要功能是實現(xiàn)角度值數(shù)碼管顯示、角度值范圍的發(fā)光二極管指示。該系統(tǒng)的難點在于確保角度值轉換成密位值的轉換精度和系統(tǒng)在非常溫環(huán)境下的工作可靠性。

  硬件分為以下幾個模塊:控制面板、單片機、光電編碼器、電源、數(shù)碼顯示器、發(fā)光二極管匹配指示裝置、周視鏡與直瞄鏡照明與除霜,如圖1所示。

    

 

  1. 1 單片機的選用

  首先,根據(jù)項目的需求分析可以得知單片機要完成的主要功能是:從光電編碼器(數(shù)據(jù)總線寬度是15 位) 讀取角度值后,將該角度值與系統(tǒng)預設的角度值比較,判斷瞄準的角度值范圍,點亮相應的指示燈。然后將從光電編碼器讀得的角度值轉換成密位值,發(fā)送給串行L ED 顯示驅動器MAX7219 ,顯示在LED 顯示器上。

  從以上分析可以得知,適合此需求的單片機至少應具備3 個8 位并行I/ O 端口(其中光電編碼器占用2 個端口,其它占用1 個端口) ,才能有效工作。眾所周知,產(chǎn)品的品質等級通常分為三級:軍用級、工業(yè)級和商用級,其中,軍用級等級最高,商用級等級最低。由于此工業(yè)控制設備通常在戶外作業(yè),工作環(huán)境比較惡劣,故單片機的品質的等級也是需要考慮的一個重要因素。

  目前,MCS - 51 系列單片機技術成熟,開發(fā)所用的教材和技術資料多,開發(fā)工具齊全,市場上產(chǎn)品種類豐富、性價比較高、購買容易,開發(fā)語言簡單易學(可以用匯編或C51) ,因此,該系列產(chǎn)品應用廣泛,經(jīng)久不衰。

  經(jīng)過綜合考慮,單片機采用ATMEL 公司生產(chǎn)的 芯片(MCS - 51 系列單片機的工業(yè)級產(chǎn)品) , 兼容MCS51 微控制器,4 K 字節(jié)FLASH 存貯器支持在系統(tǒng)編程( ISP) 1000 次擦寫周期,128 字節(jié)片內RAM ,工作電壓4. 0 V 到5. 5 V ,全靜態(tài)時鐘0 Hz 到33 MHz ,三級程序加密,4 個8 位的可編程I/ O 端口,2/ 3 個16 位定時/ 計數(shù)器,6/ 8 個中斷源,全雙工UART ,低功耗支持Idle 和Power down 模式,Powerdown 模式支持中斷喚醒,雙數(shù)據(jù)指針,上電復位標志。ATMEL 公司生產(chǎn)的89 系列單片機在工業(yè)、交通、儀器儀表、自動生產(chǎn)過程、航空、運輸、汽車、家電等領域都有著極及其廣泛的應用。所選型號為ATMEL 公司的AT89S51 - 24PI ,工業(yè)級。能適應- 45 ℃~ + 80 ℃環(huán)境工作。

  單片機的I/ O 端口資源分配是: P0 和P2口分配給光電編碼器,P1 口分配給顯示驅動和匹配指示發(fā)光二極管控制以及MAX813.

  1. 2 單片機主要外圍電路的設計

  監(jiān)控電路:為了提高單片機在惡劣環(huán)境下的可靠性,必須采用μP 監(jiān)控電路來增加單片機的穩(wěn)定性和抗干擾能力。硬件監(jiān)控電路有以下功能:(1) 上電復位:保障系統(tǒng)加電時能正確地啟動。(2) 掉電復位:當電源失效或電壓降到某一電壓值以下時,產(chǎn)生復位信號對系統(tǒng)進行復位。(3)看門狗定時器:當處理器遇干擾,程序運行混亂產(chǎn)生"死鎖"時,對系統(tǒng)復位。此處采用MAXIM公司的軍用級芯片MAX813LMJA.

  顯示驅動電路: 為了節(jié)省單片機I/ O 口資源,降低單片機的計算量,選用串行L ED 顯示驅動器MAX7219. 它能控制8 位共陰級L ED 數(shù)碼管,具有16 級亮度控制、譯碼靈活,上電發(fā)光二極管全熄、只占用三根單片機I/ O 口線等優(yōu)點。

  單片機及主要外圍電路的原理如圖2 所示。

    

 

  1. 3 單片機與外圍器件的數(shù)據(jù)通信

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

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

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

  2 軟件設計原理

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

    

 

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

  下面給出主函數(shù)的源代碼。

  void main (void)

  {

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

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

  while (1) {

  WDI = 1 ; / /"喂狗"

  WDI = 0 ; / /"喂狗"

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

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

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

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

  }

  }

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

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

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

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

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

  3 結束語

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



關鍵詞: AT89S51 角度測量儀

評論


相關推薦

技術專區(qū)

關閉