Ðăng Nhập

View Full Version : Giao tiêp RS232 giữa 2 pic8f4620


thuong_123
17-06-2012, 04:20 PM
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
12-07-2012, 11:18 AM
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.