网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> DSP >> 代码示例 >> TI DSP代码示例 >> C5000 >> 文章正文
  TMS320C54XX DSP的串行口试验代码         ★★★ 【字体:
TMS320C54XX DSP的串行口试验代码
作者:61IC    文章来源:本站原创    点击数:    更新时间:2007-1-22    

这是CCS 工具编写的DSP程序,可以实现TMS320C54XX DSP的串行口试验

************************************************
* FileName:  ex3.asm                        *
* Descriptiion: 异步串行口与PC机的接口实验     *
* Copyright(C) SanZhi Electronic, Author Zpin  *
************************************************

  .title  "ex3"
  .global _c_int00
  .mmregs
  .def _c_int00

UART_BASE .set 0x0000

THR   .set UART_BASE+0x00
RBR   .set UART_BASE+0x00
IIR   .set UART_BASE+0x20
IER   .set UART_BASE+0x10
FCR   .set UART_BASE+0x20
LCR   .set UART_BASE+0x30
MCR   .set UART_BASE+0x40
LSR   .set UART_BASE+0x50
MSR   .set UART_BASE+0x60
SCR   .set UART_BASE+0x70
DLL   .set UART_BASE+0x00
DLM   .set UART_BASE+0x10

BAUDLOW  .set 60h
BAUDHIGH .set 61h
BAUDCTL  .set 62h
RDDLM  .set 63h
RDDLL  .set 64h
RDTEMP          .set    65h
IER_ADDR .set 66h
FCR_ADDR .set 67h
UART_STATUS .set 68h
REV_ADDR .set 69h
SEND_ADDR .set 6ah

THRE  .set 0x0020
DR   .set 0x0001  

LEN  .set 48

  .data
SENDBUF:
  .string "Welcome to use SanZhi DSPxperiment Instruments!" 
  .sect ".vectors"
rst: B _c_int00
  NOP
  NOP
  .space 15*4*16
int0: B _comm     ;ST16550C中断信号连到外部中断0
  NOP
  NOP
int1: B _comm
  NOP
  NOP
int2: B _comm
  NOP
  NOP
  .space 13*4*16

  .text
_c_int00:
  LD #0h,DP
  STM #3000h,SP
  STM #07FFFh,SWWSR
  STM #28h,AR1   ;设置外部等待时间倍数
  ST #0001h,*AR1
  SSBX INTM
  
  STM #0000h,CLKMD   ;5MHz工作
tst  BITF CLKMD,#1h
  BC tst,TC


uart_init:
  ST #00H,IER_ADDR  ;禁止所有中断
  PORTW IER_ADDR,IER
  ST #00H,FCR_ADDR  ;禁止FIFO
  PORTW FCR_ADDR,FCR
  
  PORTR LCR,RDTEMP  ;设置波特率为9600bps
  ORM #0080H,RDTEMP
  PORTW RDTEMP,LCR
  LD #0018H,A
  AND #00FFH,A
  STL A,BAUDLOW   ;置波特率低位
  PORTW BAUDLOW,DLL
  LD #00H,A
  STL A,BAUDHIGH
  PORTW BAUDHIGH,DLM  ;置波特率高位
  ANDM #0FF7FH,RDTEMP
  PORTW RDTEMP,LCR
  
  LD #03H,A    ;8 BIT, 1 STOP, NO PARITY
  STL A,BAUDCTL
  PORTW BAUDCTL,LCR
  

  STM #SENDBUF,AR0  ;发送字符串
  STM #LEN,BRC   ;设置字符串长度
  RPTB LOOP
READY: PORTR LSR,UART_STATUS
  BITF UART_STATUS,THRE
  BC READY,NTC   ;等待发送完成
  PORTW *AR0+,THR
LOOP: NOP
  NOP
  
  ST #01H,IER_ADDR  ;打开接受中断
  PORTW IER_ADDR,IER
  
  STM #0ffffh,IFR
  STM #IMR,AR0
  ORM #0007H,*AR0
  RSBX INTM

susp: ;IDLE 1
  NOP
  NOP
  B susp      ;等待接收中断

_comm: PSHM 08h    ;接收中断服务程序
  PSHM 09h
  PSHM 0ah
  PSHM ST0
  PORTR LSR,UART_STATUS
  BITF UART_STATUS,DR
  BC end_comm,NTC
  PORTR RBR,REV_ADDR  ;把接收到的字符再发送出去
  PORTW REV_ADDR,THR
end_comm:
  POPM ST0
  POPM 0Ah
  POPM 09h
  POPM 08h
  RETE

               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    TMS320C55x DSP 库
    TMS320C54x DSP 库
    DSP5410实现PN码(汇编源代码…
    用于TMS320VC5502的语言压缩…
    有关DSP进程及其线程的代码
    在DSP上实现DCT的三角波/方波…
    在DSP上实现DCT的三角波/方波…
    在DSP上实现DCT的三角波/方波…
    TMS320VC5402下电话接口的简…
    TMS320C54XXDSP的定时器试验…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号