Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 47 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
47
Dung lượng
805,67 KB
Nội dung
Lập trình giao tiếp máy tính Visual Basic Biên soạn: Hồ Thanh Tâm Lê V ăn Bạn PHẦN 1: LẬP TRÌNH VISUAL BASIC: Thoả thuận: tài liệu thuộc quyền sở hữu tác giả, bạn tự tham khảo tài liệu không phép sử dụng để in thành sách báo, đăng lên diễn đàn hay website, bạn dùng đường link http://www.dieukhientudong.net để hướng tới tài liệu Liên hệ tác giả qua email: thanhtam.h@gmail.com A CƠ SỞ LẬP TRÌNH VISUAL BASIC Giới thiệu Visual Basic Visual Basic ngôn ngữ lập trình cấp cao 32 bit sử dụng để viết chương trình chạy mơi trường Windows Visual Basic sử dụng kiểu lập trình Visual hay RAD( Rapid Application Development) việc tạo cửa sổ, Điều khiển cách ứng xử cửa sổ Điều khiển thực cách dễ dàng nhanh chóng thao tác với mouse khơng cần phải khai báo, tính tốn với nhiều câu lệnh phức tạp Visual Basic ngôn ngữ lập trình theo kiểu hướng đối tượng Nó khác với kiểu lập trình cũ kiểu Top Down Lập trình Top Down: chương trình bố trí thực thi từ xuống Với kiểu lập trình này, việc bố trí trở nên khó khăn chương trình lớn Lập trình hướng đối tượng OOP (object-oriented programming): Các thành phần phân thành đối tượng (Object) viết cách ứng xử riêng cho đối tượng sau kết hợp chúng lại tạo thành chương trình Bắt đầu với Visual Basic (VB) 2.1 Khởi động VB: Sau khởi động VB, hộp thoại (Dialog) “New Project” xuất cho phép lựa chọn loại ứng dụng mà bạn muốn tạo VB6 cho phép tạo 13 loại ứng dụng khác Tab “New”, nhiên mức độ thơng thường, Standard EXE (một loại chương trình tự chạy tiêu chuẩn) chọn Hình 1: Dialog lựa chọn ứng dụng ĐH Nông Lâm TP.HCM BM: Điều khiển Tự động Lập trình giao tiếp máy tính Visual Basic Biên soạn: Hồ Thanh Tâm Lê V ăn Bạn 2.2 Giao diện Visual Basic Hình 2: giao diện Visual Basic Giao diện VB bao gồm thành phần sau: • MenuBar: trình đơn VB • Toolbar: số chức chương trình • Toolbox: chứa Điều khiển (Control) thơng dụng • Project Explorer: hiển thị thành phần ứng dụng thực • Properties Window: Cửa sổ hiển thị đặc tính (Properties) thiết kế Điều khiển • Form Layout Window: xem trước thay đổi vị trí Form thực thi ứng dụng • Workspace: vùng làm việc chương trình… • Ngồi giao diện VB chứa nhiều thành phần khác Để hiển thị thành phần bạn chọn trình đơn “View” click chọn thành phần bạn muốn hiển thị Tuy nhiên, với thành phần giới thiệu đủ để giúp bạn xây dựng ứng dụng VB Các thành phần giới thiệu đầy đủ phần sau tài liệu Chú ý: Do VB ngôn ngữ lập trình theo kiểu hướng đối tượng (tuy chưa thật đầy đủ ý nghĩa), để làm việc với VB trước hết bạn phải biết khái niệm “Đối tượng”-Object Lập trình hướng đối tượng Visual Basic Lập trình hướng đối tượng khái niệm khó Tuy nhiên với mức độ trung bình ta cần hiểu thành phần khái niệm nhằm giúp ta xây dựng ứng dụng VB ĐH Nông Lâm TP.HCM BM: Điều khiển Tự động Lập trình giao tiếp máy tính Visual Basic Biên soạn: Hồ Thanh Tâm Lê V ăn Bạn Giới thiệu đối tượng Đối tượng (Object) vật thực hữu, đối tượng có tên gọi riêng.Ví dụ “Cat “ đối tượng, thuộc lớp mèo ( khái niệm lớp-Class khơng đề cập) Mỗi đối tượng có thuộc tính (Properties), Các hoạt động hay Phương thức (Method) ứng xử hay kiện (Event) Ví dụ “Chân”, “mắt”, “màulơng”,… Properties Cat, cịn khả chạy, nhảy…là Method Cat, “Khát nước” Event Cat Truy xuất đối tượng Truy xuất đối tượng việc đọc (GET), đặt (SET) Properties đối tượng hay gọi Method đối tượng Cú pháp: Tên Đối tượng.Properties Đối tượng.Method Ví dụ bạn muốn biết màu lơng Cat, bạn dùng: Biến=Cat.màulông, nghĩa màu lông Cat gán cho Biến, giá trị Biến giá trị màu lông Bây bạn muốn Cat phải chạy, bạn gọi: Cat.chạy “chạy” Method Cat Như hiểu Method mệnh lệnh mà đối tượng có khả thực yêu cầu Khác với Properties ta gọi Method lúc chương trình thực thi (Runtime) Riêng Event kiện xảy đối tượng đáp ứng đối tượng kiện đó, đáp ứng code người lập trình viết, nội dung quan trọng lập trình Phần trình bày cụ thể ví dụ thiết kế ứng dụng Giới thiệu Điều khiển (Control): Các Điều khiển VB dạng Đối tượng, Đó cơng cụ có sẵn giúp cho việc tạo giao diện ứng dụng trở nên dễ dàng nhanh chóng hơn, đặc trưng kiểu lập trình VISUAL hay RAD đề cập Các Điều khiển bao gồm thành phần Đối tượng Vì vậy, từ khái niệm Điều khiển hiểu đồng với Đối tượng VB6 cung cấp 21 intrinsic Control (Điều khiển bản) Phần giới thiệu Control thông dụng sử dụng VB bạn tìm thấy Phụ Lục Cơ sở lập trình Cấu trúc chương trình VB: Private/Public Function/Sub TenChuongTrinh/TenEvent(Biến tham chiếu, tham trị) Dim [Biến1] as Kiểubiến1 Dim [Biến2] as Kiểubiến2 … Lệnh Lệnh … Lệnh n End sub 5.1 Biến: Được dùng để lưu trữ tạm thời giá trị trình tính tốn chương trình Giá trị mà ta lưu trữ biến số nguyên, số thực, hay chữ mà ta gọi kiểu biến Vì thành phần lưu trữ tạm thời nên biến tự động kết thúc chương trình hay chí kết thúc câu lệnh Trong VB, biến khai báo theo cấu trúc: Dim TênBiến as KiểuBiến • Tên Biến phải: Dài khơng q 255 ký tự Phải bắt đầu chữ Không có khoảng trắng hay ký hiệu +,-,*,/… tên biến Khơng trùng với từ khố (keywords)của VB Khơng nên đặt tên trùng Có phân biệt chữ viết HOA chữ viết thường ĐH Nông Lâm TP.HCM BM: Điều khiển Tự động Lập trình giao tiếp máy tính Visual Basic • Biên soạn: Hồ Thanh Tâm Lê V ăn Bạn Kiểu biến: Có số kiểu biến hợp lệ sử dụng VB sau: Kiểu biến Kích thước biến Khoảng giá trị Byte byte to 255 Boolean bytes True or False Integer bytes -32,768 to 32,767 Long (long integer) bytes -2,147,483,648 to 2,147,483,647 Single (single-precision floating-point) bytes -3.402823E38 to -1.401298E-45 for negative values; 1.401298E-45 to 3.402823E38 for positive values Double (double-precision floating-point) bytes -1.79769313486231E308 to -4.94065645841247E-324 for negative values; 4.94065645841247E-324 to 1.79769313486232E308 for positive values Currency (scaled integer) bytes -922,337,203,685,477.5808 922,337,203,685,477.5807 Decimal 14 bytes +/-79,228,162,514,264,337,593,543,950,335 with no decimal point; +/-7.9228162514264337593543950335 with 28 places to the right of the decimal; smallest non-zero number is +/-0.0000000000000000000000000001 Date bytes January 1, 100 to December 31, 9999 Object bytes Any Object reference String (variable-length) 10 bytes length String (fixed-length) Length of string to approximately 65,400 Variant (with numbers) 16 bytes Any numeric value up to the range of a Double Variant (with characters) 22 bytes length User-defined tuỳ theo (using Type) riêng Kiểu liệu người dùng quy định + + quy to string to approximately billion string Same range as for variable-length String định Phụ thuộc vào khoảng giá trị kiểu liệu sử dụng Chú ý: o Biến phải đươc sử dụng kiểu khoảng giá trị VD: Dim x as integer, gán x=“abc” xuất lỗi x khai báo số nguyên nên gán cho ký tự ĐH Nông Lâm TP.HCM BM: Điều khiển Tự động Lập trình giao tiếp máy tính Visual Basic Biên soạn: Hồ Thanh Tâm Lê V ăn Bạn o Trong VB, biến khai báo sau: Dim TenBien, tức không cần khai báo Kiểu biến, Dim TenBien as Variant kiểu biến Variant tức tuỳ ý VD: Dim x hay Dim x as Variant ta gán x=1 hay x=“abc”…vì x khơng có kiểu biến định nên trình dịch tự hiểu kiểu x sử dụng o Trong VB, biến sử dụng mà không cần khai báo trước, nhiên để tránh gặp lỗi lặp trình nên khai báo đầy đủ biến trước sử dụng Tốt nên sử dụng từ khố Option Explicit đầu chương trình.(Xem ví dụ phần sau) Giới hạn sử dụng: biến khai báo bên đoạn chương trình với từ khố Dim phía trước, biến có tác dụng bên đoạn chương trình đó, biến gọi biến cục bộ(Local) Ngược lại khai báo phần General với từ khoá Public thay cho Dim, biến có tác dụng tồn khối chương trình ta gọi biến tồn cục(Global) Nếu biến toàn cục biến cục trùng tên biến có tác dụng biến cục 5.2 Hàm toán tử nội số hàm toán tử hỗ trợ sẵn VB: Xem Phụ Lục 5.3 Các cấu trúc điều khiển a Do…Loop: vịng lặp vơ tận câu lệnh bên Do…Loop thực lặp lặp lại gặp lệnh Exit Do Do [DoEvents] Các câu lệnh Loop Để tránh bị treo máy rơi váo vịng lặp vơ tận, sử dụng Doevents b Do While “điều kiện” …Loop: Trong “điều kiện” cịn cịn thực câu lệnh bên Do Loop Do While ” điều kiện” [Các câu lệnh] [Các câu lệnh] Loop VD: Dim Num Num=0 Do While Num=10 thơi c Do Until “điều kiện”…Loop”: Thực câu lệnh bên “điều kiện” thỏa dừng Do Until ” điều kiện” [Các câu lệnh] [Các câu lệnh] Loop Chú ý: Ta nhận thấy khác biệt Do While Do Until chổ: “điều kiện” Do While điều kiện để thực chương trình “điều kiện “ Do Until lại điều kiện để dừng chương trình ĐH Nông Lâm TP.HCM BM: Điều khiển Tự động Lập trình giao tiếp máy tính Visual Basic Biên soạn: Hồ Thanh Tâm Lê V ăn Bạn d Các Vòng lặp Do…Loop khác: Do [các câu lệnh] [Exit Do] [Các câu lệnh] Loop [{While | Until} “điều kiện” ] Cấu trúc giống cấu trúc nhiên khác biệt câu lệnh thực trước kiểm tra “điều kiện”, nghĩa ln có lần câu lệnh thực bất chấp điều kiện hay sai Chú ý: Trong vòng lặp Do…Loop, để khỏi vịng lặp ta cị thể sử dụng câu lệnh Exit Do e Vòng lặp For…Next: Lặp lại q trình theo số lần định For counter = start To end [Step step] [các câu lệnh] Next [counter] VD: Dim i For i=1 to 10 Step MsgBox “Xin Chao lan:”+str(i),VBOKOnly,”ForNext” Next i Kq: Hộp thoại xuất 10 lần giá trị cúa i=10 thơi Chú ý : sử dụng câu lệnh Exit For để khỏi vịng lặp For…Next f Câu lệnh rẽ nhánh If…then…Else: Nếu điều kiện thực câu lệnh theo sau Then, không thực câu lệnh theo sau Else If “điều kiện” Then [các câu lệnh] [Else câu lệnh khác] If “điều kiện” Then [các câu lệnh] Else [các câu lệnh khác] End if VD: Dim x as Single ‘ khai báo biến x với kiểu Single x=Rnd(1)*10 ‘ cho x giá trị ngẫu nhiên từ 0-10, hàm Rnd(1) trả ‘giá trị ngẫu nhiên từ đến If X>5 then MsgBox “So Lon”,VBOKOnly,”IfThen” Else MsgBox “So nho”,VBOKOnly,”IfThen” g Sử dụng Elseif: Đây dạng điều kiện lồng điều kiện If điều kiện Then [các câu lệnh] … [ElseIf điều kiện-n Then [các câu lệnh elseif] [Else [các câu lệnh khác ]] End If h Cấu trúc Select case: Cũng cấu trúc rẽ nhánh sử dụng kiểu lựa chọn Select Case tên biến [Case giá trị-n [các câu lệnh-n]] [Case Else [các câu lệnh khác]] End Select ĐH Nông Lâm TP.HCM BM: Điều khiển Tự động Lập trình giao tiếp máy tính Visual Basic Biên soạn: Hồ Thanh Tâm Lê V ăn Bạn VD: Dim i i=Rnd(1)*3 Select case i Case : MsgBox “So 0”,VBOKOnly,”SelectCase” Case : MsgBox “So 1”,VBOKOnly,”SelectCase” Case : MsgBox “So 2”,VBOKOnly,”SelectCase” Case : MsgBox “So 3”,VBOKOnly,”SelectCase” End Select i With Đối tượng: muốn truy xuất lúc nhiều Properties đối tượng, người ta sử dụng With đối tượng: VD: Ví dụ sau thay đổi lúc thuộc tính Border, Alignment, Font, BackColor…của đối tượng TextBox tên Text1 With Text1 BorderStyle=1 Alignment=2 BackColor=QBColor(12) Font=”VNI-Times” End With j Bẫy lỗi (Error trapping): bẫy lỗi việc đốn trước lỗi xẩy để hướng chương trình vào lối khác, tránh lỗi On Error Goto Line: Nếu có lỗi nhảy đến dịng Line đoạn chương trình VD: On Error Goto Loi Open "TESTFILE" For Output As #1 [các câu lệnh khác ] Loi: [các câu lệnh xử lí lỗi] On Error Resume Next: Nếu có lỗi bỏ qua, nhảy đến câu lệnh sau Dùng câu lệnh thường không giải lỗi triệt để, dễ làm nảy sinh lỗi liên hồn khó xử lí Khi có lỗi xảy ra, giá trị nhận dạng lỗi lưu tự động vào biến “Err”, để nhận dạng lỗi tìm cách giải thích hợp cần tham khảo biến “Err” B VÍ DỤ LẬP TRÌNH Ví dụ hướng dẫn sử dụng đối tượng VB : CommandButton, TextBox, Label - Khởi động VB, hộp thoại “New Project” chọn “standard EXE”, nhấn “Open” - Một Project tạo thành có tên “Project1”, chứa Form tên “Form1” Trong trình đơn File, chọn “Save Project”, hộp thoại “Save File as” xuất hiện,bạn chọn nơi lưu Project cho mình, sau đặt tên Form FormVD1, tên Project VD1 Project lưu - Tạo Frame cách chọn kéo, cửa số “Properties” đặt thuộc tính name chúng FraHello, FraCal đặt Caption là: Hello, Calculate - Các control cịn lại tạo theo bảng tóm tắt sau: Control Thuộc tính Giá trị CommandButton Name cmdShow Caption &Show Vị trí bên FraHello CommandButton Name cmdClear Caption &Clear Vị trí bên FraHello TextBox Name TxtHello Alignment 3-Center Font Times New Roman • Tên Font ĐH Nông Lâm TP.HCM BM: Điều khiển Tự động Lập trình giao tiếp máy tính Visual Basic Biên soạn: • • Frame CheckBox CheckBox CheckBox CheckBox OptionButton OptionButton OptionButton OptionButton Frame TextBox TextBox TextBox Lock Text Vị trí Name Caption Vị trí Name Caption Value Vị trí Name Caption Value Vị trí Name Caption Value Vị trí Name Caption Value Vị trí Name Caption Value Vị trí Name Caption Value Vị trí Name Caption Value Vị trí Name Caption Value Vị trí Name Caption Vị trí Name Alignment Text Vị trí Name Alignment Text Vị trí Name Style Size Hồ Thanh Tâm Lê V ăn Bạn Bold 48 True bỏ trống Bên FraHello FraStyle Select Style Bên FraHello ChkBor Border 1-Checked Bên FraStyle ChkLock Lock 1-Checked Bên FraStyle ChkEn Enable 1-Checked Bên FraStyle ChkVi Visible 1-Checked Bên FraStyle OptRed Red Flase Bên FraColor OptGreen Green Flase Bên FraColor OptNBlue Blue Flase Bên FraColor OptBlack Black True Bên FraColor FraColor Select Color Bên FraHello TxtNum1 3-Center Bên FraCal TxtNum2 3-Center Bên FraCal TxtSum ĐH Nông Lâm TP.HCM BM: Điều khiển Tự động Lập trình giao tiếp máy tính Visual Basic CommandButton Label Label CommandButton - - Alignment Lock Text Vị trí Name Caption Vị trí Name Caption vị trí Name Caption vị trí Name Caption Vị trí Biên soạn: Hồ Thanh Tâm Lê V ăn Bạn 3-Center true Bên FraCal cmdCal &Calculate bên FraCal LblPlus + bên FraCal LblEqu = bên FraCal cmdExit E&xit bên ngồi Form Hình 3: biểu tượng Control giao diện VD1 Hoạt động chương trình VD1: Bạn nhấn nút lệnh “Show”, dòng chữ “Hello” xuất TextBox txtHello, nút lệnh “Clear” dùng xố dịng chữ txtHello Bạn thử click vào TextBox, đánh thử kí tự nào, bạn thấy khơng có tác dụng, thuộc tính Lock TextBox đặt True lúc thiết kế giao diện, thuộc tính quy định TextBox “ReadOnly” tức không thay đổi nội dung TextBox Bỏ chọn CheckBox chkLock, thử đánh kí tự vào TextBox, lúc có tác dụng Ta thử tương tự cho CheckBox lại dể xem kết Click chọn vào OptionButton Red, Green, Blue, Black bạn thấy màu chữ TextBox thay đổi từ Red->Green->Blue cuối Black ĐH Nông Lâm TP.HCM BM: Điều khiển Tự động Lập trình giao tiếp máy tính Visual Basic Biên soạn: Hồ Thanh Tâm Lê V ăn Bạn - Nhập số vào TextBox TxtNum1, TxtNum2, nhấn nút lệnh Calculate, chương trình thực cộng số kết hiển thị TextBox TxtSum Nút lệnh Exit dùng để thoát khỏi chương trình Viết lệnh cho biến cố (Events) Double Click vào nút lệnh Exit, theo mặc định, Biến cố Click xuất hiện, bạn viết dòng lệnh sau: Private Sub cmdExit_Click() End ‘ Kết thúc chương trình End Sub Tương tự viết lệnh cho biến cố nút lệnh “Show” “Clear” sau: Private Sub cmdShow_Click() txtHello.Text = "Hello" ‘ nút lệnh “Show” Click, gán nội dung thuộc tính Text TextBox “ Hello” End Sub - Private Sub cmdClear_Click() txtHello.Text = "" ‘ Xoá hết nội dung TextBox End Sub Viết lệnh cho CheckBox chọn Style: Private Sub ChkBor_Click() txtHello.BorderStyle = ChkBor.Value ‘ CheckBox chkBor Click, thuộc ‘tính BorderStyle TextBox gán giá trị chkBor, chkbor có giá ‘trị 0: khơng có dấu kiểm 1:khi có dấu kiểm tương ứng với đó, TxtHello ‘có viền ngồi hay khơng End Sub Private Sub ChkEn_Click() If ChkEn.Value = Then txtHello.Enabled = False Else txtHello.Enabled = True End Sub Private Sub ChkLock_Click() If ChkLock.Value = Then txtHello.Locked = False If ChkLock.Value = Then txtHello.Locked = True End Sub Private Sub ChkVi_Click() If ChkVi = Then txtHello.Visible = False Else txtHello.Visible = True End If End Sub ĐH Nông Lâm TP.HCM 10 BM: Điều khiển Tự động Lập trình giao tiếp máy tính Visual Basic Biên soạn: Hồ Thanh Tâm Lê V ăn Bạn Hình 16: Sơ đồ kết nối hệ thống ổn định mực chất lỏng Để đọc trạng thái S1, ta dùng lệnh ValIn=PortIn &H37A ValIn biến tạm, lệnh đọc toàn ghi điều khiển vào biến ValIn, nhiên dựa vào ValIn ta trạng thái Bit C1, tức trạng thái cảm biến S1 ValIn cịn chứa trạng thái Bit khác Ở ta quan tâm đến Bit C1 ta dùng phép Logic And để Masking Để biết trạng thái C1 ta And ValIn với “mặt nạ” Mask= (00000010), kết phép And giải thích sau: Res=ValIn And Bảng chân trị phép And B A And B 0 0 1 giá trị: Res=0 tương ứng C1=0, C1=1 Res=2 Nếu bạn giá trị 0;1 bạn dùng dòng lệnh Res=(ValIn And 2)/2 thay A 0 1 Kết sau And có muốn kết nhận mang cho dòng lệnh Cơ ta đọc trạng thái Bit C1 (chứa biến Res), nhiên cần ý Bit C1 Bit đảo, trạng thái C1 trái ngược với trạng thái cảm biến S1 đặt vào nó, để đảo trạng thái biến Res (chứa trạng thái C1) cho phù hợp với trạng thái cảm biến S1 (điều thật cần thiết số trường hợp) ta dùng Phép Xor để Masking ĐH Nông Lâm TP.HCM 33 BM: Điều khiển Tự động Lập trình giao tiếp máy tính Visual Basic Biên soạn: Hồ Thanh Tâm Lê V ăn Bạn Res=Res Xor Bảng chân trị phép Xor A B A Xor B 0 0 1 1 1 Từ bảng chân trị phép Xor ta nhận thấy Xor Bit với 1, trạng thái Bit đổi, nói cách khác phép Xor Bit với phép “Not” Bit Vì sau dịng lệnh Res=Res Xor trạng thái Res đảo Ngoài số trường hợp Masking ta sử dụng phép Or Bảng chân trị phép Or A B A Or B 0 0 1 1 1 Giao tiếp qua cổng COM Như trình bày phần trên, bạn giao tiếp với cổng COM qua đường giao tiếp thức theo chuẩn RS-232 TxD hay RxD qua đường phụ trợ Thư viện Port.dll có đủ hàm hỗ trợ để bạn thực việc giao cách Tuy nhiên thân VB có hỗ trợ phương thức giao tiếp với cổng COM dạng đối tượng Theo kinh nghiệm cho thấy cần sử dụng đường phụ trợ bạn sử dụng thư viện Port.dll, ngược lại cần truyền nhận theo chuẩn RS-232 (mục đích đây) bạn nên sử dụng phương thức hỗ trợ sẵn VB * Để sử dụng hàm hỗ trợ giao tiếp qua cổng COM thư viện Port.dll bạn phải “mở cổng” hàm OPENCOM, ví dụ: i=OPENCOM(“COM1,9600,N,8,1”) Trong COM1 cổng COM thứ 1, 9600 tốc độ baud, N: không kiểm tra chẵn lẻ, 8: số Bit Frame truyền, 1: số Bit Stop Dòng lệnh bạn đặt vị trí chương trình phải thực trước sử dụng hàm khác Port.dll (bạn nên đặt Event Form_Load()) Sau mở cổng bạn truy cập trực tiếp đường dẫn thông qua hàm trực tiếp như: DTR, RTS,TXD (Xuất trực tiếp đường dẫn), CTS, DSR,RI,DCD (Đọc đường dẫn) Vd: DTR ‘ xuất chân DTR giá trị ( chân lên mức cao) X=CTS ‘đọc trạng thái chân CTS vào biến X … * Trong phần sau khảo sát ví dụ giao chuẩn RS-232 phương thức VB Như bạn biết muốn thực việc giao chuẩn RS-232 ta phải có thiết bị đầu cuối DTE có hỗ trợ RS-232, máy tính Để đơn giản ta sử dụng máy tính PC làm DTE Bạn cần đấu nối chéo máy tính (TxD1(chân máy 1) nối với RxD2 (chân máy 2), RxD1 nối TxD2, nối chân Ground (chân số 5) lại với ) sau tiến hành thực ví dụ giao tiếp - Tạo Project (exe) mới, đổi tên CHAT232, đối tên Form FRMMAIN, Caption: CHAT232 , lưu Project với tên CHAT232 - Với Form FRMMAIN: đặt thuộc tính BorderStyle 1-Fixed Single, thuộc tính StartUpPosition 2-CenterScreen - Đặt vào Form đối tượng Frame, đổi tên chúng thành FraDisplay FraSend, đổi Caption thành TEMP SEND ÑH Nông Lâm TP.HCM 34 BM: Điều khiển Tự động Lập trình giao tiếp máy tính Visual Basic - Biên soạn: Hồ Thanh Tâm Lê V ăn Bạn Đặt FraDisplay TextBox, đối tên thành TXTDISPLAY, đặt thuộc tính Lock=True, Multiline=true, ScrollBar=2-Vertical Đặt FraSend TextBox, đối tên thành txtSend, đặt thuộc Multiline=true, ScrollBar=2-Vertical Đặt FraSend nút lệnh tên cmdSend, Caption=”&SEND” Bạn vào trình đơn “Project” chọn “Components” để chèn vào đối tượng giao tiếp qua cổng COM mà ta sử dụng ví dụ Khi hộp thoại “Components” xuất hiện, bạn kéo trượt tìm đối tượng tên “Microsoft Comm control 6.0”, đánh dấu chọn nhấn “OK” Hình 17: Hộp thoại Componenets Trong ToolBox bạn xuất đối tượng hình điện thoại, kéo đặt đối tượng lên Form bạn, theo mặc có tên MSComm1 Form sau thiết kế có hình dáng sau: - ĐH Nông Lâm TP.HCM 35 BM: Điều khiển Tự động Lập trình giao tiếp máy tính Visual Basic Biên soạn: Hồ Thanh Tâm Lê V ăn Bạn Hình 17: Giao diện sau thiết kế Bây ta viết code cho ví dụ này: Trong kiện Form_Load(): Private Sub Form_Load() MSComm1.CommPort = ‘ Chọn cổng để giao tiếp cổng MSComm1.Settings = "9600,N,8,1" ‘Khai báo thông số mở cổng MSComm1.PortOpen = True ‘ Bắt đầu mở cổng Me.MSComm1.RThreshold = ‘Khai báo sử dụng kiện OnComm End Sub Ba dòng lệnh đầu bắt buộc bạn muốn giao tiếp với cổng COM qua đối tượng MSComm, nhiệm vụ dòng “mở cổng” để phục vụ cho mục đích giao tiếp bạn sau Double Click vào nút lệnh cmdSend, kiện cmdSend_Click(): Private Sub cmdSend_Click() Dim txt As String ‘Khai báo biến tạm dạng chuỗi txt = Me.txtSend.Text ‘ Gán biến tạm nội dung TextBox txtSend Me.MSComm1.Output = txt ‘Gởi giá trị biến tạm cổng nối tiếp Me.TXTDISPLAY.Text = Me.TXTDISPLAY.Text + Chr(13) + Chr(10) Me.TXTDISPLAY.Text = Me.TXTDISPLAY.Text + txt Me.txtSend = "" Me.txtSend.SetFocus End Sub Double Click vào MSComm1, kiện MSComm1_OnComm(): Private Sub MSComm1_OnComm() If Me.MSComm1.CommEvent = comEvReceive Then ‘ Nếu liệu gởi tới Me.MSComm1.InputLen = ‘Chuẩn bị đệm Me.TXTDISPLAY.Text = Me.TXTDISPLAY.Text + Chr(13) + Chr(10) Me.TXTDISPLAY.Text = Me.TXTDISPLAY.Text + Me.MSComm1.Input ‘Phương thức Me.MSComm1.Input dùng để nhận giá trị gới đến từ cổng COM End If End Sub ĐH Nông Lâm TP.HCM 36 BM: Điều khiển Tự động Lập trình giao tiếp máy tính Visual Basic Biên soạn: Hồ Thanh Tâm Lê V ăn Bạn Trong kiện KeyPress txtSend: Private Sub txtSend_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Call cmdSend_Click End Sub Trong kiện Form_Unload() Private Sub Form_Unload(Cancel As Integer) MSComm1.PortOpen = False ‘ Đóng cổng End Sub Để chạy thử chương trình, bạn dịch chương trình thành file EXE sau chép file qua máy tính thứ (DTE thứ 2) kết nối với máy tính bạn Trên máy tính bạn cho chạy chương trình Trên máy bạn thử đánh vào TextBox txtSend nhấn “Send” Enter, bạn thấy dịng thơng điệp bạn xuất TextBox TXTDISPLAY chương trình chạy máy Như ta thành công việc lập trình kết nối máy tính qua cổng COM Với cách tương tự bạn tự mở rộng chương trình để phục vụ cho mục đích bạn Trong tài liệu đưa vài ví dụ giúp bạn kiểm tra lý thuyết học, nhiều ví dụ tập khác trình bày chương trình học ĐH Nông Lâm TP.HCM 37 BM: Điều khiển Tự động Lập trình giao tiếp máy tính Visual Basic Biên soạn: Hồ Thanh Tâm Lê V ăn Bạn PHỤ LỤC 1: CÁC CONTROL TIÊU CHUẨN 1- Textbox: hay gọi edit field or edit control, hiển thị thông tin thời gian thiết kế hay lúc chương trình thực thi Việc truy xuất thông tin Textbox thực thơng qua Properties “Text” Biểu tượng Hình ảnh Properties Method Event Name: Tên đối tượng Alignment:canh lề 0:canh trái 1: canh phải 2: canh Backcolor: màu BorderStyle: Viền 0: khơng viền 1: có viền Move Left,Top,[Width], [Height] : di chuyển VD: Text1.Move 100, 200, 300,400 Là: Di chuyến Text1 đến vị trí cách lề trái 100, lề 200, rộng 300, cao 400 Chú ý: bỏ giá trị [ ] Width hay Height Enable: cho phép cấm sử dụng (true, false) Height: Chiều cao Font: Font chữ Text Click: Xảy Click mouse vào Text DblClick: Xảy Click đôi mouse vào Text GotFocus: Xảy Text nhận Focus KeyDown: Xảy Text có Focus phím nhấn xuống Refresh: Textbox làm tươi KeyPress: Xảy Text có Focus phím nhấn Forecolor: Màu chữ KeyUp: Xảy Text có Focus phím thả Index: số đối tượng (mảng đối tượng) Left: Khoảng cách lề trái Change: Xảy thay đổi nội dung Text SetFocus: Làm cho Textbox nhận Focus, trở thành đối tượng Lock: cho phép cấm sửa ý thông tin ( true false) Windows LostFocus: Xảy Fucos MultiLine: True: cho phép xuống dịng Flase: khơng xuống dịng MouseMove: Xảy có di chuyển mouse Text ScrollBar: Các trượt 0: không sử dụng 1: Thanh trượt ngang 2: Thanh trượt dọc 3: Cả trượt MouseUp: Xảy thả mouse lên Text MouseDown: Xảy nhấn mouse xuống Text Text: Nội dung Textbox Top: Khoảng cách lề Visible: ẩn đối tượng Width: Chiều rộng Textbox ĐH Nông Lâm TP.HCM 38 BM: Điều khiển Tự động Ghi Lập trình giao tiếp máy tính Visual Basic Biên soạn: Hồ Thanh Tâm Lê V ăn Bạn 2- CommandButton: Là nút nhấn sử dụng để bắt đầu, ngắt dừng q trình Biểu tượng Hình ảnh Properties Method Event Name: Tên đối tượng Move Left,Top,[Width], Caption: Phần chữ hiển thị [Height] : di chuyển nút nhấn VD: Command1.Move 100, Backcolor: màu 200, 300,400 Là: Di chuyến Command1 Default: đến vị trí cách lề trái 100, true: Enter =nhấn Button lề 200, rộng 300, cao false: bỏ chức 400 Enable: cho phép cấm Chú ý: bỏ giá trị [ ] Width sử dụng hay Height (true, false) Height: Chiều cao Button Font: Font chữ Caption Refresh: làm CommandButton GotFocus: Xảy CommandButton nhận Focus KeyDown: Xảy CommandButton có Focus phím nhấn xuống tươi KeyPress: Xảy CommandButton có Focus phím nhấn Forecolor: Màu chữ KeyUp: Xảy CommandButton có Focus phím thả Index: số đối tượng (mảng đối tượng) Left: Khoảng cách lề trái Click: Xảy Click mouse vào CommandButton SetFocus: Làm cho CommandButton nhận Focus, trở thành đối Picture: hình chèn vào tượng ý Button Chỉ có tác dụng Windows Style=1 LostFocus: Xảy Fucos Style: 0-Standard : mặc định 1-Graphic: cho phép chèn hình MouseMove: Xảy có di chuyển mouse CommandButton Top: Khoảng cách lề MouseUp: Xảy thả mouse lên CommandButton MouseDown: Xảy nhấn mouse xuống CommandButton Visible: ẩn đối tượng Width: Chiều rộng Textbox ĐH Nông Lâm TP.HCM 39 BM: Điều khiển Tự động Ghi Lập trình giao tiếp máy tính Visual Basic Biên soạn: Hồ Thanh Tâm Lê V ăn Bạn 3- PictureBox: điều khiển sử dụng chứa loại file hình tiêu chuẩn Đặc biệt ta cịn vẽ lên Form Biểu tượng Hình ảnh Properties Method Event Ghi Name: Tên đối tượng Click: Xảy Click Circle: Vẽ đường tròn mouse vào PictureBox AutoRedraw:cho phép tự PictureBox vẽ lại VD: Picture1.Circle true:các nét vẽ (100,200), 50 PictureBox không vẽ hình trịn tâm thay đổi đối tượng (100,200), bán kính 50 false: ngược lại Trên Picture1 Backcolor: màu BorderStyle: Viền 0: khơng viền 1: có viền Cls: Xố hình vẽ DblClick: Xảy PictureBox, khơng xóa Click đơi mouse vào hình PictureBox DrawStyle: quy định loại Move Left,Top,[Width], nét vẽ [Height] : di chuyển VD: DrawWidth: độ lớn nét Picture1.Move 100, 200, vẽ 300,400 Là: Di chuyến Picture1 Enable: cho phép đến vị trí cách lề trái 100, cấm sử dụng lề 200, rộng 300, cao (true, false) 400 Chú ý: bỏ giá FillColor: Màu tơ trị [ ] Width hay Height GotFocus: Xảy Form nhận Focus KeyDown: Xảy Form có Focus phím nhấn xuống FillStyle: Cách tô màu Height: Chiều cao Font: Font chữ Text Refresh: làm PictureBox tươi KeyPress: Xảy PictureBox có Focus phím nhấn Forecolor: Màu vẽ Line (x1,y1)-(x2,y2), KeyUp: Xảy [color] : Vẽ đường thẳng Form có Focus Index: số đối tượng Picture từ (x1,y1) phím thả đến (x2,y2) (mảng đối tượng) Left: Khoảng cách lề trái Point (x,y) : lấy màu LostFocus: Xảy điểm (x,y) Fucos Picture: hình hiển thị Form MouseDown: Xảy nhấn mouse xuống Picture ScaleMode: đơn vị đo MouseMove: Xảy có di chuyển mouse Picture MouseUp: Xảy ÑH Nông Lâm TP.HCM 40 BM: Điều khiển Tự động Lập trình giao tiếp máy tính Visual Basic Biên soạn: Top: Khoảng cách lề Visible: tượng Width: Textbox ẩn Chiều Hồ Thanh Tâm Lê V ăn Bạn Pset (x,y) , color : chấm thả mouse lên Picture điểm (x,y) đối SetFocus: Làm cho PictureBox nhận Focus, trở thành đối tượng rộng ý Windows 4- Form: hay biểu mẫu, đối tượng quan trọng viết ứng dụng Form xem giao diện, ứng dụng phải có Form Cũng giống Đối tượng khác, Form có Properties, Method Event riêng, nhiên Form có cịn có đặc điểm quan trọng khác tất Đối tượng nằm Form coi thành phần Form đó, dung dấu “.”để truy xuất đối tượng Form Vd: Form1 có nút lệnh Command1, để đặt giá trị Left Command1 100 ta sử dụng lệnh: Command1.Left=100 hay Form1.Command1.Left=100 *Từ khoá “Me”: từ khoá Me sử dụng thay cho tên Form câu lệnh câu lệnh viết Form Ví dụ viết lại: Me.Command1.Left=100 Properties Method Event Name: Tên đối tượng Ghi Load: Form load lên Circle: Vẽ đường tròn Form AutoRedraw:cho phép tự vẽ lại VD: Form1.Circle (100,200), 50 true:các nét vẽ Form không vẽ hình trịn tâm (100,200), bán thay đổi đối tượng kính 50 false: ngược lại Trên Form1 Cls: Xố hình vẽ Form, Backcolor: màu khơng xóa hình Move Left,Top,[Width], [Height] : di chuyển BorderStyle: Viền 0: không viền, không di chuyển, không VD: Form1.Move 100, 200, 300,400 thay đổi kích thước Là: Di chuyến Form1 đến vị trí 1: có viền nổi,có thể di chuyển cách lề trái 100, lề 200, rộng khơng thay đổi kích thước 300, cao 400 2: dạng đầy đủ ( mặc định) Chú ý: bỏ giá trị 3,4,5…Không quan trọng [ ] Width hay Height Caption: Tiêu đề xuất Form Form xuất Click: Xảy Click mouse vào Form DblClick: Xảy Click đôi mouse vào Form GotFocus: Xảy Form nhận Focus DrawStyle: quy định loại nét vẽ DrawStyle: quy định loại nét vẽ Enable: cho phép cấm sử dụng (true, false) FillColor: Màu tô vẽ KeyDown: Xảy Form có Focus phím nhấn xuống FillStyle: Cách tô màu Font: Font chữ Text Forecolor: Màu nét vẽ Line (x1,y1)-(x2,y2), [color] : Vẽ KeyPress: Xảy Form đường thẳng Form từ (x1,y1) có Focus phím ĐH Nông Lâm TP.HCM 41 BM: Điều khiển Tự động Lập trình giao tiếp máy tính Visual Basic Biên soạn: đến (x2,y2) Hồ Thanh Tâm Lê V ăn Bạn nhấn Refresh: làm tươi Form Height: Chiều cao Point (x,y) : lấy màu điểm (x,y) Icon: biểu tượng Form xuất Pset (x,y) , color : chấm điểm KeyUp: Xảy Form (x,y) có Focus phím thả Index: số đối tượng (mảng đối SetFocus: Làm cho Form nhận tượng) Focus, trở thành đối tượng ý Windows Left: Khoảng cách lề trái LostFocus: Xảy Fucos MaxButton: cho phép cấm nút lệnh phóng to Form MouseDown: Xảy nhấn mouse xuống Form MiDiChild: True: Form Form Flase: Form Form độc lập MouseMove: Xảy có di chuyển mouse Form MouseUp: Xảy thả mouse lên Form Picture: hình Form Unload: Khi Form tắt Top: Khoảng cách lề Visible: ẩn đối tượng Width: Chiều rộng Textbox … … Ngoài nhiều Control khác thường sử dụng thiết kế ứng dụng với VB • Image: sử dụng hiển thị hình ảnh Form vẽ lên đối tượng Đặc biệt kích thước hình ảnh chèn vào thay đổi theo kích thước đối tượng Image thuộc tính Stretch=true • Label: thường sử dụng làm nhãn, đề tựa • Check box: mang hai giá trị true false control đánh dấu chọn khơng chọn • OptionButton: Nút lựa chọn • ComboBox: danh sách lựa chọn dạng xổ xuống • ListBox: chứa danh sách lựa chọn dạng khung • Frame: khung bao cho nhóm control có đặc điểm chung • HScrollbar: trượt ngang • VScrollbar: trượt đứng • Nhóm DriveListBox, DirListBox, FileListBox: sử dụng truy xuất đến đườngdẫn đĩa • Timer: định thì, thời gian định chứa Properties Interval • … Các Properties, Method, Event Control giới thiệu ví dụ có liên quan ĐH Nông Lâm TP.HCM 42 BM: Điều khiển Tự động Lập trình giao tiếp máy tính Visual Basic Biên soạn: Hồ Thanh Tâm Lê V ăn Bạn PHỤ LỤC 2: MỘT SỐ HÀM VÀ TỐN TỬ CƠ BẢN Một số hàm thơng dụng: Hàm, tốn tử Chức năng, kết Ví dụ: Abs (x) Tính giá trị tuyệt đối X=-5 x A=abs(x), A=5 Atn(x) Tính Arctang x A=Atn(1), A= π/4 Cos(x) Tính Cosin x A=cos(π/3); Kết A=1/2 Date Cho biết tháng, ngày, A=Date; KQ: A=5/16/2005 năm Dir(Pathname) Trả tên File tồn MyFile=Dir("C:\WINDOWS\WIN.INI") KQ: MyFile=WIN.INI DoEvents( ) Nhường cho Event khác Xem ví dụ có sử dụng vóng lặp thực thi Do Loop Exp(x) Hàm e mũ x FileLen(pathname) Tính chiều dài dài File FormatNumber Định dạng cho số FreeFile Trả số dùng làm Xem ví dụ xử lí File FileHandle Hex(number) Đổi sang số Hexa (16) Hour(time) Trả thành phần Giờ MyTime = #4:35:17 PM# hệ thống Giờ: Phút: MyHour = Hour(MyTime) Giây KQ: MyHour=16 IIf(đkiện, đúng, sai) Toán tử rẽ nhánh LBound Trả số nhỏ Dim MyArray(1 To 10, To 15, 10 To 20) mảng Lower = Lbound(MyArray, 1); KQ: Left(string, length) Trích phần tử Dim AnyString, MyStr chuỗi từ lề trái AnyString = "Hello World" MyStr = Left(AnyString, 2);KQ: "He" Len Tính chiều dài chuỗi X=Len(“GiaoTrinhVB”); KQ:X=11 Fix(number) Làm tròn hướng MyNumber = Fix(99.9) ; KQ:99 MyNumber = Fix(-99.9) ; KQ:-99 Int(number) Làm tròn thành số nhỏ MyNumber = Int(99.9) ; KQ:99 MyNumber = Int(-99.9) ; KQ:-100 Mid Trích phần tử X=Mid(“GiaoTrinhVB”,2,3); KQ: X=“iao” chuỗi từ vị trí định A=Exp(2), KQ: A=e2 A = FormatNumber(1.545,1),KQ: A=1.5 x=Hex(11), KQ: x=B A=IIf(10>0,1,0); KQ: A=1 10>0 ĐH Nông Lâm TP.HCM 43 BM: Điều khiển Tự động Lập trình giao tiếp máy tính Visual Basic Biên soạn: Hồ Thanh Tâm Lê V ăn Bạn Minute(time) Trả thành phần Phút MyTime = #4:35:17 PM# hệ thống Giờ: Phút: MyMinute = Minute(MyTime) Giây KQ: MyMinute=35 Month(date) Trả thành phần tháng Dim MyDate, MyMonth hệ thống tháng: MyDate = #February 12, 1969# Ngày:Năm MyMonth = Month(MyDate); KQ: MsgBox Xuất hộp thoại thông MsgBox(“Xin Chao”,VBOkOnly,”Vidu”) báo Now Ngày hệ thống Oct(number) Đổi sang số Octan (8) x=Oct(9), KQ: x=11 QBColor(Number) Number:0-15 16 màu Picture1.BackColor=QBColor(12) KQ: Picture1 có màu đỏ RGB(r,g,b) r,g,b:0-255 Hệ thống Red,Green,Blue Right(string, length) Trích phần tử Dim Chuoi, tr chuỗi từ lề phải Chuoi = "Hello World" tr = Right(Chuoi, 2);KQ: "ld" Rnd[(Number)] Cho số ngẫu nhiên: 0-1 Round(Num,[Aux]) Làm tròn tự nhiên Second(time) Trả thành phần Giây MyTime = #4:35:17 PM# hệ thống Giờ: Phút: MySecond = Second(MyTime) KQ: MySecond=17 Giây Sgn(number) Xét dấu số Shell(pathname) thực thi chương trình RetVal = EXE Shell("C:\WINDOWS\CALC.EXE", 1) “ Chạy chương trình Calculator Sin(x) Tính sin x Space(number) Tạo chuỗi với nhiều A=Space(5), KQ: A=“ khoảng trắng Sqr(Number) Tính bậc A=Sqr(4); KQ: A=2 Str(Number) Đổi số chuỗi A=Str(122); KQ: A=“122” Tan(Angle) Tính tang góc Time, TimeSerial, TimeValue màu Picture1.BackColor=RGB(255,0,0) KQ: Picture1 có màu đỏ Round(1.5216); KQ: Round(1.515645,3); KQ: 1.516 Sgn(2.15), KQ: Sgn(-2),KQ: -1 A=cos(π/6); Kết A=1/2 “ Timer, Các hàm thời gian ĐH Nông Lâm TP.HCM 44 BM: Điều khiển Tự động Lập trình giao tiếp máy tính Visual Basic Biên soạn: Hồ Thanh Tâm Lê V ăn Bạn UBound(Array) Tính kích thước Mảng Dim Mang(1 to 10), A A=UBound(Mang), KQ : A=10 Ucase(String) Đổi sang chữ in Hoa X=Ucase(“abc”); KQ: X=“ABC” Val(String) Đổi chuỗi sang số X=Val(“123”); KQ: X=123 Weekday(Date) Tìm ngày tuần Dim MyDate, MyWeekDay MyDate = #February 12, 1969# “ MyWeekDay = Weekday(MyDate) “ KQ: ngày thứ tư Year(date) Trả thành phần năm Dim MyDate, MyYear hệ thống tháng: MyDate = #February 12, 1969# Ngày:Năm MyYear = Month(MyDate); KQ: 1969 & (số & số) Logic And +,-,*,/ Toán tử toán học And, Or, Xor, Not Toán tử Logic điều kiện (10>1) and (1,>=,