View Single Post
Old 15-12-2016, 11:44 PM   #1
cuocsong6so
Nhập môn đệ tử
 
Tham gia ngày: Sep 2016
Bài gửi: 1
:
Exclamation 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 ạ
cuocsong6so vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn