串行通信實驗
實驗?zāi)康模?/b>
1、掌握TMS320LF2407串行通信模塊的工作原理
2、掌握TMS320LF2407串行通信模塊程序設(shè)計
TMS320LF2407串行通信的軟件設(shè)計可以采用查詢和中斷兩種方式來實現(xiàn),其中查詢方式是查詢控制寄存器相應(yīng)的標(biāo)志位,執(zhí)行相應(yīng)的動作,以下是一種簡單的軟件查詢的串行通信實驗程序,硬件部分將SCITXD和SCIRXD連接在一起,需發(fā)送的字符存放在起始地址為300H的內(nèi)部RAM區(qū),發(fā)送的目的地是起始地址為60H的內(nèi)部RAM區(qū)。
;============================================
; 文件名:SCI.asm
;===========================================
.include "F2407REGS.H "
.include "vectors.h"
.def _c_int0
KICK_DOG .macro ;復(fù)位看門狗
LDP #0E0H
SPLK #05555H,WDKEY
SPLK #0AAAAH,WDKEY
LDP #0H
.endm
;=====================================
;MAIN CODE -starts here
;=====================================
.text
_c_int0: LDP #0
SETC INTM ;關(guān)中斷
LDP #0E0H
SPLK #06FH,WDCR ;禁止看門狗
KICK_DOG
SPLK #0H,60H ;設(shè)置程序空間的等待狀態(tài)字
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 ;數(shù)據(jù)個數(shù)
LAR AR3,#60H ;目的地址指針
LAR AR7,#300H ;源地址指針
LDP #SCICCR>>7
SPLK #17H,SCICCR ;一個停止位、奇校驗、8位字符、空閑多處理模式
SPLK #03H,SCICTL1 ;使能TX、RX、內(nèi)部的SCICLK
SPLK #00H,SCICTL2 ;關(guān)RX&TX中斷
SPLK #02H,SCIHBAUD
SPLK #08H,SCILBAUD ;波特率為9600b/s(40MHZ SYSCLK)
SPLK #023H,SCICTL1 ;重新使能SCI
XMIT_CHAR:
LDP #6H
MAR *,AR7
LACL *+ ;裝載需發(fā)送的字符
MAR *,AR0
SACL *,AR1 ;寫需發(fā)送的字符至發(fā)送緩沖器
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
評論
查看更多