Tải bản đầy đủ (.doc) (20 trang)

Thiết kế mô hình bảng LED điện tử gồm 2 ma trận LED đơn sắc sử dụng cổng song song

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (480.05 KB, 20 trang )

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc

BỘ CÔNG THƯƠNG
TRƯỜNG ĐH CÔNG NGHIỆP HÀ NỘI

ĐỒ ÁN MÔN HỌC ĐO LƯỜNG ĐIỀU KHIỂN MÁY TÍNH
Đề Số: 19
NỘI DUNG

1. Thiết kế mô hình bảng LED điện tử gồm 2 ma trận LED đơn sắc sử dụng cổng
song song.
Yêu cầu:





Mạch điện tử được thiết kế trên máy tính bằng phần mềm chuyên dụng.
Sử dụng PPI 8255A để ghép nối với cổng song song và điều khiển 02 ma trận
led.
Xây dựng 01 bảng mã font gồm các chữ hoa không dấu.
Hệ thống có thể hiển thị 1 dòng chữ chạy (không dấu) bất kỳ nhập từ bàn phím
máy tính.


Mục Lục
I. Giới thiệu về Visual Basic 6.0
II. Cổng song song
III. Vào ra dữ liệu
IV. Code chương trình


V. Giao diện phần mềm
VI. Sơ đồ nguyên lý mạch
VII.Nguyên lý hoạt động
VIII. Ưu điểm – Nhược điểm
IX. Tài liệu tham khảo


I. GIỚI THIỆU VỀ VISUAL BASIC 6.0
Visual Basic 6.0 (VB) là một ngôn ngữ lập trình hướng đối tượng, trực quantrên
môi trường Windows. VB cung cấp một bộ công cụ hoàn chỉnh để đơn giản hóa việc
triển khai lập trình ứng dụng, có thể nói đây là cách nhanh và tốt nhất để học và lập
trình ứng dụng trên Microsoft Windows.
Phần "Visual- Trực quan" đề cập đến phương pháp được sử dụng để tạo giao diện
đồ họa người dùng (GUI - Graphical User Interface). VB có sẵn rất nhiều những bộ
phận trực quan gọi là các điều khiển (Controls) mà người lập trình có thể sắp đặt vị trí
và quyết định các đặc tính của chúng trên một khung giao diện màn hình, gọi là form.
Việc thiết kế các giao diện người dùng ứng dụng trên VB
có thể hình dung đơn giản như việc vẽ giao diện trên Word hoặc trên Paint Prush của
Windows.
Phần "Basic" đề cập đến ngôn ngữ BASIC (Beginners All-Purpose Symbolic
Instruction Code), một ngôn ngữ lập trình đơn giản, dễ học, được viết ra cho các khoa
học gia- những người không có thì giờ để học lập trình điện toán sử dụng.
Visual Basic còn có hai dạng khác là Visual Basic for Application (VBA) - một
ngôn ngữ nằm phía sau các chương trình Word, Excel, VB, Project, .v.v.. còn gọi là
Macros. Dùng VB trong Microsoft Office, ta có thể làm tăng chức năng các ứng dụng
bằng cách tự động hóa các chương trình. Và VBScript được dùng lập trình phục vụ các
tương tác trên giao diện web.
Visual Basic đã có rất nhiều phiên bản, 2 phiên bản tốt nhất có thể nói đến là
Visual Basic 6.0 (VB6) và Visual Basic .NET (VB7 hay VB.NET). Về mặt kiến trúc,
hai phiên bản này gần khác nhau hoàn toàn. VB6 phát triển ứng dụng dựa trên công

nghệ COM (Common Object Model)- một công nghệ rất phát triển ít nhất cho đến
năm 2000. Còn VB.NET dựa trên nền tảng công nghệ .NET Framework - một công
nghệ hiện đại hơn và đang rất được ưa chuộng. Giáo trình
này chỉ đề cập đến việc sử dụng và phát triển phần mềm ứng dụng trên phiên bản VB6
(gọi tắt là VB). Bởi lẽ phiên bản này rất dễ học và phát triển. Việc tìm hiểu ngôn ngữ
VB.NET là rất khuyến khích cho nhưng ai đang muốn tìm cho mình một bộ công cụ
phát triển chuyên nghiệp trên đa môi trường hoạt động. Tuy nhiên, khi nắm chắc
những nội dung VB6 từ giáo trình này, bạn đọc đã có thể sẵn sàng tiếp cận VB.NET
với tư thế rất thuận lợi.


Giao diện của VB :

II. CỔNG SONG SONG :
Là một khe gắn trên máy tính (ngày nay hầu hết được tích hợp trên mainboard) thường
được dùng để nối với máy in (printer) hoặc thiết bị sử dụng cổng song khác. Mặc dù
tốc độ truyền dữ liệu của cổng parallel chậm hơn so với các chuẩn như SCSI và IDE,
nhưng do đặc điểm là rẻ tiền (được tích hợp sẵn) và dễ truy cập (có thể gắn thiết bị từ
bên ngoài) nên nó thường được sủ dụng cho nhiều loại đĩa hoặc băng từ cho phép tháo
lắp được (removable disk and tape drives). Ngoài ra nó còn được sử dụng rộng rãi để
truyền dữ liệu giữa hai máy tính với nhau thông qua các ứng dụng truyền thông (như
Direct cable connection của Windows, Laplink) và sợi cáp nối laplink. Cổng song
song chuẩn IEEE 1284 cung cấp khả năng truyền dữ liệu hai chiều với tốc độ cao và
hỗ trợ cáp nối với chiều dài tới 32 feet.

1.Một số hình ảnh về cổng song song :
Sơ đồ chân :


Cổng song song ( LPT )

1. Sơ đồ cấu tạo cổng song song
+ Chức năng các chân Của cổng LPT
Chân

Ký hiệu

Chiều tín hiệu

1

/STROBE

Ra

2-9

D0-D7

Ra

10

/ACK

Vào

11
12

BUSY

PE

Vào
Vào

13

SLCT

Vào

14

/AF

Ra

15

/ERROR

Vào

16

INIT

Ra

17

18-25

SLCTIN
GND

Ra

Mô tả
Tín hiệu thông báo có 1 byte săn
sang được in
Các đường dữ liệu
Tín hiệu xác nhận đã nhận được
1byte của máy in với máy tính.
Tín hiệu báo bận của máy in
Tín hiệu báo hết giấy của máy in
Tín hiệu báo trạng thái sẵn sang của
máy in
Tín hiệu yêu cầu nạp một dòng mới
của máy tính đối với máy in
Tín hiệu thông báo lỗi của máy in
với máy tính
Tín hiệu khởi động lại của máy tính
đối với máy in
Tín hiệu chọn máy in của máy tính
Tín hiệu nối mass


- Cổng song song đựơc thiết kế đầu tiên bởi công ty Cẻntoníc nhằm mục đích ghép
nối máy tính với máy in. Sau nay nó được tiêu chuẩn hoá và có mặt ở hầu hết các máy
tính.

Cấu trúc cổng song song gồm đường dữ liệu, 4 đuờng dẫn điều khiển và 5 đường
dẫn trạng thái. Các đường dẫn này đều thích mức TTL ( 0;5V ) do vậy rất thuận tiện,
đơn giản cho việc ghép nối vì nhiều linh kiện, mạch điện tương thích với mức logic
trên.
khoảng các truyền dẫn bằng công song song bi hạn chế nhiều điện dung ký sinh
( khoảng 2m ). Nếu muốn tuyền đi xa cần phải có các bộ đệm, các phương pháp làm
giảm điện dung kí sinh.

2. Các thanh ghi của cổng song song
Cổng song song có 3 thanh ghi chính là thanh ghi cơ sở, thanh ghi trạng thái và
thanh ghi điều khiển, tuỳ theo cổng song song trang bị trên máy tính mà các thanh ghi
này có địa chỉ khác nhau :
Bảng địa chỉ các cổng trên PC:
Cổng song
song
LPT1
LPT2
LPT3
LPT4

Địa chỉ thanh ghi
thanh ghi dữ liệu
3BCh
378h
278h
2BCh

Địa chỉ thanh
ghi trạng thái
3BDh

379h
279h
2BDh

Địa chỉ thanh ghi
điều khiển
3BEh
37Ah
27Ah
2BEh


Định dạng các thanh ghi:
a. Thanh ghi dữ liệu (hai chiều):
Tín hiệu máy in D7
D6
D5
Chân số:
9
8
7

D4
6

D3
5

D2
4


D1
3

b. Thanh ghi trạng thái máy in (chỉ đọc).
Tín
hiệu BUSY /ACK PAPER SELECT /ERROR /IRQ
máy in
EMPTY
Số
chân 11
10
12
13
15
cắm
c. Thanh ghi điều khiển
Tín
x x DIR IRQ
/SELECTIN /INIT
hiệu
Enable
máy in
Số
- 17
16
chân
cắm

D0

2
x

x

-

-

/AUTOFEED /STROBE
14

1

IRQ Enable: Yêu cầu ngắt cứng; 1: cho phép, 0: không cho phép.
Chân BUSY được nối với cổng đảo trước khi đưa vào thanh ghi trạng thái, các
bit /SELECTIN, /AUTOFEED và /STR được đưa vào cổng đảo trước khi đưa ra
các chân của cổng máy in.
Thông thường tốc độ xử lý dữ liệu của các thiết bị ngoại vi như máy in chậm hơn
PC rất nhiều nên các đường /ACK, BUSY và /STR được sử dụng cho kỹ thuật bắt
tay. Khởi đầu, PC đặt dữ liệu lên bus sau đó kích hoạt đường /STR xuống mức thấp
để thông tin cho máy in biết dữ liệu đã ổn định trên bus. Khi máy in xử lý xong dữ
liệu, nó sẽ trả lại tín hiệu /ACK xuống mức thấp để ghi nhận. PC đợi cho đến khi
đường BUSY từ máy in xuống thấp (máy in không bận) thì sẽ đưa tiếp dữ liệu lên
bus.


III. VÀO RA DỮ LIỆU VỚI 8255

D0 – D7 : Bus dữ liệu

Reset : Cho phép khởi tạo trạng thái ban đầu cho vi mạch
/CS (Chip Select): Tín hiệu chọn vi mạch
/RD (read) : Tín hiệu cho phép đọc
/WR (Write) : Tín hiệu cho phép ghi
A0 – A1 :Tín hiệu địa chỉ
PA7 – PA0 : Cổng A
PB7 – PB0 : Cổng B
PC7 – PB0 : Cổng C
• PHẦN GHÉP NỐI VỚI VI XỬ LÝ


Điều
khiển
nhóm
A

Logic điều khiển đọc/ghi

WR

8

I/O

PA0 – PA7

Đệm
dữ
liệu


RD

Cửa A
(8bit)

Cửa C
nửa
cao
(4 bit)

4

I/O

PC0 – PC4

Điều
khiển
nhóm
B

A1

Cửa C
nửa
thấp (4
bit)

4


I/O

PC3 – PC0

A0
Reset

Cửa B
(8bit)

4

I/O

PB7 – PB0

Hình 3: Sơ đồ khối vi mạch 8255A

• PHẦN GHÉP NỐI VỚI THIẾT BỊ NGOÀI


Phần ghép nối với thiết bị ngoài bao gồm:
- Cổng A: Thanh ghi đệm dữ liệu (8bit) vào/ra tùy theo chương trình khởi phát.
- Cổng B: Thanh ghi đệm số liệu (8bit) vào ra tùy theo chương trình khởi phát.
- Cổng C: nửa cao (4 bit).
- Cổng C: Nửa thấp (4 bit).
Tùy theo chế độ sử dụng ghi bởi từ điều khiển cổng C có thể được dùng:
- Trao đổi dữ liệu vào hoặc ra.
- Điều khiển hoặc đối thoại với thiết bị ngoài và VXL khi cổng A và B ở chế độ
1 và 2.

Chân 27 đến 34 (D0 – D7): là các đường dữ liệu (data) hoạt động hai chiều, dẫn tín
hiệu điều khiển từ vi xử lý ra các thiết bị bên ngoài đồng thời nhận các dữ liệu từ các
thiết bị điều khiển bên ngoài vào vi xử lý.
Chân 35 (Reset input): ngõ vào xóa, chân reset phải được nối với tín hiệu reset out
của vi xử lý để không làm ảnh hướng đến mạch điều khiển. Khi reset, các cổng của
8255A là các ngõ vào, đồng thời tất cả các dữ liệu trên thanh ghi bên trong 8255A đều
bị xóa, 8255A trở về trạng thái ban đầu săn sàng làm việc.
Chân 6 (CS\): tín hiệu ngõ vào chip select (CS\) được điều khiển bởi vi xử lý, dùng để
lựa chọn 8255A làm việc khi vi xử lý giao tiếp với nhiều thiết bị.
Chân 5 (RD\): ngõ vào đọc dữ liệu (Read Input).
Chân 36 (WR\) : ngõ vào ghi dữ liệu (Write Input).
Chân 8,9 (A1, A0): ngõ vào địa chỉ (Address Input), dùng nhận địa chỉ vào để lựa
chọn thanh ghi và các cổng.
Bảng địa chỉ lựa chọn thanh ghi và các cổng:
A0
0
0
1
1

