CHƯƠNG MỞ ĐẦUCHƯƠNG MỞ ĐẦU

Một phần của tài liệu ĐO LƯỜNG VÀ ĐiỀU KHIỂN BẰNG MÁY TÍNH ppt (Trang 45 - 55)

CHƯƠNG MỞ ĐẦU

1 Khái niệm thư viện liên kết động1 Khái niệm thư viện liên kết động

 DLL là các thư viện liên kết động chứa các hàm và DLL là các thư viện liên kết động chứa các hàm và

thủ tục mà ta có thể sử dụng để bổ sung cho thủ tục mà ta có thể sử dụng để bổ sung cho

những hàm còn thiếu của một ngôn ngữ lập trình. những hàm còn thiếu của một ngôn ngữ lập trình.

 Có hai loại DLL là Windows API DLL và Third-Có hai loại DLL là Windows API DLL và Third-

Party DLL Party DLL

 Windows API DLL là những tập tin DLL đã được Windows API DLL là những tập tin DLL đã được

cài sẵn theo cáchệ điều hành-Windows. Các tập cài sẵn theo cáchệ điều hành-Windows. Các tập

tin Windows API DLL có những hàm, thủ tục được tin Windows API DLL có những hàm, thủ tục được

bổ sung một số chức năng mà VB chưa có. bổ sung một số chức năng mà VB chưa có.

CHƯƠNG MỞ ĐẦUCHƯƠNG MỞ ĐẦU CHƯƠNG MỞ ĐẦU

 Ngoài các Windows API DLL, các chương Ngoài các Windows API DLL, các chương trình trên Windows có thể phải sử dụng các trình trên Windows có thể phải sử dụng các

DLL khác ( do các công ty hay cá nhân khác DLL khác ( do các công ty hay cá nhân khác

Microsoft phát triển) gọi là cácThird-Party Microsoft phát triển) gọi là cácThird-Party

DLL. Không như cácWindows API DLL , các DLL. Không như cácWindows API DLL , các

Third-Party DLL cần được cài lên đĩa cứng Third-Party DLL cần được cài lên đĩa cứng trước khi sử dụng lần đầu. các Third-Party trước khi sử dụng lần đầu. các Third-Party DLL thường được tạo ra bằng ngôn ngữ C. DLL thường được tạo ra bằng ngôn ngữ C.

CHƯƠNG MỞ ĐẦUCHƯƠNG MỞ ĐẦU CHƯƠNG MỞ ĐẦU

 Việc sử dụng cácDLL có nhiều ưu điểm so với các Việc sử dụng cácDLL có nhiều ưu điểm so với các

thư viện tĩnh (thường gọi là Package): thư viện tĩnh (thường gọi là Package):

 DLL tiết kiệm chỗ trống trên đĩa.DLL tiết kiệm chỗ trống trên đĩa.

 DLL tiết kiệm bộ nhớ bằng cách sử dụng kỹ thuật DLL tiết kiệm bộ nhớ bằng cách sử dụng kỹ thuật

chia sẻ hay còn gọi là ánh xạ bộ nhớ. chia sẻ hay còn gọi là ánh xạ bộ nhớ.

 Việc gỡ rối ( Debug) trở nên dễ dàng hơn bởi các Việc gỡ rối ( Debug) trở nên dễ dàng hơn bởi các

lỗi đượccô lập trong DLL duy nhất. lỗi đượccô lập trong DLL duy nhất.

 DLL luôn tỏ ra hiệu quả khi độ an toàn của nó DLL luôn tỏ ra hiệu quả khi độ an toàn của nó

được đảm bảo. được đảm bảo.

CHƯƠNG MỞ ĐẦUCHƯƠNG MỞ ĐẦU CHƯƠNG MỞ ĐẦU

 * Khai báo DLL* Khai báo DLL

 Để có thể sử dụng các hàm, thủ tục trong một DLL, trước Để có thể sử dụng các hàm, thủ tục trong một DLL, trước

hết phải khai báo các hàm, thủtục đó. Công thức khai báo (adsbygoogle = window.adsbygoogle || []).push({});

hết phải khai báo các hàm, thủtục đó. Công thức khai báo

chung trong VB là:

chung trong VB là:

 [Public| Private] Declare Sub|Function name Lib “Libname” [Public| Private] Declare Sub|Function name Lib “Libname”

[Alias “aliasname”]

[Alias “aliasname”]

 vd: Public Declare Function PortIn Lib "io.dll" (ByVal Port vd: Public Declare Function PortIn Lib "io.dll" (ByVal Port

As Integer) As Byte

As Integer) As Byte

 Trong đóTrong đó

 Public : sử dụng toàn cụcPublic : sử dụng toàn cục  PortInPortIn: tên hàm: tên hàm

CHƯƠNG MỞ ĐẦUCHƯƠNG MỞ ĐẦU CHƯƠNG MỞ ĐẦU

Port.dll và IO.dllPort.dll và IO.dll

 Tệp PORT.DLL là một DLL được viết phục vụ cho việc truy Tệp PORT.DLL là một DLL được viết phục vụ cho việc truy

nhập cổng trong các môi trường Windows. Tệp này bao

nhập cổng trong các môi trường Windows. Tệp này bao

gồm những chức năng sau:

gồm những chức năng sau:

 Mở ra các giao diệnMở ra các giao diện  Truyền dữ liệu nối tiếpTruyền dữ liệu nối tiếp

 Tiếp cận đến các đường dẫn ở giao diệnTiếp cận đến các đường dẫn ở giao diện  Nhập vào và xuất ra các cổng.Nhập vào và xuất ra các cổng.

 Đo và định thời đến ms, usĐo và định thời đến ms, us

 Truy nhập đến card âm thanhTruy nhập đến card âm thanh  Truy nhập đến cổng trò chơi.Truy nhập đến cổng trò chơi.

CHƯƠNG MỞ ĐẦUCHƯƠNG MỞ ĐẦU CHƯƠNG MỞ ĐẦU

 Tệp PORT.DLL có thể được sử dụng trong Tệp PORT.DLL có thể được sử dụng trong nhiều ngôn ngữ lập trình khác nhau trong nhiều ngôn ngữ lập trình khác nhau trong

nhiều phiên bản khác nhau của hệ điều nhiều phiên bản khác nhau của hệ điều

hành Windows. Đối với các phiên bản hành Windows. Đối với các phiên bản

Windows NT, 2000, XP…các hàm nhập vào Windows NT, 2000, XP…các hàm nhập vào

và xuất ra các cổng của tệp PORT.DLL và xuất ra các cổng của tệp PORT.DLL

không sử dụng được. Vì vậy chúng tôi không sử dụng được. Vì vậy chúng tôi

thường sử dụng thêm một tệp DLL khác có thường sử dụng thêm một tệp DLL khác có (adsbygoogle = window.adsbygoogle || []).push({});

khả năng khắc phục vấn đề trên là IO.DLL. khả năng khắc phục vấn đề trên là IO.DLL.

CHƯƠNG MỞ ĐẦUCHƯƠNG MỞ ĐẦU CHƯƠNG MỞ ĐẦU

 Các khai báo của các hàm và thủ tục trong các DLL trên Các khai báo của các hàm và thủ tục trong các DLL trên

được trình bày trong một tập tin có tên “io_port.dll”, người

được trình bày trong một tập tin có tên “io_port.dll”, người

sử dụng có thể “add “ tập tin này vào các ứng dụng của

sử dụng có thể “add “ tập tin này vào các ứng dụng của

mình để sử dụng hoặc chép lại các khai báo dưới đây vào

mình để sử dụng hoặc chép lại các khai báo dưới đây vào

một “Module” mới. Nhưng trước hết để sử dụng các DLL

một “Module” mới. Nhưng trước hết để sử dụng các DLL

này, như đã được đề cập, người dùng phải cài đặt, hay

này, như đã được đề cập, người dùng phải cài đặt, hay

chép 2 tập tin PORT.DLL , IO.DLL vào thư mục hệ thống

chép 2 tập tin PORT.DLL , IO.DLL vào thư mục hệ thống

(…\WINDOWS\System đối với Windows 98 , và

(…\WINDOWS\System đối với Windows 98 , và

…\WINDOWS\System32 đối với Windows XP hay

…\WINDOWS\System32 đối với Windows XP hay

\WINNT\System32 đối với Windows 2000…).

CHƯƠNG MỞ ĐẦUCHƯƠNG MỞ ĐẦU CHƯƠNG MỞ ĐẦU

Một số hàm, thủ tục đáng lưu ý trong Port.dll:Một số hàm, thủ tục đáng lưu ý trong Port.dll:

 OPENCOM : mở cổng Com, các cổng Com phải được OPENCOM : mở cổng Com, các cổng Com phải được

mở trước khi sư dụng.

mở trước khi sư dụng.

 CLOSECOM: đóng cổng ComCLOSECOM: đóng cổng Com

 SENDBYTE: xuất 1 byte dữ liệu ra cổng ComSENDBYTE: xuất 1 byte dữ liệu ra cổng Com  READBYTE: nhận 1 byte dữ liệu từ cổng ComREADBYTE: nhận 1 byte dữ liệu từ cổng Com  DTR:Set, Reset chân DTR của Cổng ComDTR:Set, Reset chân DTR của Cổng Com

 RTS:Set, Reset chân RTS của Cổng ComRTS:Set, Reset chân RTS của Cổng Com

 TXD:Set, Reset chân TXD của Cổng ComTXD:Set, Reset chân TXD của Cổng Com  CTS:Set, Reset chân CTS của Cổng ComCTS:Set, Reset chân CTS của Cổng Com  DSR:Set, Reset chân DSR của Cổng ComDSR:Set, Reset chân DSR của Cổng Com

CHƯƠNG MỞ ĐẦUCHƯƠNG MỞ ĐẦU CHƯƠNG MỞ ĐẦU (adsbygoogle = window.adsbygoogle || []).push({});

 RI: Set, Reset chân RI của Cổng ComRI: Set, Reset chân RI của Cổng Com

 DCD: Set, Reset chân DCD của Cổng ComDCD: Set, Reset chân DCD của Cổng Com

 DELAY: tạm dừng trong 1 khoảng thời gian tính bằng mili DELAY: tạm dừng trong 1 khoảng thời gian tính bằng mili

giây

giây

 DELAYUS:tạm dừng trong 1 khoảng thời gian tính bằng DELAYUS:tạm dừng trong 1 khoảng thời gian tính bằng

micro giây

micro giây

 TIMEINIT: bắt đầu đếm thời gian (mili giây)TIMEINIT: bắt đầu đếm thời gian (mili giây)

 TIMEREAD: đọc khoảng thời gian đã đếm (mili giây)TIMEREAD: đọc khoảng thời gian đã đếm (mili giây)  TIMEINITUS:bắt đầu đếm thời gian (micro giây)TIMEINITUS:bắt đầu đếm thời gian (micro giây)

CHƯƠNG MỞ ĐẦUCHƯƠNG MỞ ĐẦU CHƯƠNG MỞ ĐẦU

Một số hàm, thủ tục đáng lưu ý trong IO.dllMột số hàm, thủ tục đáng lưu ý trong IO.dll  PortOut : xuất 1 byte dữ liệu ra cổngPortOut : xuất 1 byte dữ liệu ra cổng

 PortIn: nhập 1 byte dữ liệu từ cổngPortIn: nhập 1 byte dữ liệu từ cổng

 PortWordOut: xuất 2 byte dữ liệu ra cổngPortWordOut: xuất 2 byte dữ liệu ra cổng  PortWordIn: nhập 2 byte dữ liệu từ cổngPortWordIn: nhập 2 byte dữ liệu từ cổng

 PortDWordOut: xuất 4 byte dữ liệu ra cổng, với PortDWordOut: xuất 4 byte dữ liệu ra cổng, với

cổng LPT, lệnh này cho phép xuất dữ cổng LPT, lệnh này cho phép xuất dữ

CHƯƠNG MỞ ĐẦUCHƯƠNG MỞ ĐẦU CHƯƠNG MỞ ĐẦU

 PortDWordIn: nhập 4 byte dữ liệu từ cổng,với PortDWordIn: nhập 4 byte dữ liệu từ cổng,với

cổng LPT, lệnh này cho phép nhập dữ cổng LPT, lệnh này cho phép nhập dữ

 liệu vào đồng thời từ tất cả các thanh ghi.liệu vào đồng thời từ tất cả các thanh ghi.

 SetPortBit : set (mức 1) 1 chân của các cổngSetPortBit : set (mức 1) 1 chân của các cổng  ClrPortBit: xoá (mức 0) 1 chân của cổngClrPortBit: xoá (mức 0) 1 chân của cổng

 NotPortBit: lấy bù 1 chân của cổngNotPortBit: lấy bù 1 chân của cổng

 GetPortBit: nhập về trạng thái của 1 chân nào GetPortBit: nhập về trạng thái của 1 chân nào

đấy. đấy.

Một phần của tài liệu ĐO LƯỜNG VÀ ĐiỀU KHIỂN BẰNG MÁY TÍNH ppt (Trang 45 - 55)