Mình đang làm cái mạch điều khiển bật tắt led bằng cách giao tiếp VXL với máy tính, mạch giao tiếp VXl 89C51 qua cổng RS233với máy tính mình đã làm rối, code để nạp vào con 89 mình cũng đã viết xong, giờ chỉ còn phần code cho visual basic 6.0 là mình ko biết viết thôi. MÌnh tự học visual basic,thấy tài liêu trên mạng nhiều lắm ,nhưng ko có ví dụ.Bạn nào có đoạn code thì viết cho mình nhé, nhìn vào đó mình sẽ hiểu hơn về visual basic!!
Thông báo
Collapse
No announcement yet.
giúp mình về visual basic 6.0
Collapse
X
-
Nguyên văn bởi trungBK Xem bài viếtẶc ặc ăc, sao ko ai giúp mình vậy! Mình tự học nên thật sự cảm thấy kho khăn quá
bạn thử cái này xem sao, ctrinh nay mình viết để xuất dòng chữ lên lcd
Private Sub Form_Load()
Text.FontSize = 10
MSComm1.CommPort = 1
MSComm1.Settings = "115200,n,8,1"
MSComm1.InputLen = 0
MSComm1.PortOpen = True
MSComm1.InputMode = comInputModeText
'che do modetext se truyen du lieu dang ANSI, vi du khi truyen
'so 0 thi may se truyen gi tri hex la 30h
'che do binary se truyen chinh xac gia tri,vi du khi truyen so 9
'thi gia tri se truyen la 9 thay vi 39h trong che do text
End Sub
Private Sub OK_Click()
MSComm1.Output = "`" 'TRUYEN MA BAO HIEU BAT DAU
MSComm1.Output = Left(Text.Text, 16) 'TRUYEN 16 KI TU = 1 DONG LCD
MSComm1.Output = "|" ' TRUYEN MA BAO HIEU KET THUC CHUOI
Text.Text = ""
Text.SetFocus
End Sub
Private Sub Text_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
OK_Click
End If
End Sub
bạn cần tạo 1 textbox (trong ctrinh minh lấy tên là text), và 1 command button (mình đặt tên là OK)
lưu ý là phải có sự bắt tay giữa VDK và softvb6
trong chương trình vb6, trước khi truyền nội dung nó sẽ truyền kí tự "`" để báo cho VDK biết là nó bắt đầu truyền, và khi kết thúc thì nó truyền kí tự "|" để báo cho VDK biết là đã truyền hết nội dung. (bạn có thể tự định nghĩa cách bắt tay riêng của bạn,tùy thích)
Cố gắng đọc kĩ bài của a Ngô Hải Bắc.chúc bạn thành công
Comment
-
mình biết chương trình như vậy ko biết có đúng ko nhỉ:
Private Sub Check1_Click()
If Check1.Value = vbChecked Then
MSComm1.Output = 1
Else
MSComm1.Output = 0
End If
End Sub
Private Sub Check2_Click()
If Check2.Value = vbChecked Then
MSComm1.Output = 2
Else
MSComm1.Output = 0
End If
End Sub
Private Sub MSComm1_OnComm()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,81,"
MSComm1.InputLen = 0
MSComm1.PortOpen = True
MSComm1.InputMode = comInputModeBinary
End Sub
với 2 led được đặt ở chân P1.6 và P1.7
nhưng mà nó cứ báo cái lỗi này.chọn nút nào cũng thế, bạn nào sửa giúp mình nhéAttached Files
Comment
-
sua cai dong nay lai xem sao "9600,N,8,1"Nguyên văn bởi trungBK Xem bài viếtMSComm1.Settings = "9600,N,81,"
Comment
-
Chương trình báo lỗi là do vầy nè bạn: Khai báo cổng thuộc thính cổng COM , bạn phải đặt trong : Private Sub Form1_Load() ( chứ ko phải trong Private Sub MSComm1_OnComm() - vì Oncomm là Sự kiện NGẮT khi nhận giá trị Từ VĐK gởi lên PC ); Chỉ mở cổng COM1 : MSComm1.PortOpen = True , khi đã thiết lập hết thuộc tính cho cổng COM1Nguyên văn bởi trungBK Xem bài viếtmình biết chương trình như vậy ko biết có đúng ko nhỉ:
Private Sub MSComm1_OnComm() ' bị Sai
MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,81,"
MSComm1.InputLen = 0
MSComm1.PortOpen = True ' Bị Sai
MSComm1.InputMode = comInputModeBinary
End Sub
CODE Viết lại:
Private Sub Form1_Load()
MSComm1.CommPort = 1 ' chọn COM1
MSComm1.PortOpen = False ' trước tiên là đóng cổng COM 1 đã ( lệnh này ko có cũng được )
MSComm1.Settings = "9600,N,8,1,"
MSComm1.InputLen = 0 ' Đọc toàn bộ đệm
MSComm1.InputMode = 1 ' Kiểu truyền là nhị phân
MSComm1.PortOpen = True ' Chỉ mở cổng COM sau khi Thiết lập hết
End Sub
Chúc bạn thành công!
My department's Website: www4.hcmut.edu.vn/~thietbidien/trangchu
Motorola-FreeScale's MCU 68HC11 & HCS12X Supporter
Comment
-
Mình có đoạn code này góp vui cùng các bạn :
'Khoi tao giao tiep RS232
Public Sub Init_Com()
frmMain.MSComm.CommPort = 1
frmMain.MSComm.Settings = "9600,N,8,1"
frmMain.MSComm.InputLen = 0
End Sub
Public Sub Set_TTI(Set_Str As String)
frmMain.MSComm.PortOpen = True
frmMain.MSComm.Output = Set_Str & Chr$(13)
frmMain.MSComm.PortOpen = False
End Sub
' Doc du lieu tu TTI
Public Function Read_TTI() As String
Dim s As String
frmMain.MSComm.PortOpen = True
frmMain.MSComm.Output = "Read?" & Chr$(13)
Delay (1)
s = frmMain.MSComm.Input
s = Mid(s, 5, 4)
frmMain.MSComm.PortOpen = False
Read_TTI = s
End Function
hatran318@yahoo.com.vn
Comment
-
Các bác cho em hỏi một tí. là khi mình muốn truyền 1 byte dạng số hex (ví dụ: 01h xuống cổng cóm trong Vb thì ta phải định dạng dữ liệu như thế nào để 89c51 có nhận được byte đó dưới dạng số hẽ như ý của mình.
Em có làm thử nhưng không được như ý muốn. code em viết cho lệnh xuất giá trị ra com như vấy có đúng không:
Mscomm1.output= "1"
89c51 nhận được số này là: 71h (khồng như ý muốn là 01h)
mong các bác chỉ giúm em.
Comment
-
Bạn đã sai rồi. Đơn giản như sau : Mscomm1.output= chr(01h), các số bạn muốn truyền bạn cho vào chr(x). Chú ý: nó chỉ là số 1 byte.Nguyên văn bởi mrhahung_87 Xem bài viếtCác bác cho em hỏi một tí. là khi mình muốn truyền 1 byte dạng số hex (ví dụ: 01h xuống cổng cóm trong Vb thì ta phải định dạng dữ liệu như thế nào để 89c51 có nhận được byte đó dưới dạng số hẽ như ý của mình.
Em có làm thử nhưng không được như ý muốn. code em viết cho lệnh xuất giá trị ra com như vấy có đúng không:
Mscomm1.output= "1"
89c51 nhận được số này là: 71h (khồng như ý muốn là 01h)
mong các bác chỉ giúm em.
email:mahaco@fpt.vn
Comment
-
cam on bac,em lam theo va chay duoc roi nhung co mot dieu la goi nhung so >15 thi nhan luc duoc dung luc khong. vay thi em phai khac phuc the nao? con de may tinh nhan duoc mot byte do vxl goi den thi phai khai bao nhu the nao? em thu lam nhu bai cua Ngohaibac nhung may tinh khong nhan duoc. vay ai da lam ve cai nay roi thi xin giup do gium!
Comment
Bài viết mới nhất
Collapse
-
bởi ittcChán quá các bác, em nhạt nhẽo quá nên tán em nào cũng tạch, tuyệt vọng vô cùng, nay lại được mấy anh đồng nghiệp cty đối tác mách cho em gái kia sinh năm 2K đầu, em chả biết nhóm đối tượng này phải tán ra sao bây giờ ?
Tính ra em...-
Channel: Tâm tình dân kỹ thuật
hôm nay, 00:18 -
-
bởi bqvietCó thể, ví dụ phần phản hồi gồm vi mạch cách ly quang, zener thứ cấp, transistor và điện trở phản hồi dòng ... Bất kỳ linh kiện nào nhóm đó hỏng dẫn tới mất đường phản hồi. TNY chính hãng phát hiện được chuyện đó nhưng linh kiện...
-
Channel: Điện tử công suất
Hôm qua, 18:36 -
-
bởi Nexus 6Pcho e hỏi, khi mạch có linh kiện nào đó hư thì có làm hỏng led đắt tiền (osram) không?
-
Channel: Điện tử công suất
Hôm qua, 10:42 -
-
bởi chinhnguyen9· Thí nghiệm 1 (Mạch boost, Vcc=12V, kích bằng dao động PƯM, duty 10%):
* Không có snubber + không tải: Xuất hiện hiện tượng dao động tắt dần tại cực D Mosfet (ringing). Hình 1 cho thấy trong chu kỳ đầu, điện áp spike lên tới hàng trăm V, điện...-
Channel: Hướng dẫn sử dụng diễn đàn
04-02-2026, 09:16 -
-
bởi Nexus 6Pe dùng KiCad 9.0 và đã xuất được file PDF mạch in gòi bác...
-
Channel: Điện tử công suất
03-02-2026, 16:25 -
-
bởi bqvietBấm chuột vào các tệp sẽ bật ra chương trình tương ứng. Nên dùng bản KiCAD sau
https://kicad-downloads.s3.cern.ch/a...ll_version.exe-
Channel: Điện tử công suất
03-02-2026, 14:57 -
-
bởi Nexus 6Pe cài KiCAD 2012 khi mở ra nó chỉ hiện ntn...
-
Channel: Điện tử công suất
03-02-2026, 11:20 -
-
bởi bqvietThực tế bạn nào không tải được tệp nén thiết kế thì căn cứ theo ảnh sơ đồ mạch có thể vẽ lại sơ đồ bằng chương trình EDA nào đó rồi làm mạch được mà. Càng thêm quen thuộc với sơ đồ. Sau đó tùy ý chuyển sang TinySwitch-III hoặc TinySwitch-4.
-
Channel: Điện tử công suất
02-02-2026, 21:13 -
-
bởi Nexus 6PCó ai có bản in của mạch in không, cho em xin file để đi in với ạ
-
Channel: Điện tử công suất
02-02-2026, 14:37 -
-
bởi Nexus 6PLink hư rồi ạ, xin lại link của bản thiết kế cũ ạ...
-
Channel: Điện tử công suất
02-02-2026, 10:48 -


Comment