PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Giao tiếp cổng COM và LPT (http://www.picvietnam.com/forum/forumdisplay.php?f=44)
-   -   Giao tiếp UART RS232 giữa Pic16f877a và PC (http://www.picvietnam.com/forum/showthread.php?t=35783)

cuocsong6so 15-12-2016 11:44 PM

Giao tiếp UART RS232 giữa Pic16f877a và PC
 
Chào mọi người.
mọi người cho mình hỏi với.mình dùng pic16f877a giao tiếp uart với máy tính.dùng máy tính để điều khiển đóng ngắt relay.dùng thạch anh 20mhz baud 38400.Trước làm trên bo thì cả truyền và nhận đều ok

Nhưng bây giờ chuyển qua mạch in thì bị lỗi là chỉ truyền lên được chứ máy tính gửi xuống không được nữa.mình test mạch in các kiểu rồi.đo nhiệt độ và truyền lên PC vẫn ok nhưng mà bây giờ gửi xuống không gửi được.mình cũng đã thay 2 con tụ 33p rồi nhưng vẫn không được.
có ai giúp mình được ko
mình cảm ơn.
Code của mình đây:
#include <main.h>


char C;
char Data[20];
char Index=0;
int1 Finish=0;

#INT_RDA

void NgatUART(void)
{
C = getc();
if(C!='.')
{
Data[Index]=C;
Index=Index+1;
if(Index>19)
{
Index=0;
}
}
else
{
Index=0;
Finish=1;
}
}


void main(void)
{
int1 TrangThai[] = {0,0};
int8 hightemp=37, lowtemp=28;
float temperature;
lcd_init();
lcd_putc('\f');
clear_interrupt(INT_RDA);
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
//set_tris_b(0x80);

output_bit(Bulb,0);
output_bit(Fan,0);
lcd_gotoxy(1,1);
printf(lcd_putc,"Waiting.....");

while(TRUE){
//

if(Finish==1)
{

Finish=0;
lcd_gotoxy(1,2);
printf(lcd_putc,"%s",Data);
printf("%s",Data);

for(Index=0;Index<20;Index++)
{
Data[Index]=' ';
}
Index=0;
}



Temperature = ds18b20_read();
lcd_gotoxy(1,1);
printf(lcd_putc,"Temp=%3.2f",temperature);
lcd_putc(223);
lcd_putc("C");
printf("%3.2f:",temperature);



}
delay_ms(100);
}


Mọi người giúp mình được không,mình cảm ơn trước ạ


Múi giờ GMT. Hiện tại là 09:34 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam