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 diện VB 6 điều khiển LED (http://www.picvietnam.com/forum/showthread.php?t=11175)

caremlanh 13-09-2011 01:08 AM

Hướng dẫn tạo giao diện VB 6 điều khiển LED
 
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...ver691134.html
add pair COM4 và COM5 để mô phỏng
COM4 dùng cho Proteus, COM5 dùng cho VB.
http://i1218.photobucket.com/albums/...D/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/.../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/...ED/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/...ED/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/...ED/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/...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/...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/...D/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/..._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/...LED/9-code.png

http://i1218.photobucket.com/albums/...0-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/...D/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/...D/12-click.png

caremlanh 13-09-2011 11:42 PM

11. Chọn vị trí Layout
http://i1218.photobucket.com/albums/.../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/...ADC/ketqua.png

caremlanh 28-02-2012 02:49 AM

Trích:

Nguyên văn bởi phong172 (Post 54494)
cam on bac nh nha

ko co chi hihi

caremlanh 28-02-2012 02:56 AM

Trích:

Nguyên văn bởi jaxuan (Post 54442)
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

Trích:

Nguyên văn bởi longero (Post 51807)
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

Trích:

Nguyên văn bởi khangfet (Post 55256)
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

Trích:

Nguyên văn bởi khangfet (Post 55297)
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

Trích:

Nguyên văn bởi caremlanh (Post 54551)
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

Trích:

Nguyên văn bởi caremlanh (Post 49826)
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...ver691134.html
add pair COM4 và COM5 để mô phỏng
COM4 dùng cho Proteus, COM5 dùng cho VB.
http://i1218.photobucket.com/albums/...D/0-ketqua.png
Link download
http://www.mediafire.com/download.php?nr9ngswev4je6td

sao không thấy file proteus bạn nhỉ?


Múi giờ GMT. Hiện tại là 08:48 PM.

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