lập trình cho máy tính hay và hấp dẫnlập trình cho máy tính hay và hấp dẫnlập trình cho máy tính hay và hấp dẫnlập trình cho máy tính hay và hấp dẫnlập trình cho máy tính hay và hấp dẫnlập trình cho máy tính hay và hấp dẫnlập trình cho máy tính hay và hấp dẫnlập trình cho máy tính hay và hấp dẫnlập trình cho máy tính hay và hấp dẫnlập trình cho máy tính hay và hấp dẫnlập trình cho máy tính hay và hấp dẫnlập trình cho máy tính hay và hấp dẫnlập trình cho máy tính hay và hấp dẫnlập trình cho máy tính hay và hấp dẫnlập trình cho máy tính hay và hấp dẫnlập trình cho máy tính hay và hấp dẫnlập trình cho máy tính hay và hấp dẫnlập trình cho máy tính hay và hấp dẫnlập trình cho máy tính hay và hấp dẫnlập trình cho máy tính hay và hấp dẫnlập trình cho máy tính hay và hấp dẫnlập trình cho máy tính hay và hấp dẫnlập trình cho máy tính hay và hấp dẫnlập trình cho máy tính hay và hấp dẫn
Trang 1PHẦN I
LỜI MỞ ĐẦU
Ghép nối máy tính là môn học 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 cho đo lường và điều khiển trong công nghiệp Máy tính được ứng dụ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ày,công viecje kia cần khối ghép kia… Tất cả các khả năng đó đều được các nhà sản xuất để trống nhiều vô số các đường có thể ghép vói bus của máy tính như: RS232, LPT, khe cắm mở rộng , cổng USB……
Trong đề tài cần nghiên cứu là cổng LPT là sinh viên khoa điện tử chúng em nói chung cũng như sinh viên các khoa khác co liên quoan tới môn học.nhưng
do thời gian tìm hiểu và kiến thức về môn học còn có nhiều hạn chế,cho nên trong đề tài nghiên cứu về vi điều khiển của chúng em còn gì thiếu sót và hạn chế mong thầy chỉ bảo giúp cho chúng em hiểu sâu hơn về môn học này
Chúng em xin chân thành cảm ơn!
PHẦN II
I : CƠ SỞ LÝ THUYẾT
Cổng song song được thiết kế đầu tiên bởi công ty Centronic nhằm mục đích ghép nối máy vi tính với máy in Sau này được tiêu chuẩn hóa và có mặt ở hầu hết máy vi tính Tên gọi của cổng song song bắt nguồn kiểu truyền dữ liệu qua cổng này, các bit truyền song song còn các byte truyền nối tiếp Ngoài ra còn gọi là cổng LPT
Cấu trúc cổng song song gồm 8 đường dữ liệu, 4 dường dẫn điều khiển và 5 đường dẫn trạng thái Các đường dẫn này đều tương thích với mức TTL(0.5)
do vậy khá thuận tiện, đơn giản cho việc ghép nối nhiều linh kiện, mạch điện tương thích với mức logic trên
Trang 2Khoảng cách các cổng song song bị hạn chế do điện dung ký sinh, hiện tượng cảm ứng và bị suy giảm công suất Khoảng cách này giới hạn trong khoảng 2m Nếu cần ghép nối ở khoảng cách xa hơn cần các bộ đệm,các phương pháp làm 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 muốn có khoảng cách xa hơn nữa, nên chọn giải pháp khác
13 1
Hình 1: Giao diện cổng song song trên máy tính PC
Trong các máy tính thế hệ cũ, cổng song song có tới 36 chân nhưng ngày nay
để giảm đi chi phí, người ta đã chuẩn hóa thành 25 chân, trong số 25 chân này chỉ có 18 chân là có ý nghĩa thực thụ, số chân còn lại đều nối mass
Trang 3Ký hiệu và ý nghĩa của các chân cắm trên cổng song song như sau:
baó có môt byte sẵn sàng được in
liệu từ D0-D7
nhận đã nhận được 1byte của máy in đối với máy tính
máy in
giấy của máy in
sàng của máy in
nạp một dòng mới của máy in đối với máy in
báo lỗi của máy
in với máy tính
động của máy tính với máy in
chọn máy in của máy tính
Trang 4Các đường tín hiệu này được chia làm 3 nhóm:
Các đường tín hiệu xuất ra từ máy tính và điều khiển máy in được gọi là các đường điều khiển
Các đường đưa thông báo ngược trở lại từ máy in về máy tính được gọi là các đường trạng thái
Các địa chỉ của song song trên máy PC
Cổng song song
(LPT)
Địa chỉ thanh ghi
dữ liệu
Địa chỉ thanh ghi trạng thái
Địa chỉ thanh ghi điều khiển
LPT1
LPT2
LPT3
LPT4
3BCh 378h 278h 2BCh
3BCh 379h 279h 2BDH
3BEh 37Ah 27Ah 2Beh
S O D O C H A N C O N G S O N G S O N G
Hinh 2: Sơ đồ chân cổng song song
Thanh ghi dữ liệu
Bit dữ liệu D0 (chân 2)
Bit dữ liệu D1 (Chân 3)
Bit dữ liệu D2 (Chân 4)
Bit dữ liệu D3 (Chân5 )
Bit dữ liệu D4 (Chân 6)
Bit dữ liệu D5 (Chân 7)
Bit dữ liệu D6 (Chân 8)
Bit dữ liệu D7 (Chân 9)
Trang 5Thanh ghi điều khiển
D0: STROR (Chân 15)
D1: AF (Chân 14)
D2: INIT (Chân 16)
D3: SLCIN (Chân 17)
D4: IRQ-Enable
Thanh ghi trạng thái
D7: ETROR(Chân 1)
D6: SLCT(Chân 13)
D5: PE (Chân 12)
D4: ACK(Chân 10)
D3: BUSY(Chân 11)
Vi mạch chốt 74LS573
U 1
7 4 H C 5 7 3
2 3 4 5 6 7 8 9
1 1 1
1 9
1 8
1 7
1 6
1 5
1 4
1 3
1 2
D 0
D 1
D 2
D 3
D 4
D 5
D 6
D 7
L E
O E
Q 0
Q 1
Q 2
Q 3
Q 4
Q 5
Q 6
Q 7
Hình 3: Vi mạch chốt
II: Yêu cầu của đề tài:
1 Thiết kế hệ thống mô phỏng điều khiển, giám sát 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.
Trang 6- Hệ thống mô phỏng được việc điều khiển/giám sát cho 5 thiết bị tượng
trưng bởi 5 Rơ le 12 VDC; hệ thống có giao diện điều khiển/giám sát trên máy tính, cụ thể như sau:
+ Cần bật/tắt 1 thiết bị nào đó, người điều khiển có thể ra lệnh từ bàn phím hoặc click chuột lên các nút nhấn có trên giao diện điều khiển/giám sát Thông tin về thời điểm bật/tắt (gồm giây, phút, giờ, ngày , tháng, năm) của thiết bị tương ứng được lưu dưới dạng file vào ổ đĩa cứng khi cần thiết (dùng 1 tổ hợp phím hoặc 1 nút nhấn trên giao diện thực hiện thao tác lưu khi người sử dụng tác động).
+ Thông tin về tình trạng (chạy/dừng) của 05 thiết bị (mô phỏng bằng việc đóng/cắt của 5 rơ le) được đọc về máy tính và phản ánh trên giao diện Chức năng này giúp người sử dụng có thể giám sát được trong trường hợp thiết bị được điều khiển bật/tắt nhưng không chạy/dừng (thiết
bị hỏng).
PHẦN III
I: Sơ đồ thiết kế phần cứng:
Trang 7Q 6
C 2 3 8 3
- +
D 3
R B 1 5 2
1
4
O N A P 5 V
7 8 H T 2
Q 5
C 1 8 1 5
R 3 R
C 1
2 2 0 0 U F
C 3
1 0 4
U 4
R O L E
1
2 3
4
5 1
2 3 4 5
U 9
7 4 L S 5 7 3
2 3 4 5 6 7 8 9
1 2
1 3
1 4
1 5
1 6
1 7
1 8
3 4 5 6 7 8 9
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
U 7
R O L E
1
2 3
4
5 1
2 3 4 5
R 1 R
Q 4
C 2 3 8 3
Q 9
C 1 8 1 5
C 4
0 4 7 U F
U 6
R O L E
1
2 3
4
5 1
2 3 4 5
Q 8
C 2 3 8 3
U 3
R O L E
1
2 3
4
5 1
2 3 4 5
R 5 R
Q 3
C 1 8 1 5
U 8
7 4 L S 5 7 3
2 3 4 5 6 7 8
1 3
1 4
1 5
1 6
1 7
1 8
1 9 2 3 4 5 6 7 8
1 3
1 4
1 5
1 6
1 7
1 8
1 9
R 2 R
R 4 R
Q 7
C 1 8 1 5
Q 2
C 2 3 8 3
P 1
C O N N E C T O R D B 2 5
1 3
1 2
1 1
1 0
9
2 1
8
2 0
7
1 9
6
1 8
5
1 7
4
1 6
3
1 5
2
1 4
1
U 5
R O L E
1
2 3
4
5 1
2 3 4 5
Q 1 0
C 2 3 8 3
J 1
C O N 2
1
Q 1
C 1 8 1 5
Hinh 4: Sơ đò thiết kế phần cứng của đồ án
II: Phần mềm
Phần mềm điều khiển được viết trên phần mềm visual basic
Private Declare Sub Out32 Lib "inpout32.dll" (ByVal portaddress As Integer, ByVal value As Integer)
Private Declare Function Inp32 Lib "inpout32.dll" (ByVal portaddress As Integer) As Integer
Dim tb1, tb2, tb3, tb4, tb5, kt, dk, check As Integer
Dim loi1, loi2, loi3, loi4, loi5 As Integer
Dim thongbao1, thongbao2, thongbao3, thongbao4, thongbao5 As String
Private Sub Command1_Click()
Timer1.Interval = 1000
Timer1.Enabled = True
check = 1
Trang 8End Sub
Private Sub Command2_Click()
If check = 1 Then
tb1 = tb1 + 1
If tb1 = 2 Then tb1 = 0
dk = dk And &HFE
If tb1 = 1 Then dk = dk Or &H1
Out32 &H378, dk
End If
End Sub
Private Sub Command3_Click()
If check = 1 Then
tb2 = tb2 + 1
If tb2 = 2 Then tb2 = 0
dk = dk And &HFD
If tb2 = 1 Then dk = dk Or &H2
Out32 &H378, dk
End If
End Sub
Private Sub Command4_Click()
Timer1.Enabled = False
check = 0
End
End Sub
Private Sub Command5_Click()
If check = 1 Then
tb3 = tb3 + 1
If tb3 = 2 Then tb3 = 0
dk = dk And &HFA
If tb3 = 1 Then dk = dk Or &H4
Out32 &H378, dk
End If
End Sub
Private Sub Command6_Click()
If check = 1 Then
Trang 9tb4 = tb4 + 1
If tb4 = 2 Then tb4 = 0
dk = dk And &HF7
If tb4 = 1 Then dk = dk Or &H8
Out32 &H378, dk
End If
End Sub
Private Sub Command7_Click()
If check = 1 Then
tb5 = tb5 + 1
If tb5 = 2 Then tb5 = 0
dk = dk And &HEF
If tb5 = 1 Then dk = dk Or &H10
Out32 &H378, dk
End If
End Sub
Private Sub Command8_Click()
If Dir("C:\Dieukhienrole.txt") <> "Da luu file " Then
Open "C:\Dieukhienrole.txt" For Append As #1
Else
Open "C:\Dieukhienrole.txt" For Output As #1
End If
Print #1, "Thoi gian:"; Format(Now, "dd-mm-yyyy hh:nn:ss : TB1: ") & thongbao1; ", TB2: " & thongbao2; ", TB3: " & thongbao3; ", TB4: " & thongbao4; ", TB5: " & thongbao5
Close #1
End Sub
Private Sub Form_Load()
Timer1.Enabled = False
tb1 = tb2 = tb3 = tb4 = tb5 = 0
dk = &H0
check = 0
loi1 = loi2 = loi3 = loi4 = loi5 = 0
End Sub
Private Sub Timer1_Timer()
Trang 10kt = Inp32(&H379)
' -If ((kt And &H10) = &H10 And tb1 = 1) Then
loi1 = 0
Shape1.FillColor = vbGreen
Text1.Text = "TB1 đang hoạt động"
thongbao1 = "Bat"
ElseIf ((kt And &H10) = &H0 And tb1 = 1) Then
Text1.Text = "TB1 gặp sự cố"""
Shape1.FillColor = vbRed
loi1 = 1
thongbao1 = "Loi"
ElseIf ((kt And &H10) = &H10 And tb1 = 0) Then
Text1.Text = "Lỗi hệ thống ĐK"
Shape1.FillColor = vbYellow
loi1 = 1
thongbao1 = "Loi HT"
ElseIf ((kt And &H10) = &H0 And tb1 = 0) Then
loi1 = 0
Text1.Text = "ĐK TB1"
Shape1.FillColor = vbBlue
thongbao1 = "Tat"
End If
' -If ((kt And &H20) = &H20 And tb2 = 1) Then
loi2 = 0
Shape2.FillColor = vbGreen
Text2.Text = "TB2 đang hoạt động"
thongbao2 = "Bat"
ElseIf ((kt And &H20) = &H0 And tb2 = 1) Then
Text2.Text = "TB2 gặp sự cố"""
Shape2.FillColor = vbRed
loi2 = 1
thongbao2 = "Loi"
ElseIf ((kt And &H20) = &H20 And tb2 = 0) Then
Text2.Text = "Lỗi hệ thống ĐK"
Shape2.FillColor = vbYellow
loi2 = 1
thongbao2 = "Loi HT"
ElseIf ((kt And &H20) = &H0 And tb2 = 0) Then
Trang 11loi2 = 0
Text2.Text = "ĐK TB2"
Shape2.FillColor = vbBlue
thongbao2 = "Tat"
End If
' -If ((kt And &H40) = &H40 And tb3 = 1) Then
loi3 = 0
Shape3.FillColor = vbGreen
Text3.Text = "TB3 đang hoạt động"
thongbao3 = "Bat"
ElseIf ((kt And &H40) = &H0 And tb3 = 1) Then
Text3.Text = "TB3 gặp sự cố"""
Shape3.FillColor = vbRed
loi3 = 1
thongbao3 = "Loi"
ElseIf ((kt And &H40) = &H40 And tb3 = 0) Then
Text3.Text = "Lỗi hệ thống ĐK"
Shape3.FillColor = vbYellow
loi3 = 1
thongbao3 = "Loi HT"
ElseIf ((kt And &H40) = &H0 And tb3 = 0) Then
loi3 = 0
Text3.Text = "ĐK TB3"
Shape3.FillColor = vbBlue
thongbao3 = "Tat"
End If
' -If ((kt And &H80) = &H0 And tb4 = 1) Then
loi4 = 0
Shape4.FillColor = vbGreen
Text4.Text = "TB4 đang hoạt động"
thongbao4 = "Bat"
ElseIf ((kt And &H80) = &H80 And tb4 = 1) Then
Text4.Text = "TB4 gặp sự cố"""
Shape4.FillColor = vbRed
loi4 = 1
thongbao4 = "Loi"
ElseIf ((kt And &H80) = &H0 And tb4 = 0) Then
Trang 12Shape4.FillColor = vbYellow
loi4 = 1
thongbao4 = "Loi HT"
ElseIf ((kt And &H80) = &H80 And tb4 = 0) Then
loi4 = 0
Text4.Text = "ĐK TB4"
Shape4.FillColor = vbBlue
thongbao4 = "Tat"
End If
' -If ((kt And &H8) = &H8 And tb5 = 1) Then
loi5 = 0
Shape5.FillColor = vbGreen
Text5.Text = "TB5 đang hoạt động"
thongbao5 = "Bat"
ElseIf ((kt And &H8) = &H0 And tb5 = 1) Then
Text5.Text = "TB5 gặp sự cố"""
Shape5.FillColor = vbRed
loi5 = 1
thongbao5 = "Loi"
ElseIf ((kt And &H8) = &H8 And tb5 = 0) Then
Text5.Text = "Lỗi hệ thống ĐK"
Shape5.FillColor = vbYellow
loi5 = 1
thongbao5 = "Loi HT"
ElseIf ((kt And &H8) = &H0 And tb5 = 0) Then
loi5 = 0
Text5.Text = "ĐK TB5"
Shape5.FillColor = vbBlue
thongbao5 = "Tat"
End If
' -If (loi1 = 0 And loi2 = 0 And loi3 = 0 And loi4 = 0 And loi5 = 0) Then
Text6.Text = "HT bình thờng"
Shape6.FillColor = vbGreen
ElseIf (loi1 = 1 Or loi2 = 1 Or loi3 = 1 Or loi4 = 1 Or loi5 = 1) Then
Shape6.FillColor = vbRed
Text6.Text = "HT có sự cố"
End If
End Sub
Trang 13MỤC LỤC
Phần I: Mở đầu
Phần II: I:Cơ sở lý thuyết
II: Yêu cầu đề tài
Phần III: I: Sơ đồ thiết kế phần cứng
II: Phần mềm