Phần tiếp theo là tui học giao tiếp USART. Các công việc tui dự định làm là:
- Truyền 1 chuỗi ký tự từ máy tính xuống
- Mạch target nhận các ký tự và hiển thị lên LCD
Trước tiên tui thử truyền liên tục các ký tự '*' lên máy tính, dùng phần mềm HDD Serial Port Monitor để view các ký tự truyền lên:
Code:
#include <16F877A.h>
#include <def_877a.h>
#device *=16 adc=10
#FUSES NOWDT, XT, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=4000000)
#use fast_io (b)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=9)
#define OK PIN_B6
#define Cancel PIN_B7
#define OK_PRESSED !input(OK)
#include <lcd_lib_4bit.c>
int8 count, press;
char phim;
int16 isr_count;
//-----------------------------------------------------------------
void main(void)
{
press=0;
output_b(0xC0);
set_tris_a(0xC0);
set_tris_b(0xC1);
port_b_pullups (TRUE);
while(!txif) putc('*');
}
Nhưng kết quả là không hề thấy ký tự * được truyền lên. Tại sao vậy? Mong nhận được sự giúp đỡ của mọi người.