關(guān) 閉

新聞中心

EEPW首頁 > 工控自動(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 來源:網(wǎng)絡(luò) 收藏


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

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


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

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

SCI初始化程序如下:

LDP #0E1h

SPLK #0003h, MCRA

; 選中SCI輸入輸出引腳

LDP #0E0h

SPLK #27h, SCICCR

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

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

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開發(fā)的,調(diào)用的是Microsoft 公司提供的 MSComm 控件。


評論


相關(guān)推薦

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

關(guān)閉