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 02-06-2009, 02:02 PM   #151
Delfy_Coltech
Đệ tử 4 túi
 
Delfy_Coltech's Avatar
 
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Hanoi, Vietnam
Bài gửi: 78
:
Trích:
Nguyên văn bởi TANDEM View Post
Cám ơn bạn Delfy_Coltech! Hiện mình vẫn đang vật lộn với việc truyền nhận đó.
- Cho phép lựa chọn nhiều cổng COM cũng như các thông số khác thì mình đã viết được rồi.
- Khi giao tiếp với Serial Port Monitor của CCS thì việc truyền nhận diễn ra hoàn toàn suôn sẻ, hai bên đều truyền và nhận đúng các số và ký tự.
Khi truyền từ PIC đến thì cả Serial Port Monitor của CCS và C# đều hiện các ký tự lạ. Mình không hiểu lý do tại sao??
Nếu như bạn nói thì chắc là do chương trình CCS của bạn rồi!
Đầu tiên bạn cứ thử truyền các mã hex xem nó nhận thế nào đã!
Rồi mới truyền số hoặc string.
Thử với cái Terminal C# này xem sao.
Good luck!
File Kèm Theo
File Type: rar SerialPort Terminal.rar (63.0 KB, 402 lần tải)
__________________
Mechatronics Department
University of Engineering and Technology, VNUH.
Delfy_Coltech vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-06-2009, 06:54 PM   #152
hoangnguyen_qn
Đệ tử 1 túi
 
Tham gia ngày: Dec 2008
Nơi Cư Ngụ: Nhà thuê
Bài gửi: 22
:
các bạn xem thư chương trình này giúp mình nha:chỉ cần truyền 1 ký tự từ pc xuống pic và phản hồi lại ký tự đó.nhưng có chút vấn đề ko biet phần cứng hay mềm nữa:
Code:
#include <16f877a.h>
#include <de_16f877a.h>
#fuses nowdt,noprotect,noput
#device *=16
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=pin_c6,rcv=pin_c7)
char c;
#int_rda
void receive()
{c=getc();
putc(c);
}
void main()
{enable_interrupts(global);
enable_interrupts(int_rda);
while(true)
{
}
}
Hình Kèm Theo
File Type: bmp mach_rs232.bmp (566.5 KB, 184 lần tải)
File Kèm Theo
File Type: rar giao tiep.rar (19.1 KB, 286 lần tải)
File Type: txt tailieu.txt (324 Bytes, 155 lần tải)
__________________
Ta biết rằng cố quên là sẽ nhớ nên dặn lòng cố nhớ để mà quên!

thay đổi nội dung bởi: namqn, 02-06-2009 lúc 07:14 PM. Lý do: định dạng code
hoangnguyen_qn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-06-2009, 10:09 PM   #153
nam228
Nhập môn đệ tử
 
Tham gia ngày: May 2008
Bài gửi: 2
:
xin chào hoangnguyen_qn
mình nghĩ đoạn code của bạn không có vấn đề,ban nên kiểm tra lại mạch con MAX232
dùng đồng hồ đo chân 2 và 6 nếu được khoảng +-7v trở lên la ok
nam228 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-06-2009, 10:34 PM   #154
nam228
Nhập môn đệ tử
 
Tham gia ngày: May 2008
Bài gửi: 2
:
chào mọi người
mình muốn dùng Matlab truyền dãy số xuống Pic 16f877a
nhưng mình chỉ truyền được dãy số 2 bytes ,từ 3 bytes trở lên PIc chỉ nhận được số đầu tiên.Theo mình hiểu trong PIC6f877a thanh ghi đệm RCREG chỉ có 2 bytes,vậy có cách nào tạo ra một bộ đệm lớn hơn (khoảng 4 bytes) bằng phần mềm không?
nam228 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-06-2009, 11:14 AM   #155
minhtrung2002dn
Nhập môn đệ tử
 
