Lời nói đầuNhư 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ớ
Trang 1M c l c ục lục ục lục
Phần I: Giới thi u về ghép nối máy tính ệu về ghép nối máy tính 2
I Máy tính và khối ghép nối 2
II Cổng song song 2
III Vi mạch 74HC573 4
IV IC 74HC04 4
V PIT 8253 5
Phần II: Thiết kế, thi công phần mềm, phần cứng 7
I Sơ đồ nguyên lý 7
II Sơ đồ mạch in 8
III Phần mềm 9
Phần III: Kết luận 13
Trang 2Lờ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
Trang 3Ph n I: đ̀n I: Gi i thi u v ghép n i máy tính ới thiị́u ví̀ ghép nối máy tính ị́u ví̀ ghép nối máy tính í̀ ghép nối máy tính ối máy tính
I Máy tính và kh i ghép n i ối ghép nối ố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ộ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.ị́u ví̀ ghép nối máy tính đ̣p và xử lý mọi dữ liị́u ị́u ví̀ ghép nối máy tính
- 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ăị́u ví̀ ghép nối máy tính đườ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ị́u ví̀ ghép nối máy tính ị́u ví̀ ghép nối máy tính ột máy tính có thí̉ được phđn chia thành 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ột máy tính có thí̉ được phđn chia thà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ị́u ví̀ ghép nối máy tính ị́u ví̀ ghép nối máy tính 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ặ̃t máy tính có thí̉ được phđn chia thành 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ột máy tính có thí̉ được phđn chia thành ị́u ví̀ ghép nối máy tính 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 ví̀ ghép nối máy tính đề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.ột máy tính có thí̉ được phđn chia thà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ột máy tính có thí̉ được phđn chia thành ị́u ví̀ ghép nối máy tính trong vi c đo, khống chế vă hiển thị nhi t đ trín mây tính.ị́u ví̀ ghép nối máy tính ị́u ví̀ ghép nối máy tính ột máy tính có thí̉ được phđn chia thành
II C ng song song ổ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ặ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ị́u ví̀ ghép nối máy tính 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
Trang 4Khoả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:
Bit data từ chân D0 đến D7
Thanh ghi dữ liệu
STROBE(chan 1) AF(chan14) INIT(chan 16) SLCIN(chan 17) IRQ-enable
Thanh ghi điều khiển
Trang 5Cổng song song Địa chỉ thanh ghi dữ
liệu
Địa chỉ thanh ghi trạng thái
Địa chỉ thanh ghi điều khiển
III Vi m ch 74HC573 ạ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.
Trang 6V PIT 8253
Sơ đồ khối chức năng
Sơ đồ chân
Trang 7Giả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
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
chế độ làm việc của 8253
Trang 8Ph n II: ần I: Thi t k , thi công ph n m m, ph n ết kế, thi công phần mềm, phần ết kế, thi công phần mềm, phần ần I: ề ghép nối máy tính ần I:
c ng ứng
I S đ nguyên lý ơ đồ nguyên lý ồ nguyên lý
Trang 10Phầ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ừ OUT2 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 ần mề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.
Trang 11người sử dụng phải nhấn Stop mới cú thể nhập tõ̀n sụ́ mới.
+ Nỳt Exit: Nhấn nỳt này chương trỡnh xẽ hỏi người dựng cú thực sự muụ́n thoỏt khỏi chương trỡnh hay khụng, nếu cú thỡ nhấn Ok chương trỡnh sẽ thoỏt, đồng thời cũng dừng việc phỏt xung.
+ ễ text box nhập tõ̀n sụ́: người sử dụng nhập tõ̀n sụ́ cõ̀n phỏt ra vào đõy.
Toàn bộ chương 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() ' Chơng trình chính, sau khi nhấn phím Run
Dim tanso As Single
Dim z As Single
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) ' Ghi từ điều khiển vào thanh ghi ĐK
write_T0 (8 Mod 256) 'Thiết lập cho T0
write_T0 (8 \ 256)
write_Creg (&H77) ' Ghi từ điều khiển vào thanh ghi ĐK
write_T1 (8 Mod 256) ' Thiết lập cho T1
write_T1 (8 \ 256)
write_Creg (&HB7) ' Ghi từ điều khiển vào thanh ghi ĐK
write_T2 (z Mod 256) ' Thiết lập cho T2, tần số cần tạo sẽ write_T2 (z \ 256) 'đợc truyền vào T2 qua biến z
End If
Trang 12Private 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
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 ‘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
Trang 13txtTanso.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) 'Chơng trình đặt chế độ cho T0
Out32 &H37A, 3 ' Cho phép ghi vào T0
Sleep (5)
Out32 &H378, T0 ' Ghi vào T0
Sleep (5)
Out32 &H37A, 7 ' Cấm ghi và T0
Sleep (5)
End Sub
Public Sub write_T1(T1 As Byte) 'Chơng trình đặt chế độ cho T1
Out32 &H37A, 1 ' Cho phép ghi vào T1
Sleep (5)
Out32 &H378, T1 'Ghi vào T1
Sleep (5)
Out32 &H37A, 5 'Cấm ghi vào T1
Sleep (5)
End Sub
Public Sub write_T2(T2 As Byte) 'Chơng trình đặt chế độ cho T2
Out32 &H37A, 2 ' Cho phép ghi vào T2
Sleep (5)
Out32 &H378, T2 ' Ghi vào T2
Sleep (5)
Out32 &H37A, 6 ' Cấm ghi vào T2
Sleep (5)
End Sub
Private Sub txtTanso_KeyPress(KeyAscii As Integer) ' Mã lệnh 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
Trang 14Phần III: Kết luận
1 Ưu điểm:
Tần số xung cần phát có thể tùy biến trong dải rộng 1-10Khz, mạch phần cứng không quá phức tạp dễ chế tạo Giao diện của chương trình điều khiển đơn giản, dễ
sử dụng
2 Nhược điểm
Tần số xung tạo ra chưa đạt sự chuẩn xác như mong muốn, thêm vào đó là việc các port LPT đã ít được sử dụng nên sự tương thích kém (một số máy tính đời mới không có cổng LPT) Vi mạch 8253 cũng ít phổ dụng, chủ yếu trong các bộ đếm, định thời, ít ứng dụng trong phát xung Các chương trình viết trên nền Visual Basic 6 có tính ổn định không cao nhiều lỗi xảy ra trong quá trình sử dụng
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