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 04-01-2006, 08:00 PM   #1
ngohaibac
Đệ tử 9 túi
 
ngohaibac's Avatar
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: BKHN
Bài gửi: 231
:
Send a message via Yahoo to ngohaibac
Giao tiếp RS232 trên PC

Chào các bạn tôi xin đưa cho các bạn chương trình mẫu để giao tiếp với RS232 trên PC. Chương trình này tôi viết bằng Visual C++ trong bộ Microsoft Studio 6.0 của Microsoft, các bạn dịch lại ra file .exe để chạy. Phần hướng dẫn chi tiêt tôi sẽ gửi sau khi được kiểm duyệt kĩ lưỡng. Chương trình này còn đơn giản. Sẽ có nhiều phiên bản sau ra đời.

Giao diện chương trình như sau:



Hình 1: Giao diện chương trình

Chương trình có chức năng sau:

- Nhập kí tự hoặc xâu kí tự vào EditBox Transfer, điều chỉnh tham số giao tiếp trên các ComboBox. Nhấn nút Send để gửi dữ liệu ra cổng COM.

- Đồng thời với nó nếu có dữ liệu truyền vê cổng Com thì dữ liệu sẽ được hiển thị lên EditBox Receive. Khi bạn nhấn vào Clear thì sẽ xoá dữ liệu hiển thị trên EditBox này

Chú ý:

Để có thể test luôn chương trình các bạn nối tắt chân 2 và chân 3 của RS232 lại với nhau chính là nối chân RxD và TxD để chúng ta truyền dữ liệu ra RS232 sau đó nhận dữ liệu luôn.



Hình 2: Sơ đồ đấu chân của RS232

Chúc các bạn thành công.
Hình Kèm Theo
File Type: gif rs232_pin.gif (6.4 KB, 6579 lần tải)
File Kèm Theo
File Type: zip TUT01.02.PVN.NOHB.030206.zip (39.1 KB, 17663 lần tải)

thay đổi nội dung bởi: ngohaibac, 23-02-2006 lúc 01:31 PM.
ngohaibac vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-01-2006, 09:10 PM   #2
ngohaibac
Đệ tử 9 túi
 
ngohaibac's Avatar
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: BKHN
Bài gửi: 231
:
Send a message via Yahoo to ngohaibac
Tài liệu TUT01.03.PVN.NOHB.100106

Chào các bạn, sau một số ngày cung phu làm TUT này, cuối cùng TUT cũng được anh Falleaf phê duyệt.

TUT này là về cách lập trình giao tiếp RS232 trên PC bằng công cụ Visual C++ 6.0 trong bộ Visual Studio 6.0 của Microsoft. Tài liệu có nói chi tiết về các thuộc tính của MSComm và cũng hướng dẫn rất chi tiết về cách lập trình.

Tài liệu này bao gồm 78 trang( hơi cung phu) có hình vẽ minh hoạ đầy đủ từng bước đảm bảo các bạn làm theo là được ngay.

Đây là một hình minh họa trong TUT của tôi.

Thứ nhất, kiểm tra các thuộc tính của cổng COM


Thứ hai,tạo dự án


Thứ ba,thêm thư viện MSComm:


thay đổi nội dung bởi: ngohaibac, 14-06-2007 lúc 03:41 AM.
ngohaibac vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-01-2007, 09:55 PM   #3
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 anhoa1608 View Post
Anh Bac chi em link de download Visual c++ voi...Em search hoai ma chua duoc.
Cam on Anh nhiều
Ở VN thì vào các cửa hàng bán đĩa CD mà mua, tìm trên mạng ít có lắm, vì bây giờ Microsoft cho không các phiên bản Express mới nhất mà. Link cho Visual C++ 2005, Express Edition dưới đây:

http://msdn.microsoft.com/vstudio/express/visualc/

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 10-01-2006, 10:22 PM   #4
ngohaibac
Đệ tử 9 túi
 
ngohaibac's Avatar
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: BKHN
Bài gửi: 231
:
Send a message via Yahoo to ngohaibac
Thứ tư,tạo giao diện:


Thứ năm,đặt các thuộc tính cho điều khiển:


Thứ sáu.thêm các biến điều khiển:


Thứ bảy,viết mã cho chương trình:

Đây là tài liệu, xin mời các bạn down về:

http://www.picvietnam.com/download/T...OHB.100106.pdf

Chúc các bạn thành công.

thay đổi nội dung bởi: ngohaibac, 14-06-2007 lúc 03:49 AM.
ngohaibac vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-01-2006, 06:07 PM   #5
VinhVT
Nhập môn đệ tử
 
Tham gia ngày: Jan 2006
Bài gửi: 4
:
Chào các Bác, mình đang cần tìm hiểu lập trình qua cổng COM mà không dùng các OCX. Bác nào biết bảo mình với, Xin trân trọng cảm ơn nhiều
VinhVT vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-01-2006, 06:20 PM   #6
ngohaibac
Đệ tử 9 túi
 
ngohaibac's Avatar
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: BKHN
Bài gửi: 231
:
Send a message via Yahoo to ngohaibac
Vấn đề này thì bạn phải dùng các hàm API. Vấn đề này bạn có thể mua quyển "Lập trình Windows" của tác giả nào đó mình không nhớ.

Vấn đề này tôi đang làm để có thể viết một thư viện cho PVN. Thư viện liên kết động có chức năng như MSComm nhưng độ ổn định cao hơn, tôi hoàn toàn lập trình mức hệ thống giao tiếp gần với hệ thống và các bạn dùng thư viện này tương tự như qua trung gian MSComm. Nhưng thư viện này là do người VN tự làm cho mình.

Thư viện này sắp sửa được đưa ra trong thời gian tới. Bạn chờ nhé.
ngohaibac vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-04-2008, 09:16 AM   #7
ltpbkis
Đệ tử 1 túi
 
ltpbkis's Avatar
 
Tham gia ngày: Mar 2008
Nơi Cư Ngụ: BKHN
Bài gửi: 14
:
Send a message via ICQ to ltpbkis
Smile Hoi Ngo Hai Bac?

Anh Bắc ơi.em đang làm bài tập lớn về VXL.yêu cầu của bài là:
1. nhập nhiệt độ max va min để gửi xuống cho PIC .Nhiệt độ đó là khoảng để PIC ra báo động bằng loa nêu vượt ra khỏi khoảng [max ,min]
2.nhập xong gửi dữ liệu xuống
3.nhận nhiệt độ đo từ LM 335 đo được lên để hiển thị
Tất cả nhập, nhận và truyền dữ liệu đều được viết bằng Visual Basic

Anh cho em hỏi đoạn chương trình sau em viết để truyền nhiệt độ xuống đã đúng chưa mà sao vẫn không được.

' ham de gui du lieu xuong tu PC'
'================================================= ======================='
Private Sub Gui_Click()
Dim Tmaxs As String 'kieu bien truyen la string'
Tmaxs = Tmax 'Bien chua nhiet do max de truyen'
Dim Tmins As String
Tmins = Tmin 'Bien chua nhiet do min de truyen'
If (RS232.PortOpen = True) And (RS232.CTSHolding = False) Then
'neu cong da mo va khong trong wa trinh truyen du lieu thi truyen'
RS232.Output = Tmaxs 'truyen Tmax'
RS232.Output = Tmaxs 'Truyen Tmin'
Else
RS232.PortOpen = True 'nguoc lai phai mo cong'
RS232.Output = Tmaxs
RS232.Output = Tmaxs
End If 'ket thuc kiem tra dieu khien va truyen'
End Sub

và anh cho em cái thuật toán gửi và nhận dữ liệu đi.như để gửi và nhận cần làm cái gì từng bước một kiểm tra cái gì.Truyền và nhận chuỗi ký tự số thì làm như thế nào.
ltpbkis vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-01-2006, 03:02 PM   #8
phamhoangdung
Nhập môn đệ tử
 
Tham gia ngày: Aug 2005
Bài gửi: 1
:
Neu bac VinhVT khong muon dung OCX thi nen dung Mscomm cua Vb6 co san de ma lap trinh. Khi do ban chi can add file port.dll vao trong system cua window la co the lam duoc roi.
phamhoangdung vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-01-2006, 08:19 PM   #9
bkav_hcm
Nhập môn đệ tử
 
Tham gia ngày: Jan 2006
Bài gửi: 4
:
Cám ơn anh N H Bắc rất nhiều, giá mà tôi có tài liệu của anh sớm hơn thì tốt quá.

Tôi mới bắt đầu dùng VC nên không biết, mong anh Bắc và mọi người chỉ hộ, thanks!:

Khi tôi điều chỉnh lệnh
m_mscomm.SetInputMode(0); // 0 - Text Mode , 1- Binary Mode

thành:

m_mscomm.SetInputMode(1);

thì chương trình chạy không đúng

