十年专注单片机方案开发的方案公司金沙js5线路,分享USART 自动选择波特率的程序。金沙js5线路现提供服务产品涉及主控芯片:8位单片机、16位单片机、32位单片机及各类运算放大器等。
;==========常数===========
BPS1152 EQU 00ah
BPS576 EQU 015h
BPS384 EQU 020h
BPS96 EQU 081h
VAL_BPS EQU BPS384
PWM_MAX EQU 0ffh
;=====================
;RC3 RA4 选择波特率
;#1 #0 : Baud Rate
; L L : 9600bps (BPS96)
; L H : 38400bps (BPS384)
; H L : 57600bps (BPS576)
; H H : 115200bps(BPS1152)
;----------------------------
BAUDRATE
btfss PORTC,3 ;选择四种波特率
goto BAUD_L
btfss PORTA,4
goto BAUD_HL
BAUD_HH
movlw BPS1152 ;0X0A
113600有误差
goto BAUDSET
BAUD_HL
movlw BPS576 ;0X15 56800
goto BAUDSET
BAUD_L
btfss PORTA,4
goto BAUD_LL
BAUD_LH
movlw BPS384 ;0X20 39000
goto BAUDSET
BAUD_LL
movlw BPS96 ;0X81 9690
BAUDSET
bsf STATUS,RP0
movwf SPBRG
bcf STATUS,RP0