PIC Vietnam

Go Back   PIC Vietnam > Truyền thông > Giao tiếp cổng COM và LPT

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Giao tiếp cổng COM và LPT RS232, RS485 và LPT là những giao tiếp cơ bản và kinh điển khi mới học về vi điều khiển...

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 25-06-2008, 11:39 PM   #1
dvnccbmacbt
Đệ tử 4 túi
 
Tham gia ngày: May 2007
Bài gửi: 65
:
RS232 dùng matlab và proteus!!

Em đang gặp rắc rối khi truyền dữ liệu từ PIC đến PC dùng matlab.
Từ máy tính tới PIC dùng matlab thi đã mô phỏng thành công rồi.
Khi tạo cổng com ảo kiểu loopback thì matlab truyền và nhận dữ liệu đều tốt. Nhưng khi tạo 2 cổng ảo (COM1 nối với matlab và COM2 nối với proteus) thi không nhận dữ liệu từ PIC được. Chỉ có PIC nhận từ máy tính được thôi!
Có bác nào đã từng mô phỏng bằng Proteus việc truyền dữ liệu từ PIC6f877a đến máy tính dùng matlab chưa ạ?
Mong các bác giúp đỡ?
Em cảm ơn nhiều!
dvnccbmacbt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-06-2008, 01:13 AM   #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 dvnccbmacbt View Post
Em đang gặp rắc rối khi truyền dữ liệu từ PIC đến PC dùng matlab.
Từ máy tính tới PIC dùng matlab thi đã mô phỏng thành công rồi.
Khi tạo cổng com ảo kiểu loopback thì matlab truyền và nhận dữ liệu đều tốt. Nhưng khi tạo 2 cổng ảo (COM1 nối với matlab và COM2 nối với proteus) thi không nhận dữ liệu từ PIC được. Chỉ có PIC nhận từ máy tính được thôi!
Có bác nào đã từng mô phỏng bằng Proteus việc truyền dữ liệu từ PIC6f877a đến máy tính dùng matlab chưa ạ?
Mong các bác giúp đỡ?
Em cảm ơn nhiều!
Tại sao lại có 2 cổng COM ảo? COM1 và COM2 ảo đó có nối với nhau không? Nếu có thì nối ra sao?

Truyền từ PIC đến 1 cổng COM ảo, rồi nhận dữ liệu vào MATLAB cũng qua cổng COM ảo đó thì mới hợp lý chứ.

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
Old 26-06-2008, 09:40 AM   #3
dvnccbmacbt
Đệ tử 4 túi
 
Tham gia ngày: May 2007
Bài gửi: 65
:
Em xem luông này thì thấy như vậy:http://dientuvietnam.net/forums/showthread.php?t=13005




Tức là cồng COM4 nối với Proteus, còn COM5 thì nối với Visual. Em hiểu như thế đúng không ạ ?

Ở matlab em viết là :
Code:
s=serial('com1')
hàm ngắt ở matlab thì em viết thế này
Code:
function ngat_Callback(obj,event)
 data=fscanf(obj)
Còn ở Proteus thì em chọn thế này:


khi giao tiếp thì matlab phát kí tự thì PIC nhận được,nhưng ngược lại thì không được.
đây là sơ đồ mạch của em:


Mong mọi người giúp đỡ.
Bên luồng "Thiết kế bộ PID cho động cơ DC" em thấy có phần thiết kế và vẽ đồ thị dùng matlab. Các anh cho em xin chương trinh matlab đó đựoc không ạ?
Em cảm ơn nhiều.
dvnccbmacbt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-07-2008, 01:41 AM   #4
phamminhtuan
Super Moderator
 
phamminhtuan's Avatar
 
Tham gia ngày: Feb 2006
Bài gửi: 150
:
Theo mô tả của bạn thì bạn tạo ra 2 cổng ảo là COM1 và COM2, vậy là trên máy bạn không có cổng COM vật lý nào phải không ??

Khi bạn tạo cặp cổng COM ảo thì 2 cổng này được nối "ảo" với nhau, do đó bạn có thể gởi dữ liệu ra cổng COM này và nhần về từ cổng COM kia, thí nghiệm của bạn đã thành công khi gởi dữ liệu từ MATLAB xuống PIC, vậy vấn đề về baudrate.., cài đặt cho truyền nối tiếp chắc là không có vấn đề gì, vấn đề ở đây là chương trình trong MATLAB

Code:
s = serial('COM1','BaudRate',9600);
fopen(s)
s.BytesAvailableFcnMode = 'terminator';
s.BytesAvailableFcn = @mycallback;; %callback như thế này
fprintf(s,'*IDN?');
link tham khảo
phamminhtuan vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-07-2008, 11:23 AM   #5
dvnccbmacbt
Đệ tử 4 túi
 
Tham gia ngày: May 2007
Bài gửi: 65
:
Cảm ơn gợi ý của bạn, Chương trinh matlab thì chắc chắn là không sai vì mình có lam thử trên desktop. Thử đấu chéo chận 2 và chân 3 cong Com và chương trinh matlab đã truyền nhận dữ liệu rất tốt. Trên laptop cũng đã thử mô phỏng kiểu loopback và chương trình vẫn chạy tốt. Nhưng khi mình xài laptop, mo phỏng bằng proteus giao tiêp với PIC6f877a thì không được. Chỉ truyền dữ liệu từ matlab xuong được thôi. Còn nhận từ PIC thi chịu. Mong mọi người giúp đỡ.
dvnccbmacbt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-09-2008, 02:03 AM   #6
andyhug
Đệ tử 1 túi
 
andyhug's Avatar
 
Tham gia ngày: Jun 2008
Nơi Cư Ngụ: Lê Duẩn - Hà Nội
Bài gửi: 23
:
Thumbs up Rs232?

Mình đã thử truyền từ Pic lên, mô phỏng = Proteus7.2SP2, mạch bỏ qua ComPim thấy truyền được! Xin hỏi làm thế nào để xuống dòng, về đầu dòng? Tất cả mạch và chương trình CCSC đây: Thanks!
File Kèm Theo
File Type: zip RS232.zip (46.4 KB, 558 lần tải)
__________________
Sống ở trên đời cần phải có một tấm lòng để gió cuốn đi!
xxxxxxxxxxxxxxxxxxx Trịnh Công Sơn xxxxxxxxxxxxxxxxxxx
andyhug vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 06:01 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam