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

4:54:00 AM
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

Share this

Related Posts

Previous
Next Post »