Truyền thông nối tiếp không đồng bọ theo chuẩn RS 232 có mức logic 1 và 0 tương ứng với điện áp -12V và +12V. Trong khi đó các linh kiện sử dụng trong họ vi điều khiển có các mức logic 1 và 0 tương ứng với các mức điện áp 5V và
SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương
0V. Vì vậy để truyền thông nối tiếp không đồng bộ theo chuẩn RS 232 giữa máy tính PC và vi điều khiển ta phải dùng linh kiện trung gian để biến đổi điện áp cho tương thích.
Trong mạch sử dụng linh kiện chuyên dụng MAX 232.
MAX 232 có 2 kênh, mỗi kênh có 1 cặp tín hiệu vào và ra. Kê nh 1 có ( R1 IN, T1 IN và R1 OUT, T1 OUT). Kênh 2 có ( R2 IN, T2 IN và R2 OUT, T2 OUT).
MAX 232 mắc theo sơ đồ không đổi trong mọi ứng dụng theo quy định của nhà sản xuất.
Sơđồ chân của MAX 232
Dưới đây là sơ đồ mạch khối nối tiếp hoàn chỉnh dùng MAX 232.
Trong mạch sử dụng cả 2 đường RXD và TXD của kênh 1 kết nối với COM1 (DB9) trên PC.
Khi sử dụng theo nguyên tắc truyền thông nối tiếp các dây tham khảo
truyền số liệu và dây nối đất của nguồn được tách riêng để đảm bảo độ tin cậy
SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương
Sơđồ mạch khối nối tiếp giữa PC và vi điều khiển.
III. SƠĐỒ MẠCH BỘ CHUYỂN ĐỔI ADC 809
Bộ chuyển đổi ADC 809 dùng để chuyển đổi tín hiệu tương tự (analog ) thành tín hiệu số ( digital ) để truyền tín hiệu về vi điều khiển vị trí hiện tại của tay máy.
SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương
Bộ chuyển đổi ADC 809 có 8 kênh đầu vào có nghĩa là kết nối đựơc với 8
cảm biến, nhưng chỉ có 1 đầu ra như vậy tại 1 thời điểm chỉ có 1 cảm biến được giám sát.
Dưới đây là sơ đồ mạch.
IV. THIẾT BỊ CẢM BIẾN
Ở đây cảm biến thực chất là 1 triết áp ( triết áp có nghĩa là triết ra một phần điện áp từ đầu vào tuỳ theo mức độ điều chỉnh). Như vậy tín hiệu tương tự ở đây
SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương
là điện áp đầu vào, sự thay đổi điện áp đầu vào sẽ được chuyển qua bộ chuyển đổi ADC 809 thành tín hiệu số tương ứng với sự thay đổi điện áp đầu vào.
Nguyên lý hoạt động của cảm biến.
SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương
SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương
CHƯƠNG IV
VIẾT CHƯƠNG TRÌNH ĐIỀU KHIỂN
I: TÓM TẮT CHƯƠNG TRÌNH ĐIỀU KHIỂN
Hoạt động của tay máy được điều khiển bởi các số liệu nhập từ máy tính
truyền xuống. Chương trình viết cho máy tính PC bằng ngôn ngữ Visual Basic 6.0. Chương trình viết cho Vi điều khiển bằng ngôn ngữ Assembly.
Giải thích chức năng của các khối trong sơ đồ. * Khối giao tiếp truyền thông nối tiếp.
+ Truyền dữ liệu xuống trung tâm xử lý (89C52) để điều khiển các hoạt
động như từ bàn phím trên board.
+ Nhận dữ liệu từ vi điều khiển để xuất dữ liệu lên màn hình máy tính.
+ Đảm bảo sự liên lạc thông suốt giữa PC và vi điều khiển bằng cách
chuyển đổi tín hiệu chuẩn truyền thông RS232 sang chuẩn phù hợp với các linh kiện họ vi điều khiển.
* Khối trung tâm xử lý (89C52)
+ Nhận lệnh từ máy tính, chạy chương trình tương ứng với mã lệnh. + Nhận tín hiệu từ cảm biến để xuất lệnh Stop.
+ Điều khiển động cơ DC. + Giao tiếp với máy tính.
* Khối thi hành
+ Điều khiển đóng ngắt và đảo chiều động cơ DC.
* Khối cảm biến
+ Khối cảm biến vị trí.
Nhấn lệnh (máy tính xuất mã lệnh) a Vi xử lý nhận và kiểm tra mã lệnh
để thực thi chương trình ứng với mã lệnh đó. Nhận tín hiệu truyền về từ cảm biến để so sánh giá trị nhận được với giá trị nạp từ máy tính và sẽ xuất lệnh stop, đồng thời liên tục truyền tín hiệu vị trí hiện tại của tay máy lên máy tính để hiển thị lên màn hình điều khiển.
SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương
Sơđồ khối
Trình tự thực hiện công việc của chưong trình. + Đầu tiên trở về vị trí HOME (toạ độ gốc).
- Nâng tay lên cao tới vị trí cao nhất (chạm công tắc hành trình)aquay
thân tới khi chạm công tắc hành trình aquay cánh tay tới khi chạm công tắc
hành trình amở rộng tay kẹp.
+ Đợi lệnh thực thi chương trình tương ứng.
- Quay phần thân a phần tay máy tới vị trí phôi ahạ cánh tay
xuống để kẹp vật anâng vật lên khỏi mặt bằng để phôi aquay phần thân
aquay phần tay tới vị trí gia công ahạ tay xuống để đặt vật anâng tay lên tới
vị trí cao nhất và đợi thời gian gia công xong ahạ tay xuống để kẹp vật anâng
vật lên khỏi mặt bằng để chi tiết aquay phần thân aquay phần tay tới vị trí
SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương
II: VIẾT CHƯƠNG TRÌNH CHO PC 1. Màn hình điều khiển 1. Màn hình điều khiển
2. Chương trình
Option Explicit
Dim a, b, Z, T As Boolean Dim AA, BB, CC As Boolean Dim so, data1 As Integer Dim dem As Integer
Private Sub Command1_Click() End
End Sub
Private Sub Command10_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "7"
SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 If AA = True Then If a = True Then Text4.Text = Text4.Text + "7"
ElseIf b = True Then Text5.Text = Text5.Text + "7" ElseIf Z = True Then Text6.Text = Text6.Text + "7" Else: Text13.Text = Text13.Text + "7"
End If
ElseIf BB = True Then If a = True Then
Text7.Text = Text7.Text + "7"
ElseIf b = True Then Text8.Text = Text8.Text + "7" ElseIf Z = True Then Text9.Text = Text9.Text + "7" Else: Text13.Text = Text13.Text + "7"
End If Else
If a = True Then
Text1.Text = Text1.Text + "7"
ElseIf b = True Then Text2.Text = Text2.Text + "7" ElseIf Z = True Then Text3.Text = Text3.Text + "7" Else: Text13.Text = Text13.Text + "7"
End If End If End Sub
Private Sub Command11_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "8"
SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương
MSComm1.InBufferCount = 0 If AA = True Then
If a = True Then
Text4.Text = Text4.Text + "8"
ElseIf b = True Then Text5.Text = Text5.Text + "8" ElseIf Z = True Then Text6.Text = Text6.Text + "8" Else: Text13.Text = Text13.Text + "8"
End If
ElseIf BB = True Then If a = True Then
Text7.Text = Text7.Text + "8"
ElseIf b = True Then Text8.Text = Text8.Text + "8" ElseIf Z = True Then Text9.Text = Text9.Text + "8" Else: Text13.Text = Text13.Text + "8"
End If Else
If a = True Then
Text1.Text = Text1.Text + "8"
ElseIf b = True Then Text2.Text = Text2.Text + "8" ElseIf Z = True Then Text3.Text = Text3.Text + "8" Else: Text13.Text = Text13.Text + "8"
End If End If End Sub
Private Sub Command12_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "9"
MSComm1.InputLen = 0 MSComm1.InBufferCount = 0
SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương
If AA = True Then If a = True Then
Text4.Text = Text4.Text + "9"
ElseIf b = True Then Text5.Text = Text5.Text + "9" ElseIf Z = True Then Text6.Text = Text6.Text + "9" Else: Text13.Text = Text13.Text + "9"
End If
ElseIf BB = True Then If a = True Then
Text7.Text = Text7.Text + "9"
ElseIf b = True Then Text8.Text = Text8.Text + "9" ElseIf Z = True Then Text9.Text = Text9.Text + "9" Else: Text13.Text = Text13.Text + "9"
End If Else
If a = True Then
Text1.Text = Text1.Text + "9"
ElseIf b = True Then Text2.Text = Text2.Text + "9" ElseIf Z = True Then Text3.Text = Text3.Text + "9" Else: Text13.Text = Text13.Text + "9"
End If End If End Sub
Private Sub Command13_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "0"
MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 If AA = True Then
SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương
If a = True Then
Text4.Text = Text4.Text + "0"
ElseIf b = True Then Text5.Text = Text5.Text + "0" ElseIf Z = True Then Text6.Text = Text6.Text + "0" Else: Text13.Text = Text13.Text + "0"
End If
ElseIf BB = True Then If a = True Then
Text7.Text = Text7.Text + "0"
ElseIf b = True Then Text8.Text = Text8.Text + "0" ElseIf Z = True Then Text9.Text = Text9.Text + "0" Else: Text13.Text = Text13.Text + "0"
End If Else
If a = True Then
Text1.Text = Text1.Text + "0"
ElseIf b = True Then Text2.Text = Text2.Text + "0" ElseIf Z = True Then Text3.Text = Text3.Text + "0" Else: Text13.Text = Text13.Text + "0"
End If End If End Sub
Private Sub Command14_Click() MSComm1.OutBufferCount = 0
MSComm1.Output = "P" ' POP du lieu vi tri vao cac o nho MSComm1.InputLen = 0
MSComm1.InBufferCount = 0 End Sub
SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương MSComm1.OutBufferCount = 0 MSComm1.Output = "a" MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 a = True If AA = True Then Text4.Text = ""
ElseIf BB = True Then Text7.Text = "" Else: Text1.Text = "" End If Command4.Enabled = True Command5.Enabled = True Command6.Enabled = True Command7.Enabled = True Command8.Enabled = True Command9.Enabled = True Command10.Enabled = True Command11.Enabled = True Command12.Enabled = True Command13.Enabled = True Command16.Enabled = False Command17.Enabled = False Command26.Enabled = False End Sub
Private Sub Command16_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "b"
MSComm1.InputLen = 0 MSComm1.InBufferCount = 0
SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương
b = True
If AA = True Then Text5.Text = ""
ElseIf BB = True Then Text8.Text = "" Else: Text2.Text = "" End If Command4.Enabled = True Command5.Enabled = True Command6.Enabled = True Command7.Enabled = True Command8.Enabled = True Command9.Enabled = True Command10.Enabled = True Command11.Enabled = True Command12.Enabled = True Command13.Enabled = True Command15.Enabled = False Command17.Enabled = False Command26.Enabled = False End Sub
Private Sub Command17_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "Z" MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 Z = True If AA = True Then Text6.Text = ""
SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương Else: Text3.Text = "" End If Command4.Enabled = True Command5.Enabled = True Command6.Enabled = True Command7.Enabled = True Command8.Enabled = True Command9.Enabled = True Command10.Enabled = True Command11.Enabled = True Command12.Enabled = True Command13.Enabled = True Command15.Enabled = False Command16.Enabled = False Command26.Enabled = False End Sub
Private Sub Command2_Click() Timer1.Enabled = True
End Sub
Private Sub Command26_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "T" MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 T = True Text13.Text = "" Command4.Enabled = True Command5.Enabled = True Command6.Enabled = True
SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương Command7.Enabled = True Command8.Enabled = True Command9.Enabled = True Command10.Enabled = True Command11.Enabled = True Command12.Enabled = True Command13.Enabled = True Command15.Enabled = False Command16.Enabled = False Command17.Enabled = False End Sub
Private Sub Command27_Click() AA = True BB = False CC = False MSComm1.OutBufferCount = 0 MSComm1.Output = "A" MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 End Sub
Private Sub Command28_Click() BB = True AA = False CC = False MSComm1.OutBufferCount = 0 MSComm1.Output = "B" MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 End Sub
SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương
Private Sub Command29_Click() CC = True BB = False AA = False MSComm1.OutBufferCount = 0 MSComm1.Output = "C" MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 End Sub
Private Sub Command3_Click() MSComm1.OutBufferCount = 0
MSComm1.Output = "3" 'ma lenh bang "3" MSComm1.InputLen = 0
MSComm1.InBufferCount = 0 End Sub
Private Sub Command30_Click()
a = False ' Ket thuc nhap alpa, beta hoac Z b = False Z = False Command4.Enabled = False Command5.Enabled = False Command6.Enabled = False Command7.Enabled = False Command8.Enabled = False Command9.Enabled = False Command10.Enabled = False Command11.Enabled = False Command12.Enabled = False Command13.Enabled = False
SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương Command15.Enabled = True Command16.Enabled = True Command17.Enabled = True Command26.Enabled = True End Sub
Private Sub Command4_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "1" MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 If AA = True Then If a = True Then Text4.Text = Text4.Text + "1"
ElseIf b = True Then Text5.Text = Text5.Text + "1" ElseIf Z = True Then Text6.Text = Text6.Text + "1" Else: Text13.Text = Text13.Text + "1"
End If
ElseIf BB = True Then If a = True Then
Text7.Text = Text7.Text + "1"
ElseIf b = True Then Text8.Text = Text8.Text + "1" ElseIf Z = True Then Text9.Text = Text9.Text + "1" Else: Text13.Text = Text13.Text + "1"
End If Else
If a = True Then
Text1.Text = Text1.Text + "1"
ElseIf b = True Then Text2.Text = Text2.Text + "1" ElseIf Z = True Then Text3.Text = Text3.Text + "1"
SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương
Else: Text13.Text = Text13.Text + "1" End If
End If End Sub
Private Sub Command5_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "2" MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 If AA = True Then If a = True Then Text4.Text = Text4.Text + "2"
ElseIf b = True Then Text5.Text = Text5.Text + "2" ElseIf Z = True Then Text6.Text = Text6.Text + "2" Else: Text13.Text = Text13.Text + "2"
End If
ElseIf BB = True Then If a = True Then
Text7.Text = Text7.Text + "2"
ElseIf b = True Then Text8.Text = Text8.Text + "2" ElseIf Z = True Then Text9.Text = Text9.Text + "2" Else: Text13.Text = Text13.Text + "2"
End If Else
If a = True Then
Text1.Text = Text1.Text + "2"
ElseIf b = True Then Text2.Text = Text2.Text + "2" ElseIf Z = True Then Text3.Text = Text3.Text + "2" Else: Text13.Text = Text13.Text + "2"
SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương
End If End If End Sub
Private Sub Command6_Click() MSComm1.OutBufferCount = 0
MSComm1.Output = "3" 'ma lenh bang "3" MSComm1.InputLen = 0
MSComm1.InBufferCount = 0 If AA = True Then
If a = True Then
Text4.Text = Text4.Text + "3"
ElseIf b = True Then Text5.Text = Text5.Text + "3" ElseIf Z = True Then Text6.Text = Text6.Text + "3" Else: Text13.Text = Text13.Text + "3"
End If
ElseIf BB = True Then If a = True Then
Text7.Text = Text7.Text + "3"
ElseIf b = True Then Text8.Text = Text8.Text + "3" ElseIf Z = True Then Text9.Text = Text9.Text + "3" Else: Text13.Text = Text13.Text + "3"
End If Else
If a = True Then
Text1.Text = Text1.Text + "3"
ElseIf b = True Then Text2.Text = Text2.Text + "3" ElseIf Z = True Then Text3.Text = Text3.Text + "3" Else: Text13.Text = Text13.Text + "3"
SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương
End If End Sub
Private Sub Command7_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "4" MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 If AA = True Then If a = True Then Text4.Text = Text4.Text + "4"
ElseIf b = True Then Text5.Text = Text5.Text + "4" ElseIf Z = True Then Text6.Text = Text6.Text + "4" Else: Text13.Text = Text13.Text + "4"
End If
ElseIf BB = True Then If a = True Then
Text7.Text = Text7.Text + "4"
ElseIf b = True Then Text8.Text = Text8.Text + "4" ElseIf Z = True Then Text9.Text = Text9.Text + "4" Else: Text13.Text = Text13.Text + "4"
End If Else
If a = True Then
Text1.Text = Text1.Text + "4"
ElseIf b = True Then Text2.Text = Text2.Text + "4" ElseIf Z = True Then Text3.Text = Text3.Text + "4" Else: Text13.Text = Text13.Text + "4"
End If End If
SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương
End Sub
Private Sub Command8_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "5" MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 If AA = True Then If a = True Then Text4.Text = Text4.Text + "5"
ElseIf b = True Then Text5.Text = Text5.Text + "5" ElseIf Z = True Then Text6.Text = Text6.Text + "5" Else: Text13.Text = Text13.Text + "5"
End If
ElseIf BB = True Then If a = True Then
Text7.Text = Text7.Text + "5"
ElseIf b = True Then Text8.Text = Text8.Text + "5" ElseIf Z = True Then Text9.Text = Text9.Text + "5" Else: Text13.Text = Text13.Text + "5"
End If Else
If a = True Then
Text1.Text = Text1.Text + "5"
ElseIf b = True Then Text2.Text = Text2.Text + "5" ElseIf Z = True Then Text3.Text = Text3.Text + "5" Else: Text13.Text = Text13.Text + "5"
End If End If End Sub
SVTH : Đào Đăng Quang 45CT GVHD ThS Đặng Xuân Phương
Private Sub Command9_Click() MSComm1.OutBufferCount = 0 MSComm1.Output = "6" MSComm1.InputLen = 0 MSComm1.InBufferCount = 0 If AA = True Then If a = True Then Text4.Text = Text4.Text + "6"
ElseIf b = True Then Text5.Text = Text5.Text + "6" ElseIf Z = True Then Text6.Text = Text6.Text + "6" Else: Text13.Text = Text13.Text + "6"
End If
ElseIf BB = True Then If a = True Then
Text7.Text = Text7.Text + "6"
ElseIf b = True Then Text8.Text = Text8.Text + "6" ElseIf Z = True Then Text9.Text = Text9.Text + "6" Else: Text13.Text = Text13.Text + "6"
End If Else
If a = True Then
Text1.Text = Text1.Text + "6"
ElseIf b = True Then Text2.Text = Text2.Text + "6" ElseIf Z = True Then Text3.Text = Text3.Text + "6" Else: Text13.Text = Text13.Text + "6"
End If End If End Sub