PDA

View Full Version : Giao diện VB 6 điều khiển LED


caremlanh
13-09-2011, 01:08 AM
Bài viết có tham khảo từ trang http://www.hocavr.com/index.php/app/gtmt/gtmt2#laptrinh

Dùng phần mềm tạo cổng com ảo
http://www.4shared.com/file/ygCSieKa/VirtualSerialPortDriver691134.html
add pair COM4 và COM5 để mô phỏng
COM4 dùng cho Proteus, COM5 dùng cho VB.
http://i1218.photobucket.com/albums/dd417/caremlanh/PIC_VB_LED/0-ketqua.png
Link download
http://www.mediafire.com/download.php?nr9ngswev4je6td

caremlanh
13-09-2011, 10:31 PM
1. Chạy Visual Basic 6, vào menu “File/New Project” và tạo 1 Project “Standard EXE”

http://i1218.photobucket.com/albums/dd417/caremlanh/PIC_VB_LED/1-project.png

Menu “File / Save Project As”, save Form và Project với tên bất kì.

caremlanh
13-09-2011, 10:33 PM
2. Đặt một “Frame” lên Form
- Caption = DATA

http://i1218.photobucket.com/albums/dd417/caremlanh/PIC_VB_LED/2-frame.png

caremlanh
13-09-2011, 10:35 PM
3. Đặt một “Label” lên Frame
- Name lblLED
- Caption = LED0
- Index = 0
- Font = “chọn Font chữ, cỡ chữ”

http://i1218.photobucket.com/albums/dd417/caremlanh/PIC_VB_LED/3-label.png

caremlanh
13-09-2011, 10:38 PM
4. Đặt một “Shape” lên Frame
- Name shpLED
- Shape = 3-Circle
- FillStyle = 1-Transparent
- FillColor chọn màu đỏ.
- Index=0

http://i1218.photobucket.com/albums/dd417/caremlanh/PIC_VB_LED/4-shape.png

caremlanh
13-09-2011, 10:41 PM
4. Đặt một “checkBox” lên Frame
- Name chkSW
- Caption để trống
- Index = 0

http://i1218.photobucket.com/albums/dd417/caremlanh/PIC_VB_LED/5-checkbox.png

caremlanh
13-09-2011, 10:45 PM
5. Giữ Ctrl hoặc Shift, nhấp chọn Label, Shape, checkBox tạo ở trên và Copy.
Chú ý nhấp chọn Frame trước rồi Paste lên Frame
Đổi Label Caption thành LED1,…, LED7.
Index sẽ tự động tăng từ 1 => 7

http://i1218.photobucket.com/albums/dd417/caremlanh/PIC_VB_LED/6-copy.png

caremlanh
13-09-2011, 10:46 PM
6. Đặt “label”
- Caption = Nhan ON/OFF de bat tat LED

http://i1218.photobucket.com/albums/dd417/caremlanh/PIC_VB_LED/7-on-off.png

caremlanh
13-09-2011, 10:47 PM
7. Tìm và đặt MSComm lên Form
Menu “Project / Components”

http://i1218.photobucket.com/albums/dd417/caremlanh/PIC_VB_LED/8-com.png

caremlanh
13-09-2011, 11:30 PM
8. Nhấp đúp vào Form và viết code

http://i1218.photobucket.com/albums/dd417/caremlanh/PIC_VB_LED/9-code.png

http://i1218.photobucket.com/albums/dd417/caremlanh/PIC_VB_LED/10-Formload.png

Giải thích:
- CommPort = 5 nghĩa là chúng ta muốn kết nối với cổng COM5.
- Settings = "9600,N,8,1" nghĩa là tốc độ Baud=9600, không sử dụng bit Parity, độ dài khung truyền là 8, có 1 bit Stop.
- RThreshold = 1 nghĩa là khi có 1 ký tự đến cổng COM, ngắt nhận dữ liệu xảy ra
- InputLen = 1 nghĩa là khi đọc dữ liệu từ bộ đệm nhận, chúng ta sẽ đọc lần lượt 1 ký tự (1 byte).
- PortOpen = True tức cho phép “mở” cổng COM để sẵn sàng giao tiếp
Chọn menu “View / Object” hoặc Shift-F7 để quay lại Form

caremlanh
13-09-2011, 11:38 PM
9. Nhấp đúp vào biểu tượng MSComm1 để viết code vào sự kiện MSComm1_OnComm()

http://i1218.photobucket.com/albums/dd417/caremlanh/PIC_VB_LED/11-oncom.png

