这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » RS485 关于RS485通信的问题

共2条 1/1 1 跳转至

RS485 关于RS485通信的问题

院士
2006-09-17 18:14:16     打赏
RS485 关于RS485通信的问题



关键词: RS485     关于     通信     问题    

院士
2006-12-22 22:43:00     打赏
2楼
问 下面是我写的关于485通信的程序,主机能够发送一次数据,从机能够接收,从机接受后发送确认信息,这时侯主机接收不到数据.希望大虾帮我看看这个程序
主机程序:
RX_D     EQU P3.0
TX_D     EQU P3.1
N_RE     EQU P3.4
DE       EQU P3.5
under    equ 30h         ;30h为子机选择字


org     0000h
ajmp    main
;org     0023h
;ajmp    int_ser
org     0030h

main:   mov     tmod,#00101001b   ;set  timer 1 style 2;   timer 0 style 1
        mov     scon,#50h         ;serial style 2     data  8   t/r
        mov     tl1,#0fdh         ;9600     at 11.059Mhz clock
        mov     th1,#0fdh            
        ;setb    es
        setb    tr1
        mov     pcon,#00h
        setb    ea
        ;acall   delay_4ms

send:
        ;mov     30h,#01h
att1:  setb     de
        mov     sbuf,#0aah
awat1: jbc     ti,arr1
        sjmp    awat1
  arr1: clr     p1.1                          
        clr     n_re
        clr     de
        acall   delay_4ms
brr1:   jbc     ri,arr2
        sjmp    brr1
   arr2:mov     a,sbuf
        xrl     a,#02h
        jnz     att1
  att2: clr     p1.0
        sjmp    $


;----------------------
DELAY_4ms:                    ;延时4ms
     MOV R7,#08H
DEL2:MOV R6, #0FFh
     DJNZ R6, $
     DJNZ R7,DEL2
     RET

del_1s:mov      50h,#200
  dl0: mov      51h,#200
  dl1: mov      52h,#200
       djnz     52h,$
       djnz     51h,dl1
       djnz     50h,dl0
        end


从机程序:
RX_D     EQU P3.0
TX_D     EQU P3.1
N_RE     EQU P3.4
DE       EQU P3.5
under    equ 30h         ;30h为子机选择字


org     0000h
ajmp    main
;org     0023h
;ajmp    int_ser
org     0030h

main:   mov     tmod,#00101001b   ;set  timer 1 style 2;   timer 0 style 1
        mov     scon,#50h         ;serial style 2     data  8   t/r
        mov     tl1,#0fdh         ;9600     at 11.059Mhz clock
        mov     th1,#0fdh
        ;setb    es
        setb    tr1
        mov     pcon,#00h
        setb    ea
        clr     n_re
        clr     de
brr1:   jbc     ri,brr2
        sjmp    brr1
brr2:   
        mov     a,sbuf
        xrl     a,#0aah
        jnz     brr1
        ;clr     sm2
        clr     p1.0
  btt1: setb    de          
        mov     sbuf,#0bbh
  bwat1:jbc     ti,brr3
        sjmp    bwat1
  brr3: clr     p1.1
        sjmp    $


DELAY_4ms:                    ;延时4ms
     MOV R7,#08H
DEL2:MOV R6, #0FFh
     DJNZ R6, $
     DJNZ R7,DEL2
     RET
   END

1: 我的看法从机未发送数据。
发送数据前需加SETB N_RE
如果主从机之间需连续通讯,主机接收完数据后也应加SETB N_RE

顺便请问你做什么产品?

2: 关于RS485通信的问题做视频监控数据传输,多谢兄弟了

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]