Đọc dữ liệu qua cổng songsong

Một phần của tài liệu Ứng dụng fuzzy logic trong gia công cơ khí (Trang 55 - 58)

CẢM BIẾN VỊ TRÍ CÂY THƯỚC SỐ TUYẾN TÍNH

3.4.3 Đọc dữ liệu qua cổng songsong

Thuân lợi trong việc lấy dữ liệu qua cổng song song ở chỗ điện áp của thước và của cổng dều tương thích TTL nên ta khơng cần làm mạch giao tiếp. Hơn nữa, việc xuất dữ liệu qua cổng song song là “cĩ chốt”, nhờ đặc điểm này kết hợp với kỹ thuật “che” bit bằng cách dùng hàm AND, ta cũng cĩ thể truy xuất đến từng chân tươnh tự như ở cổng nối tiếp.

Tuy nhiên, giao tiếp qua cổng song song cĩ nhược điểm là khơng thể truyền ở khoảng cách xa, khơng an tồn cho thiết bị vì khơng được bảo vệ chống quá dịng như ở cổng nối tiếp.

Sơ đồ mạch cĩ thể nối như sau :

Chương trình lấy dữ liệu qua cổng song song : Private Sub Form_Load() ' mo cong songsong

If OPENCOM("LPT 1") = 0 Then MsgBox ("giao dien khong co ") End Sub

Private Sub dulieu() Const BA=&H378

Dim bit(1 To 44) As Integer Dim so(21 To 41) As Integer Dim j, i, tam As Integer

' DOC DU LIEU TAI SUON LEN CUA XUNG CLOCK THEO MANUAL REALTIME True GND ACK CK DATA PE D0 REQ GND

OUTPORT BA,0 DELAYUS 150 OUTPORT BA,1

Do ' cho den khi clock tich cuc DoEvents

Loop Until (INPORT BA+1 AND 32)=32 For i = 1 To 44

Do ' cho den khi clock tich cuc DoEvents

Loop Until (INPORT BA+1 AND 32)=0 bit(i) = (INPORT BA+1 AND 64) If bit(i) = 0 Then bit(i) = 1 Else bit(i) = 0 If i = 44 Then Exit For

Do

DoEvents

Loop Until (INPORT BA+1 AND 32)=1 Next i

Sau khi lấy dữ liệu về dù bằng card, bằng cổng song song hay nối tiếp ta cũng cĩ cùng cách xử lý, đoạn chương trình xử lý dữ liệu đã lấy về như sau

' XU LY DU LIEU DA LAY VE Text1.Text = ""

If bit(20) = 0 Then Text1.Text = "" Else Text1.Text = "-" 'doc bit dau For i = 21 To 41 Step 4 For j = 0 To 3 tam = bit(i + j) Select Case j Case 0: so(i) = tam Case 1:

so(i) = so(i) + (tam * 2) Case 2:

so(i) = so(i) + (tam * 4) Case 3:

so(i) = so(i) + (tam * 8) End Select

Next j Next i

If so(21) <> 0 Then

Text1.Text = Text1.Text & so(21) & so(25) & so(29) & so(33) & "." & so(37) & so(41)

ElseIf so(21) = 0 And so(25) <> 0 Then

Text1.Text = Text1.Text & so(25) & so(29) & so(33) & "." & so(37) & so(41) ElseIf so(21) = 0 And so(25) = 0 And so(29) <> 0 Then

Text1.Text = Text1.Text & so(29) & so(33) & "." & so(37) & so(41) Else

Text1.Text = Text1.Text & so(33) & "." & so(37) & so(41) End If

REALTIME False End Sub

Tuy ta đã dùng card để điều khiển động cơ bước, nhưng việc đọc thước cũng khơng phức tạp lắm nên ta dành các ngõ trên card cho những mục đích quan trọng hơn.

1

Một phần của tài liệu Ứng dụng fuzzy logic trong gia công cơ khí (Trang 55 - 58)

Tải bản đầy đủ (DOC)

(116 trang)
w