關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > DSP與PC機串行通信在減搖水艙試驗臺架控制系統中的

        DSP與PC機串行通信在減搖水艙試驗臺架控制系統中的

        作者: 時間:2011-01-13 來源:網絡 收藏


        中通信程序設計

        的SCI模塊使用中斷來接收所傳送來的參數,供控制算法主程序調用,中串行數據接收流程圖如圖3所示。


        圖3 DSP串行數據接收流程圖

        DSP接收的數據為十六位,所以需要對高八位和低八位分別進行接收,高八位左移八位加上低八位,就是所要的十六位數據,接收的數據依次保存在首地址為4002h的連續單元中。下面為SCI模塊初始化和接收中斷兩部分的匯編語言源程序。

        SCI初始化程序如下:

        LDP #0E1h

        SPLK #0003h, MCRA

        ; 選中SCI輸入輸出引腳

        LDP #0E0h

        SPLK #27h, SCICCR

        ; 1個停止位,八位數據,奇校驗,

        ; 空閑線方式,禁止自測試

        SPLK #0003h, SCICTL1

        ; 允許TX,RX和內部SCICLK

        ; 禁止RXERR,SLEEP,TXWAKE

        SPLK #0002h, SCICTL2

        ; 允許RX中斷,禁止TX中斷

        SPLK #0002h, SCIHBAUD

        SPLK #0008h, SCILBAUD

        ; 40MHz SYSCLK下,波特率為9600bps

        SPLK #0023h, SCICTL1

        ; 放棄復位SCI

        LAR AR0, #SCITXBUF

        LAR AR1, #SCIRXBUF

        ; 載入兩個緩沖器的地址

        LDP #0

        SPLK #04002h, RTB

        ; 定義接收數據的首地址

        SPLK #01h, NUM

        ; 設置判別高8位還是低8位的變量

        SPLK #0, RTD

        ; 接收數據寄存器

        串行數據接收中斷程序如下:

        SCI_INT:

        LDP #0

        LACC #02h

        SUB NUM

        BCND high, GT

        ; 判斷是否為高8位數據

        MAR *, AR1

        LACC *, AR1

        ADD RTD

        SACL RTD

        LACC RTB

        TBLW RTD

        ADD #1

        SACL RTB

        SPLK NUM

        high:

        ; 讀高8位數據

        MAR *, AR1

        LACC *, AR1

        SACL RTD

        LACC RTD, 8

        SACL RTD

        SPLK #02h, NUM

        中通信程序設計

        中,串口通信的程序是用Visual Basic 6.0開發的,調用的是Microsoft 公司提供的 MSComm 控件。


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 屏边| 定日县| 延安市| 进贤县| 双牌县| 黔西县| 老河口市| 同江市| 莎车县| 肥乡县| 安龙县| 施甸县| 太仓市| 泗洪县| 新乡市| 枝江市| 渑池县| 炎陵县| 临颍县| 同江市| 大田县| 洪雅县| 万宁市| 南雄市| 仙桃市| 吉林省| 同仁县| 宜阳县| 孝昌县| 云林县| 南溪县| 隆化县| 丹寨县| 义乌市| 石渠县| 河津市| 温泉县| 桦川县| 汝州市| 洞口县| 桂东县|