Tham gia ngày: May 2009
Bài gửi: 5
:
kính gửi anh ngohaibac
em đang viết chương trình giao tiếp cổng com giửa máy tính và đầu cân DIOMAT S bằng vb. nhưng do ko biết khung truyền như thế nào. Có 1 phần mềm củ của nhà cung cấp nhưng do ko thích nghi với thời điểm hiện tại, phần mềm này chủ yếu nhận dử liệu cân về máy tính. Em đã dùng phương pháp nối hai máy tính với nhau qua cổng com rs232 và dùng phần mềm terminal để text xem phầm mềm củ của nhà cung cấp gửi dử liệu gì qua đầu cân. Lúc này em nhận được dử liệu HEX trên terminal như thế này:02 30 31 23 54 47 23 03 11 02 30 31 23 54 47 23 03 11 02 30 31 23 54 47 23 03 11 02 30 31 23 54 47 23 03 11 02 30 31 23 54 47 23 03 11 và vòng lặp cứ tiếp tục như vậy.Em ko hiểu họ dùng ký tự nào để gửi qua đầu cân . Mong anh giúp em cảm ơn
minhtrung2002dn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-06-2009, 05:08 PM   #156
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
Trích:
Nguyên văn bởi minhtrung2002dn View Post
kính gửi anh ngohaibac
em đang viết chương trình giao tiếp cổng com giửa máy tính và đầu cân DIOMAT S bằng vb. nhưng do ko biết khung truyền như thế nào. Có 1 phần mềm củ của nhà cung cấp nhưng do ko thích nghi với thời điểm hiện tại, phần mềm này chủ yếu nhận dử liệu cân về máy tính. Em đã dùng phương pháp nối hai máy tính với nhau qua cổng com rs232 và dùng phần mềm terminal để text xem phầm mềm củ của nhà cung cấp gửi dử liệu gì qua đầu cân. Lúc này em nhận được dử liệu HEX trên terminal như thế này:02 30 31 23 54 47 23 03 11 02 30 31 23 54 47 23 03 11 02 30 31 23 54 47 23 03 11 02 30 31 23 54 47 23 03 11 02 30 31 23 54 47 23 03 11 và vòng lặp cứ tiếp tục như vậy.Em ko hiểu họ dùng ký tự nào để gửi qua đầu cân . Mong anh giúp em cảm ơn
Chào bạn.

Ở đây theo mình nghĩ thì họ gửi theo kiểu binary, mỗi lần gửi 1 byte có giá trị tương ứng với các byte mà bạn đã xem đó. Bạn viết lại chương trình bằng VB hoặc là dùng chính Terminal để gửi các byte này xem (save các giá trị vào text file rồi gửi 1 phát).

Chúc bạn thành công.
ngohaibac vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-06-2009, 02:10 PM   #157
minhtrung2002dn
Nhập môn đệ tử
 
Tham gia ngày: May 2009
Bài gửi: 5
:
cảm ơn anh đã hồi âm cho em.
Để truyền dử liệu qua đầu cân DISOMAT S em đã viết code như sau:
Private Sub Form_Load()
MSComm1.CommPort = 3
MSComm1.Settings = "9600,n,8,1"
MSComm1.RThreshold = 1
MSComm1.InputLen = 500
'MSComm1.Handshaking = False
MSComm1.InputMode = comInputModeText
MSComm1.RTSEnable = True
MSComm1.DTREnable = True
MSComm1.PortOpen = True
MSComm1.ParityReplace = ""
MSComm1.NullDiscard = True

End Sub
Sub delay(ByVal giay As Double)
Dim star As Double
star = Timer
While (Timer < star + giay / 1000)
DoEvents
Wend
End Sub
Private Sub Timer3_Timer()
Dim BytesToSend(0 To 17) As Byte ' khai báo m?t m?ng 2 ph?n t?
Dim Buffer As Variant
' l?u tr? d? li?u vào m?ng ki?u byte ? trên
BytesToSend(0) = &H2
BytesToSend(1) = &H30
BytesToSend(2) = &H31
BytesToSend(3) = &H23
BytesToSend(4) = &H54
BytesToSend(5) = &H47
BytesToSend(6) = &H23
BytesToSend(7) = &H3
BytesToSend(8) = &H11
BytesToSend(9) = &H2
BytesToSend(10) = &H30
BytesToSend(11) = &H31
BytesToSend(12) = &H23
BytesToSend(13) = &H54
BytesToSend(14) = &H47
BytesToSend(15) = &H23
BytesToSend(16) = &H3
BytesToSend(17) = &H11
' cho vào m?t bi?n Variant
Buffer = BytesToSend()
'ghi vào c?ng n?i ti?p
MSComm1.Output = Buffer
delay 600

End Sub
em đã truyền được rồi và dử liệu đầu từ đầu cân cũng đã gửi lại máy tính. nhưng em thấy cách viết code như trên của em chưa tốt lắm mong anh nào có cách hay hơn chỉ giúp.
minhtrung2002dn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-09-2009, 03:22 PM   #158
thinh001
Đệ tử 1 túi
 
Tham gia ngày: Nov 2008
Bài gửi: 15
:
Send a message via Yahoo to thinh001
chào các bác em định làm bài tập là LCD giao tiếp máy tính, tức là mình xuất 1 ký tự trên máy tính xuống LCD nhưng lại không có tài liệu
ai có thì cho em xin với
Cám ơn trước
thinh001 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-09-2009, 12:23 AM   #159
timtoihochoi
Nhập môn đệ tử
 
