串行通信实验

单片机实验

27人已加入

描述

串行通信实验

实验目的:

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 #040H,SCSR1 ;使能SCI模块时钟

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

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分