Giao tiêp RS232 giữa 2 pic8f4620

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • thuong_123
    Nhập môn đệ tử
    • Apr 2012
    • 5

    #1

    Giao tiêp RS232 giữa 2 pic8f4620

    Mình đang làm về giao tiếp RS232 giữa 2 con pic 18f4620. Mình thắc mắc khi mình cho 2 con pic giao tiếp thực tế. Ban đầu khi cấp điện cho 2 con pic hoạt động, thì data được truyền đi và con pic (nhận) data hiển thị đúng giá trị sau khi truyền là hiển thị từ 0 đến 9. Nhưng khi reset con pic (truyền), thì con pic (nhận) không hiển thị đúng giá trị, hay nói cách khác là nó không cập nhật giá trị mới. Mà phải reset lại nó mới nhận được. Như vậy có cách nào khắc phục lỗi này không, mong các bạn giúp đỡ. Thanks!

    Chương trình của việc truyền
    void main()
    {
    set_tris_c(0x00);
    set_tris_b(0b00000010);

    setup_spi(SPI_MASTER|SPI_L_TO_H|SPI_CLK_DIV_4);
    set_uart_speed(9600); //giao tiep RS232
    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);

    // TODO: USER CODE!!
    while(1)
    {
    for(i=0;i<10;i++)
    {
    InValueOut=maled[i];
    output_d(maled[i]);
    putc(InValueOut);
    Delay_ms(255);
    }
    }
    }

    Chương trình nhân data
    void main()
    {set_tris_b(0x01); //SPI data in B0, chan cho chip slave B2
    set_tris_c(0b10000000); //chan RC7 nhan RS232
    set_tris_d(0x00); //lcd
    //setup_spi( SPI_MASTER | SPI_L_TO_H| SPI_CLK_DIV_16 ); //giao tiep SPI
    set_uart_speed(9600); //giao tiep RS232
    //LCD_Init();
    while(1)
    { if(kbhit())
    {
    inDataIn=getch(); //nhan
    // delay_ms(200);
    output_d(inDataIn);
    delay_ms(200);
    }
    }
    }
  • lambaotrung
    Đệ tử 5 túi
    • Jan 2010
    • 96

    #2
    chúc bạn thành công

    mình đã làm chủ đề từ rất lâu rồi.... nhưng ở mức cơ bản.
    minh chia sẽ với bạn cái này nhe....
    chúc bạn thành công.
    Attached Files

    Comment

    Working...