1. Trang chủ
  2. » Luận Văn - Báo Cáo

điều khiển máy vẽ bằng vi xử lý 8051

186 662 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Điều Khiển Máy Vẽ Bằng Vi Xử Lý 8051
Người hướng dẫn Thầy Hoàng Minh Trí
Trường học Trường Đại Học Bách Khoa TP.Hồ Chí Minh
Chuyên ngành Điều Khiển Tự Động
Thể loại Luận văn tốt nghiệp
Năm xuất bản 2002
Thành phố TP.Hồ Chí Minh
Định dạng
Số trang 186
Dung lượng 688 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nói cách khác,trên máy điều khiển theo chương trình, thứ tự giá trị của chuyển động, cũng như thứ tựcủa các bộ phận máy, đóng mở các hệ thống làm nguội, bôi trơn, thay dao… đều đượcthực

Trang 1

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

Trang 2

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 dẫn,giúp đỡ và động viên em trong suốt thời gian thực hiện bài luận văn tốt nghiệp

Em xin chân thành cảm ơn các thầy cô trường ĐHBK ,đặc biệt là các thầy cô Bộ môn ĐKTĐ bởi những kiến thức , những bài học bổ ích mà thầy cô đã truyền dạy cho em trong 5 măm học

Trang 3

MỤC LỤC

Trang

PHẦN I : GIỚI THIỆU 1

1/LỜI GIỚI THIỆU 1

2/SƠ LƯỢC VỀ LUẬN VĂN 2

PHẦN II : CÁC THIẾT BỊ ĐỒ HỌA 3

1/MỘT SỐ THIẾT BỊ ĐỒ HỌA THÔNG DỤNG 3

2/GIỚI THIỆU BÀN VẼ TRONG LUẬN VĂN 6

PHẦN III : ĐỘC LẬP THIẾR BỊ 8

1/ĐỘC LẬP THIẾT BỊ 8

2/ỨNG DỤNG VÀO ĐỀ TÀI 10

PHẦN IV : GIỚI THIỆU TẬP TIN DXF 11

1/GIỚI THIỆU 11

2/CẤU TRÚC FILE DXF 11

PHẦN V : GIẢI THUẬT VẼ 19

1/GIẢI THUẬT SINH ĐƯỜNG THẲNG 19

2/GIẢI THUẬT SINH ĐƯỜNG TRÒN 21

3/GIẢI THUẬT SINH ĐƯỜNG SPLINE 25

PHẦN VI : GIỚI THIỆU VI XỬ LÝ 8951 28

1/GIỚI THIỆU AT89C51 28

2/TẬP LỆNH CỦA AT89C51 32

3/MỘT SỐ CHỨC NĂNG TRONG AT89C51 33

PHẦN VII : CỔNG COM VÀ CÁC CHUẨN GIAO TIẾP 39

1/GIAO TIẾP VỚI MÁY TÍNH 39

2/CÁC CHUẨN TRUYỀN THÔNG NỐI TIẾP 40

3/CHUẨN RS-232 41

PHẦN VIII :ĐỘNG CƠ BƯỚC 44

1/GIỚI THIỆU ĐỘNG CƠ BƯỚC 44

2/MỘT SỐ MẠCH ĐIỀU KHIỂN ĐỘNG CƠ BƯỚC 49

3/DÒNG GIỚI HẠN CỦA ĐỘNG CƠ BƯỚC 51

PHẦN IX : TỔNG KẾT 53

PHẦN X : PHỤ LỤC 54

Trang 4

PHẦN I

GIỚI THIỆU

1/LỜI GIỚI THIỆU

Trước đây, ở các máy cắt kim loại thông thường, việc điều khiển các chuyển động cũng như thay đổi vận tốc của các bộ phận, máy đều thực hiện bằng tay Vớicách điều khiển này thời gian phụ khá lớn, nên không thể tăng năng suất lao độngcũng như đảm bảo độ chính xác của vật gia công

Do đó để giảm thời gian phụ, ta cần thiết tiến hành tự động hoá quá trình điềukhiển Và phương pháp gia công tự động ra đời với các dấu tì, cam trên trục phân phốiv.v…nhưng vẫn chưa đáp ứng được nhu cầu sản suất, vì nó rút ngắn được thời gian phụnhưng thời gian chuẩn bị sản suất sẽ dài Nhược điểm này không đáng kể nếu như sảnsuất được số lượng lớn, nhưng với sản suất nhỏ, mặt hàng phải thay đổi thường xuyên,loại máy này trở nên bất tiện và không kinh tế

Điều này hình thành nhu cầu tìm một phương pháp điều khiển mới, đảm bảođược thời gian hiệu chỉnh máy để gia công từ loại chi tiết này sang loại chi tiết khácnhanh hơn Và phương pháp điều khiển theo chươnh trình ra đời để đáp ứng yêu cầuđó

Điều khiển theo chương trình là một dạng điều khiển tự động mà tín hiệu điềukhiển (tín hiệu ra) được thay đổi theo một qui luật đã được định trước Nói cách khác,trên máy điều khiển theo chương trình, thứ tự giá trị của chuyển động, cũng như thứ tựcủa các bộ phận máy, đóng mở các hệ thống làm nguội, bôi trơn, thay dao… đều đượcthực hiện đúng theo một trình tự đã được lập trình sẵn Các cơ cấu mang chương trìnhnày được đặt vào thiết bị điều khiển và máy sẽ làm việc tự động theo chương trình đãcho

Nếu các chương trình trên được ghi lại bằng các dấu tì, bằng hệ thống cam,bằng mẫu chép hình… ta gọi hệ thống điều khiển đó là hệ thống điều khiển phi số.Nếu các chương trình được biểu thị bằng các chữ số dưới dạng mã hiệu, ta gọi đó làhệ thống điều khiển theo chương trình số

Như vậy điều khiển theo chương trình số là một quá trình tự động cho phépđưa một cơ cấu di động từ vị trí này đến vị trí khác bằng một lệnh Sự dịch chuyểnnày có thể là lượng di động thẳng hay góc quay theo các bậc tự do

Trong nhiều trường hợp, phương pháp điều khiển theo chương trình số đượcthiết kế tự động hoá việc di động một cơ cấu từ vị trí này đến vị trí khác, ta gọi là

“điều khiển theo điểm” Nhưng ta cũng thực hiện dễ dàng khi rút ngắn vô hạn khoảngcách giữa hai điểm di động kế tiếp nhau và sẽ đạt được một quá trình điều khiển quĩđạo gọi là “điều khiển theo đường”

Trang 5

Phương pháp điều khiển chương trình số có thể dùng để di động bất kì một cơcấu nào được truyền động bằng cơ Phạm vi sử dụng của nó rất rộng, nhưng chủ yếulà tự động hoá máy công cụ, vì lĩnh vực này bao gồm việc điều khiển dao cắt bằngcác chữ số.

Chương trình ghi bằng các chữ số được thực hiện ở ngoài máy, dưới dạng băngxuyên lỗ, băng từ, đĩa từ, film… Các chương trình này có thể cất giữ vào kho, ngăn tủ.Khi cần sử dụng ta chỉ cần nạp nó vào máy, để máy có thể thực hiện chương trình vàđiều khiển các chuyển động tương đối giữa dao và phôi

Vì làm các chương trình số có thể tiến hành xa máy và máy có hệ thống đolường riêng, nên hệ thống này có thể thay đổi dễ dàng và nhanh chóng

Dựa trên phương pháp điều khiển vị trí theo chương trình số đã nêu, đề tài của

luận văn này là: ”Điều khiển máy vẽ bằng vi xử lý” Máy vẽ được đề cập ở đây là

một máy vẽ có khả năng vẽ liên tục các đường nét của một hình cho trước (củaAutoCad)

2/ SƠ LƯỢC VỀ LUẬN VĂN

* Luận văn có nhiệm vụ thiết kế một máy vẽ có khả năng đọc được các tậptin (file) DXF của AutoCad , sau đó định dạng lại file.DXF này (có nghĩa là tạo ramột file.TXT chứa các thông tin về điểm, đường cần vẽ ) Việc định dạng được thựchiện trên máy tính (PC) , cuối cùng PC sẽ truyền lần lượt những thông tin trongfile.TXT xuống vixử lý 8952 đề thực hiện 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 giữa PC và 8952 theo chuẩn RS-232

- Phần mềm:

>Lập trình cho việc đọc và định dạng file.DXF trên PC (dùng DELPHI) >Lập trình cho vi xử lý 8952 thực hiện thao tác vẽ

3/ỨNG DỤNG CỦA ĐỀ TÀI

Với cách điều khiển cùng một lúc sự dịch chuyền theo 2 trục X,Y của bút vẽđể di chuyển nó đi theo một đường xác định , đề tài khẳng định được sự tối ưu và khảthi của việc điều khiển vị trí liên tục đối với các máy công cụ , và là nền tảng choviệc thiết kế máy khoan , máy cắt…

Để có thể ứng dụng vào trong sản suất , cụ thể là trong cắt may, đòi hỏi chúng

ta phải có những mạch hồi tiếp về từ các cơ cấu chấp hành , những động cơ có côngsuất lớn hơn với độ tin cậy cao hơn

Trang 6

PHẦN II

CÁC THIẾT BỊ ĐỒ HỌA

a/ Thiết bị quét Raster :

Thiết bị quét Raster (gọi tắt là Raster) cũng là một loại thiết bị thể hiện(màn hình) chính Thiết bị Raster thể hiện hình ảnh từ những điểm màu thay vìđường Mỗi điểm còn gọi là pixel

Giới thiệu một số thiết bị Raster :

-Màn hình (Monitor):

Màn hình hiển thị trong hệ thống đồ họa máy tính là cầu nối chính trongviệc trao đổi thông tin giữa người sử dụng và hệ thống Có nhiều loại công nghệ đượcsử dụng để phối hợp các loại màn hình đồ họa

Độ phân giải liên quan đến khả năng màn hình thể hiện các chi tiết Cácmàn hình đạt đến độ phân giải 1280x1024, ở đây các con số thể hiện các điểm có thểphân biệt trên màn hình

Sơ đồ phân loại :

Hình: Các công nghệ sử dụng trong cấu tạo thiết bị hiển thị đồ họa

Các ký tự văn bản được hình thành từ các mẫu điểm Đường thẳng và cungđược hình thành từ một dãy các điểm thích hợp Và một vùng màn hình có thể được tômàu ; đơn giản là tất cả các điểm trong vùng được lập cùng một màu

Màn hình

điện tử

Trang 7

Ảnh Raster được đặt trong một vùng nhớ gọi là vùng đệm khung (framebuffer) Thuật ngữ frame để chỉ một ảnh đơn Trong một vùng đệm khung, với trườnghợp hai cấp thì chỉ cần một bit cho một điểm, khi giá trị của bit là 0, thì điểm tươngứng của ảnh có màu trắng, còn nếu là 1 thì đ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 hơn.

Vùng đệm khung :

Vùng đệm khung chiếm rất nhiều bộ nhớ: giả sử kích thước hình là r dòng, ccột và cần b bit cho một điểm, thì cần r*c*b bit Một thiết bị Raster chất lượng cao cóthể có r=1024, c=1024, b=24, như thế cần 25 triệu bit (3MB) Như thế vùng đệm nàynằm ở đậu và làm sao truy cập được chúng

Với một số hệ Raster, vùng đệm khung thực sự là một phần bộ nhớ của máy.Chúng được gọi là thiết bit-maped : bộ xử lý có thể truy xuất từng điểm, và có mộtmạch logic riêng để làm tươi màn hình Để tạo ảnh ứng dụng sẽ ghi màu (là giá trị)trực tiếp lên vị trí bộ nhớ thích hợp Tại cấp thấp nhất, sẽ có những chỉ thị máy làmviệc này 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 tại (row,col)

-Máy in kim:

Cơ cấu in của máy in ma trận điểm là tập hợp từ 7 đến 24 cây kim cứng sắpxếp trên đầu in, di chuyển theo phương nằm ngang trên mặt tờ giấy Các máy in nàylàm việc như thiết bị quét dòng và cần có sự chuyển đổi cho các hình ảnh dạng quétvector Việc in màu thực hiện nhờ sử dụng ruyban màu Các màu bổ sung được tạo rabằng cách gõ hai vùng đệm trên ruyban lên cùng một điểm trên giấy

-Máy in, vẽ phun:

Cũng là thiết bị quét dòng (raster scan), nó là thiết bị in màu rẻ tiền Cơ cấucủa nó gồm các đầu vòi mực gắn ở đầu in, di chuyển trên bề mắt tờ giấy và phun mựcvới màu sắc khác nhau Các vòi phun được gắn với các hốc mực bằng các rãnh rấtnhỏ bao bọc bởi các tinh thể áp điện Một xung điện đặt vào tinh thể sẽ tạo ra một cáigiật nhẹ, làm bắn ra một giọt mực Độ phân giải của máy in này được quy định bởikích thước giọt mực, hay là kích thước vòi phun tạo ra nó Vòi phun thường rất nhỏnên khi in thường gặp một số vấn đề phức tạp

-Máy in laser:

Là thiết bị quét dòng (raster scan), trong đó chùm tia lazer quét lên một cáitrống quay được tích điện dương, phủ bằng một lớp selen Phần mặt trống bị chiếu bởichùm tia lazer sẽ bị mất điện tích dương Những phần tích điện còn lại tương ứng vớinhững phần đen trên giấy Một lớp bột tĩnh điện phủ lên các phần tích điện dương vàđược truyền sang giấy Một bộ vi xử lý trên máy in lazer sẽ thực hiện chuyển đổi sangdạng quét dòng

-Máy in tĩnh điện:

Là thiết bị nạp điện tích âm cho các phần của loại giấy được 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

Trang 8

sẽ phủ lên và làm tối phần giấy tích điện âm Đây là thiết bị dạng quét dòng, chứa bộxử lý để thực hiện việc chuyển đổi.

b/ Thiết bị vẽ đường :

Có hai dạng thường gặp nhất của máy vẽ là dạng phẳng và dạng trống

-Máy vẽ dạng phẳng:

Máy vẽ dạng phẳng truy cập đến các vị trí xy trên mặt phẳng bằng cáchchuyển động cần vẽ gắn trên bàn vẽ Trên cần vẽ có gắn một cây viết vẽ có thểchuyển động dọc theo trục x và trục y Cây viết có thể hạ xuống hay nhấc lên, tùytheo việc đường nét hay thay đổi vị trí cây viết Tờ giấy được giữ trên bàn vẽ bằngtĩnh điện hoặc chân không

-Máy vẽ dạng trống:

Máy vẽ dạng trống có một vài điểm phức tạp hơn dạng phẳng, mặc dù cácchế độ hoạt động cơ bản là tương tự nhau Trong máy vẽ dạng trống, tờ giấy đượccuốn lên trống vẽ sao cho không có sự trượt Trống sẽ quay tới, quay lui, trong khi đầuvẽ trượt trên một cần vẽ cố định, truy cập đến các điểm trên tờ giấy

Nhận xét :

Các thiết bị vẽ đường (Line Drawing) chỉ có thể vẽ đường Thông dụng nhất làbút vẽ Plotter Khi plotter vẽ đường, trước hết bút được di chuyển đến điểm đầu, đặtbút xuống, sau đó bút di chuyển theo đường thẳng tới đầu kia của đường

Các thiết bị vẽ đường có hệ tọa độ định sẵn cho bút vẽ, như trong hình dướiđây :

Bút vẽ được chỉ đến một điểm cụ thể bằng cách gửi cho Plotter tọa độ của điểm.Thiết bị vẽ đường có sẵn một số thủ tục cơ bản, ví dụ một số lệnh cho bút vẽ như :

• 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 hiện tại thành bút thứ i

Những lệnh trên gọi là lệnh thiết lập chế độ (mode setting) Khi thiết bị nhậnđược lệnh chúng sẽ thay đổi “trạng thái” máy cho đến khi có lệnh thiết lập chếđộ khác

Trang 9

Máy vẽ được thiết kế trong luận văn này là máy vẽ được điều khiển theochương trình số

Phần chính của máy vẽ gồm hai trục X,Y để điều khiển vị trí qua lại của bútvẽ trong mặt phẳng bản vẽ và trục Z gắn trực tiếp với bút vẽ để điều khiển nhấc bútlên hay hạ bút xuống

Mỗi trục X,Y được cấu tạo gồm một động cơ bước có trục quay gắn liền vớimột vitme Vitme là một trục có răng xoắn, được mài kỹ Nếu ta gắn một vật lên răngxoắn của vitme thì khi động cơ quay, vitme sẽ chuyển chuyển động quay thành chuyểnđộng trượt của vật trên răng xoắn Tùy theo chiều quay của động cơ là thuận haynghịch mà vật sẽ chuyển động tới hay lui trên răng xoắn

Trục X được đặt lên vitme của trục Y, còn trục Z lại được đặt lên vitme củatrục X Kết quả là khi chỉ quay một động cơ thì bút vẽ chỉ di chuyển theo một trục,còn khi quay đồng thời hai động cơ thì bút vẽ sẽ di chuyển theo hai trục, và việc nàydẫn đến việc ta có thể vẽ được các đường xiên và là tiền đề cho việc vẽ các đườngcong

Trục Z đơn giản chỉ là một nam châm điện có trục gắn với bút vẽ dùng để điềukhiển vị trí nhấc lên hay hạ xuống của nó Khi có dòng điện đi qua nam châm, bút sẽđược nhấc lên Ngoài ra còn một số công tắc hành trình để việc điều khiển được chínhxác và dễ dàng

Tìm hiểu hai động cơ bước của hai trục X,Y :

Hai động cơ bước trong mô hình được thiết kế như sau :

- Động cơ 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 cơ trục Y :

o Quay thuận : đưa bút vẽ lên trên → chiều tăng y

o Quay nghịch : đưa bút vẽ xuống dưới → chiều giảm y

Trục động cơ gắn với vitme có độ phân giải là 0.1mm ứng với một bước quaycủa motor Nghĩa là khi động cơ quay một bước thì vitme xoay làm di chuyển vật gắn

trên nó 0.1mm Với độ phân giải này, ta có thể vẽ được các đường nét khá mịn đòi

hỏi độ phân giải cao

Khi vận hành, đầu chung của các động cơ nối lên nguồn DC 5V, các đầu cònlại nối xuống mass hay không là do các bit điều khiển

……Giới thiệu động cơ bước…

Động cơ được dùng trong mô hình này là loại động cơ bước nam châm vĩnh cửu đơn cực 6 đầu dây, điện áp làm việc 1.8VDC và góc bước là 1.8 độ.

Trục Z và các công tắc hành trình của mô hình :

Trang 10

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âmnày cấu tạo chính gồm một cuộn dây quấn quanh lõi sắt có thể di chuyển tự do ở giữa.Khi có dòng điện qua cuộn dây sẽ tạo ra một lực từ hút lõi sắt lên trên Dựa vào tínhchất này ta gắn bút vẽ vào lõi sắt của nam châm để điều khiển vị trí nhấc lên hay hạxuống của bút vẽ.

Khi vận hành, một đầu dây của nam châm luôn nối với nguồn 24VDC, đầu còn lạiđược nối với mass hay không là do 1 khóa BJT

Để giữ cố định bút vẽ khi di chuyển hay đang vẽ, đồng thời để xác định trạng tháinhấc lên hay hạ xuống của bút vẽ, người ta dùng một công tắc hành trình gắn liền vớitrục tác động của nam châm Công tắc này một đầu nối xuống mass, đầu kia nối vớimột bit điều khiển (bit này bình thường được treo lên 5V) Khi bút vẽ nhấc lên thì bitnày = 0 và ngược lại, khi không nhấc thì bit = 1

Khi muốn nhấc bút lên ta tác động vào khóa BJT → dòng điện đi qua cuộn dây → bútđược nhấc lên Khi muốn hạ bút xuống công việc cũng tương tự như trên Chú ý :phải đọc công tắc hành trình của bút trước khi tác động vào BJT và phải ngưng kíchngay khi bút đã đổi trạng thái vì nếu tác động lâu sẽ 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ó 4 công tắc hành trình (2 trên trục X, 2 trên trục Y) để xác định đầutrục hay cuối trục tương ứng

Các công tắc này một đầu được nối xuống mass, đầu còn lại nối về các bit điều khiển

Hình :Bàn vẽ

PHẦN III

ĐỘC LẬP THIẾT BỊ

Động cơ bước

Nam châm điệnTrục Z

Công tắc

hành trình

Trang 11

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 như Plotter thì có các thủ tục Pen_Up, Pen_Down, Go_To (x,y) Thiết bị Rasterthì có cá thủ tục SetPixel, Line Trong mọi trường hợp ta phải gửi đi tọa độ thiết bị, vàmỗi thiết bị cóù riêng hệ tọa độ định sẵn

Điều đó gây ra hai vấn đề :

- Khó để tìm hiểu các ý tưởng và phương pháp cơ bản mà không biết chi tiếtvề thiết bị

- Khó thay đổi một ứng dụng viết cho thiết bị này sang thiết bị khác

