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

📄 uar.asm

📁 微芯公司的PIC子程序库及运算平台
💻 ASM
字号:
;********************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                                 

⌨️ 快捷键说明

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