caremlanh
13-09-2011, 11:39 PM
10. Nhấp đúp vào 1 chkSW bất kì

http://i1218.photobucket.com/albums/dd417/caremlanh/PIC_VB_LED/12-click.png

caremlanh
13-09-2011, 11:42 PM
11. Chọn vị trí Layout
http://i1218.photobucket.com/albums/dd417/caremlanh/PIC_VB_LED/13-layout.png

12. Menu “Run / Start” hoặc bấm F5 để chạy file giao diện
Mở file Proteus lên và chạy mô phỏng

Mẹo nhỏ: Ta có thể tạo file exe để sử dụng mà ko cần mở project
Menu “File / Make … exe”

longero
24-11-2011, 01:46 PM
chuong trinh viet cho pic sao bien dich bao loi hoai vay anh

jaxuan
23-02-2012, 10:41 AM
Mình đang làm một đồ án và có bài này mình không biết phải làm sao. Cho mình hỏi về giao tiếp Vb với led. Trên Vb mình tạo nút dịch trái và dịch phải, khi mình ấn nút dịch trái (hay dịch phải) thì led sáng dần trên protues. Mình không biết viết code như thế nào trên VB và code cho pic để nạp. Mong các bạn giải đáp thắc mắc cho mình, cám ơn!!

phong172
25-02-2012, 12:05 PM
cam on bac nh nha

nhandv_at
27-02-2012, 12:45 AM
còn em muốn led hiển thị theo giá trị cua adc 8 bit thi viet code như the nao vay anh.nhan dữ liệu từ pic 16f887 qua cổng rs232

caremlanh
28-02-2012, 02:41 AM
Đọc giá trị ADC 8 bit hiển thị ra VB
http://www.mediafire.com/download.php?hdwvh63xe6dx08j
http://i1218.photobucket.com/albums/dd417/caremlanh/PIC_VB_ADC/ketqua.png

caremlanh
28-02-2012, 02:49 AM
cam on bac nh nha
ko co chi hihi

caremlanh
28-02-2012, 02:56 AM
Mình đang làm một đồ án và có bài này mình không biết phải làm sao. Cho mình hỏi về giao tiếp Vb với led. Trên Vb mình tạo nút dịch trái và dịch phải, khi mình ấn nút dịch trái (hay dịch phải) thì led sáng dần trên protues. Mình không biết viết code như thế nào trên VB và code cho pic để nạp. Mong các bạn giải đáp thắc mắc cho mình, cám ơn!!
gọi x là giá trị VB gửi cho PIC
ban đầu x=0
led sáng dần thì gửi x = x + 2^i, i=0->7
và ngược lại led tắt dần thì gửi x = x - 2^i

caremlanh
28-02-2012, 03:00 AM
chuong trinh viet cho pic sao bien dich bao loi hoai vay anh
kiếm file def_877a.h bỏ vô project hay bỏ vô thư mục Devices của CCS, mình thì để trong Devices nên lúc post quên mất chuyện này

quochoang200191
01-03-2012, 11:24 PM
Tìm file def_877a.h ở đâu anh. giúp e với. e cũng đang làm một bài cung tương tự z nhưng làm máy tính bỏ túi đơn giản. e ko biết mô phỏng trên protues qua cổng com. Hiện giờ code vb6 e có rồi bi giờ chỉ con tạo giao diện trên protues rồi nạp vô nữa. Có cách nào chỉ e với pro carmelanh.thank nhiều.

ladykiller
12-03-2012, 01:03 AM
thank anh caremlanh em đang kiếm cái bài này :))

khangfet
28-03-2012, 05:35 PM
Bạn có thể hướng dẫn mình nhận tín hiệu ADC của PIC 16F877A lên VB^ được ko. Đề yêu cầu gửi dữ liệu 5 byte.

ngdnhanbk
28-03-2012, 07:37 PM
Cám ơn, bài viết rõ ràng

caremlanh
29-03-2012, 03:14 AM
Bạn có thể hướng dẫn mình nhận tín hiệu ADC của PIC 16F877A lên VB^ được ko. Đề yêu cầu gửi dữ liệu 5 byte.
Tôi post lại phần ADC ở post #18, bạn lên đó xem đi

caremlanh
29-03-2012, 03:26 AM
cảm ơn các bạn đã ủng hộ, tôi sẽ cố gắng update lại bài hướng dẫn cho hoàn thiện hơn :D

