PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Giao tiếp cổng COM và LPT (http://www.picvietnam.com/forum/forumdisplay.php?f=44)
-   -   Giao tiếp RS232 trên PC bằng Visual Basic. (http://www.picvietnam.com/forum/showthread.php?t=869)

diode1 23-07-2011 11:53 PM

Em đang làm về Đếm và phân loại SP trắng và đen Giao tiếp PIC 16F877A voi PC sử dụng VB. Em đã truyền được dữ liệu lên PC nhưng hiển thị không đúng ,xin mấy huynh chỉ em hướng giải quyết. Đây là file gồm Chương trình , mô phỏng bàng proteus và VB. http://www.mediafire.com/?195d8sza5tcjubg
Huynh nào rảnh xem và chỉ em hướng giải quyết Mail của em : vuhoan_vu@yahoo.com

langtudat87 12-11-2011 12:21 PM

Trích:

Nguyên văn bởi ngohaibac (Post 6853)
Chào các bạn.

Mình mở luồng này để hướng dẫn các bạn lập trình giao tiếp RS232 bằng phần mềm Visual Basic 6.0 của Microsoft.

Do site tailieuvietnam.net đang có vấn đề về nhỏ nên mình không upload file lên đó được. Tuy nhiên mình vẫn upload chương trình viết bằng VB để các bạn tham khảo.

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

http://i36.photobucket.com/albums/e4...t/PVN_0112.gif

Hình 1: Giao diện chương trình đơn giản thứ 1 dùng VB.

Chương trình này là một ví dụ nhỏ bạn truyền một loạt byte rùi nhận về (mình nối 2 chân 2 và 3 để test chương trình). Các bạn có thể ứng dụng nó trong mạng truyền thông dùng các giao thức truyền khác nhau. Trong ví dụ của mình truyền đi 11 byte gồm 1 byte start, 8 byte dữ liệu, 1 byte CRC, 1 byte stop.

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

cai nay truyen duoc 2byte nhung minh muon truyen 8byte thi nhu the nao mong cac ban giup do
Option Explicit
Dim Send_Data As String
Dim ket_noi As Integer
Dim Hbyte As Integer
Dim Lbyte As Integer
Dim arr() As Byte


Private Sub cmdclear_Click()
Text1.Text = ""
Text2.Text = ""
End Sub

Private Sub cmdClose_Click()
Unload Me
End Sub

Private Sub Form_Load()
'If MSComm1.PortOpen Then MSComm1.PortOpen = False
'With MSComm1
'.CommPort = 1
'.Settings = "9600,n,8,1"
'.RThreshold = 3 'so byte truyen
'.PortOpen = True
'End With
If MSComm1.PortOpen Then MSComm1.PortOpen = False
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
MSComm1.RThreshold = 3
MSComm1.InputMode = comInputModeBinary
MSComm1.InBufferCount = 0
MSComm1.PortOpen = True
Text1.Text = ""
Text2.Text = ""
End Sub

Private Sub cmdSend_Click()
Send_Data = Trim(Text1.Text)
Hbyte = Send_Data \ 256
Lbyte = Send_Data Mod 256
MSComm1.Output = Chr(Hbyte) & Chr(Lbyte) & Chr$(13)
'MSComm1.Output = Send_Data & Chr$(13)
End Sub

Private Sub MSComm1_OnComm()
If MSComm1.CommEvent = comEvReceive Then
Dim rcv
If MSComm1.CommEvent = comEvReceive Then
arr() = MSComm1.Input
'If (arr(2) = 255) Then
Text2.Text = arr(0) * 256 + arr(1)
'End If
End If
End If
End Sub

mrsin 06-04-2012 12:31 PM

1 Attachment(s)
anh ngohaibac có thể giup em cái nay được không, em có 1 giao diện VB cập nhật giá vàng từ internet xuống, em đã tải dữ liệu xuống được rồi nhưng sao không send data qua vi xử lý được và đây là VB mong anh sửa giúp em

vvv123 13-04-2012 12:44 PM

anh bắc ơi hướng dẫn em cách gửi 1 chuỗi ký tự ví dụ " hoc vdk" từ giao diện của visual basic 6.0 lên pic 16f887 và hiển thị ký tự đó ra lcd
yêu cầu của em là trên giao diện gửi ký tự gì thì vđk sẽ hiển thị tự đó
em đang cần các anh chỉ em với co tài liệu cho em xin lun
mong mọi người giúp đỡ

nhoc_pun_pun 26-05-2012 02:24 PM

minh cun cho g dang can giao tiep nhung co 1 vai

tqhoan15288 28-05-2012 11:20 AM

Trích:

Nguyên văn bởi vvv123 (Post 56263)
anh bắc ơi hướng dẫn em cách gửi 1 chuỗi ký tự ví dụ " hoc vdk" từ giao diện của visual basic 6.0 lên pic 16f887 và hiển thị ký tự đó ra lcd
yêu cầu của em là trên giao diện gửi ký tự gì thì vđk sẽ hiển thị tự đó
em đang cần các anh chỉ em với co tài liệu cho em xin lun
mong mọi người giúp đỡ

Bạn sử dụng ngắt RDA ( ngắt khi nhận đc 1 kí tự từ PC truyền xuống), dùng hàm getc( nhận 1 kí tự), tạo 1 mảng rồi cho vào mảng đấy là xong.
Trong VB thì bạn cũng phải tinh chỉnh mấy cái configuration của MSComm để giao tiếp đc với PIC qua cổng COM.
Thân.

hoangson_200529 01-06-2012 01:08 AM

hiện tại em làm đồ án vẽ đặc tuyến diode trên máy tính, sử dụng pic16877a, nhưng không bít làm cách nhận dữ liệu đo được (ở đây em đo con diode) từ cổng com để có thể vẽ đặc tuyến trên giao diện vb 6.0, e sử dụng teechar de ve,sau đó có 1 nút "lệnh đo" để yêu cầu phần cứng ben ngoài đo con diode rồi tiếp tục gửi dữ liệu vào máy tính de vẽ đặc tuyến trên giao diện vb 6.0. anh giúp em vs anh Bắc ơi

thajcobac 03-12-2012 05:36 PM

Den giao thong gtmt
 
có ai giup đỡ mình mạch đèn giao thông này được ko?
khi minh nhấn nút trong VB sao nó không chạy vậy ?

truong1993 30-10-2013 10:59 PM

Trích:

Nguyên văn bởi stupid11 (Post 43997)
Mình vừa viết xong chương trình giao tiếp với VB qua cổng COM ảo và Proteus bạn nào hứng thú với chương trình này thì mình sẽ hướng dẫn.

đây là clip mô phỏng.Các bạn xem qua.

bi của a rất hữu ích.mong a giúp đỡ.e cũng dang làm cái đề tài điều khiển thiết bị qua tin nhắn dùng sim 900.cần a giúp phần giao tiếp này với ạ.mail của e. xuantruongdt2@gmail.com

demon999 31-10-2013 01:39 PM

cảm ơn bạn chia sẻ nha!


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

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam