Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 166 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
166
Dung lượng
836,78 KB
Nội dung
Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG LUẬN VĂN TỐT NGHIỆP ĐỀ TÀI: ĐIỀU KHIỂN MÁY VẼ BẰNG VI XỬ LÝ GVHD : THẦY HOÀNG MINH TRÍ SVTH : TRẦN HỒI NAM MSSV : 49700926 SVTH:Trần Hồi Nam Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý MỤC LỤC PHẦN I : GIỚI THIỆU 1/LỜI GIỚI THIỆU 2/SƠ LƯỢC VỀ LUẬN VĂN PHẦN II : CÁC THIẾT BỊ ĐỒ HỌA 1/MỘT SỐ THIẾT BỊ ĐỒ HỌA THÔNG DỤNG 2/GIỚI THIỆU BÀN VẼ TRONG LUẬN VĂN PHẦN III : ĐỘC LẬP THIẾR BỊ 1/ĐỘC LẬP THIẾT BỊ 2/ỨNG DỤNG VÀO ĐỀ TÀI PHẦN IV : GIỚI THIỆU TẬP TIN DXF 1/GIỚI THIỆU 2/CẤU TRÚC FILE DXF PHẦN V : GIẢI THUẬT VẼ 1/GIẢI THUẬT SINH ĐƯỜNG THẲNG 2/GIẢI THUẬT SINH ĐƯỜNG TRÒN 3/GIẢI THUẬT SINH ĐƯỜNG SPLINE PHẦN VI : GIỚI THIỆU VI XỬ LÝ 8951 1/GIỚI THIỆU AT89C51 2/TẬP LỆNH CỦA AT89C51 3/MỘT SỐ CHỨC NĂNG TRONG AT89C51 PHẦN VII : CỔNG COM VÀ CÁC CHUẨN GIAO TIẾP 1/GIAO TIẾP VỚI MÁY TÍNH 2/CÁC CHUẨN TRUYỀN THƠNG NỐI TIẾP 3/CHUẨN RS-232 PHẦN VIII :ĐỘNG CƠ BƯỚC 1/GIỚI THIỆU ĐỘNG CƠ BƯỚC 2/MỘT SỐ MẠCH ĐIỀU KHIỂN ĐỘNG CƠ BƯỚC 3/DÒNG GIỚI HẠN CỦA ĐỘNG CƠ BƯỚC PHẦN IX : TỔNG KẾT PHẦN X : PHỤ LỤC SVTH:Trần Hoài Nam Trang 1 3 8 10 11 11 11 19 19 21 25 28 28 32 33 39 39 40 41 44 44 49 51 53 54 Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý PHẦN I GIỚI THIỆU 1/LỜI GIỚI THIỆU Trước đây, máy cắt kim loại thông thường, việc điều khiển chuyển động thay đổi vận tốc phận, máy thực tay Với cách điều khiển thời gian phụ lớn, nên tăng suất lao động đảm bảo độ xác vật gia cơng Do để giảm thời gian phụ, ta cần thiết tiến hành tự động hoá q trình điều khiển Và phương pháp gia cơng tự động đời với dấu tì, cam trục phân phối v.v…nhưng chưa đáp ứng nhu cầu sản suất, rút ngắn thời gian phụ thời gian chuẩn bị sản suất dài Nhược điểm không đáng kể sản suất số lượng lớn, với sản suất nhỏ, mặt hàng phải thay đổi thường xuyên, loại máy trở nên bất tiện khơng kinh tế Điều hình thành nhu cầu tìm phương pháp điều khiển mới, đảm bảo thời gian hiệu chỉnh máy để gia công từ loại chi tiết sang loại chi tiết khác nhanh Và phương pháp điều khiển theo chươnh trình đời để đáp ứng yêu cầu Điều khiển theo chương trình dạng điều khiển tự động mà tín hiệu điều khiển (tín hiệu ra) thay đổi theo qui luật định trước Nói cách khác, máy điều khiển theo chương trình, thứ tự giá trị chuyển động, thứ tự phận máy, đóng mở hệ thống làm nguội, bôi trơn, thay dao… thực theo trình tự lập trình sẵn Các cấu mang chương trình đặt vào thiết bị điều khiển máy làm việc tự động theo chương trình cho Nếu chương trình ghi lại dấu tì, hệ thống cam, mẫu chép hình… ta gọi hệ thống điều khiển hệ thống điều khiển phi số Nếu chương trình biểu thị chữ số dạng mã hiệu, ta gọi hệ thống điều khiển theo chương trình số Như điều khiển theo chương trình số trình tự động cho phép đưa cấu di động từ vị trí đến vị trí khác lệnh Sự dịch chuyển lượng di động thẳng hay góc quay theo bậc tự Trong nhiều trường hợp, phương pháp điều khiển theo chương trình số thiết kế tự động hoá việc di động cấu từ vị trí đến vị trí khác, ta gọi “điều khiển theo điểm” Nhưng ta thực dễ dàng rút ngắn vô hạn khoảng cách hai điểm di động đạt trình điều khiển quĩ đạo gọi “điều khiển theo đường” Phương pháp điều khiển chương trình số dùng để di động cấu truyền động Phạm vi sử dụng rộng, chủ yếu tự động hố máy cơng cụ, lĩnh vực bao gồm việc điều khiển dao cắt chữ số Chương trình ghi chữ số thực máy, dạng băng xuyên lỗ, băng từ, đĩa từ, film… Các chương trình cất giữ vào kho, ngăn tủ Khi cần sử dụng ta cần nạp vào máy, để máy thực chương trình điều khiển chuyển động tương đối dao phôi SVTH:Trần Hồi Nam Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý Vì làm chương trình số tiến hành xa máy máy có hệ thống đo lường riêng, nên hệ thống thay đổi dễ dàng nhanh chóng Dựa phương pháp điều khiển vị trí theo chương trình số nêu, đề tài luận văn là: ”Điều khiển máy vẽ vi xử lý” Máy vẽ đề cập máy vẽ có khả vẽ liên tục đường nét hình cho trước (của AutoCad) 2/ SƠ LƯỢC VỀ LUẬN VĂN * Luận văn có nhiệm vụ thiết kế máy vẽ có khả đọc tập tin (file) DXF AutoCad , sau định dạng lại file.DXF (có nghĩa tạo file.TXT chứa thông tin điểm, đường cần vẽ ) Việc định dạng thực máy tính (PC) , cuối PC truyền thông tin file.TXT xuống vixử lý 8952 đề thực thao tác vẽ * Những công việc cần thực hiện: - Phần cứng : thiết kế mạch giao tiếp PC 8952 theo chuẩn RS-232 - Phần mềm: >Lập trình cho việc đọc định dạng file.DXF PC (dùng DELPHI) >Lập trình cho vi xử lý 8952 thực thao tác vẽ 3/ỨNG DỤNG CỦA ĐỀ TÀI Với cách điều khiển lúc dịch chuyền theo trục X,Y bút vẽ để di chuyển theo đường xác định , đề tài khẳng định tối ưu khả thi việc điều khiển vị trí liên tục máy công cụ , tảng cho việc thiết kế máy khoan , máy cắt… Để ứng dụng vào sản suất , cụ thể cắt may, địi hỏi phải có mạch hồi tiếp từ cấu chấp hành , động có cơng suất lớn với độ tin cậy cao PHẦN II CÁC THIẾT BỊ ĐỒ HỌA 1/ MỘT SỐ THIẾT BỊ ĐỒ HỌA THÔNG DỤNG a/ Thiết bị quét Raster : Thiết bị quét Raster (gọi tắt Raster) loại thiết bị thể (màn hình) Thiết bị Raster thể hình ảnh từ điểm màu thay đường Mỗi điểm gọi pixel Giới thiệu số thiết bị Raster : -Màn hình (Monitor): Màn hình hiển thị hệ thống đồ họa máy tính cầu nối việc trao đổi thơng tin người sử dụng hệ thống Có nhiều loại cơng nghệ sử dụng để phối hợp loại hình đồ họa SVTH:Trần Hồi Nam Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý Độ phân giải liên quan đến khả hình thể chi tiết Các hình đạt đến độ phân giải 1280x1024, số thể điểm phân biệt hình Sơ đồ phân loại : Màn hình Quét dòng Quét vector Ống nhớ CRT làm tươi Đơn sắc Màu CRT màu Màn hình phẳng Tinh thể lỏng Bảng Plasma Hình: Các cơng nghệ sử dụng cấu tạo thiết bị hiển thị đồ họa Phát quang điện tử Các ký tự văn hình thành từ mẫu điểm Đường thẳng cung hình thành từ dãy điểm thích hợp Và vùng hình tơ màu ; đơn giản tất điểm vùng lập màu Ảnh Raster đặt vùng nhớ gọi vùng đệm khung (frame buffer) Thuật ngữ frame để ảnh đơn Trong vùng đệm khung, với trường hợp hai cấp cần bit cho điểm, giá trị bit 0, điểm tương ứng ảnh có màu trắng, cịn điểm tương ứng có màu đen Với ảnh màu, để biểu diễn mỗ điểm cần nhiều bit Vùng đệm khung : Vùng đệm khung chiếm nhiều nhớ: giả sử kích thước hình r dòng, c cột cần b bit cho điểm, cần r*c*b bit Một thiết bị Raster chất lượng cao có r=1024, c=1024, b=24, cần 25 triệu bit (3MB) Như vùng đệm nằm đậu truy cập chúng Với số hệ Raster, vùng đệm khung thực phần nhớ máy Chúng gọi thiết bit-maped : xử lý truy xuất điểm, có mạch logic riêng để làm tươi hình Để tạo ảnh ứng dụng ghi màu (là giá trị) trực tiếp lên vị trí nhớ thích hợp Tại cấp thấp nhất, có thị máy làm việc Tuy nhiên để tiện lợi người ta tạo thủ tục SetPixel(row,col,A) để nạp giá trị A cho điểm (row,col) -Máy in kim: Cơ cấu in máy in ma trận điểm tập hợp từ đến 24 kim cứng xếp đầu in, di chuyển theo phương nằm ngang mặt tờ giấy Các máy in làm việc thiết bị qt dịng cần có chuyển đổi cho hình ảnh dạng quét vector Việc in màu thực nhờ sử dụng ruyban màu Các màu bổ sung tạo cách gõ hai vùng đệm ruyban lên điểm giấy -Máy in, vẽ phun: SVTH:Trần Hồi Nam Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý Cũng thiết bị qt dịng (raster scan), thiết bị in màu rẻ tiền Cơ cấu gồm đầu vịi mực gắn đầu in, di chuyển bề mắt tờ giấy phun mực với màu sắc khác Các vòi phun gắn với hốc mực rãnh nhỏ bao bọc tinh thể áp điện Một xung điện đặt vào tinh thể tạo giật nhẹ, làm bắn giọt mực Độ phân giải máy in quy định kích thước giọt mực, kích thước vịi phun tạo Vịi phun thường nhỏ nên in thường gặp số vấn đề phức tạp -Máy in laser: Là thiết bị qt dịng (raster scan), chùm tia lazer quét lên trống quay tích điện dương, phủ lớp selen Phần mặt trống bị chiếu chùm tia lazer bị điện tích dương Những phần tích điện cịn lại tương ứng với phần đen giấy Một lớp bột tĩnh điện phủ lên phần tích điện dương truyền sang giấy Một vi xử lý máy in lazer thực chuyển đổi sang dạng quét dòng -Máy in tĩnh điện: Là thiết bị nạp điện tích âm cho phần loại giấy chế tạo đặc biệt, sau làm đặc bột tĩnh điện dạng lỏng, tích điện dương lên tờ giấy Bột tĩnh điện phủ lên làm tối phần giấy tích điện âm Đây thiết bị dạng qt dịng, chứa xử lý để thực việc chuyển đổi b/ Thiết bị vẽ đường : Có hai dạng thường gặp máy vẽ dạng phẳng dạng trống -Máy vẽ dạng phẳng: Máy vẽ dạng phẳng truy cập đến vị trí xy mặt phẳng cách chuyển động cần vẽ gắn bàn vẽ Trên cần vẽ có gắn viết vẽ chuyển động dọc theo trục x trục y Cây viết hạ xuống hay nhấc lên, tùy theo việc đường nét hay thay đổi vị trí viết Tờ giấy giữ bàn vẽ tĩnh điện chân không -Máy vẽ dạng trống: Máy vẽ dạng trống có vài điểm phức tạp dạng phẳng, chế độ hoạt động tương tự Trong máy vẽ dạng trống, tờ giấy lên trống vẽ cho khơng có trượt Trống quay tới, quay lui, đầu vẽ trượt cần vẽ cố định, truy cập đến điểm tờ giấy Nhận xét : Các thiết bị vẽ đường (Line Drawing) vẽ đường Thông dụng bút vẽ Plotter Khi plotter vẽ đường, trước hết bút di chuyển đến điểm đầu, đặt bút xuống, sau bút di chuyển theo đường thẳng tới đầu đường Các thiết bị vẽ đường có hệ tọa độ định sẵn cho bút vẽ, hình : y (1023,767) Pen x (0,0 SVTH:Trần Hồi Nam Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý Bút vẽ đến điểm cụ thể cách gửi cho Plotter tọa độ điểm Thiết bị vẽ đường có sẵn số thủ tục bản, ví dụ số lệnh cho bút vẽ : Pen_Up : nhấc bút Pen_Down : đặt bút Go_To (x,y) : di chuyển bút đến điểm (x,y) Get_Pen (i) : đổi bút thành bút thứ i Những lệnh gọi lệnh thiết lập chế độ (mode setting) Khi thiết bị nhận lệnh chúng thay đổi “trạng thái” máy có lệnh thiết lập chế độ khác Thiết bị phải gửi giá trị (x,y) theo hệ tọa độ nó, gọi tọa độ thiết bị 2/ GIỚI THIỆU BÀN VẼ TRONG LUẬN VĂN Máy vẽ thiết kế luận văn máy vẽ điều khiển theo chương trình số Phần máy vẽ gồm hai trục X,Y để điều khiển vị trí qua lại bút vẽ mặt phẳng vẽ trục Z gắn trực tiếp với bút vẽ để điều khiển nhấc bút lên hay hạ bút xuống Mỗi trục X,Y cấu tạo gồm động bước có trục quay gắn liền với vitme Vitme trục có xoắn, mài kỹ Nếu ta gắn vật lên xoắn vitme động quay, vitme chuyển chuyển động quay thành chuyển động trượt vật xoắn Tùy theo chiều quay động thuận hay nghịch mà vật chuyển động tới hay lui xoắn Trục X đặt lên vitme trục Y, trục Z lại đặt lên vitme trục X Kết quay động bút vẽ di chuyển theo trục, quay đồng thời hai động bút vẽ di chuyển theo hai trục, việc dẫn đến việc ta vẽ đường xiên tiền đề cho việc vẽ đường cong Trục Z đơn giản nam châm điện có trục gắn với bút vẽ dùng để điều khiển vị trí nhấc lên hay hạ xuống Khi có dòng điện qua nam châm, bút nhấc lên Ngồi cịn số cơng tắc hành trình để việc điều khiển xác dễ dàng Tìm hiểu hai động bước hai trục X,Y : Hai động bước mơ hình thiết kế sau : - Động trục X : o Quay thuận : đưa bút vẽ qua phải chiều tăng x o Quay nghịch : đưa bút vẽ qua trái chiều giảm x - Động trục Y : o Quay thuận : đưa bút vẽ lên chiều tăng y o Quay nghịch : đưa bút vẽ xuống chiều giảm y Trục động gắn với vitme có độ phân giải 0.1mm ứng với bước quay motor Nghĩa động quay bước vitme xoay làm di chuyển vật gắn 0.1mm Với độ phân giải này, ta vẽ đường nét mịn đòi hỏi độ phân giải cao Khi vận hành, đầu chung động nối lên nguồn DC 5V, đầu cịn lại nối xuống mass hay khơng bit điều khiển ……Giới thiệu động bước… SVTH:Trần Hồi Nam Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý Động dùng mơ hình loại động bước nam châm vĩnh cửu đơn cực đầu dây, điện áp làm việc 1.8VDC góc bước 1.8 độ Trục Z công tắc hành trình mơ hình : Trục Z : Dùng nam châm điện 24VDC để điều khiển nhấc bút hay hạ bút Nam châm cấu tạo gồm cuộn dây quấn quanh lõi sắt di chuyển tự Khi có dịng điện qua cuộn dây tạo lực từ hút lõi sắt lên Dựa vào tính chất ta gắn bút vẽ vào lõi sắt nam châm để điều khiển vị trí nhấc lên hay hạ xuống bút vẽ Khi vận hành, đầu dây nam châm nối với nguồn 24VDC, đầu lại nối với mass hay khơng khóa BJT Để giữ cố định bút vẽ di chuyển hay vẽ, đồng thời để xác định trạng thái nhấc lên hay hạ xuống bút vẽ, người ta dùng công tắc hành trình gắn liền với trục tác động nam châm Công tắc đầu nối xuống mass, đầu nối với bit điều khiển (bit bình thường treo lên 5V) Khi bút vẽ nhấc lên bit = ngược lại, khơng nhấc bit = Khi muốn nhấc bút lên ta tác động vào khóa BJT dịng điện qua cuộn dây bút nhấc lên Khi muốn hạ bút xuống công việc tương tự Chú ý : phải đọc cơng tắc hành trình bút trước tác động vào BJT phải ngưng kích bút đổi trạng thái tác động lâu dẫn đến cuộn dây nam châm bị cháy (nam châm DC làm việc ngắn hạn) Các cơng tắc hành trình : Trên mơ hình có cơng tắc hành trình (2 trục X, trục Y) để xác định đầu trục hay cuối trục tương ứng Các công tắc đầu nối xuống mass, đầu lại nối bit điều khiển Nam châm điện Cơng tắc hành trình Hình :Bàn vẽ Trục Z Động bước PHẦN III ĐỘC LẬP THIẾT BỊ SVTH:Trần Hồi Nam Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý 1/ĐỘC LẬP THIẾT BỊ * Chúng ta gặp nhiều dạng “lệnh thiết bị” tùy theo thiết bị Các thiết bị vẽ đường Plotter có thủ tục Pen_Up, Pen_Down, Go_To (x,y) Thiết bị Raster có cá thủ tục SetPixel, Line Trong trường hợp ta phải gửi tọa độ thiết bị, thiết bị cóù riêng hệ tọa độ định sẵn Điều gây hai vấn đề : - Khó để tìm hiểu ý tưởng phương pháp mà khơng biết chi tiết thiết bị - Khó thay đổi ứng dụng viết cho thiết bị sang thiết bị khác Như cần phải “che giấu” chi tiết thiết bị thủ tục “điều khiển” để có dạng giao tiếp thống cho ứng dụng Ví dụ : Chúng ta cần thủ tục Draw_Line(x1,y1,x2,y2:real) để vẽ đường thẳng từ điểm (x1,y1) đến điểm (x2,y2) Bên lệnh phụ thuộc tọa độ thiết bị, chương trình ứng dụng khơng cần biết chi tiết Vì xem thủ tục độc lập thiết bị * Xuất phát từ nhu cầu “Nếu ta dùng thiết bị đồ họa khác, mà khơng phải viết lại chương trình điều khiển không cần biên dịch lại, mà cần nối kết chương trình điều khiển thiết bị mới” Độc lập thiết bị giúp bạn làm điều Để đảm bảo tính linh động, tiêu chuẩn đồ họa thiết lập cho chương trình ứng dụng thay đổi tối thiểu, cho phép định địa thiết bị nhập khác Khởi đầu, người lập trình tạo hệ thống tọa độ mơ hình, mơ tả đối tượng gọi Hệ tọa độ thực (World Coordinate_WC) Tiếp theo, người lập trình mơ tả Hệ thống tọa độ thiết bị chuẩn (Normalized Device Coordinate_NDC), cách xác định vùng hai chiều bề mặt quan sát mà hình ảnh xuất Sau tọa độ thiết bị chuẩn chuyển sang tọa độ thiết bị (Device Coordinate) Hệ thống tọa độ thực (WC) Hệ thống tọa độ chuẩn (NDC) Hệ thống tọa độ thiết bị (DC) Thiết bị vật lý Chương trình ứng dụng giao tiếp với hệ thống tọa độ chuẩn theo cách thức phù hợp, không quan tâm đến thiết bị xuất sử dụng Do tạo độc lập thiết bị việc tạo ảnh đối tượng *Tọa độ thiết bị chuẩn hóa (NDC – Normalized Device Coordinate) : KGS (Graphic Kernel System – hệ chuẩn quốc tế) định nghĩa tọa độ thiết bị chuẩn hóa (NDC) vùng hình vng với góc thấp trái (0,0) góc cao phải (1,1), hình : y Display (x2,y2) y1 (x1,y1) SVTH:Trần Hoài Nam x1 x Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý Không gian NDC hệ tọa độ chuẩn cho thiết bị, lệnh Draw_Line() tự mở rộng khuôn để vừa khớp với khuôn thiết bị *Ánh xạ NDC lên thiết bị : Mỗi lần xuất thủ tục LineNDC_() lên thiết bị phải ánh xạ hình vng đơn vị hình vng lớn tên thiết bị gọi hình vng thiết bị Nghĩa là, cho điểm P(x,y) NDC ta cần tính tọa độ thiết bị tương ứng Q(dx,dy) hình vng thiết bị, hình : NDC y P Largest Square dy Device Coordinate space Q x dx Phép ánh xạ phải tỉ lệ Vì dx phải ánh xạ tuyến tính theo x, cho : dx=Ax+B dy=Cy+D với A,B,C,D số 2/ỨNG DỤNG VÀO ĐỀ TÀI: - Sau đoạn chương trình minh họa việc chuyển đổi tọa độ điểm , đường từ hệ tọa độ AutoCad sang hệ tọa độ PC hệ tọa độ bàn vẽ - Khai báo biến: p.x ; p.y :tọa độ AutoCad (Kích thước vẽ Page_Width * Page_Height ) PC_p.x ; PC_p.y :tọa độ PC (Bàn vẽ PC phần tử Image.canvas có kích thước 350*350) Mv_p.x ; Mv_p.y :tọa độ bàn vẽ (Bàn vẽ máy vẽ có kích thước 420*297) - Procedure Chuyen_doi_toa_do (); Begin If (Page_Width div 350) > (Page_Height div 350) then Scale:=Round(Page_Width div 350)+1 else Scale:=Round(Page_Height div 350)+1; SVTH:Trần Hồi Nam 10 Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý MOV CH,X2H MOV CL,X2L JMP End_Calc_C_Rev Circle14_Diff_1_Rev: CJNE A,#2,Circle14_Diff_2_Rev MOV CH,Y2H MOV CL,Y2L JMP End_Calc_C_Rev Circle14_Diff_2_Rev: CJNE A,#3,Circle14_Diff_3_Rev MOV CH,X2H MOV CL,X2L %Sign (CH,CL) JMP End_Calc_C_Rev Circle14_Diff_3_Rev: MOV CH,Y2H MOV CL,Y2L %Sign (CH,CL) End_Calc_C_Rev: %INC16 (CH,CL,CH,CL) RET ;============================================== ;Khoi dong Circle (Tinh CH,CL) ;Input :Circle14 - X2H,X2L - Y2H,Y2L ;Output : CH,CL ;============================================== Calc_C_For: MOV A,Circle14 CJNE A,#1,Circle14_Diff_1_For MOV CH,Y2H MOV CL,Y2L JMP End_Calc_C_For Circle14_Diff_1_For: CJNE A,#2,Circle14_Diff_2_For MOV CH,X2H MOV CL,X2L %Sign (CH,CL) JMP End_Calc_C_For Circle14_Diff_2_For: CJNE A,#3,Circle14_Diff_3_For MOV CH,Y2H MOV CL,Y2L %Sign (CH,CL) JMP End_Calc_C_For Circle14_Diff_3_For: MOV CH,X2H 152 SVTH:Trần Hồi Nam Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý MOV CL,X2L End_Calc_C_For: %INC16 (CH,CL,CH,CL) RET ;============================================== ;Khoi dong Circle (Convert X,Y) ;Input :XH,XL - YH,YL ;Output : XH,XL - YH,YL ;============================================== Convert_X_Y: MOV R7,XH MOV R6,XL MOV XH,YH MOV XL,YL MOV YH,R7 MOV YL,R6 End_Convert_X_Y: RET ;============================================== ;Khoi dong Circle ;Input :No ;Output : No ;============================================== Circle_Init_Rev: CALL Calc_Circle14_Rev CALL Calc_D1_D2 CALL Calc_X_Y CALL Calc_C_Rev End_Circle_Init_Rev: RET ;============================================== ;Khoi dong Circle ;Input :No ;Output : No ;============================================== Circle_Init_For: CALL Calc_Circle14_For CALL Calc_D1_D2 CALL Calc_X_Y CALL Calc_C_For CALL Convert_X_Y End_Circle_Init_For: RET ;============================================== ;Ve mot phan tu hinh tron: ;Input :X1H,X1L - Y1H,Y1L - X2H,X2L 153 SVTH:Trần Hồi Nam Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý ;Output : No ;============================================== Circle_Rev: MOV A,DeltaXH JNB ACC.7,D1_Positive_Rev MOV A,DeltaYH JNB ACC.7,D2_Positive_Rev JMP Case1_Rev D2_Positive_Rev: JMP Case2_Rev D1_Positive_Rev: JMP Case3_Rev Case1_Rev: %BT1 (DeltaXH,DeltaXL,YH,YL) %BT2 (DeltaYH,DeltaYL,YH,YL) %INC16 (YH,YL,YH,YL) %Direction1_Rev JMP Next_Circle_Rev Case2_Rev: %BT3 (DeltaXH,DeltaXL,XH,XL,YH,YL) %BT3 (DeltaYH,DeltaYL,XH,XL,YH,YL) %DEC16 (XH,XL,XH,XL) %INC16 (YH,YL,YH,YL) %Direction2_Rev JMP Next_Circle_Rev Case3_Rev: %BT4 (DeltaXH,DeltaXL,XH,XL) %BT5 (DeltaYH,DeltaYL,XH,XL) %DEC16 (XH,XL,XH,XL) %Direction3_Rev Next_Circle_Rev: %CMP(XH,XL,CH,CL) JNC End_Circle_Rev CLR Motor_Flag CLR Circle_Rev_Draw MOV DataBaseAddr,#0FH SETB Transmit_Flag CALL Turn_On_AUTO_LED CALL Delete_Pulse End_Circle_Rev: RET ;============================================== ;Ve mot phan tu hinh tron: ;Input :X1H,X1L - Y1H,Y1L - X2H,X2L ;Output : No ;============================================== 154 SVTH:Trần Hồi Nam Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý Circle_For: MOV A,DeltaXH JNB ACC.7,D1_Positive_For MOV A,DeltaYH JNB ACC.7,D2_Positive_For JMP Case1_For D2_Positive_For: JMP Case2_For D1_Positive_For: JMP Case3_For Case1_For: %BT1 (DeltaXH,DeltaXL,YH,YL) %BT2 (DeltaYH,DeltaYL,YH,YL) %INC16 (YH,YL,YH,YL) %Direction1_For JMP Next_Circle_For Case2_For: %BT3 (DeltaXH,DeltaXL,XH,XL,YH,YL) %BT3 (DeltaYH,DeltaYL,XH,XL,YH,YL) %DEC16 (XH,XL,XH,XL) %INC16 (YH,YL,YH,YL) %Direction2_For JMP Next_Circle_For Case3_For: %BT4 (DeltaXH,DeltaXL,XH,XL) %BT5 (DeltaYH,DeltaYL,XH,XL) %DEC16 (XH,XL,XH,XL) %Direction3_For Next_Circle_For: %CMP(XH,XL,CH,CL) JNC End_Circle_For CLR Motor_Flag CLR Circle_For_Draw MOV DataBaseAddr,#0FH SETB Transmit_Flag CALL Turn_On_AUTO_LED CALL Delete_Pulse End_Circle_For: RET ;================================================= ;Nhấc bút vẽ lên ;================================================= Pen_Up: JNB Pen_Lift,End_Pen_Up CLR Press MOV A,Out_Led 155 SVTH:Trần Hoài Nam Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý ANL A,#01111111B MOV Out_Led,A End_Pen_Up: RET ;================================================= ;Hạ bút vẽ xuống ;================================================= Pen_Down: JB Pen_Lift,End_Pen_Down CLR Press MOV A,Out_Led ORL A,#10000000B MOV Out_Led,A End_Pen_Down: RET KEY.INC: ;================================================ ;Doan chuong trinh quet phim ;Output : KeyOut ;================================================ KeyDecoder: MOV A,Key CALL KeyCode NOP JB KeyIn,Key_Equal DJNZ Key,End_KeyDecoder MOV Key,#KeyNumber JNB KeyPressed,Key_Next1 CLR KeyPressed JMP End_KeyDecoder Key_Next1: ;Khơng có phím nhấn MOV KeyOut,#0 MOV Key_Counter,#0 CALL Delete_Pulse JMP End_KeyDecoder Key_Equal: ;Có phím nhấn MOV A,Key CJNE A,Key_Pressed,Key_Not_Equal INC Key_Counter MOV A,Key_Counter CJNE A,#KeyCount,End_KeyPressed MOV A,Key_Pressed CALL OutKeyCode MOV Key_Counter,#0 JMP End_KeyPressed 156 SVTH:Trần Hoài Nam Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý Key_Not_Equal: ;Chưa đủ số lần lặp quét phím MOV Key_Counter,#0 MOV Key_Pressed,Key JMP End_KeyPressed End_KeyPressed: SETB KeyPressed DJNZ Key,End_KeyDecoder MOV Key,#KeyNumber End_KeyDecoder: RET ;================================================ ;Doan chuong trinh xuat ma quet phim ;================================================ KeyCode: ;Tạo giá trị để kiểm tra phím nhấn MOV DPTR,#(Key_Code-1) MOVC A,@A+DPTR ORL P2,#00001111B ANL A,P2 MOV P2,A RET Key_Code: DB 11111110B DB 11111101B DB 11111011B DB 11110111B End_KeyCode: ;================================================ ;Doan chuong trinh xuat phim duoc nhan ;================================================ OutKeyCode: ;Set cờ F(i) tương ứng với phím nhấn MOV DPTR,#(Flag_Code-1) MOVC A,@A+DPTR MOV KeyOut,A RET Flag_Code: DB 00000001B DB 00000010B DB 00000100B DB 00001000B End_OutKeyCode: MANUAL.INC: ;================================================= ;Xóa đèn điều khiển hướng chuyểàn động đèn AUTO ;================================================= Delete_Direction_LED: 157 SVTH:Trần Hồi Nam Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý MOV A,Out_Led ANL A,#11100000B MOV Out_Led,A End_Delete_Direction_LED: RET ;================================================= ;Chế độ điều khiển tay ;================================================= Manual: JNB F1,Not_Left CALL Left_Control JMP End_Manual Not_Left: JNB F2,Not_Up CALL Up_Control JMP End_Manual Not_Up: JNB F3,Not_Down CALL Down_Control JMP End_Manual Not_Down: JNB F4,End_Manual CALL Right_Control End_Manual: RET TRANSFER.INC: Transfer: Receive: JNB RI,End_Receive CLR RI MOV A,SBUF MOV C,P ANL C,RB8 JC Data_OK MOV C,P ORL C,RB8 JNC Data_OK MOV DataBaseAddr,#0FFH SETB Transmit_Flag MOV R0,#DataBaseAddr MOV DataIn_Counter,#DataInByte MOV A,Out_Led ORL A,#00100000B MOV Out_Led,A JMP End_Receive 158 SVTH:Trần Hồi Nam Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý Data_OK: MOV @R0,A INC R0 DJNZ DataIn_Counter,End_Receive MOV DataIn_Counter,#DataInByte MOV R0,#DataBaseAddr MOV A,DataBaseAddr CJNE A,#PC_Addr,End_Receive SETB Draw_Flag MOV A,Out_Led ANL A,#11011111B MOV Out_Led,A End_Receive: Transmit: JNB Transmit_Flag,End_Transmit JNB TI,End_Transmit CLR TI CLR Transmit_Flag MOV A,DataBaseAddr MOV C,P MOV TB8,C MOV SBUF,A End_Transmit: End_Transfer: RET AUTO.INC: ;================================================= ;Bật đèn AUTO ;================================================= Turn_on_AUTO_LED: MOV A,Out_Led ANL A,#11110000B ORL A,#00010000B MOV Out_Led,A RET End_Turn_On_AUTO_LED: ;================================================= ;Xác định loại lệnh nhận thực khởi động tương ứng ;================================================= Draw_Identify: JNB Draw_Flag,End_Draw_Label CLR Draw_Flag JMP Next_Draw_Identify End_Draw_Label: JMP End_Draw_Identify 159 SVTH:Trần Hồi Nam Niên khóa 1997-2002 Luận văn tốt nghiệp Next_Draw_Identify: MOV A,DataBaseAddr+1 CJNE A,#0,Not_Move CALL Pen_Up CALL Line_Init SETB Motor_Flag SETB Line_Draw JMP End_Draw_Identify Not_Move: CJNE A,#1,Not_Line CALL Pen_Down CALL Line_Init SETB Motor_Flag SETB Line_Draw JMP End_Draw_Identify Not_Line: CJNE A,#2,Not_Circle_For CALL Pen_Down CALL Circle_Init_For SETB Motor_Flag SETB Circle_For_Draw JMP End_Draw_Identify Not_Circle_For: CJNE A,#3,Not_Circle_Rev CALL Pen_Down CALL Circle_Init_Rev SETB Motor_Flag SETB Circle_Rev_Draw JMP End_Draw_Identify Not_Circle_Rev: CJNE A,#4,Not_Data_Out SETB Data_Out JMP End_Draw_Identify Not_Data_Out: CJNE A,#5,Not_Speed_Change MOV Speed,DataBaseAddr+3 MOV DataBaseAddr,#0FH SETB Transmit_Flag JMP End_Draw_Identify Not_Speed_Change: CJNE A,#6,Not_Data_In CALL Mov_Ext_Data MOV DataBaseAddr,#0FH SETB Transmit_Flag JMP End_Draw_Identify Not_Data_In: Điều khiển máy vẽ vi xử lý ;Đưa liệu vào vùng 128byte cao 160 SVTH:Trần Hồi Nam Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý CJNE A,#7,Not_Spline CALL Pen_Down CALL Spline_Init SETB Motor_Flag SETB Spline_Draw JMP End_Draw_Identify Not_Spline: CJNE A,#8,Not_LCD SETB Motor_Flag SETB LCD_Display_Flag JMP End_Draw_Identify Not_LCD: CJNE A,#9,Not_Clear CALL Clear_LCD MOV DataBaseAddr,#0FH SETB Transmit_Flag JMP End_Draw_Identify Not_Clear: CJNE A,#10,Not_Next_Row CALL Next_Row_LCD MOV DataBaseAddr,#0FH SETB Transmit_Flag JMP End_Draw_Identify Not_Next_Row: End_Draw_Identify: RET ;================================================= ;Điều khiển động vẽ đường tương ứng với lệnh nhận ;================================================= Motor_Control_Drawing: JNB Motor_Flag,End_Motor_Control_Drawing JNB Line_Draw,Motor_Control_L1 CALL Line JMP End_Motor_Control_Drawing Motor_Control_L1: JNB Circle_Rev_Draw,Motor_Control_L2 CALL Circle_Rev JMP End_Motor_Control_Drawing Motor_Control_L2: JNB Circle_For_Draw,Motor_Control_L3 CALL Circle_For Motor_Control_L3: JNB Spline_Draw,Motor_Control_L4 CALL Spline Motor_Control_L4: JNB LCD_Display_Flag,Motor_Control_L5 161 SVTH:Trần Hồi Nam Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý CALL LCD_Display Motor_Control_L5: End_Motor_Control_Drawing: RET ;================================================= ;Xuất tọa độ hành bút vẽ ;================================================= Position_Output: JNB Data_Out,End_Position_Output MOV DataBaseAddr,@R1 INC R1 SETB Transmit_Flag DJNZ DataOut_Counter,End_Position_Output MOV DataOut_Counter,#DataOutByte CLR Data_Out MOV R1,#Cur_XH End_Position_Output: RET ;================================================= ;Dừng hệ thống nút Start/Stop ;================================================= Stop_System: JNB Run,End_Stop_System PUSH P0 MOV A,Out_Led ORL A,#01000000B MOV Out_Led,A MOV P0,Out_Led SETB Led_EN NOP CLR Led_EN POP P0 MOV SBUF,#0F0H CLR IE.1 End_Stop_System: ROUNTINE.INC: ;================================================= ;Khởi động Port nối tiếp, timer ngắt ;================================================= Serial_Port_Timer_Init: MOV SCON,#11010010B MOV IE,#10000010B MOV TMOD,#22H MOV TH1,#-3 MOV TH0,#TimeBase 162 SVTH:Trần Hoài Nam Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý SETB TR1 SETB TR0 RET End_Serial_Port_Timer_Init: ;================================================= ;Khởi động bit ;================================================= Bit_Init: SETB Transmit_Flag CLR Timer_F1 CLR Draw_Flag CLR KeyPressed CLR F1 CLR F2 CLR F3 CLR F4 CLR Motor_Flag CLR MotorX_Bit CLR MotorY_Bit CLR Led_EN CLR P1.0 CLR Line_Draw CLR Circle_Rev_Draw CLR Circle_For_Draw CLR Spline_Draw CLR LCD_Display_Flag CLR Data_Out CLR X_Del CLR Y_Del SETB Press CLR LCD_Busy CLR Run End_Bit_Init: RET ;================================================= ;Khởi động biến ;================================================= Variable_Init: MOV Speed,#V MOV TimerCount,#TimeCount MOV TimerCount1,Speed MOV DataIn_Counter,#DataInByte MOV R0,#DataBaseAddr MOV R1,#Cur_XH MOV PointerX,#MotorStep MOV PointerY,#MotorStep 163 SVTH:Trần Hồi Nam Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý MOV Key,#KeyNumber MOV Key_Pressed,#0 MOV Key_Counter,#0 MOV DataBaseAddr,#0FH MOV Out_Led,#0 MOV Cur_XH,#0 MOV Cur_XL,#0 MOV Cur_YH,#0 MOV Cur_YL,#0 MOV DataOut_Counter,#DataOutByte MOV Press_Counter,#PressCount MOV NBaseAddr,#0D8H MOV Ext_Data,#80H MOV LCD_Pointer,#80H RET End_Variable_Init: ;================================================= ;Xóa xung kích động bước ;================================================= Delete_Pulse: JNB X_Del,Next_Delete_Pulse CLR X_Del PUSH P0 MOV A,#0FFH MOV P0,A SETB MotorX_Bit NOP CLR MotorX_Bit POP P0 Next_Delete_Pulse: JNB Y_Del,End_Delete_Pulse CLR Y_Del PUSH P0 MOV A,#0FFH MOV P0,A SETB MotorY_Bit NOP CLR MotorY_Bit POP P0 End_Delete_Pulse: RET ;================================================= ;Xuất tín hiệu đèn báo ;================================================= Out_Led_Control: PUSH P0 164 SVTH:Trần Hồi Nam Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý MOV P0,Out_Led SETB Led_EN NOP CLR Led_EN POP P0 RET End_Out_Led: ;================================================= ;Kiểm tra cơng tắc hành trình, chạm biên -> dừng TIMER ;================================================= Limit_Control: JNB Start_X,Stop_Start_X JNB End_X,Stop_End_X JNB Start_Y,Stop_Start_Y JNB End_Y,Stop_End_Y JMP End_Limit_Control Stop_Start_X: JNB Timer_F2,$ CLR Timer_F2 CALL Right_Control JNB Start_X,Stop_Start_X JMP Stop Stop_End_X: JNB Timer_F2,$ CLR Timer_F2 CALL Left_Control JNB End_X,Stop_End_X JMP Stop Stop_Start_Y: JNB Timer_F2,$ CLR Timer_F2 CALL Up_Control JNB Start_Y,Stop_Start_Y JMP Stop Stop_End_Y: JNB Timer_F2,$ CLR Timer_F2 CALL Down_Control JNB End_Y,Stop_End_Y JMP Stop Stop: PUSH P0 MOV A,Out_Led ORL A,#01000000B MOV Out_Led,A MOV P0,Out_Led 165 SVTH:Trần Hồi Nam Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý SETB Led_EN NOP CLR Led_EN POP P0 MOV SBUF,#0F1H CLR IE.1 End_Limit_Control: RET ;================================================= ;Chuyển 10 byte liệu từ ô nhớ 32H 3BH lên vùng 128byte cao ;================================================= Mov_Ext_Data: PUSH PUSH MOV R2,#10 MOV R1,#DataBaseAddr+2 Mov_Data_Loop: MOV R0,Ext_Data MOV A,@R1 MOV @R0,A INC Ext_Data INC R1 DJNZ R2,Mov_Data_Loop POP POP End_Mov_Ext_Data: RET 166 SVTH:Trần Hoài Nam Niên khóa 1997-2002 ... nghiệp Điều khiển máy vẽ vi xử lý PHẦN I GIỚI THIỆU 1/LỜI GIỚI THIỆU Trước đây, máy cắt kim loại thông thường, vi? ??c điều khiển chuyển động thay đổi vận tốc phận, máy thực tay Với cách điều khiển. .. dễ dàng nhanh chóng Dựa phương pháp điều khiển vị trí theo chương trình số nêu, đề tài luận văn là: ? ?Điều khiển máy vẽ vi xử lý” Máy vẽ đề cập máy vẽ có khả vẽ liên tục đường nét hình cho trước... văn tốt nghiệp Điều khiển máy vẽ vi xử lý Hình: Lưu đồ giải thuật trung điểm sinh đường trịn SVTH:Trần Hồi Nam 23 Niên khóa 1997-2002 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý Bắt đầu x=0