Chào các bạn!!
Hôm nay mình sẽ hướng dẫn các bạn cách giao tiếp UART sử dụng PIC 16F877A.
Sau khi đọc xong bài viết này bạn có thể:
- Biết cách truyền dữ liệu lên PC.
- Nhận dữ liệu từ PC.
1. UART trong PIC 16F877A.
- PIC16F877A có hỗ trợ 1 kênh giao tiếp UART.
- Sơ đồ kết nối UART:
- Ảnh mô phỏng protues.
- Đây là code chương trình.
#include <main.h>
#include "uart.c"
#include "lcd.c"
#include <var.h>
void main()
{
unsigned int8 kitu;
char str[16];
enable_interrupts(GLOBAL);
UART_config();
LCD_Init();
printf("UART DEMO \n");
sprintf(str,"UART DEMO");
LCD_Puts(str);
delay_ms(1000);
LCD_Clear();
sprintf(str,"Chiasedientu");
LCD_Puts(str);
while(TRUE)
{
kitu=getc();
if(kitu)
{
printf("Hello World");
LCD_Gotoxy(0,1);
sprintf(str,"Ki Tu Nhap: %c \n",kitu);
LCD_Puts(str);
}
delay_ms(10);
}
}
Hôm nay mình sẽ hướng dẫn các bạn cách giao tiếp UART sử dụng PIC 16F877A.
Sau khi đọc xong bài viết này bạn có thể:
- Biết cách truyền dữ liệu lên PC.
- Nhận dữ liệu từ PC.
1. UART trong PIC 16F877A.
- PIC16F877A có hỗ trợ 1 kênh giao tiếp UART.
- Sơ đồ kết nối UART:
- Ảnh mô phỏng protues.
- Đây là code chương trình.
#include <main.h>
#include "uart.c"
#include "lcd.c"
#include <var.h>
void main()
{
unsigned int8 kitu;
char str[16];
enable_interrupts(GLOBAL);
UART_config();
LCD_Init();
printf("UART DEMO \n");
sprintf(str,"UART DEMO");
LCD_Puts(str);
delay_ms(1000);
LCD_Clear();
sprintf(str,"Chiasedientu");
LCD_Puts(str);
while(TRUE)
{
kitu=getc();
if(kitu)
{
printf("Hello World");
LCD_Gotoxy(0,1);
sprintf(str,"Ki Tu Nhap: %c \n",kitu);
LCD_Puts(str);
}
delay_ms(10);
}
}
EmoticonEmoticon