新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機在赤道式天文望遠鏡控制系統中的應用

        單片機在赤道式天文望遠鏡控制系統中的應用

        作者: 時間:2009-04-02 來源:網絡 收藏

          2 、下位機軟件流程圖

        3、子程序部分

          (1)鍵盤輸入及顯示部分

          在該系統中,我們選用了8279芯片,在程序中查詢鍵值,送入固定單元,如果無鍵按下,則送#0FFH入固定單元,然后查詢此單元,如果為#0FFH,則返回,否則根據單元的鍵值內容轉入相應的功能子程序;而顯示部分主要把待顯示的數據經過拆分成7位(本系統采用7位數碼管顯示),分別送給顯示緩沖區,由查表的方式從表中取出7個相應的字型,送到8279數據口實現動態顯示,8279的鍵盤掃描及顯示方式是通過初始化編程來實現的,8279初始化部分程序如下:

          MOV DPTR, #7FF0H; 8279芯片的狀態地址

          MOV A, #0D1H; 清除命令

          MOV @DPTR, A; 命令字送入

          LL: MOV A, @DPTR; 讀8279狀態字

          JB ACC.7, LL ; 清除等待

          MOV A, #08H; 顯示器左邊輸入外部譯碼,雙鍵互鎖方式

          MOV @DPTR, A; 命令字送入

          MOV A, #2AH; 時鐘編程命令

          MOV @DPTR,A; 命令字送入

          RET; 返回

          (2)MC146818時鐘部分

          MC146818芯片是摩托羅拉公司生產的一種可編程的時鐘芯片,該系統中用它來讀寫恒星時,其中一些主要的操作就是芯片的初始化,讀時間操作,寫時間操作幾大部分,在使用該芯片進行執行讀/寫時間操作時,必須得注意,要首先查詢它的狀態看它是否正在刷新數據,如果是,必須等刷新數據動作完成之后再對芯片進行讀/寫操作,否則容易出錯,MC146818的初始化部分程序如下:

          MOV DPTR,#0BFCAH; A寄存器口地址

          MOV A,#26H; 命令字

          MOVX @DPTR,A

          INC DPL; B寄存器口地址

          MOV A,#1AH; 命令字

          MOVX @DPTR,A

          RET; 返回

          讀時間子程序:

          MOV DPTR, #0BFCAH

          AA: MOVX A, @DPTR; 讀取狀態字

          ANL A, #80H

          JNZ AA; 芯片是否正在刷新?否,讀取數據

          MOV DPTR, #0BFC0H;讀秒單元

          MOVX A, @DPTR

          MOV @R1, A

          INC R1

          MOV DPL, #0C2H; 讀分單元

          MOVX A, @DPTR

          MOV @R1,A

          INC R1

          MOV DPL, #0C4H; 讀時單元

          MOVX A, @DPTR

          MOV @R1, A

          RET; 返回

          寫時間的子程序同上類似,不再多述。

          (3)串行通信子程序

          W77E58實現雙串口通信,初始化完畢后進入主流程,逐個查詢串口是否有通信數據請求,如果有則進入通信子程序執行并返回,否則程序直接往下執行,把下位機的數據分別發送給把手盒和工控機,等待接收控制命令。具體的初始化程序如下:



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 昌都县| 林芝县| 横山县| 绥阳县| 塔河县| 成都市| 丁青县| 乌兰察布市| 乌鲁木齐县| 大余县| 无锡市| 鸡东县| 通化市| 望都县| 高台县| 合山市| 柘荣县| 抚宁县| 三穗县| 新余市| 西贡区| 博白县| 永春县| 洪雅县| 龙井市| 奉节县| 赤城县| 德化县| 长沙县| 新源县| 克山县| 微山县| 灌阳县| 敦煌市| 环江| 临夏县| 南木林县| 炎陵县| 夏津县| 七台河市| 宁波市|