Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 185 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
185
Dung lượng
1,22 MB
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 HOÀI NAM MSSV : 49700926 Lời cảm ơn : Em xin chân thành cảm ơn thầy Hoàng Minh Trí tận tình hướng Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý dẫn,giúp đỡ động viên em suốt thời gian thực luận văn tốt nghiệp Em xin chân thành cảm ơn thầy cô trường ĐHBK ,đặc biệt thầy cô Bộ môn ĐKTĐ kiến thức , học bổ ích mà thầy cô truyền dạy cho em măm học 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á 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 q đạ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 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý cấu truyền động Phạm vi sử dụng rộng, chủ yếu tự động hoá 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 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 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý 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 Độ 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 Tinh thể lỏng CRT màu Màn hình phẳng Bảng Plasma Phát quang điện tử Hình: Các công nghệ sử dụng cấu tạo thiết bò hiển thò đồ họa 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, đ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 : Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý 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ò quét 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: Cũng thiết bò quét 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ò quét 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 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ô đặ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 quét 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 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý 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 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 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 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý 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 Ngoài 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 lại nối xuống mass hay không bit điều khiển ……Giới thiệu động bước… Độ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 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý Để 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 Trục Z Động bước Hình :Bàn vẽ PHẦN III ĐỘC LẬP THIẾT BỊ 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 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý Điều gây hai vấn đề : - Khó để tìm hiểu ý tưởng phương pháp mà 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à 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 vuông 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) x1 x Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý 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 ;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 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý 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 ;============================================== 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 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý 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 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 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý 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 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 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý 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: 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: Luận văn tốt nghiệp 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 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 Điều khiển máy vẽ vi xử lý Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý 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 Next_Draw_Identify: MOV A,DataBaseAddr+1 CJNE A,#0,Not_Move Luận văn tốt nghiệp 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 Điều khiển máy vẽ vi xử lý ;Đưa liệu vào vùng 128byte cao Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý JMP End_Draw_Identify Not_Data_In: 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: Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý 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 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 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý 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 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 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý 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 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 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý 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 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 Luận văn tốt nghiệp Điều khiển máy vẽ vi xử lý 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 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 Luận văn tốt nghiệp 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 Điều khiển máy vẽ vi xử lý [...]... Luận văn tốt nghiệp Điều khiển máy vẽ bằng vi xử lý N:=0 Else N:=1 Else Begin denom1:=Knot[k+m-1] – Knot[k]; If denom10 then Sum:=(t – Knot[k]) * N(k,m-1,t) Else Sum:=0; denom2:=Knot[k+m] – Knot[k+1]; If denom20 then Sum:=sum + (Knot[k+m] – t) * N(k+1,m-1,t); N:=sum; End; {Knot là mảng chứa các véc tơ nút} PHẦN VI Luận văn tốt nghiệp Điều khiển máy vẽ bằng vi xử lý GIỚI THIỆU VI XỬ LÍ 8951 1/ GIỚI... công thức ⇒ di = F(1,R-1/2) = 1 + (R2 – R + ¼) – R2 Luận văn tốt nghiệp Điều khiển máy vẽ bằng vi xử lý = 5/4 - R Bắt đầu x=0 y=R d = 5/4 - R Putpixel (x,y) d0... Lưu đồ giải thuật 2 trung điểm sinh đường tròn Luận văn tốt nghiệp Điều khiển máy vẽ bằng vi xử lý 3/ GIẢI THUẬT SINH ĐƯỜNG SPLINE a/ Giới thiệu B-Spline : Ta đã biết các hàm liên kết trơn Bezier sử dụng các đa thức Bernstein phụ thuộc vào số lượng các điểm điều khiển Các đường cong này có sự điều khiển toàn bộ – di chuyển một điểm điều khiển ảnh hưởng đến toàn bộ đường cong Để tránh các đa thức bậc cao... nghiệp Điều khiển máy vẽ bằng vi xử lý APPID (Application Identification Table) BLOCK_RECORD (Block Reference Table) DIMSTYLE (Dimension Style Table) LAYER (Layer Table) LTYPE (Linetype Table) STYLE (Text Style Table) UCS (User Coordinate System Table) VIEW (View Table) VPORT (Viewport Configuration Table) Phần BLOCKS : Chứa đònh nghóa của khối và bản vẽ mà gộp thành mỗi khối tham chiếu trong bản vẽ Phần... AutoCad (Kích thước bản vẽ là Page_Width * Page_Height ) PC_p.x ; PC_p.y :tọa độ trong PC (Bàn vẽ trong PC là phần tử Image.canvas có kích thước 350*350) Mv_p.x ; Mv_p.y :tọa độ trong bàn vẽ (Bàn vẽ của máy vẽ có kích thước 420*297) - Procedure Chuyen_doi_toa_do (); Luận văn tốt nghiệp Điều khiển máy vẽ bằng vi xử lý Begin If (Page_Width div 350) > (Page_Height div 350) then Scale:=Round(Page_Width div... rất nhiều phần mềm máy tính phục vụ cho các mục tiêu khác nhau và có những thế mạnh khác nhau Do đó, thế nào cũng có lúc nảy sinh nhu cầu sử dụng bản vẽ ACAD trong những phần mềm khác, đặc biệt là các phần mềm đồ họa Luận văn tốt nghiệp Điều khiển máy vẽ bằng vi xử lý Nếu các phần mềm máy tính khác cũng đọc được tập tin DWG như AUTOCAD thì không có vấn đề gì Tuy nhiên, cấu trúc tinh vi của tập tin Autocad... bộ nhớ dữ liệu RAM nội: Bank thanh ghi (00H – 1FH): 8951 hỗ trợ 8 thanh ghi (R0 – R7), các lệnh Luận văn tốt nghiệp Điều khiển máy vẽ bằng vi xử lý dùng thanh ghi R0 – R7 thì sẽ ngắn hơn các lệnh tương ứng nhưng dùng đòa chỉ trực tiếp Các giá trò dữ liệu được dùng thường xuyên nên dùng một trong các thanh ghi này Bank thanh ghi tích cực có thể chuyển đổi bằng cách thay đổi các bit chọn bank thanh... T O P 3 3 /IN T 1 P 3 4 /T O P 3 5 /T 1 P 3 6 /W R P 3 7 /R D G N D 6 5 4 3 2 20 3 3 3 3 3 VC C 38 22 P 0: 1Sơ / A D 1đồ khố P i2 1vi / A 9 xử2 3lý 8951 Hình 37 2 2 2 2 2 4 5 6 7 8 1 1 1 1 1 1 1 1 0 1 2 3 4 5 6 7 29 30 Luận văn tốt nghiệp Điều khiển máy vẽ bằng vi xử lý Hình : Sơ đồ chân 8951 c/ Sơ lược về các chân của 8951: Port 0 (32 – 39): Là một port 2 chức năng: 8 bit Data Bus & 8 bit thấp... /*Z1=0*/ 0 PHẦN V GIẢI THUẬT VẼ 1/GIẢI THUẬT SINH ĐƯỜNG THẲNG a/ Nguyên lý chung : Trên mặt phẳng bất kỳ, một điểm được xác đònh bởi cặp 2 giá trò tọa độ : một theo trục x và một theo trục y mô tả khoảng cách từ điểm đó đến các trục Điểm sẽ nằm trên đường thẳng khi giá trò tọa độ điểm thỏa mãn phương trình biểu diễn Luận văn tốt nghiệp Điều khiển máy vẽ bằng vi xử lý đường thẳng đó Vi c biểu diễn đường thẳng... d = d + dy Yes No x < x2 No Kết thúc y=y+1 Luận văn tốt nghiệp Điều khiển máy vẽ bằng vi xử lý Hình : Lưu đồ giải thuật trung điểm sinh đường thẳng 2/ GIẢI THUẬT SINH ĐƯỜNG TRÒN a/ Nguyên lý chung : Phương trình đường tròn đi qua tâm (xc,yc) được biểu diễn dưới dạng tổng quát (x - xc)2 + (y – yc)2 = R2 với R là bán kính của đường tròn Vi c sinh ra đường tròn có thể đơn giản tạo thành khi cho biến x