A1
0
1
0
1

Cổng và các thanh ghi
Cổng A
Cổng B
Cổng C

Thanh ghi điều khiển

Chân 26 (Vcc) : nguồn 5 VDC.
Chân 7 (GND) : GND 0 VDC.
Tính linh hoạt của vi mạch thể hiện ở khả năng lập trình. Qua một thanh ghi điều
khiển, người sử dụng xác định chế độ hoạt động và cổng nào cần được sử dụng như là
lối vào hoặc lối ra. Các chân ra D0 D7 tạo nên bus dữ liệu hai chiều có độ rộng là 8
bit. 8255 được chọn bởi tín hiệu mức thấp ở ngõ vào chọn chíp CS\. Khi 8255 không
được chọn, bộ đệm bus dữ liệu nối 8255 với hệ thống được thả nổi. Khi được chọn,


các ngõ vào A0 và A1 được dùng để chọn thanh ghi điều khiển hoặc một trong các
cổng vào/ra để trao đổi dữ liệu. Các hoạt động cơ bản của 8255 được tóm tắt trong
bảng sau:
A0
L
L
H
L
L
H
H
x
H
x

A1
L
H
L

L
H
L
H
x
H
x

RD/
L
L
L
H
H
H
H
x
L
H

WR/
H
H
H
L
L
L
L
x
H

H

CS/
L
L
L
L
L
L
L
H
L
L

Hoạt động
Port A >>Bus dữ liệu
Port B >> Bus dữ liệu
Port C >> Bus dữ liệu
Bus dữ liệu - Port A
Bus dữ liệu - Port B
Bus dữ liệu - Port C
Bus dữ liệu - Từ điều khiển
Bus dữ liệu ở trạng thái Hi - Z
Cấm
Bus dữ liệu ở trạng thái Hi - Z

* Các

trạng thái làm việc của 8255:


Qua bảng trạng thái của 8255, ta thấy thanh ghi điều khiển đặt dưới địa chỉ bên trong
là A1 = [1], A0 = [1]. Trong một chu kỳ ghi lên thanh ghi điều khiển, xác định cổng
vào/ra cũng như chế độ hoạt động. Khi chân RESET ở mức [H], thanh ghi điều khiển
sẽ được đặt lại và định nghĩa toàn bộ 24 đường dẫn như là các ngõ vào.Trạng thái này
kéo dài tới khi chương trình ứng dụng viết từ điều khiển vào thanh ghi điều khiển để
xác định chế độ làm việc của 8255.
Các cổng A, B, C được phân thành hai nhóm. Nhóm A gồm cổng A và nửa cao của
cổng C, nhóm B gồm cổng B và nửa thấp còn lại của cổng C. Có 3 chế độ hoạt động
khác nhau:
- Chế độ 0: vào/ra thông thường.
- Chế độ 1: chốt vào/ra.
- Chế độ 2: bus hai chiều.

Chế độ 0:
Từ điều khiển:
1

0

0

D4

D3

0

D1

D0


Chế độ 0 xác lập hai cổng 8 bit (A và B) và hai cổng 4 bit (nửa cao và nửa thấp của
C). Bất kỳ cổng nào cũng có thể nhập hoặc xuất dữ liệu một cách độc lập tùy theo
các bit D4, D3, D1 và D0. Có 24 = 16 khả năng vào/ra trong chế độ này

Cấu trúc từ điều khiển:


Sơ đồ kết nối giữa IC 8255 với cổng máy in :


Sơ đồ kết nối máy in
Vì 8255 được khởi tạo làm việc ở Mode 1 : Port A nhập dữ liệu Port B xuất dữ liệu
nên khi máy tính gởi tín hiệu STROBE đến 8255, yêu cầu 8255 nhận dữ liệu do máy
tính gởi đến và khi 8255 nhận dữ liệu thì nó tạo ra một tín hiệu ở PC5 đưa qua ACK
báo cho máy tính biết là 8255 đã nhận dữ liệu do máy tính gởi đến, đồng thời lúc đó ở
PC3 của 8255 tạo tín hiệu INTRA tác động đến chân ngắt INT1 (pin 13) của 8051 làm
cho 8051 chạy chương trình phục vụ ngắt và dữ liệu từ máy tính qua 8255 sẽ được gởi
đến CPU để xử lý.

IV. CODE CHƯƠNG TRÌNH
Option Explicit


Dim Toc_do As Integer
Dim string_tran As String
Private Index_scan, i, pi As Long
Private start As Boolean
Private Quyet_ma As Boolean
Private Sub About_Click()

MsgBox " this program receve a string and send to led matrix thoulgh ic 8255"
End Sub
Private Sub cmdexit_Click()
End
End Sub
Private Sub cmdStartStop_Click()
If Me.Timer1.Enabled = False Then
Me.Timer1.Enabled = True
Else: Me.Timer1.Enabled = False
End If
End Sub
Private Sub cmdtrans_Click()
Quyet_ma = True
get_code
State = Not State
start = True
pi = 0
i=1
Me.Timer1.Enabled = True
Call add_code(0, 0, 0, 0, 0, 0, 0, 0)
End Sub
Private Sub get_code()
Dim i As Integer
string_tran = Me.Text1.Text
string_tran = UCase(string_tran)
Index_array_code = 0
i=1
Do While (i < Len(string_tran) + 1)
Dim char_test As String
char_test = Mid(string_tran, i, 1)

Select Case (char_test)
Case ("A")


Call add_code(31, 40, 72, 136, 72, 40, 31, 0)
Case ("B")
Call add_code(255, 145, 145, 145, 113, 18, 12, 0)
Case ("C")
Call add_code(60, 66, 129, 129, 129, 2, 0, 0)
Case ("D")
Call add_code(255, 129, 129, 129, 66, 60, 0, 0)
Case ("E")
Call add_code(255, 145, 145, 145, 145, 129, 0, 0)
Case ("F")
Call add_code(255, 144, 144, 144, 144, 128, 0, 0)
Case ("G")
Call add_code(60, 66, 129, 137, 137, 15, 0, 0)
Case ("H")
Call add_code(255, 16, 16, 16, 16, 255, 0, 0)
Case ("I")
Call add_code(129, 129, 129, 255, 129, 129, 129, 0)
Case ("J")
Call add_code(2, 129, 129, 254, 128, 128, 0, 0)
Case ("K")
Call add_code(255, 24, 36, 66, 129, 1, 0, 0)
Case ("L")
Call add_code(255, 1, 1, 1, 1, 1, 0, 0)
Case ("M")
Call add_code(255, 64, 32, 16, 32, 64, 255, 0)
Case ("N")

Call add_code(255, 96, 16, 8, 6, 255, 0, 0)
Case ("R")
Call add_code(255, 152, 148, 146, 97, 0, 0, 0)
Case ("O")
Call add_code(126, 129, 129, 129, 129, 126, 0, 0)
Case ("P")
Call add_code(255, 144, 144, 144, 144, 96, 0, 0)
Case ("S")
Call add_code(97, 145, 145, 145, 146, 12, 0, 0)
Case ("Q")
Call add_code(126, 129, 129, 137, 133, 126, 1, 0)
Case ("U")
Call add_code(252, 2, 1, 1, 1, 2, 252, 0)
Case ("V")
Call add_code(248, 4, 2, 1, 2, 4, 248, 0)
Case ("T")
Call add_code(128, 128, 128, 255, 128, 128, 128, 0)
Case ("X")
Call add_code(195, 36, 24, 24, 36, 195, 0, 0)
Case ("W")


Call add_code(252, 3, 4, 24, 4, 3, 252, 0)
Case ("Z")
Call add_code(131, 133, 137, 145, 161, 193, 0, 0)
Case ("Y")
Call add_code(192, 32, 16, 15, 16, 32, 192, 0)
Case (" ")
Call add_code(0, 0, 0, 0, 0, 0, 0, 0)
Case Else

End Select
i=i+1
Loop
End Sub
Private Sub Exit_Click(Index As Integer)
End
End Sub
Private Sub Form_Load()
State = False
i=1
pi = 0
Portaddress = &H378
Out &H378 + 2, 4
Out &H378, 128
Out &H378 + 2, 5
Out &H378 + 2, 4
End Sub
Public Sub add_code(b1 As Byte, b2 As Byte, b3 As Byte, b4 As Byte, b5 As Byte, b6
As Byte, b7 As Byte, b8 As Byte)
Arraycode(Index_array_code + 0) = b1
Arraycode(Index_array_code + 1) = b2
Arraycode(Index_array_code + 2) = b3
Arraycode(Index_array_code + 3) = b4
Arraycode(Index_array_code + 4) = b5
Arraycode(Index_array_code + 5) = b6
Arraycode(Index_array_code + 6) = b7
Arraycode(Index_array_code + 7) = b8
Index_array_code = Index_array_code + 8
End Sub
Private Sub Quyet()

If (pi < 16) Then
Out Portaddress + 2, 0
Out Portaddress, 0


Out Portaddress + 2, 1
Out Portaddress + 2, 0
If (pi < 8) Then
Out Portaddress + 2, 8
Out Portaddress, i
Out Portaddress + 2, 9
Out Portaddress + 2, 8
Out Portaddress + 2, 12
Out Portaddress, 0
Out Portaddress + 2, 13
Out Portaddress + 2, 12
i=i*2
Else
If (pi = 8) Then
i=1
End If
End If
If (pi > 7) Then
Out Portaddress + 2, 12
Out Portaddress, i
Out Portaddress + 2, 13
Out Portaddress + 2, 12
Out Portaddress + 2, 8
Out Portaddress, 0
Out Portaddress + 2, 9

Out Portaddress + 2, 8
i=i*2
Else
End If
Out Portaddress + 2, 0
Out Portaddress, Arraycode(Index_scan + pi)
Out Portaddress + 2, 1
Out Portaddress + 2, 0
pi = pi + 1
Else
pi = 0
i=1
End If
End Sub
Private Sub Settingcom_Click(Index As Integer)
Me.Hide
portform.Show
End Sub


Private Sub Timer1_Timer()
Call Quyet
End Sub
Private Sub Timer3_Timer()
If (Index_scan <= Index_array_code) Then
Index_scan = Index_scan + 1
Else:
Index_scan = 0
End If
End Sub


V. GIAO DIỆN PHẦN MỀM

VI. SƠ ĐỒ NGUYÊN LÝ MẠCH


VII. NGUYÊN LÝ HOẠT ĐỘNG


Ở đây ta dùng thuật toán khi nhập 1 dòng chữ (không dấu) từ bàn phím, rồi nhấn
nút truyền thì sẽ tạo 1 đoạn mã quét cho ma trận. sau đó kích hoạt timer1 sau 1 thời
gian cố định sẽ truyền ra mã cho hàng và cột (đoạn mã cho 8255).
Khi dùng 8255 thì các cổng được lập trình ở chế độ chốt (Che) vì vậy khi truyền
xuống thì ta sẽ truyền 3 cổng abc tương ứng là cột được kích hoạt và dữ liệu hàng
nhận từ đoạn mã sinh ra
khi nhấn nút truyền. trong 1 giây sẽ truyền lần lượt và lặp lại mã trong đoạn mã để
mắt nhìn thấy các ký tự hiện ra trên ma trận Led.

VIII. ƯU ĐIỂM – NHƯỢC ĐIỂM
Ưu điểm
Không cần lập trình phức tập.
Khả năng đáp ứng nhanh.
Mã Code tạo Fonts từ máy tính.
Độ dài chuỗi hiển thị không phụ thuộc vào phần cứng.
Nhược điểm
Khoảng cách truyền không xa.
Dùng 8255 quét trực tiếp kết hợp với timer tần số quét thấp cho nên ảnh không
được nét (ảnh bị nháy), vì timer trong VB có độ trể cỡ (ms) .

IX. GIÁO TRÌNH THAM KHẢO





Giáo Trình Ghép Nối Máy Tính-Trường Đại Học Công Nghiệp Hà Nội
Giáo Trình VB6.0
Giáo Trình Kỹ Thuật mạch Điện Tử-Trường Đại Học Công Nghiệp Hà

Nội
…………………………………………………………………………………



×