Như vậy cần phải “che giấu” chi tiết về thiết bị trong các thủ tục “điều khiển”để có được dạng giao tiếp thống nhất cho ứng dụng

Ví dụ : Chúng ta cần một thủ tục như Draw_Line(x1,y1,x2,y2:real) để vẽđường thẳng từ điểm (x1,y1) đến điểm (x2,y2)

Bên trong là những lệnh có thể phụ thuộc tọa độ thiết bị, nhưng chương trình

ứng dụng không cần biết chi tiết này Vì vậy nó được xem như 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ếtlại chương trình điều khiển hoặc ngay cả không cần biên dịch lại, mà chỉ 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ị sẽ giúp bạn làm được điều ấy

Để đảm bảo tính linh động, các tiêu chuẩn đồ họa đã thiết lập cho chương trìnhứng dụng các thay đổi tối thiểu, cho phép nó định địa chỉ các thiết bị nhập khác nhau.Khởi đầu, người lập trình tạo ra một hệ thống tọa độ mô hình, trong đó mô tả một đốitượng gọi là Hệ tọa độ thực (World Coordinate_WC) Tiếp theo, người lập trình sẽ môtả một Hệ thống tọa độ thiết bị chuẩn (Normalized Device Coordinate_NDC), bằngcách xác định các vùng hai chiều của bề mặt quan sát mà trên đó hình ảnh sẽ xuấthiện Sau đó các tọa độ thiết bị chuẩn sẽ chuyển sang tọa độ thiết bị (DeviceCoordinate)

Chương trình ứng dụng sẽ giao tiếp với hệ thống tọa độ chuẩn theo cách thứcphù hợp, không quan tâm đến thiết bị xuất được sử dụng Do đó tạo ra được sự độc lậpthiết bị trong việc tạo ảnh của đối tượng

*Tọa độ thiết bị chuẩn hóa (NDC – Normalized Device Coordinate) :

KGS (Graphic Kernel System – một hệ chuẩn quốc tế) định nghĩa tọa độ thiết

bị được chuẩn hóa (NDC) là vùng hình vuông với góc thấp trái là (0,0) và góc caophải là (1,1), như trong hình dưới đây :

SVTH:Trần Hoài Nam Niên khóa 1997-2002

Trang 12

Không gian NDC là hệ tọa độ chuẩn cho mọi thiết bị, và một lệnh nhưDraw_Line() sẽ tự mở rộng khuôn này để vừa khớp với khuôn của 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 vuông đơn vịcủa hình vuông lớn nhất tên thiết bị gọi là hình vuông thiết bị Nghĩa là, cho điểm bấtkỳ P(x,y) trong NDC ta cần tính tọa độ thiết bị tương ứng Q(dx,dy) trong hình vuôngthiết bị, như trong hình dưới đây :

Phép ánh xạ này phải tỉ lệ Vì vậy dx phải ánh xạ tuyến tính theo x, sao cho :

dx=Ax+Bvà dy=Cy+Dvới A,B,C,D là hằng số

2/ỨNG DỤNG VÀO ĐỀ TÀI:

- Sau đây là đoạn chương trình minh họa việc chuyển đổi tọa độ của các điểm ,đường từ hệ tọa độ trong AutoCad sang hệ tọa độ trong PC và hệ tọa độ bàn vẽ

- Khai báo biến:

Trang 13

p.x ; p.y :tọa độ trong 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 ();

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;

PC_p.x:=350 div 2 + p.x div Scale;

PC_p.y:=350 div 2 –p.y div Scale ;

Mv_p.x:=p.x*10; /* Mỗi bước của động cơ bút di chuyển được 0.1mm*/ Mv_p.y:=p.y*10;

End

Trang 14

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.DWG được hãng Autodesk giữ kín, nhằm tạo cho Autocad ưu thế độc quyền khai thácbản vẽ do chính mình tạo ra.

Nhưng để tạo tính tương thích của Autocad trên thị trường đồ họa, Autodesk đãthực hiện chính sách “mở cửa” bằng cách trang bị cho Autocad khả năng kết xuất bảnvẽ của mình thành các dạng thức tập tin thông dụng cũng như đề ra một dạng thức tậptin bản vẽ đơn giản hơn gọi là DXF (Drawing data eXchange Format) và cho công bốrộng rãi cấu trúc của nó

Ta có thể tìm thấy nhiều phần mềm lớn nhỏ khác nhau có khả năng đọc và ghitập tin bản vẽ ở dạng thức DXF Quy cách ghi bản vẽ ở dạng thức DXF do hãngAutodesk đề ra và được phổ biến rộng rãi

Do ưu thế của Autocad trên thị trường các phần mềm thiết kế, DXF hiện đã trởthành một tiêu chuẩn công nghiệp

2/CẤU TRÚC FILE DXF :

Tập tin DXF là một tập tin văn bản ASCII bình thường trong đó mô tả các quyđịnh của bản vẽ và mô tả từng đối tượng Nói như vậy có nghĩa là bạn có thể dùngnhững chương trình soạn thảo văn bản để mở tập tin DXF và sửa chữa nội dung củanó Cách thức ghi thông tin như vậy thường lớn, do đó Autocad còn cho phép bạn ghitập tin DXF theo một dạng gọn hơn, không thông qua mã ASCII để mô tả bản vẽ Đólà trường hợp của tập tin DXF dạng nhị phân (Binary DXF) Trong đề tài này chỉquan tâm đến DXF ASCII

Về bản chất file DXF gồm những bộ mã và giá trị tương ứng Những đoạn mã,được hiểu như những nhóm mã cho biết dạng của giá trị theo sau Sử dụng nhữngnhóm mã và giá trị, một file DXF được chia thành nhiều phần, bao gồm nhiều bảngdữ liệu, mỗi bảng dữ liệu bao gồm một nhóm mã và dữ liệu tương ứng Mã và giá trịtương ứng nằm trên cùng dòng trong file DXF

Trang 15

Mỗi phần bắt đầu bằng một nhóm mã 0 theo sau bởi chuỗi SECTION Mỗiphần bao gồm nhiều nhóm mã và giá trị định nghĩa những phần tử của nó Phần cuốicủa một phân đoạn với ký tự 0 và theo sau bởi chuỗi ENDSEC.

Toàn thể cấu tạo của một file DXF có dạng như sau :

Phần Header :

Thông thường thông tin về bản vẽ được tìm trong phần này Nó gồm có mộtbảng dữ liệu về số của phiên bản Autocad và số lượng biến hệ thống Mỗi thông sốchứa một tên biến và giá trị tương ứng của nó

Phần CLASSES :

Giữ những thông tin cho trình ứng dụng – xác định đặc điểm classes, nhữngtrường hợp đặc biệt trong BLOCKS, ENTITIES, và dữ liệu của mục OBJECTS

Phần TABLES :

Phần này chứa những định nghĩa của những ký hiệu sau đây :

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)

Nhóm mã sau ứng dụng cho các đối tượng ARC :

Nhóm mã Arc :

Group

Trang 16

39 Thickness (optional; default = 0)

Nhóm mã sau ứng dụng cho các đối tượng CIRCLE :

Nhóm mã Circle :

DXF: X value; APP: 3D vector

Nhóm mã sau ứng dụng cho các đối tượng ELLIPSE :

Nhóm mã Ellipse :

Trang 17

21, 31 DXF: Y and Z values of endpoint of major axis, relative to the center (in WCS)

DXF: X value; APP: 3D vector

Nhóm mã sau ứng dụng cho các đối tượng LINE :

Nhóm mã Line :

DXF: X value; APP: 3D vector

Nhóm mã sau ứng dụng cho các đối tượng POINT :

Nhóm mã Point :

DXF: X value; APP: 3D vector

Trang 18

220, 230 DXF: Y and Z values of extrusion direction

(optional, default = 0); used when PDMODE is nonzero

Nhóm mã sau ứng dụng cho các đối tượng POLYLINE :

Nhóm mã Polyline :

APP: a "dummy" point; the X and Y values are always 0, and the Z value is

the polyline's elevation (in OCS when 2D, WCS when 3D)

1 = This is a closed polyline (or a polygon mesh closed in the M direction).

2 = Curve-fit vertices have been added.

4 = Spline-fit vertices have been added.

8 = This is a 3D polyline.

16 = This is a 3D polygon mesh.

32 = The polygon mesh is closed in the N direction.

64 = The polyline is a polyface mesh.

128 = The linetype pattern is generated continuously around the vertices of this polyline.

bit-coded:

0 = No smooth surface fitted

5 = Quadratic B-spline surface

6 = Cubic B-spline surface

Trang 19

210 Extrusion direction (optional; default = 0, 0, 1)

DXF: X value; APP: 3D vector

Nhóm mã sau ứng dụng cho các đối tượng SPLINE :

Nhóm mã Spline :

DXF: X value; APP: 3D vector

1 = Closed spline

2 = Periodic spline

4 = Rational spline

8 = Planar

16 = Linear (planar bit is also set)

DXF: X value; APP: 3D point.

DXF: X value; APP: 3D point.

Trang 20

10 Control points (in WCS) one entry per control point.

DXF: X value; APP: 3D point

DXF: X value; APP: 3D point

Nhóm mã sau ứng dụng cho các đối tượng TEXT :

Nhóm mã Text :

DXF: X value; APP: 3D point

This value is also adjusted when fit-type text is used.

2 = Text is backward (mirrored in X),

4 = Text is upside down (mirrored in Y)

0 = Left;1= Center; 2 = Right

3 = Aligned (if vertical alignment = 0)

4 = Middle (if vertical alignment = 0)

5 = Fit (if vertical alignment = 0) See the following table for clarification

DXF: X value; APP: 3D point.

Trang 21

justification is anything other than baseline/left)

DXF: X value; APP: 3D vector

0 = Baseline; 1 = Bottom; 2 = Middle; 3 = Top See the following table for clarification.

Dưới đây là 1 đoạn nhỏ của 1file DXF với các thông tin về 1đoạn thẳng (LINE)

đi từ (X0,Y0,Z0) đến (X1,Y1,Z1) :

AcDbLine /* Bắt đầu đoạn LINE*/

10 /* Detect tọa độ X0*/

Trang 22

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ộttheo 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ểmsẽ 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đường thẳng đó Việc biểu diễn đường thẳng có rất nhiều phương pháp khác nhau.Nếu 2 điểm với tọa độ (x1,y1) và (x2,y2) được sử dụng để xác định nên mộtđường thẳng thì phương trình của đường thẳng qua hai điểm được viết lại như sau :

1 2

1 2 1

1

x x

y y x x

y y

Do các đường thẳng được mô tả trong hệ tọa độ thực khi hiển thị trong máytính, hệ tọa độ chính là lưới nguyên nên bản chất của quá trình vẽ các đườngthẳng chính là sự nguyên hóa các tọa độ các điểm thuộc đường thẳng và vẽ cácpixel tương ứng

Nguyên lý chung là cho một thành phần tọa độ x hay y biến đổi theo từng đơn

vị và tính tọa độ nguyên còn lại sao cho gần với tọa độ thực nhất Việc quyết địnhchọn x hay y biến đổi phụ thuộc vào độ rộng của đường thẳng

b/ Giải thuật trung điểm sinh đường thẳng (MidPoint) :

Giải thuật điểm giữa (Midpoint) được Pitteway đưa ra những năm 1967 vàđược VanAken áp dụng cho việc sinh các đường thẳng và đường tròn năm 1985cho ra các công thức đơn giản và tạo được các điểm tương tự với giải thuậtBresenham

Giả sử điểm (xi,yi) là điểm hiện thời và với giải thuật Bresenham, việc quyếtđịnh điểm A hay điểm B là điểm kế tiếp là việc lựa chọn giá trị yi+1 hay yi dựa vàokhoảng cách từ A→S hay từ B→S Và như vậy giải thuật đã bỏ qua yếu tố đánhgiá đơn giản là : điểm M, trung điểm của đoạn AB, mà qua đó việc so sánh chỉđơn giản là quá trình xét xem M nằm trên hay dưới đường thẳng cần sinh

Trang 23

Nếu M nằm dưới thì điểm A được chọn, nếu ngược lại M nằm trên thì điểm Bđược chọn Giả sử như ta có phương trình đoạn thẳng được biểu diễn dưới dạngkhông tường minh cùng với các hệ số a,b như sau :

F(x,y) = ax+by+c = 0Nếu đặt dx = x2-x1 và dy = y2-y1

Phương trình chuyển về dạng :

y = (dx/dy).x + BHay F(x,y) = dx.x-dy.y+B.dx = 0

Như vậy a=dx; b=-dy; c=B.dx

Với phương trình trên thì F(x,y) = 0 với mọi điểm (x,y) nằm trên đường thẳng,F(x,y)>0 với các điểm nằm dưới đường và <0 với các điểm nằm phía trên đườngthẳng

Đặt d = F(xi+1,yi+1/2) là trung điểm của đoạn AB, ta có :

di = a(xi+1)+b(yi+1/2)+cViệc so sánh, hay kiểm tra M sẽ được thay bằng việc xét giá trị d Nếu d>0điểm B được chọn, nếu d<0 điểm A được chọn Trong trường hợp d=0 chúng ta cóthể chọn điểm bất kỳ A hay B

- Nếu B được chọn thì M sẽ tăng theo x một đơn vị

F(x1 + 1 , y1 + 1/2) = a(x1 + 1) + b(yi + 1/2) + c

= F(x1,y1) + a + b/2

ABM

Trang 24

Với (xi,yi) là điểm đầu thuộc đường thẳng ⇒ F(x1,y1) = 0

⇒ d1 = a + b/2 = dy – dx/2

Hình : Lưu đồ giải thuật trung điểm sinh đường thẳng

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 chạy từ xc→

xc + R hay với đường tròn tâm trùng với gốc tọa độ thì tham biến x chạy từ 0 → R

Vì đường tròn có hình dạng cong nên mật độ điểm được tạo ra dàn trải khôngđều trên màn hình Raster thông qua các giá trị tọa độ được tính theo công thức :

Trang 25

Thông thường để rút gọn giải thuật người ta chỉ tính với góc θ bằng 450, mà từđó lấy đối xứng các cung ¼ khác qua gốc trục tọa độ, trục tung hoặc hoành.

Giải thuật trên cực kỳ phức tạp vì tồn tại quá nhiều các phép tính nhân và cănhay sin, cos… điều đó là nguyên nhân khiến giải thuật không được sử dụng trong cácchương trình đồ họa Các giải thuật thực tế trong các chương trình đồ họa thườngthông qua việc nguyên hóa các tọa độ dựa vào độ phân giải của màn hình

b/ Giải thuật trung điểm vẽ đường tròn :

Như các tính năng đã phân tích trong giải thuật Midpoint cho đường thẳng.Việc phát triển giải thuật sinh đường tròn cũng thu được các ưu điểm tương tự Quátrình phát triển giải thuật được xây dựng như sau :

Lấy ¼ đường tròn làm ví dụ Khi đó x chạy từ 0 → R/√2 và giả sử điểm trênđường tròn là P có tọa độ (xi,yi) Mục đích của giải thuật là tìm ra điểm kế tiếp(xi+1,yi+1) và 2 sự lựa chọn là A và B

Theo như phương trình đường tròn dưới dạng không tường minh :

F(x,y) = x2 + y2 –R2

Giá trị dương cho những điểm ngoài đường tròn và giá trị âm cho những điểmnằm trong đường tròn Điểm giữa M của A và B sẽ quyết định việc lựa chọn NếuM<0 điểm A sẽ là điểm kế tiếp và ngược lại nếu M>0 thì B sẽ là điểm cần tìm

Giá trị d của trung điểm sẽ được tính theo công thức :

di = F(xi + 1,yi – ½) = (xi + 1)2 + (yi – ½)2 – R2

Như vậy nếu di<0 thì điểm kế tiếp là A sẽ dịch 1 đơn vị theo x và giá trị di+1

được tính theo công thức :

di+1 = F(xi + 2,yi – ½) = (xi + 2)2 + (yi – ½)2 – R2

⇒ di+1 = di + (2xi + 3) ⇒∆a = 2xi + 3

A B M P

Trang 26

Trường hợp di>0 thì điểm kế tiếp là B sẽ tăng giá trị theo x và giảm theo y vớicùng 1 đơn vị.

di+1 = F(xi + 2,yi – 3/2) = (xi + 2)2 + (yi – 3/2)2 – R2

⇒ di+1 = di + (2xi –2yi + 5) ⇒∆b = 2xi –2yi + 5

Giá trị d1 tại điểm đầu (x1,y1) có tọa độ tương ứng là (0,R) và trung điểm tiếptheo được suy ra là (1,R-1/2) Theo công thức

Trang 27

Hình: Lưu đồ giải thuật 2 trung điểm sinh đường tròn

Trang 28

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ànbộ – 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 và giảm sự ảnh hưởng một cách tổng thể này, các đường cong Bezierthường được xây dựng bằng cách kết nối nhiều phân đoạn bậc thấp hơn Điều này chophép sự điều khiển cục bộ và có quyền tự do thay đổi bậc tại các điểm sử dụng tínhliên tục Mỗi phân đoạn đường cong Bezier có các tính chất đề cập ở trên, nhưngđường cong phức hợp có những tính chất khác Phướng pháp được chọn để kết nối cácphân đoạn với nhau phụ thuộc vào bậc mong muốn của tính liên tục Nếu các phânđoạn đơn giản chỉ có chung các điểm cuối thì xuất hiện tính liên tục C0 Tính liên tụcbậc cao hơn thu được chỉ bằng cách buộc theo các ràng buộc hình học tại vị trí cácđỉnh

Có thể sử dụng các hàm liên kết trơn B-Spline xen kẽ (luân phiên) với các đathức Bernstein để tạo ra đường cong đa thức tham số từng khúc riêng lẻ thông quamột số điểm điều khiển Bậc của đa thức có thể được người thiết kế lựa chọn độc lậpvới số lượng các điểm điều khiển Đó là bậc của các hàm liên kết trơn hay các hàm

cơ sở, mà nó điều khiển bậc của đường cong Spline cuối cùng Các đường cong Spline kế thừa sự điều khiển cục bộ, nghĩa là, khi một đỉnh dịch chuyển, chỉ một vàiphân đoạn của nó bị ảnh hưởng, phần còn lại của đường cong không thay đổi Tínhliên tục giữa các phân đoạn B-Spline là một hàm có bậc của các hàm cơ sở Do đó,tính liên tục là một nhân tố quan trọng trong việc hạ bậc có thể chọn bởi người thiếtkế Đối với các ứng dụng như thiết kế các đường cong tự do, trong đó độ trơn là mộttiêu chuẩn quan trọng, tính liên tục độ cong C2 được ưu tiên hơn Điều này được thỏamãn bởi đường cong B-Spline bậc ba

b/ Phép biểu diễn B-Spline tổng quát :

Ở dạng tổng quát, các đường cong B-Spline có thể biểu diễn bằng các hàmliên kết trơn của chúng :

N t

P

0

)(trong đó, Vi là tập hợp các điểm điều khiển và Ni,k biểu diễn các hàm liên kết trơnbậc (k-1) khi nó được định nghĩa như một đa thức bậc (k-1) từng khúc có tính liên tục

Ck-2 Nói cách khác :

- Bậc của đa thức không vượt quá k-1 trong mỗi đoạn [ti,ti+1]

- Vị trí và các đạo hàm bậc từ 1 đến (k-2) liên tục

Đối với trường hợp B-Spline bậc ba :

Trang 29

- Tính liên tục bậc hai được thỏa mãn.

Hàm liên kết trơn thứ i là Ni,k(t) được định nghĩa bằng phương trình đệ quy sau

t với

0

1)

1 ,

i i

t t t

N

)()

(

)(

)()(

)()

1 1

, 1

t t

t t t N t t

t t t

i k i

k i k

i i k i

i k

+ +

=

trong đó, véc tơ nút là [ti,…,ti+k]

Véc tơ nút có ảnh hưởng đáng kế đến các hàm liên kết trơn Ni,k(t) và cả bảnthân đường cong B-Spline

Các véc tơ nút có thể phân loại thành :

- Đều/ tuần hoàn

- Không tuần hoàn

- Không đều

Vì các véc tơ nút ảnh hưởng đến hình dạng của đường B-Spline, điều đó có thểsuy ra rằng các đường cong B-Spline cũng có sự phân loại như trên

i/ Đều và tuần hoàn :

Véc tơ nút có giá trị cách đều nhau ti, sao cho ti – ti-1 = a đối với tất cảcá đoạn, và a là số thực Ví dụ : [0 1 2 3 4] với a=1

ii/ Không tuần hoàn :

Một véc tơ nút không tuần hoàn hoặc mở có các giá trị nút lặp lại tạicác điểm cuối, số lượng giá trị lặp lại này bằng cấp k của hàm số và các nút trong cóbước bằng nhau Ví dụ : Cấp 2, số lượng các nút 6 ⇒ véc tơ nút [0 0 1 2 3 3]

iii/ Không đều :

Trong véc tơ nút không tuần hoàn, giá trị cá nút xuất hiện tại các biênđược lặp lại và các nút bên trong có bước bằng nhau Nếu một trong hai điều kiện nàykhông được thỏa mãn thì vectơ nút gọi là không đều Ví dụ : [0 1 2 3 3 4 5]

c/ Đoạn mã chương trình mô tả phương pháp vẽ đường B-Spline :

{Control_Point là mảng chứa các điểm điều khiển}

{tọa độ mới sau khi tính là (x,y)}

Function N(k,m,t) :

Trang 30

If m=1 then

If (t<Knot[k])or(t>Knot[k+1]) then

N:=0Else

N:=1Else

Begin

denom1:=Knot[k+m-1] – Knot[k];

If denom1<>0 then

Sum:=(t – Knot[k]) * N(k,m-1,t)Else

Trang 31

− 4 port I/O 8 bit

− 2 bộ định thời 16 bit

− Giao tiếp nối tiếp

− 64K không gian bộ nhớ chương trình mở rộng

− 64K không gian bộ nhớ dữ liệu mở rộng

− Một bộ xử lý luận lý (thao tác trên các bit đơn)

− 210 bit được địa chỉ hoá

− Bộ nhân/chia 4ms

b/ Sơ đồ khối & sơ đồ chân 8951:

Hình : Sơ đồ khối vi xử lý 8951

Trang 32

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ấpAddress Bus khi có bộ nhớ mở rộng

− Port 1 (1 – 8): Là một port I/O

− Port 2 (21 – 28): Vừa làm port I/O, vừa là 8 bit cao Address Bus khi có bộnhớ mở rộng

− Port 3 (10 – 17): Là một port có công dụng kép

− PSEN (Program Store Enable),(chân 29): Là tín hiệu điều khiển để chophép bộ nhớ chương trình mở rộng và thường được nối đến chân OE(output enable) của một EPROM để cho phép đọc các byte mã lệnh

− ALE (Address Latch Enable),(chân 30): Khi port 0 được dùng trong chếđộ vừa là Data Bus vừa là byte thấp của Address Bus thì ALE là tín hiệuchốt địa chỉ vào một thanh ghi bên ngoài trong nữa đầu chu kỳ bộ nhớ Sauđó port 0 dùng để xuất hoặc nhập dữ liệu trong nữa sau của chu kỳ bộ nhớ

− EA (External Access),(chân 31): Tín hiệu vào EA nếu ở mức cao thì thựchiện chương trình từ ROM nội Nếu ở mức thấp, chương trình chỉ được thihành từ bộ nhớ mở rộng

− RST (reset),(chân 9): 8951 sẽ được reset khi RST ở mức cao

− Các ngõ vào bộ dao động (chân 18, 19)

− Các chân nguồn: chân 40 nối với Vcc, chân 20 nối với GND

d /Tổ chức bộ nhớ:

Gồm có 4K ROM nội, 128 byte RAM nội và có thể mở rộng tối đa 64Kbyte bộnhớ chương trình và 64Kbyte bộ nhớ dữ liệu

Trang 33

− Bank thanh ghi (00H – 1FH): 8951 hỗ trợ 8 thanh ghi (R0 – R7), các lệnhdùng thanh ghi R0 – R7 thì sẽ ngắn hơn các lệnh tương ứng nhưng dùng địachỉ trực tiếp Các giá trị dữ liệu được dùng thường xuyên nên dùng mộttrong các thanh ghi này Bank thanh ghi tích cực có thể chuyển đổi bằngcách thay đổi các bit chọn bank thanh ghi trong PSW.

− RAM địa chỉ hóa từng bit (20H – 2FH)

Các thanh ghi chức năng đặc biệt (80H – FFH):

00=bank 0: địa chỉ 00H-07H01=bank 1: địa chỉ 08H-0FH10=bank 2: địa chỉ 10H-17H11=bank 3: địa chỉ 18H-1FH

* Thanh ghi B (F0H): được dùng cùng với thanh ghi tích lũy A cho các phép toán nhân, chia

* Con trỏ ngăn xếp (SP: 81H): chứa địa chỉ của byte dữ liệu hiện hành trên đỉnh của ngăn xếp

* Con trỏ dữ liệu (DPTR: 83H – 82H): được dùng để truy xuất bộ nhớ ngoài

* Các thanh ghi port I/O: port 0, port 1, port 2, port 3

* Các thanh ghi Timer: timer 0: 8CH – 8AH ; timer 1: 8DH – 8BH ; TMOD: 89H ; TCON: 88H

* Các thanh ghi port nối tiếp: SBUF: 99H ; SCON: 98H

* Các thanh ghi ngắt: 8951 có 5 nguồn ngắt được cho phép bằng thanh ghi IE: A8H

* Thanh ghi điều khiển công suất: PCON: 87H

Trang 34

e/ Trạng thái Reset :

Hình : Mạch resetTrạng thái của tất cả các thanh ghi khi reset hệ thống:

Trang 35

Khi reset trở lại mức thấp, việc thi hành chương trình luôn bắt đầu ở địa chỉ đầu tiên trong bộ nhớ chương trình (0000H) Nội dung của RAM trên chip không bị thay đổi bởi lệnh reset.

2/ TẬP LỆNH CỦA AT89C51:

− Địa chỉ thanh ghi:

Địa chỉ gián tiếp

− Địa chỉ tức thời:Người ta dùng dấu # trước các toán hạng tức thời

Địa chỉ tức thời

− Địa chỉ tương đối: thường dùng trong các lệnh nhảy 8951 dùng giá trị 8bit có dấu để cộng thêm vào thanh ghi đếm chương trình (PC) Tầm nhảycủa lệnh này nằm trong khoảng –128 đến 127 ô nhớ

Địa chỉ tương đối

− Địa chỉ tuyệt đối: chỉ dùng trong các lệnh ACALL và AJMP

Địa chỉ tuyệt đối

− Địa chỉ dài: dùng cho lệnh LCALL và LJMP

Trang 36

Mã lệnh A15 – A8 A7 – A0

Địa chỉ dài

− Địa chỉ tham chiếu:

Địa chỉ tham chiếu

b/ Tập lệnh:

Tập lệnh của 8951 được chia làm 4 nhóm:

− Số học: ADD, SUBB, MUL, DIV,

− Luận lý: ANL, ORL, XRL, SETB, CLR, RL, RR,

− Nhóm lệnh chuyển dữ liệu: MOV, MOVC, MOVX, POP, PUSH, XCH,

− Nhóm lệnh chuyển điều khiển: ACALL, LCALL, RET, AJMP, LJMP, JZ,

JB, CJNE,

3 MỘT SỐ CHỨC NĂNG CỦA AT89C51

a/ Bộ định thời (Timer):

− 8951 có hai timer 16 bit, mỗi timer có 4 cách làm việc Người ta sử dụng các timer để: định khoảng thời gian; đếm sự kiện hoặc tạo tốc độ baud choport nối tiếp trong 8951

− Truy xuất các timer của 8951 dùng 6 thanh ghi chức năng đặc biệt cho trong bảng sau:

− Thanh ghi chế độ timer (TMOD):

