View Single Post
Old 15-12-2006, 06:49 PM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi enti View Post
Hiện tôi dùng PIC16F877A để giao tiếp với máy tình qua cổng COM, chương trình trên PC viết bằng VB có chức năng lấy giờ từ internet và truyền cho PIC. Hiện tôi đang thắc mắc vấn đề này. PIC có một ngắt nhận RS232, #INT_RDA, nhưng tôi không biết khi nào thì ngắt này xảy ra, mỗi lần xảy ra nó nhận dữ liệu như thế nào, vì nếu PC truyền 6 số kiểu integer thì PIC nhận như thế nào, còn nếu PC truyền 1 biến chuỗi (ghép tất cả 6 biến kia lại ) thì PIC nhận như thế nào. và khi truyền thì nó truyền dữ liệu theo dạng nào. Nếu tôi truyền ngay số nguyên 14 thì PIC nhận là 0E? Ai biết về ngắt này thì giúp tôi 1 chút
#INT_RDA liên quan đến ngôn ngữ và trình biên dịch cụ thể (mà bạn chưa đề cập đến ở đây). Với PIC16, chỉ có một vectơ ngắt cho tất cả các ngắt, và bạn cần kiểm tra cờ ngắt tương ứng với sự kiện mà bạn cần xử lý (ở đây là cờ RCIF) trong chương trình xử lý ngắt chung đó. PIC16 sẽ nhận từng byte vào thanh ghi đệm, đây là thanh ghi đệm kép, có khả năng chứa được 2 byte trong khi byte thứ ba được dịch vào thanh ghi dịch. Nếu xử lý ngắt tốt, bạn hoàn toàn có thể nhận 6 integer. Khi truyền và nhận thì đều là mã nhị phân (có thể dài 8 hay 9 bit). Nếu truyền một byte có giá trị thập phân là 14 thì giá trị nhận được tại PIC sẽ là 14 thập phân hay 0E hexadecimal (nếu khác đi thì đâu có ý nghĩa gì nữa). Bạn chịu khó đọc phần 10 trong datasheet của PIC16F877A.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn