3.Nắm được các lệnh cơ bản Visual Basic.Net 2010 hay Visual Basic 6.0: giới thiệu, kiểu dữ liệu, phép tốn, cấu trúc điều khiển điều kiện, vịng lặp và chương trình con và thủ tục.. 3.2.1.
Trang 1Thời lượng giảng dạy: 60 tiết
TP HỒ CHÍ MINH – 2017
LƯU HÀNH NỘI BỘ
Trang 2Lời nĩi đầu
Mơn học Thí nghiệm đo lường và điều khiển bằng máy tính cung cấp phần thực hành ứng dụng máy tính và kit vi điều khiển trong đo lường và điều khiển Mơn học gồm cĩ các bài thí nghiệm sau:
Bài 1: Mở đầu
Bài 2: Điều khiển led, LCD bằng cổng nối tiếp
Bài 3: Hệ thống điều khiển nhiệt độ
Bài 4: Điều khiển tốc độ động cơ một chiều dùng máy tính
Bài 5: Điều khiển vị trí động cơ một chiều dung máy tính
Bài 6: Điều khiển dùng card USB 6008
Bài 7: Điều khiển dùng card thu thập dữ liệu và điều khiển PCI 6221/PCI 1711 Bài 8: Điều khiển bằng cổng song song
Đối tượng giảng dạy là sinh viên đại học và cao đẳng chuyên ngành Điện tử -
tự động hĩa
Bài giảng này được biên soạn lần đầu nên khơng tránh khỏi thiếu sĩt Rất mong các Thầy cơ giáo, đồng nghiệp và bạn đọc gĩp ý để bài giảng ngày càng hồn thiện hơn Thư gĩp ý xin gửi về địa chỉ : Bộ mơn Điện tử tự động, khoa Cơng nghệ điện tử , trường Đại học Cơng nghiệp Tp HCM, số 12 Nguyễn Văn Bảo, P.4, Q Gị vấp, Tp HCM ĐT: (28)38940390,email: huynhminhngoc@iuh.edu.vn
Tp Hồ Chí Minh , ngày 21-7-2017
ThS Huỳnh Minh Ngọc
Trang 3Mục lục
Lời nĩi đầu 2
Mục lục 3
Bài 1: Mở đầu 4
Bài 2: Điều khiển led, LCD bằng cổng nối tiếp 93
Bài 3: Hệ thống điều khiển nhiệt độ 158
Bài 4: Điều khiển tốc độ động cơ một chiều dùng máy tính 228
Bài 5: Điều khiển vị trí động cơ một chiều dung máy tính 274
Bài 6: Điều khiển dung card USB 6008 293
Bài 7: Điều khiển dung card thu thập dữ liệu và điều khiển PCI 6221/PCI 1711 405 Bài 8: Điều khiển bằng cổng song song 419
Tài liệu tham khảo 485
Trang 4Bài 1: Mở đầu I.Mục tiêu
1 Giới thiệu thiết bị cĩ trong phịng thí nghiệm
2 Giới thiệu các loại cảm biến
3.Nắm được các lệnh cơ bản Visual Basic.Net 2010 hay Visual Basic 6.0: giới thiệu, kiểu dữ liệu, phép tốn, cấu trúc điều khiển (điều kiện, vịng lặp) và chương trình con
và thủ tục
4 Thực hiện các bài tập Visual Basic cơ bản
II Thiết bị học tập
1 Máy tính Pentium Core i3 , tốc độ 3,2 Ghz, RAM 2GByte, ổ đĩa cứng 320 GB
2 Phần mềm Visual Basic.NET (2010), Visual Basic 6.0, C++, C#
3 Đồng hồ đo vạn năng VOM
III Kiến thức chuẩn bị
3.1.Giới thiệu thiết bị, mơ hình :
Giới thiệu mô hình thực tập :
Khảo sát mô hình thực tập (board vi điều khiển PIC 16F877A/16F887)
1/8 led đơn: portD
2/ 2 nút nhấn SW0 đến SW1
3/IC MAX 232 giao tiếp giữa PIC 16F877A/16F887 với máy tính qua cổng nối tiếp (COM): dùng để chuyển mức logic tín hiệu
4/Nguồn +12VDC,+5V DC
Lập trình cho PIC 16F877A/16F887: dùng CCS C
Nạp tập tin hex: dùng PICkit 2 và phần mềm nạpPickit 2 V2.51 hay 2.61
Mơ đun thu thập dữ liệu:
N: nguồn
Trang 5L: điều khiển led bằng analog (nối với L P0.2 của 6008)
CB: cảm viến phát hiện vật (cảm biến gần)
DT: biến trở
CT: công tắc 2 chân (nối với GS P0.0 của 6008)
NN: nút nhấn
P: ổn định điện áp analog xuất ra bằng bộ điều khiển on/off (nối AO.0 của 6008)
Mô đun điều khiển ổn định nhiệt độ:
N: nguồn
D1: ngõ vào tín hiệu điều khiển từ PIC 16F887
D2: ngõ vào tín hiệu điều khiển từ card 6008
LM: ngõ ra tín hiệu điều khiển LM35
Mô đun điều khiển động cơ:
N: nguồn
D1: ngõ vào tín hiệu điều khiển từ PIC 16F887
D2: ngõ vào tín hiệu điều khiển từ card 6008
EN: ngõ ra tín hiệu encoder
Card 6008:
LB AI.0: ngõ vào analog,LM35
D2 AO.0: ngõ ra tín hiệu điều khiển từ card 6008
GS P0.0: giám sát trạng thái cảm biến, công tắc, nút nhấn
EN PIFO: ngõ vào PIFO
CB P0.1: giám sát trạng thái cảm biến, công tắc, nút nhấn
L P0.2: điều khiển led
Q AO.1: ngõ ra điều khiển quạt
L P0.2 : điều khiển led
3.2.Visual Basic 2010
Trang 63.2.1.Giới thiệu về Microsoft.net
3.2.1.1.Tổng quan
Microsoft.net được phát triển từ đầu năm 1998, lúc đầu có tên là Next Generation Windows Services (NGWS-Dịch vụ Windows thế hệ sau) Cuối năm 1998, dự án mang tên Visual Studio 7 được bổ sung vào NQWS Từ đó các phiên bản tiếp nối ra đời Visual Studio 2003, 2005, 2008, 2010, 2012 và
2014
Microsoft.net được thiết kế để dùng cho Internet và là nền tảng cho việc xây dựng và thực thi các ứng dụng phân tán
3.2.1.2.Kiến trúc NET Framework
.NET Framework là bộ khung của môi trường lập trình NET, nằm bên trên hệ điều hành, giúp cho việc phát triển các ứng dụng trong môi trường phân tán của Internet trở nên đơn giản hơn
Hiện nay, NET Framework gồm có các thành phần sau:
-Các ngôn ngữ chính thức: C#.NET, Visual Basic.NET, Managed C++ và Jscript.NET
-Common Language Runtime (CLR): thông qua CLR của NET Framework, các ngôn ngữ khác nhau trong NET có thể chia xẻ tài nguyên với nhau CLR
có nhiệm vụ cung cấp môi trường để các chương trình ứng dụng thực thi.Nó được xem là như là máy ảo tương tự máy ảo Java Ở mức cao, LCR kích hoạt các đối tượng , kiểm tra bảo mật, bố trí chúng trong bộ nhớ và thi hành chúng -Framework Class Library (FCL): chứa một số thư viện lớp có quan hệ với nhau Thông qua các thư viện này, chúng ta có thể xây dựng các ứng dụng NET một cách dễ dàng và tiện lợi FCL đượcchia thành các nhóm sau:
+ Lớp thấp nhất của FCL là Framework Base Classes, hỗ trợ quá trình vào ra đơn giản, xử lí các đối tượng kiểu chuỗi, quản lí việc bảo mật, truyền thông mạng, quản lí các tiến trình (thread), thao tác dữ liệu kiểu text,…
+Trên lớp Framework Base Classes là một dãy các lớp mở rộng, nhằm hỗ trợ quản lí dữ liệu và XML(ngôn ngữ đánh dấu mở rộng) đó là Data and XML Classes Lớp này chứa hai lớp Lớp thứ nhất là lớp dữ liệu (Data Classes) hỗ trợ việc quản lí dữ liệu, chứa lớp Structured Query Language (SQL-Ngôn ngữ truy vấn có cấu trúc )để quản lí dữ liệu thông qua giao diện chuẩn SQL và
Trang 7một tập hợp các lớp gọi là ADO.NET cho phép thao tác với dữ liệu Lớp thứ
hai là lớp XML (XML Classes-Lớp ngôn ngữ đánh dấu mở rộng) hỗ trợ thao
tác với dữ liệu XML, thực thi tìmkiếm và giao dịch XML
+ Ngoài Framework Classes và Data and XML Classes còn có các lớp công cụ
để xây dựng các ứng dụng, sử dụng ba công nghệ khác nhau: Web Services,
Web Forms và Windows Forms
3.2.1.3.Môi trường phát triển
Môi trường phát triển của Visual Studio 2005:
Hình 1.1
Đây là môi trường phát triển Visual Studio 2010 (cụ thể là Visual Basic 2010)
Trang 8Hình 1.2
3.2.1.4 Quá trình biên dịch và thực thi chương trình:
Trong NET Framework, chương trình không đượcbiên dịch vào các tập tin
thựcthi mà thay vào đó chúng được biên dịch vào những tập tin trung gian
MSIL (Microsoft Intermediate Language-Ngôn ngữ Microsoft trung gian)
Khi chạy chương trình, thì MSIL được biên dịch một lần nữa bằng việc sử
dụng trình biên dịch Just-In-Time (JIT) Kết quả là chương trình được thực thi
thông qua bộ xử lí củamáy tính
Khi một phương thức của chương trình đượcgọi, trình biên dịch JIT phân tích
MSIL và kiểm tra MSIL đã dịch chưa, nếu đã dịch rồi thì JIT sẽ bỏ qua Vì
thế, khi một ứng dụng chạy thì việc biên dịch chỉ xảy ra khi cần thiết, tức là
chỉ biên dịch mã MSIL khi chưa biên dịch ra mã máy và điều này làm cho
chương trình chạt nhanh hơn
Do tất cả các ngôn ngữ NET Framework (C#, C++, Visual Basic, Java) cùng
tạo ra sản phẩm MSIL giống nhau, nên một đối tượng được tạo ra từ một
ngôn ngữ nào đó trong NET thì có thể được truy cập hay dẫn xuất từ
Microsoft NET hoặc từ một đối tượng của ngôn ngữ khác trong.NET
Trang 93.2.2.Giới thiệu về Visual Basic.NET (Visual Basic 2010)
Khi lập trình với VB.NET chúng ta làm việc với một môi trường lập trình trực quan gồm các thanh thựcđơn (menu), thanh công cụ (tool bar), và các cửa sổ (windows) giúp tạo giao diện dễ dàng
Khi sử dụng VB.Net chúng ta có thể xây dựng hầu hết các ứng dụng, như
là tạo trò chơi trong Winndows, bài toán quản lí, bài toán kỹ thuật, lập trình ứng dụng trong ngành điện-điện tử-tự động hóa,…
3.2.2.2.Làm việc với dự án VB.NET (Project):
Trước tiên ta phải cài đặt Microsoft Visual Studio 2010 Express.Tải bản Visual Basic
2010 Express miễn phí từ địa chỉ sau của Microsoft:
http://www.microsoft.com/visualstudio/eng/downloads#d-2010-express
Sau đó khởi động Visual Basic 2010 Express: Chọn Start, Program, Microsoft Visual Studio 2010 Express, Microsoft Visual Basic 2010 Express
Trang 10Hình 1.3
Khởi động Visual Basic 2010 Express, màn hình như sau:
Trang 11Hình 1.4
Chọn File, New project, màn hình như sau:
Trang 12Hình 1.5
Chọn Windows Forms Application Trong ô name, tên project là WindowsApplication Ta nhấn vào nút OK
Màn hình như sau:
Trang 13Hình 1.6
Nhấp chuột vào Toolbox, ta thấy hiện ra thanh công cụ:
Trang 15Hình 1.7
Trang 16Kéo và thả công cụ Label vào Form
Hình 1.8
Thuộc tính Text : Label1, chúng ta sửa thành : Hello world Giao diện như hình 6
Biên dịch chương trình : chọn Debug, Build WindowsApplication1
Chạy chương trình : chọn Debugg, Start debugging hay nhấn F5
Trang 17Hình 1.9
Kết quả là:
Hình 1.10
Trang 18Ngừng chạy, chọn Debug, Stop debugging.Màn hình như sau:
Hình 1.11
Lưu dự án: chọn File, Save Chọn vị trí lưu là C:\TuhocVisualBasic
THí dụ 2: Tạo, chạy thử một ứng dụng đơn giản
1.Khởi động VB, đợi hộp thoại New Project xuất hiện, chọn project thuộc loại
Windows Application từ hộp thọai và ấn nút OK
2 Project sẽ được tạo và có sẵn một form duy nhất có tên là “Form1” Từ của sổ Toolbox chọn nút có dạng Button, vẽ vào form một nút (mặc nhiên là “Button1”)
3 Để đặt mã chương trình điều khiển nút lệnh “Button1”, nhấp đúp chuột vào nút lệnh này, một cử a sổ mở ra để chèn các chỉ thị vào một thủ tục có tên là
Trang 19Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox("Chao cac ban.Bay gio la:" & Now)
End Sub
End Class
Trong đó MsgBox là hàm có sẵn của VB dùng để hiện ra một cử sổ với một thông báo nài đó; hàm Now trả về ngày giờ hiện hành; còn phép toán ‘&’ dùng để ghép hai chuỗi ký tự
4 Biên dịch chương trình bằng cách chọn menu Debug, Build WindowsApplication2 Chạy thử bằng cách ấn phím chức năng F5 hay chọn Start Debugging từ thực đơn Debug Một cưả sổ tên “Form1” hiện ra, có chứa một nút lệnh tên là “Button1”, ấn vào nút lệnh này sẽ thấy một hộp thoại “WindowsApplication2” hiện ra do gọi hàm MsgBox
5 Aán nút OK để đóng hộp thoại “WindowsApplication2” Sau đó cũng đóng cưả sổ “Form1” để ngừng chạy thử chương trình
Hinh 1.12
Chạy chương trình : Debug, Start Debugging (bấm F5)
Trang 20Hình 1.13
Thí dụ 3: Tạo ứng dụng ở DOS (Console Application)
-Chọn New, Project Trong hộp thoại chọn Visual Basic và ứng dụng Console Application
Trang 22Viết chương trình : Ứng dụng control như sau: hiển thị lời chào
Trang 23Hình 1.19
Ta nhấn phím Enter để trở về chương trình VB.Net
Thí dụ 4: Khai báo Class
‘Khai bao su dung khong gian ten
Imports System
Public Class Class1
'Khai bao thu tuc
Trang 24Hình 1.20
Imports System
Module Module1
Sub Main()
Console.WriteLine("Chao ban, ten ban la gi?")
Dim ten As String = Console.ReadLine()
Trang 25Hình 1.21
3.2.3.Môi trường làm việc của VB.NET :
Môi trường làm việc của VB.NET gồm có
VB.NET có khu vực soạn thảo chính cho phép tạo các giao diện hoặc viết các mã lệnh
Ngoài ra để hỗ trợ cho việc lập trình, VB.NET còn có các thanh công cụ và cửa sổ như
sau:
-Toolbox: chứa các điều khiển và các thành phần như các điều khiển: TextBox, Label,
Button,…
-Properties: chứa các thông tin các thuộc tính, sự kiện của đối tượng được chọn
-Server Explorer: hỗ trợ cho phép lập trình và truy xuất nhanh cơ sở dữ liệu của các
máy chủ
-Solution:quản lí tất cả các tài nguyên và tập tin của project
-Các cửa sổ theo dõi việc xuất kết quả, chạy từng lệnh, theo dõi tài nguyên như
:output, Command window)
3.2.4 Class (lớp)
Bản chất của lập trình hướng đối tượng là tạo ra các kiểu dữ liệu mới Kiểu được định
nghĩa như một dạng vừa có thuộc tính (properties) chung vừa có các hành vi ứng xử
(behavior) của nó
Class là một kiểu dữ liệu có cấu trúc, còn thể hiện của một class đượcgọi là đối tượng
Trang 26Để tạo một kiểu tức là tạo ra một Class, trước hết chúng ta sử dụng từ khoá Class cùng với tên của nó,sau đó xây dựng các thuộc tính và hành vi của Class đó Cú pháp như sau:
3.2.5 Namespace (không gian tên)
Namespace là một cách đặt tên để giúp các Class dung trong chương trình một cách thứ tự để tìm kiếm chúng Tất cả các mã lệnh trong NET, viết bằng VB.NET, C# hay ngôn ngữ nào khác, đều được chứa trong một Namespace nào đó
Namespace có thể được phân chia thứ bậc giống như các thư mục trong một File directory
Khi sử dụng một Class nào đó, ta phải khai báo Namespace chứa Class đó
Cú pháp: Imports namespace
Thí dụ: Khai báo 2namespace là System.Windows và System.Data:
‘Khai báo các Namespace
Trang 27Quy tắc đặt tên:
-Tên là một dãy kí tự liền nhau gồm chữ cái (a-z), chữ số (0-9), và dấu gạch dưới( _ ) -Một tên phải bắt đầu bằng chữ cái hay dấu gạch dưới
-Không được sử dụng các từ dành riêng cho ngôn ngữ
Thí duï: Định danh sau là hợp lệ:
Chúng ta dùng từ khóa DIM để khai báo biến
DIM tên_biến As kiểu_dữ_liệu
Các kiểu dữ liệu cơ bản trong VB.NET
-Kiểu Short : 16 bit, có giá trị từ -32768 đến 32767
Thí dụ: Dim b as Short
b=10000
-Kiểu Integer: 32 bit, có giá trị từ -2147483648 đến 2147483647
Thí dụ: Dim c as integer
Trang 28-Kiểu Byte: 8 bit, có giá trị từ 0-255
Thí dụ: DIM var2 As Byte
var2=12
-Kiểu kí tự: char (16 bit), có giá trị từ 0 đến 65535
Thí dụ: Dim var1 As char
var1=’a’
-Kiểu chuỗi : String, chứa nhiều kí tự (từ 0 đến 2 tỉ kí tự)
Thí dụ: DIM e as String
e=”Xin chao ba con”
-Kiểu Booleab: 16 bit, có giá trị True(đúng) hay False(sai)
-Kiểu Object: 32 bit, bất kì kiểu đối tượng nào
Thí dụ: Dim Obj As Object
-Kiểu dữ liệu mảng:
Mảng là tập hợp các biến có cùng kiểu dữ liệu
Trang 29Việc khai báo mảng giống như khai báo biến, gồm tên mảng, kiểu dữ liệu, kích thước mảng và số phần tử của mảng
Dim mang1(4) As integer
Sẽ khai báo mảng một chiều chứa 5 phần tử có tên là mang1có kiểu integer: các phần tử mang1[0], mang1[1], mang1[2], mang1[3], mang1[4] Thí dụ: Mảng hai chiều:
Dim mang2(2,4) As single
Sẽ khai báo mảng hai chiều Lưu ý rằng các chỉ số được bắt đầu từ 0
Thí dụ: ‘Tạo biến dem và chua giá trị 5
Dim dem As integer
3.2.9.2.Cấu trúc điều khiển:
Các caáu truùc ñieàu khieån cuûa Visual Basic
a.Leänh ñieàu kieän:
If/then/else
Trang 30Lệnh if còn được gọi là lệnh sẽ nhánh Lệnh if có hai dạng if then và if then else Cú pháp như sau:
Dạng 1: if biểu thức điều kiện then lệnh
Trong đó biểu thức điều kiện là một biểu thức kiểu Boolean, trả về trị đúng (TRUE) hoặc sai (FALSE) Nếu điều kiện đúng thì câu lệnh được thực hiện, nếu không chương trình sẽ chuyển xuống dòng lệnh kế tiếp
Dạng 2: if biểu thức điều kiện then
Thí dụ: if a<>0 then result=-b/a
Lệnh if cĩ thể được viết ở một dịng lệnh hay nhiều dịng lệnh Dạng một dịng lệnh được viết như sau:
Ví dụ : if size>MAXSIZE then size=MAXSIZE
If a>b then maxval=a else maxval=b
Dạng nhiều dòng lệnh
* Hàm cdbl(biến string): đổi chuỗi sang số thực
Thí dụ: DIM aval as string
Trang 31DIM a as double
A=CDbl(aval)
Hàm cstr(biến số): đổi số thực sang chuỗi
Thí dụ: TextBox1.text=cstr(a)
-Trường hợp cĩ nhiều nhánh rẽ, nên dùng cấu trúc chọn Select case
Select case biến
Trang 32b Lệnh vòng lặp :
Vòng lặp For/next: biết trước số lần lặp
Cú pháp: For biến=gt1 to gt2
PrivateSub Button1_Click(ByVal sender AsSystem.Object, ByVal e
AsSystem.EventArgs) Handles Button1.Click
Dim i, tong As Integer
tong=0
Fori = 0 To 100
tong = tong + i
Trang 33Có thể dùng Exit For để nhảy khỏi vòng lặp
-Vòng lặp Do/loop: khơng xác định trước số lần lặp, dừng vịng lặp nhờ biểu thức điều kiện, nhảy khỏi vịng lặp nhờ lệnh Exit Do
Trang 34Sub: từ khĩa bắt đầu thủ tục
End Sub: từ khĩa kết thúc thủ tục
Các lệnh: các phát biểu tương ứng dung cho xử lí mà thủ thục cần thực hiện
([Tham số]): chứa danh sách tham số chuyển cho thủ tục xử lí.Nếu thủ tục khơng sử dụng tham số, chúng ta chỉ cần đặt cặp dấu ngoặc đơn () ngay sau tên thủ tục
Thí dụ:Thủ tục tìm số lớn hơn trong 2 số
Chương trình:
Sub MaxMin(ByVal a As Integer, ByVal b As Integer, ByRef minVal As Integer, ByRef maxVal As Integer)
Trang 35Gọi thủ tucï trong chương trình chính bằng một lệnh
MaxMin a,b,m1,m2: gồm tên thủ tục MaxMin và theo sau là các tham số thực a,b,m1, m2
Thí dụ: Thủ tụcin ra thong báo console application
Sub Chao()
‘In ra thong bao , sử dụng đối với ứng dụng Console
Console.WriteLine(“Hom nay la:”,Now())
Console.WriteLine(“Chuc ban mot ngay vui ve”)
Trang 36End Function
Hàm phải trả về một giá trị, do đó cuối chương trình con hàm là Return giá trị trả về
Gọi hàm trong chương trình chính bằng một lệnh gán
Thủ tục MaxMin cĩ thể viết lại dùng hàm như sau:
Chương trình:
Function MaxMin(ByVal a As Integer, ByVal b As Integer) As Integer
DIM max as integer
Trang 37-Cảm biến dịch chuyển khoảng cách
IV Các bài thực hành
Bài 1: Dùng Visual Basic hiển thị dòng chữ “Chao cac ban ” và ngày giờ
Chúng ta tạo một nút nhấn.Khi nhấn vào thì chương trình hiển thị dịng chữ : Chào các bạn và hiển thị ngày giờ
Bài 2:Nhập hai số nguyên a và b và tính tổng, hiệu , tích và thương
PrivateSubButton_Tong_Click(ByVal sender AsSystem.Object, ByVal e
AsSystem.EventArgs) HandlesButton_Tong.Click
PrivateSubButton_Hieu_Click(ByVal sender AsSystem.Object, ByVal e
AsSystem.EventArgs) HandlesButton_Hieu.Click
Trang 38PrivateSubButton_Thuong_Click(ByVal sender AsSystem.Object, ByVal e
AsSystem.EventArgs) HandlesButton_Thuong.Click
PrivateSubButton_Tich_Click(ByVal sender AsSystem.Object, ByVal e
AsSystem.EventArgs) HandlesButton_Tich.Click
Trang 39- Kết quả thực hiện chương trình: Cho phép nhập 2 số nguyên a,b Sau đĩ, xuất
kết quả của phép tốn tổng, hiệu, thương, tích ra ơ kết quả
Bài 3: Chương trình điều khiển tính tốn với 2 số thực a,b
- Giao diện:
Hình 1.24
- Mã lệnh: sinh viên tự làm
- Kết quả thực hiện chương trình: Cho phép nhập 2 số thực a,b Sau đĩ, xuất kết
quả của phép tốn tổng, hiệu, thương, tích ra ơ kết quả
Bài 4: Chương trình giải phương trình bậc nhất
Trang 40PrivateSub Button1_Click(ByVal sender AsSystem.Object, ByVal e
AsSystem.EventArgs) Handles Button1.Click