Thông báo

Collapse
No announcement yet.

truyền thông rs485 1 máter hỏi 1 slave

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • truyền thông rs485 1 máter hỏi 1 slave

    Em đang làm đồ án về mảng này, tình hình rất gấp, ACE trên 4rum ai làm về cái này chưa giúp em cái
    code master
    Code:
    // RE DE: 0 nhan  - 1 phat
    #include <16f887.h>
    #device *=16 ADC=10
    #fuses hs,nowdt,noput,noprotect,nobrownout,nolvp,nocpd,nodebug
    #use delay(clock=4000000)
    #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,stop=1)
    #include <stdio.h>
    #include <lcd_lib_4bit.c>
    
    #bit EN_RS485=0x07.5
    int8 value[4],n, flag=0;
    #INT_RDA
    void RDA_isr (void)
    {
             value[n]=getc();
             if(value[n]=='#')
             {
                lcd_putcmd(line_1);
                printf(lcd_putchar,"%u",value[0]-0x30);
                printf(lcd_putchar,"%u",value[1]-0x30);
                printf(lcd_putchar,"%u",value[2]-0x30);
                n=0;
             }
             else n++;
    }
    void main()
    {
       set_tris_d(0x00);
       set_tris_c(0b10000000);   
       enable_interrupts(INT_RDA);
       enable_interrupts(GLOBAL);
       lcd_init();
       n=0;
       while(true)
       {
       if(value[3]!='#')
       {
       EN_RS485=1; 
       printf("123@");
    
       }
       else
       {
       EN_RS485=0; 
       }
       }
    }
    code slave
    Code:
    // RE DE: 0 nhan  - 1 phat
    #include <16f887.h>
    #device *=16 adc=10
    #fuses hs,nowdt,noput,noprotect,nobrownout,nolvp,nocpd,nodebug
    #use delay(clock=4000000)
    #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,stop=1)
    #include <stdio.h>
    #include <lcd_lib_4bit.c>
    
    #bit EN_RS485=0x07.5
    
    int8 value[4],n,flag=0;
    
    #INT_RDA
    void RDA_isr (void)
    {
    
             value[n]=getc();
             if(value[n]=='@')
             {
               
             lcd_putcmd(line_1);
             printf(lcd_putchar,"%u",value[0]-0x30);
             printf(lcd_putchar,"%u",value[1]-0x30);
             printf(lcd_putchar,"%u",value[2]-0x30);
             n=0;
             }   
             else {n++;}
    }
    
    
    void main()
    {
       set_tris_c(0b10000000);  
       set_tris_d(0x00);
       enable_interrupts(INT_RDA);
       enable_interrupts(GLOBAL);
       lcd_init();
       n=0;
       while(true)
       {
       if(value[3]!='@')
          EN_RS485=0; 
         
       else
       {
          EN_RS485=1;
          printf("456#");
       }
       }
    }
    và đây là hình ảnh của nó (file đính kèm)
    vấn đề của em là code sai chổ nào sao mà slave không thể truyền lên master được
    Mong hồi âm của mọi người
    Attached Files

  • #2
    em up nhầm file đính kèm, ở đây mới là hình ảnh của nó

    Comment


    • #3
      sao ko up hinh len di

      Comment

      Về tác giả

      Collapse

      khanh my Tìm hiểu thêm về khanh my

      Bài viết mới nhất

      Collapse

      Đang tải...
      X