Thứ Ba, 29 tháng 12, 2015

BÀI 15 : GIAO TIẾP UART PIC16F877A CCS (P2)

Chào các bạn hôm nay mình sẽ hướng dẫn các bạn tiếp phần UART nha. Trong BÀI 14 mình đã hướng dẫn lý thuyết và đã làm 1 ví dụ nhỏ về giao tiếp UART nên bạn nào chưa xem bài trước thì xem lại bài 14 nha ! Bài hôm bữa chúng ta chỉ dừng lại ở việc giao tiếp giữa 2 con Vi Điều Khiển con Master sẽ gửi lệnh sang con Slave của chúng ta sẽ nhận lệnh và thực hiện nhưng hôm bữa chúng ta chỉ dừng lại ở giao tiếp với LED thôi hôm nay sẽ thêm nút nhấn nữa ! OK.
- Đây là ảnh mô phỏng proteus.

giao tiếp uart giữa 2 pic

- Đây là code chương trinh Master.
#include <16F877a.h>
#FUSES NOWDT, HS, PUT, NOPROTECT,
#use DELAY(clock=16000000)
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7) 
#DEFINE ON    PIN_B0
#DEFINE OFF    PIN_B1
int8 TDATA;
void main()
{
SET_TRIS_B(0xFF);
PORT_B_PULLUPS(0XFF);
SET_TRIS_D(0x00); 
OUTPUT_D(0X00);
WHILE(true)

IF (!INPUT(ON))

TDATA=0XFF;
PUTC(TDATA);
OUTPUT_D(TDATA);
}
IF (!INPUT(OFF) ) 

TDATA=0X00; 
PUTC(TDATA); 
OUTPUT_D(TDATA);
}
}
}
- Đây là code chương trình Slave.
#include <16F877a.h>
#FUSES NOWDT, HS, PUT, NOPROTECT,
#use DELAY(clock=16000000) 
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7) 
int8 RDATA;
void main()
{
SET_TRIS_D(0x00); 
output_d(0);
while(1)
if(kbhit()) 
RDATA=getch();   
OUTPUT_D(RDATA);
}
}
}
- Link download project Click here


EmoticonEmoticon