金沙js5线路(中国)有限公司

技术热线: 4007-888-234

串口调试程序例子

更新时间: 2019-03-23
阅读量:2362

十年专注单片机方案开发的方案公司金沙js5线路,分享串口调试程序例子。金沙js5线路现提供服务产品涉及主控芯片:8位单片机、16位单片机、32位单片机及各类运算放大器等。

1
;********************UAT******************** ;本程序实现USART异步方式发送1个字节数据和奇校验位,在4M的主频下波特率为9600。 ;入口参数:待发送数据在SOU中。 ;出口参数:无。 ;占用资源:W,STATUS,INT,TMR1,023H,024H,025H,028H,029H,二重堆栈。

IFNDEF UAT1 #DEFINE UAT1 INCLUDE "OECHK.ASM" UAT BSF STATUS,RP0 MOVLW 19H MOVWF SPBRG BSF TXSTA,BRGH ;高速模式,波特率为9600 BCF TXSTA,SYNC ;异步模式 BSF TXSTA,TX9 ;发送9位数据 BSF TXSTA,TXEN ;工作在发送方式 BCF STATUS,RP0 BSF RCSTA,SPEN ;使能串行口 MOVLW 0FFH CALL OECHK ;奇校验 BSF STATUS,RP0 BTFSC STATUS,C BSF TXSTA,TX9D BTFSS STATUS,C BCF TXSTA,TX9D ;数据第9位 BCF STATUS,RP0 MOVF SOU,W MOVWF TXREG ;开始发送 RETURN ENDIF

2

;

********************UAR******************** ;本程序实现USART异步方式连续接收数据并进行奇校验,在4M的主频下波特率为9600。 ;入口参数:无。 ;出口参数:接收到的数据在SOU中,如果出错,则TEMP3=0FFH。 ;占用资源:W,STATUS,INT,023H,024H,025H,028H,029H,07FH,07EH,17FH, 二重堆栈。 ;说明: 1.使用该程序需在中断入口程序中填入如下两条指令 ; BTFSC PIR1,RCIF ; GOTO RCINT

IFNDEF UAR1 #DEFINE UAR1

INCLUDE "OECHK.ASM"

SAVEW EQU 07FH ;现场保护中保存W的地址 SAVES EQU 07EH UAR BSF STATUS,RP0 MOVLW 19H MOVWF SPBRG BSF TXSTA,BRGH ;高速模式,波特率为9600 BCF TXSTA,SYNC ;异步模式 BSF PIE1,RCIE ;开串行口中断 BCF STATUS,RP0 BCF RCSTA,FERR BSF RCSTA,RX9 ;接收9位数据 BSF RCSTA,CREN ;开始连续接收 BSF RCSTA,SPEN ;使能串行口 BSF INTCON,PEIE BCF PIR1,RCIF ;清中断标志 BSF INTCON,GIE RETURN ;*****************接收中断服务程序*************** 

RCINT MOVWF SAVEW SWAPF STATUS,W CLRF STATUS MOVWF SAVES ;保护现场 BTFSC RCSTA,FERR GOTO ANERROR ;发生桢格式错误 CLRF TEMP3 BTFSC RCSTA,RX9D DECF TEMP3,F ;记录奇偶校验位 MOVF RCREG,W MOVWF SOU MOVLW 0FFH CALL OECHK ;奇校验 RLF TEMP3,W SUBWF TEMP3,F BTFSS STATUS,Z GOTO ANERROR BACK SWAPF SAVES,W MOVWF STATUS SWAPF SAVEW,F SWAPF SAVEW,W ;恢复现场 RETFIE ANERROR CLRF TEMP3 DECF TEMP3,F GOTO BACK ENDIF 

3

;********************USMT******************** ;本程序实现USART同步主控方式发送1个字节数据和奇校验位。 ;入口参数:待发送数据在SOU中。 ;出口参数:无。 ;占用资源:W,STATUS,INT,TMR1,023H,024H,025H,028H,029H,二重堆栈。 ;说明: 1.使用该程序需在中断入口程序中填入如下两条指令 ; BTFSC INTCON,INTF

IFNDEF USMT1 #DEFINE USMT1 INCLUDE "OECHK.ASM" USMT BSF STATUS,RP0 MOVLW 19H MOVWF SPBRG BSF TXSTA,BRGH ;高速模式,波特率为9600 BSF TXSTA,SYNC ;同步模式 BSF TXSTA,TX9 ;发送9位数据 BSF TXSTA,TXEN ;工作在发送方式 BSF TXSTA,CSRC ;主控方式 BCF STATUS,RP0 BSF RCSTA,SPEN ;使能串行口 MOVLW 0FFH CALL OECHK ;奇校验 BSF STATUS,RP0 BTFSC STATUS,C BSF TXSTA,TX9D BTFSS STATUS,C BCF TXSTA,TX9D ;数据第9位 BCF STATUS,RP0 MOVF SOU,W MOVWF TXREG ;开始发送 RETURN ENDIF

4

;********************USMR******************** ;本程序实现USART同步主控方式连续接收数据并进行奇校验。 ;入口参数:无。 ;出口参数:接收到的数据在SOU中,如果出错,则TEMP3=0FFH。 ;占用资源:W,STATUS,INT,023H,024H,025H,028H,029H,07FH,07EH,17FH, 二重堆栈。 ;说明: 1.使用该程序需在中断入口程序中填入如下两条指令 ; BTFSC PIR1,RCIF ; GOTO RCINT2

IFNDEF USMR1 #DEFINE USMR1 INCLUDE "OECHK.ASM"

SAVEW EQU 07FH ;现场保护中保存W的地址 SAVES EQU 07EH USMR BSF 

STATUS,RP0 MOVLW 19H MOVWF SPBRG BSF TXSTA,BRGH ;高速模式,波特率为9600 BSF TXSTA,SYNC ;同步模式 BSF TXSTA,CSRC ;主控方式 BSF PIE1,RCIE ;开串行口中断 BCF STATUS,RP0 BSF RCSTA,RX9 ;接收9位数据 BSF RCSTA,CREN ;开始连续接收 BSF RCSTA,SPEN ;使能串行口 BSF INTCON,PEIE BCF PIR1,RCIF ;清中断标志 BSF INTCON,GIE RETURN ;*****************接收中断服务程序*************** RCINT2 MOVWF SAVEW SWAPF STATUS,W CLRF STATUS MOVWF SAVES ;保护现场 CLRF TEMP3 BTFSC RCSTA,RX9D DECF TEMP3,F ;记录奇偶校验位 MOVF RCREG,W MOVWF SOU MOVLW 0FFH CALL OECHK ;奇校验 RLF TEMP3,W SUBWF TEMP3,F BTFSS STATUS,Z GOTO ANERROR2 BACK2 BCF RCSTA,SPEN ;结束串行通信 SWAPF SAVES,W MOVWF STATUS SWAPF SAVEW,F SWAPF SAVEW,W ;恢复现场 RETFIE ANERROR2 CLRF TEMP3 DECF TEMP3,F GOTO BACK2 ENDIF 

(文源网络,侵删)

XML 地图