Tham gia ngày: Aug 2009
Bài gửi: 1
:
Trích:
Nguyên văn bởi ngohaibac View Post
Đây là tài liệu Serial_Complete của Jan Axelson, (38.5MB)
http://www.tailieuvietnam.net/downlo...20Complete.pdf

Mọi người down về để lấy làm tài liệu cho mình nhé.
sao không được vậy bạn. Bạn xem lại link được ko. thank
timtoihochoi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-10-2009, 11:46 AM   #160
thanhhuyen87
Nhập môn đệ tử
 
Tham gia ngày: Oct 2009
Bài gửi: 1
:
Trích:
Nguyên văn bởi motconmeo View Post
Anh Bắc ơi, đúng là VC nhà em có vấn đề
Sau khi chỉnh sửa lại thì chạy ngon lành rồi anh ạ . Cám ơn anh nhiều
bạn ơi! bạn sửa kiểu gì vậy. máy của mình cũng bị lỗi như thế. chạy các bài vc++ khác thì ngon ơ. riêng bài này lại bị lỗi như thế
thanhhuyen87 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-10-2009, 12:29 PM   #161
nmhai
Đệ tử 3 túi
 
nmhai's Avatar
 
Tham gia ngày: Dec 2007
Bài gửi: 60
:
Trích:
Nguyên văn bởi linhnc308 View Post
Về cái giao tiếp này tôi cũng đã làm khá nhiều mạch, ,phần mềm thì viết bằng VB thôi. Nói chưng khá hay. Nhân đây, có bác nào đã làm mạch đo nhiệt độ dùng PIC và gửi dữ liệu lên máy tính chưa. Và dữ liệu đó sẽ được đưa vào một đồ thị, vẽ thanh dạng biểu đồ theo thời gian. Ở nhà tôi đã làm cái mạch đo rồi, nhưng còn khoản ghi dạng đồ thị thì chưa,ở nhà cũng có cái code mẫu họ dùng VB trông khá đơn giản,đồ thị chạy đẹp,khá ổn. Tôi thấy cái này khá hay. ta có thể lưu đồ thị đó lại,sau có thể xem lại tiến trình biến đổi nhiệt..v.v...
Thu thập dữ liệu và đưa lên máy tính, vẽ đồ thị thì mình cũng làm khá nhiều rồi, nhưng toàn viết bằng Visual C#.
__________________
Email: nmhai83@yahoo.com
nmhai vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-10-2009, 08:06 AM   #162
hoangxudi
Nhập môn đệ tử
 
Tham gia ngày: Oct 2009
Bài gửi: 2
:
Xin chào các bác! Em mới lên diễn đàn thấy các bác nhìu tài liệu hay quá em mới down về một ít. Sau này mong các bác chỉ bảo thêm.
Em đang làm mạch giao tiếp dùng RS232 mà tìm khắp không thấy tài liệu nào hay. Có bác nào có Tài liệu nào hay xin gửi cho em với.Mail của em là:
hoangxudi@gmail.com
Em xin Cảm ơn Và Hậu Tạ!
hoangxudi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-04-2010, 09:07 PM   #163
dktd5_pro
Nhập môn đệ tử
 
Tham gia ngày: Jan 2010
Bài gửi: 2
:
ah oi giup e ve do an mon dieu khien dong co buoc su dung RS232 noi tiep voi may tinh .dktd5mta@gmail.com. cam on anh nhe
dktd5_pro vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-06-2010, 12:09 AM   #164
thanhsonhugoa4
Nhập môn đệ tử
 
Tham gia ngày: Jun 2010
Bài gửi: 1
:
bạn ơi cho mình hỏi cách giao tiếp cân điện tử thông qua cổng RS232 như thế nào vậy? bạn có thể chỉ chi tiết cho mình ko? cam on nhieu nha
thanhsonhugoa4 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-06-2010, 09:28 PM   #165
chuot_bac
Nhập môn đệ tử
 
Tham gia ngày: Jul 2008
Bài gửi: 3
:
Smile giup em bác ơi!

Em sử dụng cáp USB-to COM để truyền dữ liệu cho PIc6F877A. Em sử dụng Terminal để truyền dữ liệu nhưng sao khi truyền bất cứ kí tự nào xuống thì dữ liệu truyền về bất kể khi em truyền vào chân nào của PIC, kẻ cả khi chưa cấp nguồn cho PIC.
Mong bác chỉ giáo!
chuot_bac 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à 05:06 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