View Single Post
Old 13-02-2006, 11:23 PM   #8
linhnc308
Đệ tử 5 túi
 
Tham gia ngày: Oct 2005
Bài gửi: 117
:
Trích:
Nguyên văn bởi chutchit
Cám ơn bác, em đã load cái đó về rùi. Tuy nhiên nó chỉ có một vài cái cơ bản. Em nghĩ phải có nhiều hơn nữa chứ? Nếu bác có cái link nào tiếng Anh cũng OK.
chẳng lẽ để giao tiếp rs232 chỉ cần có 2 lệnh đó thôi sao? thế còn việc kiểm tra xem lúc nào bộ đệm tràn? như ở bên máy tính em làm cả khâu kiểm tra này, còn ở PIC thì sao? xử lý khi báo tràn như thế nào? EM có đọc datasheet của PIC 16F877 nhưng chưa thông lắm! Mong bác chỉ giáo. Ngoài ra em còn muốn xử lý data xuất/nhập này thì làm như thế nào? có phải ghi từ thanh ghi đệm vào bộ nhớ PIC rồi lấy data từ đó xử lý? Ví dụ như là em muốn cho nó xuất led chẳng hạn!
Mong bác thông cảm, có lẽ em hỏi hơi bị ngây ngô! Em mới chuyển từ 8051 sang PIC mấy tuần nay! CHưa biết gì cả!
Tôi thấy như vậy đã là đủ rồi, kho các hàm của CCS rất nhiệu Về RS232 cho pic thì bạn xem lại trong datasheet, PIC chi có 8 bit cho truyền và 8 bit cho nhân. Tài liệu đầy đủ nhất là help cua nó, kết hợp các hàm lại với nhau sẽ giúp bạn giải quyết nhiều bài toán.
Còn về lập trình giao tiếp RS232 tôi đã có một bài mẫu. Chương trình nhận ký tự từ bàn phím và hiên thị ra LCD, rồi xuất trả lại máy tính ký tự đó.

Code:
#include <16f877a.h>
#include <def_877a.h>
#use delay(clock=20000000)
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=9)

#include <lcd_lib_4bit.c>
#include <input.c>

int8 count=0;
char string_in[16];

#INT_RDA
Receive_isr() {
char c;
int8 i;
count++;
c = getc();
putc(c);
if (c=='c' | c=='C') {LCD_putcmd(0x01);count=0;} //Clear Screen
if (count<=16) LCD_putchar(c);
else {count=0;LCD_putcmd(0xC0);}
}
void main()
{

enable_interrupts(int_rda);
enable_interrupts(GLOBAL);

lcd_init();
lcd_putcmd(0x01);
lcd_putcmd(line_1);
printf("Enter a String.");
printf("Or anything you want!");
while (1) {}
}
File Kèm Theo
File Type: zip giao tiep COM_LCD.zip (1.6 KB, 936 lần tải)

thay đổi nội dung bởi: falleaf, 04-02-2008 lúc 10:32 AM.
linhnc308 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn