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

Đề tài thiết kế bộ phát xung vuông 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 (366.55 KB, 16 trang )

Đo lường và điều khiển bằng máy tính

FEE-HaUI

Mục lục
Mục lục...................................................................................................................................................1
Phần I: Giới thiệu về ghép nối máy tính..................................................................................................3
I.Máy tính và khối ghép nối................................................................................................................3
II.Cổng song song................................................................................................................................3
III.Vi mạch 74HC573...........................................................................................................................5
IV.IC 74HC04.......................................................................................................................................5
V. PIT 8253..........................................................................................................................................6
Phần II: Thiết kế, thi công phần mềm, phần cứng..................................................................................9
I.Sơ đồ nguyên lý................................................................................................................................9
II.Sơ đồ mạch in................................................................................................................................10
III. Phần mềm....................................................................................................................................11
Phần III: Kết luận...................................................................................................................................15

Nhóm SV: Nguyễn Khắc Trọng – Hoàng Hồng Nhung – Nguyễn Văn Tuyến
1


Đo lường và điều khiển bằng máy tính

FEE-HaUI

Lời nói đầu
Như chúng ta đều biết, cấu trúc của một máy tính có thể được phân chia thành
3 khối chính
- khối xử lí trung tâm CPU làm nhiệm vụ thu thập và xử lí mọi dữ liệu
- khối nhớ : lưu trữ các loại dữ liệu khác nhau đưa vào, lấy ra từ CPU


- khối phối hợp vào ra: làm nhiệm vụ tương thích giữa các thiết bị ngoài và BUS
trong của máy tính.
Trong các máy tính thế hệ hịên nay thướng có một số thiết bị ngoài thông dụng
như: màn hình, bàn phím, chuột, máy in, loa, các ổ đĩa. Với các thiết bị ngoài đó máy
tính đều có các khối ghép nối tương ứng, ví dụ như: khối ghép nối màn hình với các
bus máy tính là card màn hình; khối ghép nối giữa loa và máy tính là card soud.
Tuy nhiên máy tính không thể dừng lại chỉ với màn hình, máy in, loa… mà nó còn
được ứng dụng vô cùng rộng rãi trong nhiều lĩnh vực ,công việc này cần phải có khối
ghép nối này , công việc kia cần phải có khối ghép nối kia, và đó là lí do mà nhà sản
xuất lưu tâm tới và họ để trống vô số các con đường có thể để ghép nối với các bus
của máy tính.
Nhận thấy tầm quan trọng và ý nghĩa thực tế to lớn nên khoa Điện tử đã đưa vào
chương trình giảng dạy bộ môn : Đo lường và điều khiển bằng máy tính. Nội dung
môn học này là đi vào nghiên cứu các cổng, các khe cắm mở rộng của máy tính để từ
đó thiết kế các khối ghép nối phục vụ mục đích đo lường và điều khiển trong công
nghiệp.
Được sự hướng dẫn của giáo viên bộ môn, chúng em – nhóm sinh viên đã tham gia
làm đề tài về: Thiết kế bộ phát xung vuông sử dụng cổng song song . Bộ ghép nối này
được thiết kế trên máy và bằng phần mềm chuyên dụng, tần số phát ra được nhập
vào từ bàn phím máy tính, đồng thời sử dụng cổng song song để ghép nối với mạch
ngoài.
Do kiến thức thực tế còn nhiều hạn chế nên chắc chắn không thể tránh khỏi những
sai sót trong quá trình thực hiện, rất mong sự đóng góp ý kiến chân thành từ phía
thầy cô cùng toàn thể các bạn sinh viên trong ngành!
Nhóm sinh viên thực hiện xin chân thành cảm ơn sự đóng góp ý kiến chân thành và
sẽ cố gắng để bổ sung kiến thức của mình thêm hoàn thiện!

Hà Nội 02 tháng 6 năm 2010
Nhóm sinh viên!


Nhóm SV: Nguyễn Khắc Trọng – Hoàng Hồng Nhung – Nguyễn Văn Tuyến
2


Đo lường và điều khiển bằng máy tính

FEE-HaUI

Phần I: Giới thiệu về ghép nối máy tính
I.

Máy tính và khối ghép nối.

Như chúng ta dã biết, cấu trúc của một máy tính có thể được phân chia thành
3 khối chính:
Khối xử lý trung tâm CPU làm nhiệm vụ thu thập và xử lý mọi dữ liệu.
Khối nhớ (Memory): Lưu trữ các loại khác đưa vào , lấy ra từ CPU.
Khối phối hợp vào ra(I/O): Làm nhiệm vụ tương thích giữa các thiết bị ngoài và
đường dây (bus) trong máy tính.
Trong các máy tính thế hệ mới hiện nay thường có một số thiết bị ngoài thông
dụng như: Màn hình, bàn phím, chuột, máy in… Với các thiết bị ngoài đó máy tính
đều có khối ghép nối tương ứng, ví dụ khối ghép nối giữa loa và bus máy tính là card
sound… Thông thường các máy tính thế hệ hiện nay thì các khối ghép nối cho các
thiết bị ngoài thông dụng này được tích hợp sẵn trên một bảng mạch chính gọi là
main hay main board.
-

Tuy nhiên, máy tính không thể dừng lại chỉ với màn hình, máy in, loa… mà nó còn
được ứng dụng vô cùng rộng rãi trong nhiều lĩnh vực, công việc này cần phải có khối
ghép nối này, công việc kia cần phải có khối ghép nối kia,… Tất cả các khả năng đó

đều được các nhà sản xuất lưu tâm tới và họ để trống khá nhiều các đường có thể
ghép nối với máy tính như: RS232, LPT, ISA, PCI…Đây chính là con đường cho những
ai muốn nghiên cứu mở rộng thêm phạm vị ứng dụng của máy tính.
Nội dung chính của đề tài này là xây dựng mạch điện phối ghép với cổng LPT trong
việc đo, khống chế và hiển thị nhiệt độ trên máy tính.

II.

Cổng song song

Cổng song song được thiết kế đầu tiên bởi công ty Centronics nhắm mục đích
ghép nối máy tính với máy in. Sau này cổng này được tiêu chuẩn hóa và có mặt trong
hầu hết các máy tính. Tên gọi của cổng song song bắt nguồn từ cách truyền dữ liệu
qua cổng này, các bít truyền song song còn các bytes truyền nối tiếp. Ngoài tên gọi
này ra cổng song song còn có tên là cổng LPT hay cổng Centronics.
Cấu trúc của cổng song song gồm 8 đường dữ liệu, 4 đường dẫn điều khiển và
5 đường dẫn trạng thái. Các đường này đều tương thích mức TTL(0;5V) do vậy khá
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.

Nhóm SV: Nguyễn Khắc Trọng – Hoàng Hồng Nhung – Nguyễn Văn Tuyến
3


Đo lường và điều khiển bằng máy tính

FEE-HaUI

Khoảng cách truyền của cổng song song bị hạn chế do điện dung ký sinh, hiện
tượng cảm ứng và suy giảm công suất. Khoảng cách này bị giới hạn trong khoảng 5 m,

nếu cần ghép nối xa hơn cần có các bộ đệm, các phương pháp giảm điện dung ký
sinh, hiện tượng cảm ứng(chẳng hạn kẹp mass giữa các đường tín hiệu). Nếu cần
khoảng cách xa hơn nữa nên chọn giải pháp khác, chẳng hạn ghép nối tiếp.
Trong máy tính thế hệ mới cổng song song có 25 chân trong đó có 18 chân được dùng
thực sự.Kí hiệu và ý nghĩa các chân được thể hiện trong bảng sau:
Các thanh ghi trong cổng song song:
D7

D6

D5

D4

D3

D2

D1

D0

Bit data từ chân D0 đến D7

Thanh ghi dữ liệu

D7

D6


D5

D4

D3

D2

D1

D0

STROBE(chan 1)
AF(chan14)
INIT(chan 16)
SLCIN(chan 17)
IRQ-enable

Thanh ghi điều khiển

Nhóm SV: Nguyễn Khắc Trọng – Hoàng Hồng Nhung – Nguyễn Văn Tuyến
4


Đo lường và điều khiển bằng máy tính

FEE-HaUI

Cổng song song


Địa chỉ thanh ghi dữ Địa chỉ thanh ghi Địa chỉ thanh ghi
liệu
trạng thái
điều khiển

LPT1

3BCH

3BDH

3BEH

LPT2

378H

379H

37AH

LPT3

278H

279H

27AH

LPT4


2BCH

2BDH

2BEH

III.

Vi mạch 74HC573

Vi mạch chốt dữ liệu, có chức năng bảo vệ cổng LPT
IV.

IC 74HC04

Có chức năng phối hợp với thạch anh 4Mhz tạo thành xung clock 4Mhz
cấp cho 8253 hoạt động.
Nhóm SV: Nguyễn Khắc Trọng – Hoàng Hồng Nhung – Nguyễn Văn Tuyến
5


Đo lường và điều khiển bằng máy tính
V.

FEE-HaUI

PIT 8253

Sơ đồ khối chức năng


Sơ đồ chân
Nhóm SV: Nguyễn Khắc Trọng – Hoàng Hồng Nhung – Nguyễn Văn Tuyến
6


Đo lường và điều khiển bằng máy tính

FEE-HaUI

Giản đồ xung chế độ 2

Giản đồ xung cho chế độ 3 (được sử dụng để phát xung vuông)
- Chức năng các chân của 8253
Chân

Tên

I/O

Chức năng

D0-D7

Bus dữ liệu 2 chiều

I/O

Có chiều vào/ra phụ thuộc vào /WR và /RD


/CS

Chân chọn chip

I

Cho phép truyền dữ liệu với CPU khi /CS ở
mức thấp

/WR

Cho phép ghi

I

Cho phép ghi dữ liệu vào 8253

/RD

Cho phép đọc

I

Cho phép đọc dữ liệu từ 8253

CLK0-2

Clock

I


Xung clock cung cấp cho 3 bộ đếm

GATE0-2

Cổng

I

Điều khiển việc bắt đầu, ngắt, khởi động lại
của các bộ đếm

OUT0-2

Output

O

Đầu ra của 8253, dạng xung ra phụ thuộc vào

Nhóm SV: Nguyễn Khắc Trọng – Hoàng Hồng Nhung – Nguyễn Văn Tuyến
7


Đo lường và điều khiển bằng máy tính

FEE-HaUI

chế độ làm việc của 8253


Nhóm SV: Nguyễn Khắc Trọng – Hoàng Hồng Nhung – Nguyễn Văn Tuyến
8


Đo lường và điều khiển bằng máy tính

FEE-HaUI

Phần II: Thiết kế, thi công phần mềm, phần cứng
I.

Sơ đồ nguyên lý

Nhóm SV: Nguyễn Khắc Trọng – Hoàng Hồng Nhung – Nguyễn Văn Tuyến
9


Đo lường và điều khiển bằng máy tính

II.

FEE-HaUI

Sơ đồ mạch in

Nhóm SV: Nguyễn Khắc Trọng – Hoàng Hồng Nhung – Nguyễn Văn Tuyến
10


Đo lường và điều khiển bằng máy tính


FEE-HaUI

Phần cứng được thết kế bằng phần mềm Orcad Capture CIS và Orcad Layout
trên máy tính.
Bus data của LPT được nối với bus của 8253 qua 72HC573(bảo vệ bus data
LPT). Xung Clock 4Mhz được tạo ra từ thạnh anh 4Mhz mạch phụ trợ sẽ đưa
vào CLK0 của T0, OUT0 được nối với CLK1 và có chức năng như là clock của T1,
OUT1 nối với CLK2(clock của T2), xung vuông cần tạo được lấy ra từ OUT 2 của
T2. Mạch hoạt động bằng nguồn 5V lấy từ cổng USB của máy tính.

III. Phần mềm
Chương trình điều khiển giao tiếp giữa mạch ngoài và máy tính được viết
trên nền Visual Basic 6 với gian diện thân thiện dễ sử dụng, thao tác:

Giao diện chính của chương trình
Trên giao diện chính của chương trình bao gồm:
+ Nút Run: chạy chương trinh, bắt đầu phát xung. Sau khi nhập tần số cần phát
vào ô nhập tần số, nhấn Run, chương trình sẽ kiểm tra tính hợp lệ của dữ liệu
nhập vào, nếu không hợp lệ sẽ yêu cầu nhập lại. Dữ liệu hợp lệ là các số trong
khoảng 1<= x <=10000.

Nhóm SV: Nguyễn Khắc Trọng – Hoàng Hồng Nhung – Nguyễn Văn Tuyến
11


o lng v iu khin bng mỏy tớnh

FEE-HaUI


+ Nỳt Stop: dng chng trỡnh, khi chng trỡnh ang thc hin phỏt xung,
ngi s dng phi nhn Stop mi cú th nhp tn s mi.
+ Nỳt Exit: Nhn nỳt ny chng trỡnh x hi ngi dựng cú thc s mun
thoỏt khi chng trỡnh hay khụng, nu cú thỡ nhn Ok chng trỡnh s thoỏt,
ng thi cng dng vic phỏt xung.
+ ễ text box nhp tn s: ngi s dng nhp tn s cn phỏt ra vo õy.

Ton b chng trỡnh:
Private Declare Sub Out32 Lib "inpout32.dll" (ByVal PortAdress As Integer,
ByVal Value As Integer)
Private Declare Function Inp32 Lib "inpout32.dll" (ByVal PortAdress As
Integer, ByVal Value As Integer)
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub cmdRun_Click()
Run
Dim tanso As Single
Dim z As Single

' Chơng trình chính, sau khi nhấn phím

If (IsNumeric(txtTanso.Text) = False) Then
MsgBox ("Nhập vào tần số trong khoảng từ 1 đến 10000. Thanks!")
txtTanso.SetFocus
' Đa con trỏ vào ô nhập tần số
txtTanso.SelStart = 0
' Đa con trỏ về đầu ô nhập tần số
txtTanso.SelLength = Len(txtTanso.Text)
' Bôi đen toàn bộ các ký
tự trong txtTanso.text
Else

tanso = Val(txtTanso.Text)
If ((tanso < 1) Or (tanso > 10000)) Then
MsgBox ("Nhập vào tần số trong khoảng từ 1 đến 10000. Thanks!")
txtTanso.SetFocus
' Đa con trỏ vào ô nhập tần số
txtTanso.SelStart = 0
' Đa con trỏ về đầu ô nhập tần số
txtTanso.SelLength = Len(txtTanso.Text)
' Bôi đen toàn bộ các ký
tự trong txtTanso.text
End If
End If
If (tanso >= 1) And (tanso <= 10000) Then
cmdRun.Caption = "Running"
txtTanso.Enabled = False
z = 4000000 / (64 * tanso)
write_Creg (&H37)
write_T0 (8 Mod 256)

' Ghi từ điều khiển vào thanh ghi K
'Thiết lập cho T0

Nhúm SV: Nguyn Khc Trng Hong Hng Nhung Nguyn Vn Tuyn
12


o lng v iu khin bng mỏy tớnh
write_T0 (8 \ 256)
write_Creg (&H77)
write_T1 (8 Mod 256)

write_T1 (8 \ 256)
write_Creg (&HB7)
write_T2 (z Mod 256)
write_T2 (z \ 256)
End If
End Sub

FEE-HaUI

' Ghi từ điều khiển vào thanh ghi K
' Thiết lập cho T1
' Ghi từ điều khiển vào thanh ghi K
' Thiết lập cho T2, tần số cần tạo sẽ
'đợc truyền vào T2 qua biến z

Private Sub cmdStop_Click()
write_Creg (&H37)
' Ghi từ điều khiển vào thanh ghi K
write_T0 (0)
'Xóa T0
write_T0 (0)
'Xóa T0
write_Creg (&H77)
' Ghi từ điều khiển vào thanh ghi K
write_T1 (0)
'Xóa T1
write_T1 (0)
'Xóa T1
write_Creg (&HB7)
' Ghi từ điều khiển vào thanh ghi K

write_T2 (0)
'Xóa T2
write_T2 (0)
'Xóa T2
txtTanso.Enabled = True
cmdRun.Caption = "Run"
txtTanso.SetFocus
txtTanso.SelStart = 0
txtTanso.SelLength = Len(txtTanso.Text)
End Sub
Private Sub Form_Load()
' Đoạn mã đa con trỏ về ô txtTanso
txtTanso.SelStart = 0
txtTanso.SelLength = Len(txtTanso.Text)
End Sub
Private Sub Timer1_Timer()
' Đoạn mã hiển thị đồng hồ trên
phần mềm và chữ chạy
Gio.Caption = "" & Format(Now, "dddd, dd-mm-yyyy, hh:mm:ss")
'
Hiển thị đồng hồ hệ thống
Dim a As String
Dim b As String
a = Label2.Caption
' Hiển thị phần chữ chạy "Chơng trình phát xung vuông sử dụng cổng LPT"
a = Mid(a, 2) & Left(a, 1)
Label2.Caption = a
b = Label5.Caption
' Hiển thị phần chữ chạy
"Copyright @ 2010 Nguyễn Khắc Trọng, FEE, HaUI"

b = Mid(b, 2) & Left(b, 1)
Label5.Caption = b
Nhúm SV: Nguyn Khc Trng Hong Hng Nhung Nguyn Vn Tuyn
13


o lng v iu khin bng mỏy tớnh

FEE-HaUI

End Sub
Private Sub cmdExit_Click()
' Mã lệnh nhận phím Exit thì sẽ
hỏi có muốn thoát chơng trình hay không
hoi = MsgBox("Bạn có chắc chắn muốn thoát khỏi chơng trình?",
vbOKCancel, "Phát xung vuông sử dụng cổng LPT")
If hoi = 1 Then
write_Creg (&H37)
Ghi từ điều khiển vào thanh ghi K
write_T0 (0)
'Xóa T0
write_T0 (0)
'Xóa T0
write_Creg (&H77)
' Ghi từ điều khiển vào thanh ghi K
write_T1 (0)
'Xóa T1
write_T1 (0)
'Xóa T1
write_Creg (&HB7)

' Ghi từ điều khiển vào thanh ghi K
write_T2 (0)
'Xóa T2
write_T2 (0)
'Xóa T2
End
Else
If (txtTanso.Enabled = True) Then
txtTanso.SetFocus
txtTanso.SelStart = 0
txtTanso.SelLength = Len(txtTanso.Text)
Else
Exit Sub
End If
End If
End Sub
Public Sub write_Creg(cw As Byte)
' Chơng trình ghi lệnh vào thanh ghi
điều khiển
Out32 &H37A, 0
' Cho phép ghi vào thanh ghi K
Sleep (5)
Out32 &H378, cw
' Ghi vào thanh ghi điều khiển
Sleep (10)
Out32 &H37A, 4
'Cấm ghi vào thanh K
Sleep (5)
End Sub
Public Sub write_T0(T0 As Byte)

Out32 &H37A, 3
Sleep (5)
Out32 &H378, T0
Sleep (5)
Out32 &H37A, 7
Sleep (5)

'Chơng trình đặt chế độ cho T0
' Cho phép ghi vào T0
' Ghi vào T0
' Cấm ghi và T0

Nhúm SV: Nguyn Khc Trng Hong Hng Nhung Nguyn Vn Tuyn
14


o lng v iu khin bng mỏy tớnh

FEE-HaUI

End Sub
Public Sub write_T1(T1 As Byte)
Out32 &H37A, 1
Sleep (5)
Out32 &H378, T1
Sleep (5)
Out32 &H37A, 5
Sleep (5)
End Sub
Public Sub write_T2(T2 As Byte)

Out32 &H37A, 2
Sleep (5)
Out32 &H378, T2
Sleep (5)
Out32 &H37A, 6
Sleep (5)
End Sub

'Chơng trình đặt chế độ cho T1
' Cho phép ghi vào T1
'Ghi vào T1
'Cấm ghi vào T1

'Chơng trình đặt chế độ cho T2
' Cho phép ghi vào T2
' Ghi vào T2
' Cấm ghi vào T2

Private Sub txtTanso_KeyPress(KeyAscii As Integer)
nhận phím Enter cho chơng trình
If KeyAscii = 13 Then
SendKeys "{TAB}"
SendKeys "{ENTER}"
SendKeys "{TAB}"
KeyAscii = 0
End If
End Sub

' Mã lệnh


Phn III: Kt lun
1. u im:
Tn s xung cn phỏt cú th tựy bin trong di rng 1-10Khz, mch phn cng
khụng quỏ phc tp d ch to. Giao din ca chng trỡnh iu khin n gin, d
s dng.
2. Nhc im
Tn s xung to ra cha t s chun xỏc nh mong mun, thờm vo ú l vic
cỏc port LPT ó ớt c s dng nờn s tng thớch kộm (mt s mỏy tớnh i mi
khụng cú cng LPT). Vi mch 8253 cng ớt ph dng, ch yu trong cỏc b m, nh
thi, ớt ng dng trong phỏt xung. Cỏc chng trỡnh vit trờn nn Visual Basic 6 cú
tớnh n nh khụng cao nhiu li xy ra trong quỏ trỡnh s dng.
Nhúm SV: Nguyn Khc Trng Hong Hng Nhung Nguyn Vn Tuyn
15


Đo lường và điều khiển bằng máy tính

FEE-HaUI

3. Kết luận
Trên thực tế người ta đã ít sử dụng port LPT, 8253 trong ứng dụng trên. Cần
chuyển trọng tâm sang các ứng dụng giao tiếp với máy tính bằng cổng USB có tính đa
dạng cao hơn. Tuy nhiên độ phức tạp của các ứng dụng từ cổng USB cao hơn nhiều so
với cổng LPT. Nên dần chuyển sang sử dụng các ngôn ngữ lập trình hướng đối tượng
mới(Java, C#, VB .net) với giao diện đẹp, thân thiện và tính ổn định cao hơn.

Nhóm SV: Nguyễn Khắc Trọng – Hoàng Hồng Nhung – Nguyễn Văn Tuyến
16




×