關(guān) 閉

        新聞中心

        EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > DSP與PC機(jī)串行通信在減搖水艙試驗(yàn)臺(tái)架控制系統(tǒng)中的

        DSP與PC機(jī)串行通信在減搖水艙試驗(yàn)臺(tái)架控制系統(tǒng)中的

        作者: 時(shí)間:2011-01-13 來(lái)源:網(wǎng)絡(luò) 收藏


        中通信程序設(shè)計(jì)

        的SCI模塊使用中斷來(lái)接收所傳送來(lái)的參數(shù),供控制算法主程序調(diào)用,中串行數(shù)據(jù)接收流程圖如圖3所示。


        圖3 DSP串行數(shù)據(jù)接收流程圖

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

        SCI初始化程序如下:

        LDP #0E1h

        SPLK #0003h, MCRA

        ; 選中SCI輸入輸出引腳

        LDP #0E0h

        SPLK #27h, SCICCR

        ; 1個(gè)停止位,八位數(shù)據(jù),奇校驗(yàn),

        ; 空閑線方式,禁止自測(cè)試

        SPLK #0003h, SCICTL1

        ; 允許TX,RX和內(nèi)部SCICLK

        ; 禁止RXERR,SLEEP,TXWAKE

        SPLK #0002h, SCICTL2

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

        SPLK #0002h, SCIHBAUD

        SPLK #0008h, SCILBAUD

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

        SPLK #0023h, SCICTL1

        ; 放棄復(fù)位SCI

        LAR AR0, #SCITXBUF

        LAR AR1, #SCIRXBUF

        ; 載入兩個(gè)緩沖器的地址

        LDP #0

        SPLK #04002h, RTB

        ; 定義接收數(shù)據(jù)的首地址

        SPLK #01h, NUM

        ; 設(shè)置判別高8位還是低8位的變量

        SPLK #0, RTD

        ; 接收數(shù)據(jù)寄存器

        串行數(shù)據(jù)接收中斷程序如下:

        SCI_INT:

        LDP #0

        LACC #02h

        SUB NUM

        BCND high, GT

        ; 判斷是否為高8位數(shù)據(jù)

        MAR *, AR1

        LACC *, AR1

        ADD RTD

        SACL RTD

        LACC RTB

        TBLW RTD

        ADD #1

        SACL RTB

        SPLK NUM

        high:

        ; 讀高8位數(shù)據(jù)

        MAR *, AR1

        LACC *, AR1

        SACL RTD

        LACC RTD, 8

        SACL RTD

        SPLK #02h, NUM

        中通信程序設(shè)計(jì)

        中,串口通信的程序是用Visual Basic 6.0開(kāi)發(fā)的,調(diào)用的是Microsoft 公司提供的 MSComm 控件。


        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 如皋市| 巴中市| 罗田县| 紫阳县| 黑河市| 宣武区| 海伦市| 浦江县| 津南区| 兴安盟| 湘乡市| 汝阳县| 宜章县| 兴仁县| 阿克| 耿马| 东源县| 台安县| 时尚| 开远市| 田东县| 永春县| 闻喜县| 延庆县| 汝南县| 庄河市| 津市市| 永靖县| 宁津县| 苗栗县| 文山县| 双流县| 大关县| 焉耆| 霍山县| 金昌市| 崇礼县| 佛学| 开鲁县| 博客| 海兴县|