khangfet
29-03-2012, 08:49 AM
Mình chưa hiểu ở chỗ truyền 5 byte bạn có thể giải thích giúp mình không. Mình sắp nộp bài thường kì

caremlanh
29-03-2012, 02:25 PM
Mình chưa hiểu ở chỗ truyền 5 byte bạn có thể giải thích giúp mình không. Mình sắp nộp bài thường kì
bạn xem lại trên post #18, chỉnh biến trở để thay đổi byte, mỗi lần nhấn nút gửi 1byte
muốn gửi bao nhiêu byte cũng được.

tuanhvhq2011
29-03-2012, 04:09 PM
Cái này đơn giản mà! Tạo một Project trên vb. Tạo một HScroll với giá trị max là 1. chọn giao tiếp cổng com giống như caremlanh nhưng không viết code. trong mục form1 load khởi tạo cho cổng com để cổng com bắt đầu hoạt động. Trong mục HScroll_change viết lệnh
mscomm1.output=chr(HScroll.value).
Code vdk chỉ cần viết lệnh nhận dữ liệu sau đó nếu bằng 0 thì xuất tín hiệu tắt led nếu bằng 1 thì xuất tín hiệu mở led. thế là ok

khangfet
29-03-2012, 11:40 PM
à mình làm được rồi nhưng đang vướn ở chỗ, mình muốn hiển thị giá trị ADC và Voltage lên VB nhưng làm mãi vẫn ko hiện lên ô text được :((

tuanvn
02-04-2012, 03:20 PM
kiếm file def_877a.h bỏ vô project hay bỏ vô thư mục Devices của CCS, mình thì để trong Devices nên lúc post quên mất chuyện này

la sao van chua hieu ban

rongbattuvl
18-11-2012, 01:31 PM
Mình đã thực hiện giống hệt cách bạn chỉ nhưng nếu nhấn giao diện trên VB thì led hiện nhưng nếu chỉnh ngược lại từ SW thì led hiện nhưng VB thì không hiện ra được, tại sao dzậy???

vtking
16-04-2013, 06:08 PM
chi mình hỏi: ở đầu bài thì dùng phần mêm tạo cổng COM ảo rồi nối cổng 4 với cổng 5.
Đến khi thiết lập cổng COM cho VB thì đặt "Comport = 1"?
Và trong 2 cổng 4, 5 thì cổng COM nào là của Proteus?

dungspkt117
26-10-2013, 12:16 AM
mấy Pro cho mình hỏi tí: chương trình mình điêu khiển 1 led đơn nối đến chân RD0 mà không biết sai chỗ nào. nó không giao tiếp để điều khiển được.

code viết trên CCS C
#INCLUDE <16F887.H>
#FUSES NOWDT,PUT,HS,NOPROTECT,NOLVP
#USE DELAY(CLOCK=20000000)
#USE RS232(BAUD=9600,XMIT=PIN_C6,RCV=PIN_C7)

INT NHAN=0;

#INT_RDA
VOID NGAT_RDA()
{

NHAN=GETC();
IF(NHAN==1)
{OUTPUT_HIGH(PIN_D0);}
IF(NHAN==2)
{
OUTPUT_LOW(PIN_D0);
}
}

VOID MAIN()
{

SET_TRIS_D(0X00);OUTPUT_LOW(PIN_D0);//PORTD=0x00;
SET_TRIS_C(0X80);
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);

WHILE(TRUE)
{

}}

code VB6:
Private Sub Command1_Click()
MSComm1.Output = Chr(1)
End Sub

Private Sub Command2_Click()
MSComm1.Output = Chr(2)
End Sub


Private Sub Command3_Click()
End
End Sub

Private Sub Form_Load()
MSComm1.CommPort = 3
MSComm1.Settings = "9600,n,8,1"
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
End Sub
****************

minhducbachkhoa
05-10-2015, 08:06 AM
Bài viết có tham khảo từ trang http://www.hocavr.com/index.php/app/gtmt/gtmt2#laptrinh

Dùng phần mềm tạo cổng com ảo
http://www.4shared.com/file/ygCSieKa/VirtualSerialPortDriver691134.html
add pair COM4 và COM5 để mô phỏng
COM4 dùng cho Proteus, COM5 dùng cho VB.
http://i1218.photobucket.com/albums/dd417/caremlanh/PIC_VB_LED/0-ketqua.png
Link download
http://www.mediafire.com/download.php?nr9ngswev4je6td
sao không thấy file proteus bạn nhỉ?