串行通信实验
实验目的:
1、掌握TMS320LF2407串行通信模块的工作原理
2、掌握TMS320LF2407串行通信模块程序设计
TMS320LF2407串行通信的软件设计可以采用查询和中断两种方式来实现,其中查询方式是查询控制寄存器相应的标志位,执行相应的动作,以下是一种简单的软件查询的串行通信实验程序,硬件部分将SCITXD和SCIRXD连接在一起,需发送的字符存放在起始地址为300H的内部RAM区,发送的目的地是起始地址为60H的内部RAM区。
;============================================
; 文件名:SCI.asm
;===========================================
.include "F2407REGS.H "
.include "vectors.h"
.def _c_int0
KICK_DOG .macro ;复位看门狗
LDP #0E0H
SPLK #05555H,WDKEY
SPLK #0AAAAH,WDKEY
LDP #0H
.endm
;=====================================
;MAIN CODE -starts here
;=====================================
.text
_c_int0: LDP #0
SETC INTM ;关中断
LDP #0E0H
SPLK #06FH,WDCR ;禁止看门狗
KICK_DOG
SPLK #0H,60H ;设置程序空间的等待状态字
OUT 60H,WSGR
;=====================================
;SCI TRANSMISSION TEST -starts here
;=====================================
SCI: LDP #0E1H
SPLK #03H,MCRA
LAR AR0,#SCITXBUF ;装载SCITXBUF指针
LAR AR1,#SCIRXBUF ;装载SCIRXBUF指针
LAR AR2,#0FH ;数据个数
LAR AR3,#60H ;目的地址指针
LAR AR7,#300H ;源地址指针
LDP #SCICCR>>7
SPLK #17H,SCICCR ;一个停止位、奇校验、8位字符、空闲多处理模式
SPLK #03H,SCICTL1 ;使能TX、RX、内部的SCICLK
SPLK #00H,SCICTL2 ;关RX&TX中断
SPLK #02H,SCIHBAUD
SPLK #08H,SCILBAUD ;波特率为9600b/s(40MHZ SYSCLK)
SPLK #023H,SCICTL1 ;重新使能SCI
XMIT_CHAR:
LDP #6H
MAR *,AR7
LACL *+ ;装载需发送的字符
MAR *,AR0
SACL *,AR1 ;写需发送的字符至发送缓冲器
LDP #SCICCR>>7
XMIT_RDY:
BIT SCICTL2,BIT7 ;测试TXRDY位
BCND XMIT_RDY,NTC ;如TXRDY=0,则等待
RCV_RDY:
BIT SCIRXST,BIT6 ;测试RXRDY位
BCND RCV_RDY,NTC ;如RXRDY=0,则等待
READ_CHR:
LACL *,AR3 ;接收字符存至60H起始地址的单元
SACL *+,AR2
BANZ XMIT_CHAR
LOOP: B LOOP
PHANTOM:RET
.end
评论
查看更多