Cho tôi hỏi là nếu mình chuyển sang Binary Mode, ngoài chỉnh lệnh m_mscomm.SetInputMode như trên thì mình có cần chỉnh sửa gì nữa kô? như kiểu biến chẳng hạn...

Rất mong sớm nhận được câu trả lời của anh và mọi người, thanks!

PS: file mẫu anh gửi hơi có vấn đề, sau khi nhập data, nhấn Enter thì nó Close.
bkav_hcm vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-01-2006, 11:52 PM   #12
ngohaibac
Đệ tử 9 túi
 
ngohaibac's Avatar
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: BKHN
Bài gửi: 231
:
Send a message via Yahoo to ngohaibac
Chào các bạn.

Có lẽ để cho các bạn hiểu TUT này hơn tôi xin đưa cho các bạn một link bên dientuvietnam.net để các bạn có thể hiểu thêm về giao tiếp nối tiếp này.
http://dientuvietnam.net/forums/showthread.php?t=963

còn về cái sourcecode ở trên thì tôi nói thế này: thực chất thì bạn dùng kiểu Text Mode hay là kiểu Binary Mode thì cũng đơn giản là truyền xâu kí tự qua RS232. Sau đó, có dữ liệu đến RS232 thì nhận lại và hiển thị trên màn hình. Đơn giản thế thôi.Do đó việc lựa chọn mode là không quan trọng.

Còn tại sao ấn nút Enter khi nhập xong thì thoảt khỏi điều khiển là do.Nút Exit trong chương trình này mặc định là Default. Nên khi ấn Return thì nó có tác dụng lên nút Exit.Cái này hoàn toàn giống như VB thôi.

Bạn làm như sau: kích phải chuột vào nút Send, chọn Properties.Chọn sang Tab Styles bạn check Default button

Chúc bạn thành công.
Hình Kèm Theo
File Type: gif PVN_002.gif (5.0 KB, 1314 lần tải)

thay đổi nội dung bởi: ngohaibac, 09-06-2006 lúc 01:04 PM.
ngohaibac vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-01-2006, 09:37 AM   #13
bkav_hcm
Nhập môn đệ tử
 
Tham gia ngày: Jan 2006
Bài gửi: 4
:
Thumbs up Thanks!

Dựa vào tài liệu của N H Bắc tôi đã viết lại chương trình cho Serial Port đơn gian hơn, post lên cho những ai mới học tham khảo ( vì chức năng ít hơn nên mới đơn giản hơn của NHB )
File Kèm Theo
File Type: zip Serial Port_ NGK.zip (35.7 KB, 5196 lần tải)

thay đổi nội dung bởi: bkav_hcm, 23-01-2006 lúc 09:40 AM.
bkav_hcm vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-02-2006, 11:58 AM   #14
VinhVT
Nhập môn đệ tử
 
Tham gia ngày: Jan 2006
Bài gửi: 4
:
Chao các Bạn !. Bạn viết sử dụng OCX cũng rất tốt. Bạn có sample dùng API không với cổng COM thì cho mình tham khảo nhé. À, mình đang viết chương trình thu dữ liệu qua cổng COM và hiển thị ra màn hình. Nếu bạn có thì cho mình tham khảo nhé. Xin cảm ơn và hẹn gặp lại. địa chỉ mail là: viva23901@yahoo.com
VinhVT vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-02-2006, 02:36 PM   #15
ThanhPhuc
Đệ tử 2 túi
 
Tham gia ngày: Jul 2005
Bài gửi: 35
:
Mình có sơ đồ mạch Test cổng com dùng Pic16F876a giúp các bạn kiểm tra chương trình
File Kèm Theo
File Type: rar test_com.rar (24.7 KB, 2384 lần tải)
ThanhPhuc 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

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
Cho hỏi về giao tiếp RS232 của PIC16F877A enti Giao tiếp cổng COM và LPT 31 25-03-2016 10:14 PM
Giao tiếp RS232 trên PC qua Matlab ngohaibac Giao tiếp cổng COM và LPT 47 18-11-2015 03:51 PM
giao tiep RS232 voi C dangngoc Giao tiếp cổng COM và LPT 9 26-02-2012 02:25 AM
cần mua bộ thu GPS có giao tiếp RS232 kienvq Tìm mua sản phẩm 15 17-03-2011 11:25 PM
Help! Dùng C để giao tiếp RS232 dandiennang Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) 6 15-03-2009 06:41 PM


Múi giờ GMT. Hiện tại là 07:21 PM.


Đượ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