⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 实验9_max3485.s43

📁 MSP-TEST44X 学习板光盘资料及实验说明 本学习板是按照教育大纲
💻 S43
字号:
#include  "msp430x44x.h"
;-----------------------------------------------------------------
;MSP-Test44x Demo - USART0 UART 2400
;USART0经RS-485串口通信程序模块                            
;P2.4/USART0 TXD=MAX3485 DI               
;P2.5/USART0 RXD=MAX3485 RO                 
;P1.1=MAX3485 /RE=MAX3485 DE                   

;----------------------------------------------------------------
        MSP430F449
;             -----------------
;         /|\|              XIN|-  
;          | |                 | 32768Hz  
;          --|RST          XOUT|-
;            |                 |
;            |             P2.4|-----------> DI
;            |                 |2400- 8N1
;            |             P2.5|<----------- RO
;
;  Yang Rui
;  Lierda, Inc
;  NOVEMBER 2003
;  Built with IAR Embedded Workbench Version: 1.26B
;---------------------------------------------------------------
;----------------定义发送接收缓存寄存器--------------------------                
;---------------------------------------------------------------
sr_send_buffer     equ   202h;发送缓存
sr_reci_buffer     equ   204h;接收缓存
;---------------------------------------------------------------
;
;-----------------------------------------------------------------
;串口初始化子程序                                           
;说明:初始化程序结束后,MAX3485为接受使能状态
;-----------------------------------------------------------------
                ORG     01100h
RESET           mov.w   #0a00h,SP
Stopwdt         mov.w   #WDTPW+WDTHOLD,&WDTCTL
                call    #init_sr485
                reti
                bis.w   #CPUOFF,SR
                ret
;-------------------------------------------------------------------------
;---------------485初始化程序---------------------------------------------               
;-------------------------------------------------------------------------
init_sr485      
                and.b   #0bfh,&FLL_CTL0         ;XTS低频
              	bis.b   #01h,&UCTL0             ;SWRST=1,准备串口初始化设置
              	nop
              	nop
              	nop
              	mov.b   #CHAR,&UCTL0            ;8-bit characters *SWRST*
              	mov.b   #10h,&UTCTL0            ;UCLK=ACLK
              	mov.b   #0dh,&UBR00             ;32.768下2400波特率
              	mov.b   #00h,&UBR10             ;32.768下2400波特率
              	mov.b   #6bh,&UMCTL0            ;调整寄存器设置
              	bis.b   #UTXE0+URXE0,&ME1       ; Enable USART0 TXD/RXD
                bis.b   #URXIE0,&IE1            ; Enable USART0 RX interrupt
              	and.b   #7fh,&IE1               ;unable USART0 tx interrupt
              	bis.b   #10h,&P2DIR             ;p2.4 out
              	bis.b   #30h,&P2SEL             ;P2.4,5=USART0 TXD/RXT
              	bis.b   #02h,&P1DIR             ;p1.1 out
              	and.b   #0fdh,&P1SEL            ;p1.1 I/O
              	and.b   #0fdh,&P1OUT            ;p1.1=low,MAX3485 RO enable
              	eint                            
              	ret	
;------------------------------------------------------------------
;串口发送测试,485     
;入口参数:发送缓冲变量sr_send_buffer                          
;占用资源:R9                                                   
;说明:本子程序为单字节发送,发送的内容送入sr_send_buff
;      本子程序的开头设置MAX3485为发送使能状态      
;      本子程序退出时重新设置MAX3485为接受使能状态      
;------------------------------------------------------------------
sr3485_send
                bis.b   #02h,&P1OUT              ;p1.1=high,MAX3485 DI enable
                mov.b   &sr_send_buffer,&TXBUF0  ;发送数据
Byte_sended     mov.b   &UTCTL0,R9
                and.b   #01h,r9
                cmp.b   #01h,r9
              	jne     Byte_sended              ;判断数据发送完继续否
              	and.b   #0feh,&UTCTL0            ;clear TXEPT              	
              	and.b   #0fdh,&P1OUT             ;p1.1=low,MAX3485 RO enable 
              	ret
;--------------------------------------------------------------
;串口接受中断,485                                          
;出口参数:接受缓冲变量sr_reci_buffer  ;
;-------------------------------------------------------------- 
sr485_reci_int
                mov.b   &RXBUF0,&sr_reci_buffer
                mov.b   &sr_reci_buffer,&sr_send_buffer
                call    #sr3485_send
                reti
;-------------------------------------------------------------------
;---------------中断向量定义-----------------------------
;-------------------------------------------------------------------
                ORG   0FFFEH
                DW    RESET
                ORG   0FFF2H
                DW    sr485_reci_int
                END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -