View Single Post
Old 12-11-2011, 12:21 PM   #15
langtudat87
Nhập môn đệ tử
 
Tham gia ngày: Oct 2011
Bài gửi: 1
:
Trích:
Nguyên văn bởi ngohaibac View Post
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:



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
langtudat87 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn