[PIC®/AVR®/dsPIC®产品] PIC16F873A 接收程序的问题!!!用485通讯。

[复制链接]
 楼主| CPLAX 发表于 2014-9-24 21:09 | 显示全部楼层 |阅读模式
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通讯的时候相互影响了似的!!
 楼主| CPLAX 发表于 2014-9-24 21:14 | 显示全部楼层
另外我确定接收寄存器等设置正确,要不不可能单台机器能通讯!两台就不可以。通讯时485第一次和哪个地址通讯的就只能和那一个通,换板子也一样!
yklstudent 发表于 2014-9-24 22:40 | 显示全部楼层
汇编,高大上
但感觉现在绝对属于非主流一类
 楼主| CPLAX 发表于 2014-9-25 08:47 来自手机 | 显示全部楼层
yklstudent 发表于 2014-9-24 22:40
汇编,高大上
但感觉现在绝对属于非主流一类

这不是问题的关键,关键是现在问题解决不了啊!
yklstudent 发表于 2014-9-25 10:21 | 显示全部楼层
CPLAX 发表于 2014-9-25 08:47
这不是问题的关键,关键是现在问题解决不了啊!

非主流的东西,想帮你的人有心也无力了
 楼主| CPLAX 发表于 2014-9-25 14:52 来自手机 | 显示全部楼层
yklstudent 发表于 2014-9-25 10:21
非主流的东西,想帮你的人有心也无力了

好吧,小弟在此谢过,呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

13

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部