技术热线: 4007-888-234
设计开发

专注差异化嵌入式产品解决方案 给智能产品定制注入灵魂给予生命

开发工具

提供开发工具、应用测试 完善的开发代码案例库分享

技术支持

从全面的产品导入到强大技术支援服务 全程贴心伴随服务,创造无限潜能!

新品推广

提供新的芯片及解决方案,提升客户产品竞争力

新闻中心

提供最新的单片机资讯,行业消息以及公司新闻动态

USART 自动选择波特率的程序

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

十年专注单片机方案开发的方案公司英锐恩,分享USART 自动选择波特率的程序。英锐恩现提供服务产品涉及主控芯片: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