View Single Post
Old 14-12-2008, 06:39 PM   #14
trieucn
Đệ tử 1 túi
 
trieucn's Avatar
 
Tham gia ngày: Apr 2008
Bài gửi: 18
:
Dùng CCS lập trình giao tiếp RS232 rất dễ. Tui đã làm thử qua rùi.
Với việc định nghĩa #use RS232 (...), PIC sẽ tự thêm các bit start, stop và VRC cho các bạn. Các bạn chỉ việc viết hàm chuyền và nhận byte. Thế là xong!
Trong CCS có hàm gets(), dùng để nhận một byte truyền đến từ chân RX trên VDK. Hàm này sẽ chờ cho đến khi có dữ liệu truyền đến và lấy dữ liệu. Khi sử dụng hàm này, VDK ko làm bất cứ việc gì khác (mình đã test thử). Vì vậy, để tránh hiện tượng này, tốt nhất là ta sử dụng ngắt #int_RDA. Khi có dữ liệu truyền đến sẽ sinh ra một ngắt. Cách sử dụng ngắt này, anh ANHCT đã cho các bạn code rùi, mình ko cần phải viết ra nữa. Tuy nhiên, có thể sửa code đó bằng việc bỏ đi hàm delay. Nếu sử dụng nhiều giao tiếp RS232 trên 1 VDK, bạn có thể dùng hàm kbhit(). Hàm này sẽ phát hiện xem có dữ liệu truyền đến hay ko. Cách sử dụng hàm này thì như sau:
if(kbhit())
{
xau[i]=gets();
i++;
///...........(các bạn tự thêm code cho mình nha)
}

Còn việc gửi dữ liệu đi, trong CCS có một hàm là putc(). Hàm này có tác dụng là gửi một chuỗi dữ liệu lên chân TX của PIC. Đế có thể truyền một xâu qua chân TX, ta viết một hàm truyền như sau:
void truyen(char c)
{
putc(c);
}
hàm trên chỉ truyền một ký tự lên chân TX. Để truyền một xâu, ta sử dụng hàm printf kết hợp với hàm truyen() dạng như sau:

string XAU;
......
printf(truyen,"%s",xau);

Còn việc tiếp theo là của các bạn. Chúc các bạn thành công!
__________________
Tiền là tiên là phật. Tiền là sức bật của ta.
trieucn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn