关 闭

新闻中心

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 控件。


评论


相关推荐

技术专区

关闭