Trang 37

7 GATE 1 Bit (mở) cổng, khi lên 1, timer chỉ chạyKhi INT1 ở mức cao

6 C/T 1 Bit chọn chế độ counter/timer1 = bộ đếm sự kiện

0 = Bộ định khoảng thời gian

00=chế độ 0: timer 13 bit01=chế độ 1: timer 16 bit10=chế độ 2: tự động nạp lại 8 bit11=chế độ 3: tách timer

− Thanh ghi điều khiển timer (TCON):

Cờ báo tràn Timer 1 Đặt bởi phần cứng khi tràn, được xóa bởi phần mềm hoặc phần cứng khi bộ xử lý chỉ đến chương trình phục vụ ngắt

TCON.6 TR1 8EH Bit điều khiển timer 1 chạy Đặt/xóa bằng phần mềm để cho timer chạy/ngưng

Cờ cạnh ngắt 1 bên ngoài Đặt bởi phần cứng khi phát hiện một cạnh xuống ở INT1; xóa bằng phầnmềm hoặc bằng phần cứng khi CPU chỉ đến chương trình phục vụ ngắt

Cờ kiểu ngắt 1 bên ngoài Đặt/xóa bằng phần mềm để ngắt ngoài tích cực cạnh xuống/mức thấp

Trang 38

b/ Port nối tiếp (serial port):

− 8951 có một port nối tiếp trong chip có thể hoạt động ở nhiều chế độ trênmột dải tần số rộng Chức năng chủ yếu của port nối tiếp là thực hiệnchuyển đổi song song sang nối tiếp đối với dữ liệu xuất, và chuyển đổi nốitiếp sang song song với dữ liệu nhập

− Hai thanh ghi chức năng đặc biệt cho phép phần mềm truy xuất đến portnối tiếp là: SBUF và SCON Viết vào SBUF để nạp dữ liệu sẽ được phát,và đọc SBUF để truy xuất dữ liệu thu được

− Thanh ghi điều khiển port nối tiếp:

thông đa xử lý trong các chế độ 2 và 3; RI sẽ không bị tác động nếu bit thứ 9 thu được là 0

ký tự

2 và 3; được đặt và xóa bằng phần mềm

SCON.1 TI 99H Cờ ngắt phát Đặt lên 1 khi kết thúc phát ký tự;

được xóa bằng phần mềm

được xóa bằng phần mềm

− Các chế độ port nối tiếp:

− Tốc độ baud port nối tiếp:

Trang 39

anh vào TH1 thật

− Tổ chức ngắt ở 8951: 2 ngắt ngoài, 2 ngắt từ timer và 1 ngắt port nối tiếp.Tất cả các ngắt đều mặc nhiên bị cấm sau khi reset hệ thống và được chophép từng cái một bằng phần mềm Khi có hai hoặc nhiều ngắt đồng thời,hoặc một ngắt xảy ra trong khi một ngắt khác đang được phục vụ, có cảhai sự tuần tự hỏi vòng và sơ đồ ưu tiên hai mức dùng để xác định việcthực hiện các ngắt

− Cho phép và cấm các ngắt thông qua thanh ghi chức năng đặt biệt IE(Interrupt Enable)

Bit Ký hiệu Địa chỉ bit Mô tả (1=cho phép, 0=cấm)

Trang 40

− Ưu tiên ngắt: mỗi nguồn ngắt được lập trình riêng vào một trong hai mức

ưu tiên qua thanh ghi chức năng đặc biệt IP (Interrupt Priority)

Bit Ký hiệu Địa chỉ bit Mô tả (1=mức cao hơn, 0= mức thấp)

− Hỏi vòng tuần tự: các bit cờ tạo các ngắt được tóm tắt ở bảng sau

Ngắt Cờ Thanh ghi SFR và vị trí bit

− Xử lý ngắt: Khi ngắt xảy ra và được CPU chấp nhận, chương trình chính

bị ngắt quãng Những hoạt động sau xảy ra:

* Lệnh hiện hành hoàn tất việc thực thi

* Cất PC vào ngăn xếp

* Trạng thái ngắt hiện hành được cất bên trong

* Các ngắt bị chặn ở mức ngắt

* Nạp vào PC địa chỉ vetor của ISR

* ISR thực thi

− Các vector ngắt: Khi chấp nhận ngắt, giá trị được nạp vào PC được gọi làvector ngắt Nó là địa chỉ bắt đầu của ISR cho nguồn tạo ngắt Các vectorngắt được cho ở bảng sau :

Ngày đăng: 28/04/2014, 13:32

HÌNH ẢNH LIÊN QUAN

Sơ đồ phân loại : - điều khiển máy vẽ bằng vi xử lý 8051
Sơ đồ ph ân loại : (Trang 6)
Hình :Bàn vẽ. - điều khiển máy vẽ bằng vi xử lý 8051
nh Bàn vẽ (Trang 10)
Hình : Lưu đồ giải thuật trung điểm sinh đường thẳng           2/ GIẢI THUẬT SINH ĐƯỜNG TRềN - điều khiển máy vẽ bằng vi xử lý 8051
nh Lưu đồ giải thuật trung điểm sinh đường thẳng 2/ GIẢI THUẬT SINH ĐƯỜNG TRềN (Trang 24)
Hình  : Sơ đồ khối vi xử lý 8951 - điều khiển máy vẽ bằng vi xử lý 8051
nh : Sơ đồ khối vi xử lý 8951 (Trang 31)
Hình  : Sơ đồ chân 8951 - điều khiển máy vẽ bằng vi xử lý 8051
nh : Sơ đồ chân 8951 (Trang 32)
Hình  : Mạch reset - điều khiển máy vẽ bằng vi xử lý 8051
nh : Mạch reset (Trang 34)
Hình vẽ trên là một động cơ bước từ trở thay đổi có bước là 30 độ. Rotor có 4 răng và stator có 6 cực với mỗi cuộn dây quấn quanh 2 cực đối diện - điều khiển máy vẽ bằng vi xử lý 8051
Hình v ẽ trên là một động cơ bước từ trở thay đổi có bước là 30 độ. Rotor có 4 răng và stator có 6 cực với mỗi cuộn dây quấn quanh 2 cực đối diện (Trang 48)
Hình : Sơ đồ điều khiển động cơ bước nam châm vĩnh cửu đơn cực - điều khiển máy vẽ bằng vi xử lý 8051
nh Sơ đồ điều khiển động cơ bước nam châm vĩnh cửu đơn cực (Trang 52)
Hình Mạch điều khiển có mắc thêm diode - điều khiển máy vẽ bằng vi xử lý 8051
nh Mạch điều khiển có mắc thêm diode (Trang 52)
Hình trên cho thấy ảnh hưởng của điện trở và điện áp hệ thống với dòng điện trong cuộn dây. - điều khiển máy vẽ bằng vi xử lý 8051
Hình tr ên cho thấy ảnh hưởng của điện trở và điện áp hệ thống với dòng điện trong cuộn dây (Trang 55)
Sơ đồ bàn vẽ - điều khiển máy vẽ bằng vi xử lý 8051
Sơ đồ b àn vẽ (Trang 60)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w