串行通信實驗
實驗目的:
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
評論
查看更多