單片機在赤道式天文望遠鏡控制系統(tǒng)中的應用
發(fā)布時間:2008/8/27 0:00:00 訪問次數(shù):443
一 前言
縱觀當前國內(nèi)的望遠鏡市場,大大小小的望遠鏡都配上了電腦,實現(xiàn)pc機控制,這樣無形之中就增加了產(chǎn)品的生產(chǎn)成本,使一些原本不必要配電腦的中小型望遠鏡也必須得配一臺電腦,脫離了電腦,就只能進行一些簡單的手動操作,令人苦不堪言,本人主要就這一方面作了一些粗陋的研究,用單片機的匯編語言編制了望遠鏡自動找星的程序,實現(xiàn)了把手盒自動找星的功能。
二 系統(tǒng)硬件概述
本控制系統(tǒng)的核心部分是采用雙串口的cpu(w77e58芯片),可以同時和上位機及把手盒通信,也可以單獨和他們通信,一片xc95108-84負責計數(shù)分頻等工作,一片mc146818時鐘芯片,用來產(chǎn)生恒星時,附加一些外圍接口電路,具體詳情見(圖一),因為本文著重介紹的是算法部分,因此硬件部分不再細述。
下位機系統(tǒng)方框原理圖(圖一)
三 軟件部分
具體地講,軟件總的可以分為四大部分:pc機(工控機)部分,把手盒部分,下位機部分以及功放模塊部分。其中pc機和把手盒分別與下位機的主電腦cpu(w77e58)通信,由串行電纜連接,實現(xiàn)通信,功放模塊(驅(qū)動部分)與下位機連體,由數(shù)據(jù)線直接連接,下面我們主要介紹下位機軟件的設計流程及算法思路:
1、 設計思路
我們應該明確該設計的目的,即實現(xiàn)望遠鏡自動找星的功能,具體地說,首先得給望遠鏡進行位置的準確標定,即選中天空中的某一顆已知星,由把手盒手動操作,把它找進望遠鏡視場的正中央,放在主鏡的十字線的中心,此時把這顆星的坐標位置由把手盒輸入進去,定標替換望遠鏡原來的位置,然后以這顆星為基本點,根據(jù)時角和赤緯去找尋天空中的任意一顆未知的星,由于系統(tǒng)在程序中做進了掉電保護模塊,因此,對望遠鏡而言,調(diào)試完畢之后只需要標定一次,以后每次關機之前系統(tǒng)都會自動保存望遠鏡當前的實時位置,給用戶帶來了極大的方便,自動找星時,我們給望遠鏡輸入天空星體的天文坐標(α,δ)之后,望遠鏡根據(jù)當前自身指向的天區(qū)位置以及待尋目標星所處的天區(qū)位置選擇一條合適的路徑,驅(qū)動赤經(jīng)、赤緯電機轉(zhuǎn)動使其指向目標星,讓目標星體落入望遠鏡視場,找星結(jié)束后自動轉(zhuǎn)入跟蹤,望遠鏡的指向與天體的坐標是通過恒星時聯(lián)系起來的,因此我們需要知道恒星時,每次觀測之前要先校正一下恒星時,恒星時由程序配合手動校正,并顯示于面板上。由公式 t+α=s①
其中t是星體的時角位置
α 是星體的赤經(jīng)值
s 是當?shù)氐牡胤胶阈菚r
顯然我們可以把望遠鏡的時角和星體的時角對應起來,在跟蹤狀態(tài)時,為了克服地球自轉(zhuǎn)的影響,時角在以每時秒15個角秒的速度沿著反地球自轉(zhuǎn)方向勻速運動,因此在赤經(jīng)方面主要是實時地采集當?shù)氐牡胤胶阈菚r,不停的刷新顯示,計算目標星的時角,最終讓望遠鏡的動態(tài)時角值等于目標星的時角,這樣赤經(jīng)找星完畢;在赤緯方面,因為恒星的赤緯是不變的,所以我們只需要將望遠鏡的動態(tài)赤緯顯示值不斷的靠近目標星的赤緯值,不過對赤道式望遠鏡而言,得需要考慮望遠鏡的所處天區(qū)的位置以及目標星的位置,選擇合適的找星路徑,確保望遠鏡的鏡筒的姿勢正確,至于限位部分,可以根據(jù)客戶要求自行設定。
2 、下位機軟件流程圖
3、子程序部分
(1)鍵盤輸入及顯示部分
在該系統(tǒng)中,我們選用了8279芯片,在程序中查詢鍵值,送入固定單元,如果無鍵按下,則送#0ffh入固定單元,然后查詢此單元,如果為#0ffh,則返回,否則根據(jù)單元的鍵值內(nèi)容轉(zhuǎn)入相應的功能子程序;而顯示部分主要把待顯示的數(shù)據(jù)經(jīng)過拆分成7位(本系統(tǒng)采用7位數(shù)碼管顯示),分別送給顯示緩沖區(qū),由查表的方式從表中取出7個相應的字型,送到8279數(shù)據(jù)口實現(xiàn)動態(tài)顯示,8279的鍵盤掃描及顯示方式是通過初始化編程來實現(xiàn)的,8279初始化部分程序如下:
mov dptr, #7ff0h; 8279芯片的狀態(tài)地址
mov a, #0d1h; 清除命令
mov @dptr, a; 命令字送入
ll: mov a, @dptr; 讀8279狀態(tài)字
jb acc.7, ll ; 清除等待
mov a, #08h; 顯示器左邊輸入外部譯碼,雙鍵互鎖方式
mov @dptr, a; 命令字送入
mov a, #2ah; 時鐘編程命令
mov @dptr,a; 命令字送入
ret; 返回
(2)mc146818時鐘部分
mc146818芯片是摩托羅拉公司生產(chǎn)的一種可編程的時鐘芯片,該系統(tǒng)中用它來讀寫恒星時,其中一些主要的操作就是芯片的初始化,讀時間操作,寫時間操作幾大部分,在使用該芯片進行執(zhí)行讀/寫時間操作時,必須得注意,要首先查詢它的狀態(tài)看它是否正在刷新數(shù)據(jù),如果是,必須等刷新數(shù)據(jù)動作完成之后再對芯片進行
一 前言
縱觀當前國內(nèi)的望遠鏡市場,大大小小的望遠鏡都配上了電腦,實現(xiàn)pc機控制,這樣無形之中就增加了產(chǎn)品的生產(chǎn)成本,使一些原本不必要配電腦的中小型望遠鏡也必須得配一臺電腦,脫離了電腦,就只能進行一些簡單的手動操作,令人苦不堪言,本人主要就這一方面作了一些粗陋的研究,用單片機的匯編語言編制了望遠鏡自動找星的程序,實現(xiàn)了把手盒自動找星的功能。
二 系統(tǒng)硬件概述
本控制系統(tǒng)的核心部分是采用雙串口的cpu(w77e58芯片),可以同時和上位機及把手盒通信,也可以單獨和他們通信,一片xc95108-84負責計數(shù)分頻等工作,一片mc146818時鐘芯片,用來產(chǎn)生恒星時,附加一些外圍接口電路,具體詳情見(圖一),因為本文著重介紹的是算法部分,因此硬件部分不再細述。
下位機系統(tǒng)方框原理圖(圖一)
三 軟件部分
具體地講,軟件總的可以分為四大部分:pc機(工控機)部分,把手盒部分,下位機部分以及功放模塊部分。其中pc機和把手盒分別與下位機的主電腦cpu(w77e58)通信,由串行電纜連接,實現(xiàn)通信,功放模塊(驅(qū)動部分)與下位機連體,由數(shù)據(jù)線直接連接,下面我們主要介紹下位機軟件的設計流程及算法思路:
1、 設計思路
我們應該明確該設計的目的,即實現(xiàn)望遠鏡自動找星的功能,具體地說,首先得給望遠鏡進行位置的準確標定,即選中天空中的某一顆已知星,由把手盒手動操作,把它找進望遠鏡視場的正中央,放在主鏡的十字線的中心,此時把這顆星的坐標位置由把手盒輸入進去,定標替換望遠鏡原來的位置,然后以這顆星為基本點,根據(jù)時角和赤緯去找尋天空中的任意一顆未知的星,由于系統(tǒng)在程序中做進了掉電保護模塊,因此,對望遠鏡而言,調(diào)試完畢之后只需要標定一次,以后每次關機之前系統(tǒng)都會自動保存望遠鏡當前的實時位置,給用戶帶來了極大的方便,自動找星時,我們給望遠鏡輸入天空星體的天文坐標(α,δ)之后,望遠鏡根據(jù)當前自身指向的天區(qū)位置以及待尋目標星所處的天區(qū)位置選擇一條合適的路徑,驅(qū)動赤經(jīng)、赤緯電機轉(zhuǎn)動使其指向目標星,讓目標星體落入望遠鏡視場,找星結(jié)束后自動轉(zhuǎn)入跟蹤,望遠鏡的指向與天體的坐標是通過恒星時聯(lián)系起來的,因此我們需要知道恒星時,每次觀測之前要先校正一下恒星時,恒星時由程序配合手動校正,并顯示于面板上。由公式 t+α=s①
其中t是星體的時角位置
α 是星體的赤經(jīng)值
s 是當?shù)氐牡胤胶阈菚r
顯然我們可以把望遠鏡的時角和星體的時角對應起來,在跟蹤狀態(tài)時,為了克服地球自轉(zhuǎn)的影響,時角在以每時秒15個角秒的速度沿著反地球自轉(zhuǎn)方向勻速運動,因此在赤經(jīng)方面主要是實時地采集當?shù)氐牡胤胶阈菚r,不停的刷新顯示,計算目標星的時角,最終讓望遠鏡的動態(tài)時角值等于目標星的時角,這樣赤經(jīng)找星完畢;在赤緯方面,因為恒星的赤緯是不變的,所以我們只需要將望遠鏡的動態(tài)赤緯顯示值不斷的靠近目標星的赤緯值,不過對赤道式望遠鏡而言,得需要考慮望遠鏡的所處天區(qū)的位置以及目標星的位置,選擇合適的找星路徑,確保望遠鏡的鏡筒的姿勢正確,至于限位部分,可以根據(jù)客戶要求自行設定。
2 、下位機軟件流程圖
3、子程序部分
。1)鍵盤輸入及顯示部分
在該系統(tǒng)中,我們選用了8279芯片,在程序中查詢鍵值,送入固定單元,如果無鍵按下,則送#0ffh入固定單元,然后查詢此單元,如果為#0ffh,則返回,否則根據(jù)單元的鍵值內(nèi)容轉(zhuǎn)入相應的功能子程序;而顯示部分主要把待顯示的數(shù)據(jù)經(jīng)過拆分成7位(本系統(tǒng)采用7位數(shù)碼管顯示),分別送給顯示緩沖區(qū),由查表的方式從表中取出7個相應的字型,送到8279數(shù)據(jù)口實現(xiàn)動態(tài)顯示,8279的鍵盤掃描及顯示方式是通過初始化編程來實現(xiàn)的,8279初始化部分程序如下:
mov dptr, #7ff0h; 8279芯片的狀態(tài)地址
mov a, #0d1h; 清除命令
mov @dptr, a; 命令字送入
ll: mov a, @dptr; 讀8279狀態(tài)字
jb acc.7, ll ; 清除等待
mov a, #08h; 顯示器左邊輸入外部譯碼,雙鍵互鎖方式
mov @dptr, a; 命令字送入
mov a, #2ah; 時鐘編程命令
mov @dptr,a; 命令字送入
ret; 返回
。2)mc146818時鐘部分
mc146818芯片是摩托羅拉公司生產(chǎn)的一種可編程的時鐘芯片,該系統(tǒng)中用它來讀寫恒星時,其中一些主要的操作就是芯片的初始化,讀時間操作,寫時間操作幾大部分,在使用該芯片進行執(zhí)行讀/寫時間操作時,必須得注意,要首先查詢它的狀態(tài)看它是否正在刷新數(shù)據(jù),如果是,必須等刷新數(shù)據(jù)動作完成之后再對芯片進行
熱門點擊
- 單片機與RS232串口通信C51程序
- 一種基于單片機實現(xiàn)OLED顯示的設計
- PIC單片機紅外遙控編碼與解碼的問題
- 51單片機與VB串行通信的實現(xiàn)
- 基于MSP430F149的溫度采集報警系統(tǒng)的
- 基于控制專用單片機的無刷直流電機控制器
- 單片機通信協(xié)議處理
- C8051F12X存儲大量常量代碼的編譯技巧
- 單片機通用模擬串口C程序
- MCU的分類
推薦技術資料
- 硬盤式MP3播放器終級改
- 一次偶然的機會我結(jié)識了NE0 2511,那是一個遠方的... [詳細]