ReceiveSerial
BANKSEL PIR1 ;
BTFSS PIR1,RCIF ;(0C-5)检验数据
GOTO $-1 ;没有数据返回
BTFSC RCSTA,OERR ;(18-1)检测越位溢出
GOTO ErrSerialOverr ; 有越位溢出,
BTFSC RCSTA,FERR ;(18-2)没有,检测帧格式
GOTO ErrSerialFrame ; 有帧格式错误,跳转
MOVF RCREG,W ;(1A)没有帧格式错,接收数据
MOVWF 70H ;第1字节
BTFSS PIR1,RCIF ;(0C-5)检验数据
GOTO $-1 ;没有数据返回
BTFSC RCSTA,OERR ;(18-1)检测越位溢出
GOTO ErrSerialOverr ; 有越位溢出,
BTFSC RCSTA,FERR ;没有,检测帧格式
GOTO ErrSerialFrame ; 有帧格式错误,跳转
MOVF RCREG,W ;(1A)没有帧格式错,接收数据
MOVWF 71H ;第2字
BTFSS PIR1,RCIF ;(0C-5)检验数据
GOTO $-1 ;没有数据返回
BTFSC RCSTA,OERR ;(18-1)检测越位溢出
GOTO ErrSerialOverr ; 有越位溢出,
BTFSC RCSTA,FERR ;(18-2)没有,检测帧格式
GOTO ErrSerialFrame ; 有帧格式错误,跳转
MOVF RCREG,W ;(1A)没有帧格式错,接收数据
MOVWF 72H ;第3字节
BTFSS PIR1,RCIF ;(0C-5)检验数据
GOTO $-1 ;没有数据返回
BTFSC RCSTA,OERR ;(18-1)检测越位溢出
GOTO ErrSerialOverr ; 有越位溢出,
BTFSC RCSTA,FERR ;(18-2)没有,检测帧格式
GOTO ErrSerialFrame ; 有帧格式错误,跳转
MOVF RCREG,W ;(1A)没有帧格式错,接收数据
MOVWF 73H ;第4字节
BTFSS PIR1,RCIF ;(0C-5)检验数据
GOTO $-1 ;没有数据返回
BTFSC RCSTA,OERR ;(18-1)检测越位溢出
GOTO ErrSerialOverr ; 有越位溢出,
BTFSC RCSTA,FERR ;(18-2)没有,检测帧格式
GOTO ErrSerialFrame ; 有帧格式错误,跳转
MOVF RCREG,W ;(1A)没有帧格式错,接收数据
MOVWF 74H ;第5字节
BTFSS PIR1,RCIF ;(0C-5)检验数据
GOTO $-1 ;没有数据返回
BTFSC RCSTA,OERR ;(18-1)检测越位溢出
GOTO ErrSerialOverr ; 有越位溢出,
BTFSC RCSTA,FERR ;(18-2)没有,检测帧格式
GOTO ErrSerialFrame ; 有帧格式错误,跳转
MOVF RCREG,W ;(1A)没有帧格式错,接收数据
MOVWF 75H ;第6字节
BTFSS PIR1,RCIF ;(0C-5)检验数据
GOTO $-1 ;没有数据返回
BTFSC RCSTA,OERR ;(18-1)检测越位溢出
GOTO ErrSerialOverr ; 有越位溢出,
BTFSC RCSTA,FERR ;(18-2)没有,检测帧格式
GOTO ErrSerialFrame ; 有帧格式错误,跳转
MOVF RCREG,W ;(1A)没有帧格式错,接收数据
MOVWF 76H ;第7字节
BTFSS PIR1,RCIF ;(0C-5)检验数据
GOTO $-1 ;没有数据返回
BTFSC RCSTA,OERR ;(18-1)检测越位溢出
GOTO ErrSerialOverr ; 有越位溢出,
BTFSC RCSTA,FERR ;(18-2)没有,检测帧格式
GOTO ErrSerialFrame ; 有帧格式错误,跳转
MOVF RCREG,W ;(1A)没有帧格式错,接收数据
MOVWF 77H ;第8字节
RETURN ;
一台设备怎么都好用,当用485和两个机器通讯的时候程序就死在这里面了,这是为什么? 总感觉他们之间用485通讯的时候相互影响了似的!! |
|