打印
[PIC®/AVR®/dsPIC®产品]

PIC16F873A 接收程序的问题!!!用485通讯。

[复制链接]
1195|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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
汇编,高大上
但感觉现在绝对属于非主流一类

这不是问题的关键,关键是现在问题解决不了啊!

使用特权

评论回复
5
yklstudent| | 2014-9-25 10:21 | 只看该作者
CPLAX 发表于 2014-9-25 08:47
这不是问题的关键,关键是现在问题解决不了啊!

非主流的东西,想帮你的人有心也无力了

使用特权

评论回复
6
CPLAX|  楼主 | 2014-9-25 14:52 | 只看该作者
yklstudent 发表于 2014-9-25 10:21
非主流的东西,想帮你的人有心也无力了

好吧,小弟在此谢过,呵呵

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

13

帖子

0

粉丝