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

đồ án cơ điện tử thiết kế mô hình cấp phôi tự động

138 977 3

Đ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

Định dạng
Số trang 138
Dung lượng 1,22 MB

Nội dung

Lêi nãi ®Çu Trong sự nghiệp công nghiệp hoá, hiện đại hoá đất nước vấn đề tự động hoá sản xuất có vai trò đặc biệt quan trọng Mục tiêu ứng dụng robot trong công nghiệp nhằm nâng cao năng

Trang 1

Lêi c¶m ¬n

Em xin chân thành cảm ơn các thầy cô, đặc biệt các thầy trong bộ môn chế tạo máy đã tận tình tạo điều kiện học tập và truyền đạt kiến thức trong suốt khoá học để em được thực hiện đề tài này

Đặc biệt em xin chân thành cảm ơn thầy ThS Đặng Xuân Phương và KS Bùi Đức Hải đã hướng dẫn và giúp đỡ em tận tình trong thời gian vừa qua

Em cũng xin gửi lời cảm ơn tới gia đình, bạn bè đã giúp đỡ và động viên

em trong suốt thời gian học tập cũng như trong thời gian thực hiện đề tài

Trang 2

MỤC LỤC

Trang

LỜI CẢM ƠN

LỜI NÓI ĐẦU 1

PHẦNI: GIỚI THIỆU TỔNG QUAN 2

CHƯƠNG I: TỔNG QUAN VỀ ROBOT CÔNG NGHIỆP 2

I SỰ RA ĐỜI CỦA ROBOT CÔNG NGHIỆP 2

1 Sự ra đời của robot công nghiệp 2

2 Tình hình phát triển Robot công nghiệp 4

3 Ứng dụng robot công nghiệp 5

4 Các xu thế sử dụng robot trong tương lai 8

II TÌNH HÌNH TIẾP CẬN VÀ ỨNG DỤNG ROBOT CÔNG 11

NGHIỆP Ở VIỆT NAM CHƯƠNGII: GIỚITHIỆU VI ĐIỀU KHIỂN HỌ 8051 12

I GIỚI THIỆU 12

II KHẢO SÁT HỌ VI ĐIỀU KHIỂN 8051 12

1.Cấu trúc 12

2 Chức năng các chân vi điều khiển 14

III TẬP LỆNH CỦA 8051/8031 15

1 Các chế độ đánh địa chỉ 15

2 Các nhóm lệnh của 8051/8031 17

3 Nhóm lệnh xử lý số liệu 17

4 Nhóm lệnh luận lý 18

5 Nhóm lệnh truyền dữ liệu 20

6 Nhóm lệnh truyền điều 21

IV HOẠT ĐỘNG TIMER CỦA 8051 22

1 Giới thiệu 22

2 Thanh ghi Mode Timer Mode 23

3 Thanh ghi điều khiển Timer Tcon (Timer Control Resgister) 24

Trang 3

4 Các mode và cờ tràn (Timer Mode and Overflow) 24

V CÁC NGUỒN XUNG CLOCK (CLOCK SOURCES) 26

1 Sự bấm giờ bên trong (Interval Timing) 26

2 Sự đếm các sự kiện ( Event counting) 26

3 Sự bắt đầu, sự kết thúc và sự điều khiển các thanh ghi Timer 27

4 Sự khởi động và sự truy xuất các thanh ghi Timer 27

VI HOẠT ĐỘNG CỦA PORT NỐI TIẾP 8051 28

1.Gioi thiệu 28

VII HOẠT ĐỘNG NGẮT CỦA (INTERRUPT) CỦA 8051 31

1 Gíơi thiệu 31

2 Tổ chức Interrupt của 8051 31

2.1 Sự cho phép ngắt và sự cấm ngắt 32

2.2 Sự ưu tiên ngắt (Interrupt Priority) 33

2.3 Sự kiểm tra vòng quét liên tiếp 34

2.4 Việc xử lý các sự ngắt (processing Interrupt) 35

2.5 Các vectơ ngắt (Interrupt vectors) 35

CHƯƠNG III: MẠCH CHUYỂN ĐỔI ADC 37

I Gíơi thiệu ADC 0809 37

PHẦN 2: TÍNH TOÁN VÀ THIẾT KẾ CHƯƠNG I: TÍNH TOÁN VÀ THIẾT KẾ ĐỘNG HỌC VÀ ĐỘNG LỰC HỌC 40

I PHÂN TÍCH NHIỆM VỤ VÀ ĐẶC ĐIỂM PHÔI 40 II CHỌN PHƯƠNG ÁN THIẾT KẾ 40

1 Phân tích các phương án 41

2 Sơ đồ động và hệ toạ độ của Robot NTQP – 01 41

III TÍNH TOÁN ĐỘNG HỌC ROBOT 43

1 Giải bài toán thuận 45

2 Phương trình động học ngược của robot 2.1 Giải thích các ký hiệu và ý nghĩa của chúng 46

Trang 4

2.2 Xây dựng công thức 48

IV TÍNH TOÁN ĐỘNG LỰC HỌC ROBOT 51

1 Xây dựng công thức 51

2 Vận tốc, gia tốc 52

3 Động năng tay máy 53

4 Thế năng tay máy 56

5 Mô hình động lực học tay máy 57

6 Tính toán 58

CHƯƠNG II: THIẾT KẾ CHẾ TẠO BỘ PHẬN CƠ KHÍ 62

CHƯƠNG III: THIẾT KẾ CHẾ TẠO BỘ PHẬN ĐIỀU KHIỂN 65

I SƠ ĐỒ MẠCH KHỐI TRUNG TÂM 65

II SƠ ĐỒ MẠCH KHỐI GIAO TIẾP 67

III SƠ ĐỒ MẠCH CỦA BỘ CHUYỂN ĐỔI ADC 809 69

IV CẢM BIẾN 70

V SƠ ĐỒ MẠCH ĐIỀU KHIỂN ĐỘNG CƠ 71

CHƯƠNG IV: VIẾT CHƯƠNG TRÌNH ĐIỀU KHIỂN 72

I: TÓM TẮT CHƯƠNG TRÌNH ĐIỀU KHIỂN 72

II: VIẾT CHƯƠNG TRÌNH CHO PC 74

1 Màn hình điều khiển 74

2 Chương trình 74

III: CHƯƠNG TRÌNH VIẾT CHO VI XỬ LÝ 92

CHƯƠNG V: KẾT QUẢ NGHIÊN CỨU 126

I MÔ HÌNH THẬT VÀ MÔ TẢ QUÁ TRÌNH TEST THỬ 126 1 Mô hình thật 127

2 Mô tả quá trình test thử 129 II HƯỚNG DẪN SỬ DỤNG 130

CHƯƠNG IV: KẾT LUẬN VÀ ĐỀ XUẤT Ý KIẾN 132

I LỜI KẾT 132

Trang 5

Lêi nãi ®Çu

Trong sự nghiệp công nghiệp hoá, hiện đại hoá đất nước vấn đề tự động hoá sản xuất có vai trò đặc biệt quan trọng

Mục tiêu ứng dụng robot trong công nghiệp nhằm nâng cao năng suất dây chuyền, nâng cao chất lượng và tăng khả năng cạnh tranh của sản phẩm, đồng thời cải thiện điều kiện làm việc Do đó yêu cầu hệ thống sản xuất phải có tính linh hoạt cao để đáp ứng với sự biến đổi thường xuyên của thị trường hàng hoá cạnh tranh Robot công nghiệp là một bộ phận cấu thành không thể thiếu trong việc tạo ra những hệ thống sản xuất tự động đó

Trong những năm gần đây phong trào nghiên cứu, và chế tạo robot thử nghiệm đã phát triển mạnh, nhất là từ năm 2002, khi sinh viên trong các trường đại học và cao đẳng trên cả nước tham gia cuộc thi Robocon được tổ chức hàng năm Năm qua trường ta cũng đã đạt kết quả khá tốt trong cuộc thi Robocon Vì vậy các thầy trong bộ môn đã tạo điều kiện cho em được thực hiện đề tài này để nghiên cứu và hiểu biết thêm một số lĩnh vực mới như : điện tử, điều khiển tự động , tin học

Tuy đã có nhiều cố gắng trong thời gian thực hiện đề tài song do khả năng bản thân còn nhiều hạn chế nên bài báo cáo của em không tránh khỏi những thiếu sót Vì vậy em rất kính mong các quý thầy cô và tất cả những ai quan tâm đến đề tài này góp ý để em hiểu và hoàn thiện đề tài

Trang 6

PHẦN I: GIỚI THIỆU TỔNG QUAN CHƯƠNG I

TỔNG QUAN VỀ ROBOT CÔNG NGHIỆP

I SỰ RA ĐỜI CỦA ROBOT CÔNG NGHIỆP

1 Sự ra đời của robot công nghiệp

Nhu cầu nâng cao năng suất và chất lượng sản phẩm ngày càng đòi hỏi các ứng dụng rộng rãi các phương tiện tự động hoá sản xuất Xu hướng tạo ra những dây chuyền về thiết bị tự động có tính linh hoạt cao đang hình thành Các thiết bị này đang thay thế dần các máy tự động “cứng” chỉ đáp một việc nhất định trong lúc thị trường luôn luôn đòi hỏi thay đổi mặt hàng về chủng loại, kích cỡ, tính năng… Vì thế ngày càng tăng nhanh nhu cầu ứng dụng Robot để tạo ra các hệ thống sản xuất tự động linh hoạt

Thuật ngữ “Robot” lần đầu tiên xuất hiện năm 1922 và vào khoảng những năm 50 của thế ký 20, ở Hoa Kỳ đã xuất hiện những tay máy chép hình điều khiển từ xa trong các phòng thí nghiệm vật liệu phóng xạ

Năm 1954 George C.Devol đã thiết kế một thiết bị có tên là “Cơ cấu bản lề” dùng trong chuyển hàng theo chương trình Đến năm 1956 Devol cùng với Joseph F Engelber, một kỹ sư trẻ của công nghiệp hàng không đã tạo ra loại Robot công nghiệp đầu tiên năm 1959 ở thành phố Unimation Chiếc Robot công nghiệp được đưa vào ứng dụng đầu tiên năm 1961 Ở một nhà máy ô tô của General Motors tại Trenton, New Jersey, Hoa Kỳ

Năm 1967 Nhật Bản mới nhập chiếc Robot công nghiệp đầu tiên từ công ty AMF của Hoa Kỳ Đến năm 1990 có hơn 40 công ty Nhật Bản, trong đó có những công ty khổng lồ như công ty Hitachi và công ty Mitsubishi, đã đưa ra thị trường quốc tế những loại robot nổi tiếng

Từ những năm 70 việc nâng các tính năng của robot đã chú ý lắp đặt thêm các cảm biến ngoại tín hiệu để nhận biết môi trường làm việc Tại trường đại học Stanfood đã tạo ra loại loại Robot lắp ráp tự động điều khiển bằng máy tính trên cơ sở xử lý thông tin từ cảm biến lực và thị giác Vào thời gian này công ty

Trang 7

IBM đã chế tạo loại Robot có cảm biến xúc giác và cảm biến lực điều khiển bằng máy tính để lắp ráp các máy in gồm 20 cụm chi tiết

Vào giai đoạn này ở nhiều nước cũng tiến hành những nghiên cứu tương

tự, tạo ra các loại Robot điều khiển bằng máy tính, có lắp đặt các thiết bị cảm biến và các thiết bị giao tiếp người máy Hiện nay các loại xe Robot ( Robot Car) đang được ưa chuộng đưa vào hoạt động các hệ thống sản xuất tự động linh hoạt

Từ những năm 80, nhất là những năm 90, do áp dụng rộng rãi các tiến bộ

kỹ thuật về xử lý và công nghệ thông tin, số lượng Robot công nghiệp đã gia tăng Giá thành giảm tính năng có nhiều bước vượt bậc Nhờ vậy Robot công nghiệp đã có vai trò quan trọng trong các dây chuyền tự động sản xuất hiện đại Ngày nay chuyên ngành khoa học về Robot “Robotics” đã trở thành một lĩnh vực rộng trong khoa học, bao gồm các vấn đề cấu trúc cơ cấu động học, lập trình quỹ đạo, cảm biến tín hiệu, điều khiển chuyển động

Thuật ngữ “ Robot Công nghiệp” được hiểu là những thiết bị tự động linh hoạt Bắt chước được các chức năng lao động công nghiệp con người Nói đến thiết bị tự động linh hoạt là nhấn mạnh đến khả năng thao tác với nhiều bậc tự

do, được điều khiển tự động và lập trình thay đổi được Còn nói đến sự bắt chước các chức năng lao động công nghiệp của con người là nói đến sự không hạn chế từ các chức năng lao động chân tay đơn giản đến trí khôn nhân tạo Tuỳ theo loại hình công việc loại hình lao động cần đến chức năng đó hay không? Đồng thời cũng nói đến mức độ cần thiết bắt chước được như con người hay không?

2 Tình hình phát triển Robot công nghiệp

Gần nửa thế kỷ có mặt trong sản xuất, Robot công nghiệp đã có một lịch sử phát triển hấp dẫn Vì thế hiện nay Robot công nghiệp đang được ứng dụng rộng rãi trong các dây chuyền tự động sản xuất ở các nước phát triển

Biểu đồ sử dụng robot công nghiệp ở một số nước

Trang 8

3 Ứng dụng robot công nghiệp

3.1 Mục tiêu ứng dụng robot công nghiệp

Mục tiêu ứng dụng Robot công nghiệp nhằm nâng cao năng suất dây chuyền công nghệ, giảm giá thành, nâng cao chất lượng và khả năng cạnh tranh của sản phẩm, đồng thời cải tiến điều kiện lao động Những ưu điểm mà Robot công nghiệp mang lại:

Robot có thể thực hiện một quy trình thao tác hợp lý bằng hoặc hơn người thợ lành nghề một cách ổn định trong suốt thời gian làm việc Vì thế Robot có thể góp phần nâng cao chất lượng và tăng khả năng cạnh tranh của sản phẩm Hơn thế nữa Robot có thể nhanh chóng thay đổi công việc để thích nghi với sự biến đổi mẫu mã, kích cỡ sản phẩm theo yêu cầu của thị trường cạnh tranh

Khả năng giảm giá thành sản phẩm do ứng dụng Robot là vì giảm được đáng kể chi phí cho người lao động nhất là các nước có mức cao về tiền lương lao động cộng các khoản phụ cấp và bảo hiểm xã hội Theo số liệu của Nhật Bản thì nếu một Robot làm việc thay thế cho một người thợ thì tiền mua Robot chỉ

Trang 9

việc mấy ca Còn ở Mỹ thì trung bình một giờ Robot làm việc đem lại tiền lời là 13USD

Việc áp dụng Robot có khả năng làm tăng năng suất dây chuyền công nghệ

Sở dĩ như vậy vì nếu tăng nhịp độ khẩn trương của dây chuyền sản xuất Nếu không thay thế con người bằng Robot thì người thợ không thể theo kịp hoặc chóng mệt mỏi Theo hãng Fanue, Nhật Bản thì năng suất có thể tăng lên tới 3 lần

Ứng dụng Robot có thể cải thiện điều kiện lao động Đó là ưu diểm nổi bật nhất mà chúng ta cần quan tâm Trong thực tế sản xuất có rất nhiều nơi người lao động phải làm việc suốt buổi trong môi trường rất bụi bặm, ẩm ướt, nóng nực, ồn ào quá mức cho phép nhiều lần Thậm chí nhiều nơi người lao động còn làm việc trong môi trường độc hại nguy hiểm đến sức khoẻ con người, dễ bị nhiễm chất độc…

3.2 Một số lĩnh ứng dụng Robot công nghiệp

Một trong các lĩnh vực đó là kỹ nghệ đúc Thường trong phân xưởng đúc công việc rất đa dạng, điều kiện làm việc nóng nực, bụi bặm, mặt hàng thay đổi luôn và chất lượng sản phẩm đúc phụ thuộc vào quá trình thao tác Việc tự động hoá hoàn toàn hay một phần quá trình đúc bằng các dây chuyền tứ động thông thường với các máy tự động chuyên dùng đòi hỏi phải có các thiết bị phức tạp đầu tư lớn Ngày nay ở nhiều nước sử dụng rộng rãi Robot tốt để tự động hoá công nghệ đúc, nhưng chủ yếu là để phục vụ các máy đúc áp lực Robot có thể làm nhiều việc như: rót kim loại nóng chảy vào khuôn, lấy vật đúc ra khỏi khuôn, cắt mép thừa, làm sạch vật đúc hoặc làm tăng bền vật đúc bằng cách phun cát… Dùng Robot phục vụ các máy đúc áp lực có nhiều ưu điểm ví dụ đảm bảo ổn định chế độ làm việc, chuẩn hoá về thời gian thao tác, về nhiệt độ và điều kiện tháo vật đúc ra khỏi khuân ép Bởi thế chất lượng vật đúc tăng lên Trong ngành gia công áp lực công việc cũng khá nặng nề, dễ gây mệt mỏi nhất là trong các xưởng, xưởng rèn, dập nên đòi hỏi phải sớm áp dụng robot

Trang 10

công nghiệp Trong phân xưởng rèn Robot có thể thực hiện được nhiều việc, ví

dụ đưa phôi thừa vào lò nung, lấy phôi đã nung nóng ra khỏi lò, mang nó đến máy rèn, chuyển lật phôi tác dụng khi rèn và xếp lại vật đã rèn vào giá hoặc thùng Sử dụng các loại Robot đơn giản nhất cũng có thể tăng năng suất từ 1.5 đến 2 lần và hoàn toàn giảm nhẹ sức lao động của công nhân So với các phương tiện cơ giới và tự động khác phục vụ các máy rèn dập thì Robot có ưu điểm nhanh hơn và chính xác hơn,cơ động hơn

Các quá trình hàn và nhiệt luyện thường bao gồm nhiều công việc nặng nhọc, độc hại và ở nhiệt độ cao Do vậy cũng cần áp dụng Robot công nghiệp Robot được sử dụng rộng rãi nhất là trong việc tự động hoá quá trình hàn, đặc biệt trong kỹ nghệ ô tô

Robot được sử dụng rộng rãi trong gia công và lắp ráp Thường người ta sử dụng Robot cho các công việc tháo lắp phôi và sản phẩm cho các máy gia công bánh răng, máy khoan, máy tiện bán tự động

Trong ngành chế tạo máy và dụng cụ đo chi phí về lắp ráp thường chiếm đến 40% giá thành sản phẩm Trong lúc đó mức độ cơ khí hoá lắp ráp không quá

từ 10% đến 15% đối với sản phẩm hàng loạt là 40% Bởi vậy việc tạo ra và sử dụng Robot có ý nghĩa rất quan trọng

Trang 11

4 Các xu thế sử dụng robot trong tương lai:

Robot ngày càng thay thế nhiều lao động

Trong tương lai kỹ thuật Robot sẽ tận dụng hơn nữa các thành tựu khoa học liên nghành phát triển cả về phần cứng lẫn phần mềm và ngày càng chiếm lĩnh nhiều ‘trận địa’’trong công nghiệp Số lượng lao động được thay thế ngày càng nhiều vì một mặt Robot ngày càng rẻ do hàng vi điện tử giảm giá liên tục, mặt khác chi phí tiền lương và các khoản phụ cấp cho người lao động ngày càng tăng

Robot càng chở nên chuyên dụng

Trang 12

Khi Robot công nghiệp ra đời người ta thường cố gắng để biểu thị hết khả năng của nó Vì thế xuất hiện nhiều loại Robot vạn năng có thể làm được nhiều việc trên dây chuyền Tuy nhiên, thực tế chứng tỏ rằng Robot chuyên dụng đơn giản hơn, chính xác hơn, học việc đơn nhanh hơn, quan trọng hơn là giá thành rẻ hơn so với Robot vạn năng Các Robot chuyên dụng hiện đại đều được cấu thành

từ các modun vạn năng Xu thế modun hoá Robot ngày càng phát triển nhằm chuyên môn hoá việc chế tạo các modun và từ các modun đó sẽ cấu thành các kiểu Robot khác nhau thích hợp với từng loại công việc

Robot ngày càng đảm nhận được nhiều loại công việc lắp ráp

Công đoạn lắp ráp thường chiếm tỷ lệ cao so với tổng thời gian sản xuất trên toàn bộ dây chuyền Công việc khi lắp ráp lại đòi hỏi phải rất cẩn thận, nhẹ nhàng, tinh tế, chính xác nên cần thợ có tay nghề cao và phải làm việc căng thẳng suốt ngày

Khả năng thay thế con người ở những khâu lắp ráp ngày càng hiện thực là

do đã áp dụng được nhiều thành tựu khoa học mới trong thiết kế chế tạo Robot

Ví dụ tạo ra những cấu hình đơn giản và rất chính xác dựa trên cơ sở sử dụng các vật liệu vừa bền, vừa nhẹ Đồng thời được thừa hưởng kỹ thuật nhận và biến đổi

tín hiệu (sensor) Đặc biệt là kỹ thuật nhận và xử lý ảnh (vision) cũng như kỹ

thuật tin học với các ngôn ngữ bậc cao, Robot công nghiệp đã xuất hiện trên nhiều công đoạn lắp ráp phức tạp

Robot di động càng trở nên phổ biến

Trong các nhà máy hiện đại tên gọi phương tiện dẫn đường tự động AVG

đã trở thành quen biết Loại đơn giản là những chiếc xe vận chuyển trong nội bộ phân xưởng được điều khiên theo chương trình với 1 quỹ đạo định sẵn Càng ngày các thiết bị loại này càng được hiện đại hoá nhờ áp dụng kỹ thuật vision 3 chiều, kỹ thuật sensor tín hiệu ra, kỹ thuật thông tin vô tuyến hoặc dùng tia hồng ngoại vv… Vì vậy AVG đã có thể hoạt động linh hoạt trong các phân xưởng Đó

là những Robot di động và gọi là Robocar Một hướng phát triển quan trọng của

Trang 13

Robocar là không di chuyển bằng các bánh xe mà di chuyển bằng chân, thích nghi với mọi địa hình

Robot đi được bằng chân tự leo bậc thang là một đối tượng đang rất được chú ý trong nghiên cứu Không những sử dụng trong công nghiệp hạt nhân, hay công nghiệp quốc phòng mà phát triển trong cả công nghiệp dân dụng thông thường

Robot ngày càng trỏ nên tinh khôn hơn

Trí khôn nhân tạo là một vấn đề rất được quan tâm nghiên cứu với các mục đích khác nhau Kỹ thuật robot cũng từng bước áp dụng các kết quả nghiên cứu

về trí khôn nhân tạo và đưa vào ứng dụng công nghiệp Trước hết là sử dụng các

hệ chuyên gia các hệ thị giác nhân tạo, mạng nơron, nhận biết giọng nói, vv…Cùng với những thành tựu trong nghiên cứu trí khôn nhân tạo Robot ngày càng có khả năng đảm nhận nhiều nguyên công trên dây chuyền sản xuất đòi hỏi

“nhìn được” (vison robot), robot “lắp ráp” ( robot assembly), robot “cảnh báo” (alarm robot) vv…

Để thông minh hóa robot bên cạnh việc lắp thêm các modul cảm biến “nội tín hiệu” và các modul cảm biến “ngoại tín hiệu” thì đồng thời có thể thông minh hoá robot bằng các chương trình phần mềm có khả năng tự thích nghi và tự xử lý các tình huống vv

Trang 14

Như vậy bằng cách bổ sung các modul cảm biến và các modul phần mềm phù hợp thì có thể nâng cấp cải tiến thông minh hoá nhiều loại Robot Tuy nhiên bản thân các robot này phải có các cơ cấu chấp hành linh hoạt và chính xác Ngày nay có nhiều loại robot tông minh khôngnhững có thể làm việc trong các phân xưởng công nghiệp mà còn thao tác được ở bênngoài, trên các địa hình phức tạp như các robot vũ trụ (spce robot), robot tự hành (walking robot), robot cần cẩu (roborane), tạo dựng từ các modun robot song song vv…

II TÌNH HÌNH TIẾP CẬN VÀ ỨNG DỤNG ROBOT CÔNG NGHIỆP

Ở VIỆT NAM

Trong giai đoạn trước năm 1990 hầu như trong nước chưa du nhập và kỹ thuật robot, thậm chí chưa nhận được nhiều thông tin kỹ thuật về lĩnh vực này Tuy vậy, với mục tiêu tiếp cận kỹ thuật mới mẻ này, trong nước đã triển khai các

đề tài nghiên cứu khoa học cấp nhà nước Đè tài 58.01.03 trong giai đoạn 81-85

và đề tài 52B0.03.01 trong giai đoạn 86-89 Kết quả của những đề tài này không những đáp ứng được yêu cầu tiếp cận mà còn có những ứng dụng ban đầu vào kỹ thuật bảo hộ lao động và phục vụ công tác đào tạo cán bộ ở nước ta

Giai đoạn tiếp theo 1990 các ngành công nghiệp trong nước bắt đầu đổi mới Nhiều cơ sở đã nhập ngoại nhiều dây chuyền thiết bị mới Đặc biệt là ở một

số doanh nghiệp liên doanh với nước ngoài đã nhập một số loại robot phục vụ một số công việc sau đây:

- Tháo lắp các dụng cụ cho các trung tâm gia công hoặc các máy CNC

- Lắp ráp các linh kiện điện tử

- Tháo sản phẩm ở các máy ép nhựa tự động trong đó có loại thao tác phối hợp với hệ thống giám sát, điều khiển bằng camera

- Hàn vỏ xe ô tô

- Phun phủ các bề mặt

Tuy nhiên còn có hàng chục cơ sở trong nước lúc mua dây chuyền đã không mua các Robot trong danh mục các thiết bị của dây chuyền chào hàng Trong đó một số cơ sở đã nhận thấy phải có robot mới đảm bảo chất lượng sản

Trang 15

phẩm của dây chuyền như trong thiết kế Vì vậy đã xuất hiện các nhu cầu cần thiết các Robot đó

Một sự kiện đáng quan tâm là từ tháng 4/98 nhà máy Rorze/Robotech đã bước vào hoạt động ở khu công nghiệp Nomura Hải Phòng Đây là nhà máy đầu tiên ở Việt Nam chế tạo và lắp ráp Robot Đó là loại Robot có cấu trúc rất đơn giản nhưng chính xác dùng trong sản xuất chất bán dẫn Nhà máy Rozre/Robotech có vốn đầu tư 46 triệu USD do Nhật Bản đầu tư

Trong những năm gần đây thì việc áp dụng các loại Robot vào các dây chuyền sản xuất ngày càng được sử dụng rộng rãi ở các doanh nghiệp Ví dụ như các loại Robot: Robot hàn, Robot phun sơn ở các công ty sản xuất và lắp ráp ô

tô Đặc biệt là ở các công ty sản xuất và lắp ráp các linh kiện điện tử Đây là công việc đòi hỏi chính xác cao, và thường lặp lại nên dễ gây mệt mỏi cho người làm vì vậy sử dụng Robot ở các công ty này là rất phổ biến Ngoài ra hiện nay ở các phân xưởng sản xuất sử dụng rất nhiều loại xe Robocar hoặc ở các công việc trong môi trường độc hại, thường xuyên tiếp xúc với hoá chất độc hại thì cũng sử dụng Robot làm thay con người

Hiện nay ở một số trường Đại Học đã thành lập bộ môn chuyên ngành về Robot và đang rất được sự quan tâm của nhiều sinh viên mà tiêu biểu là các trường Đại Học Bách Khoa Hà Nội, Bách Khoa TPHCM, Đại Học Sư Phạm Kỹ Thuật TPHCM… Đặc biệt từ năm 2002 hàng năm VTV3 tổ chức cuộc thi sáng tạo Robot châu Á Thái Bình Dương Đây là sân chơi đã được rất nhiều sinh viên của các trường Đại Học kỹ thuật hưởng ứng tham gia Hiện nay tại trường Đại Học Nha Trang đã có bộ môn Cơ Điện Tử Tuy nhiên do mới thành lập nên môn học Robot chưa có nhiều điều kiện để phát triển và chưa có nhiều sinh viên tìm hiểu về lĩnh vực mới này Đây là đề tài đầu tiên nghiên cứu về lĩnh vực này, nên trong quá trình thực hiện còn gặp nhiều khó khăn

Trang 16

CHƯƠNG II

Hiện nay có rất nhiều họ vi điều khiển như 8051, AVR, 8088, vv Ở đề tài tôi dùng họ vi điều khiển 8051 cùng với các IC chuyên dùng để có thể giao tiếp với bên ngoài, đáp ứng đầy đủ các yêu của đề tài đặt ra Họ 8051 được chọn vì những lý do sau đây:

* Vi điều khiển 8051 trên thị trường phổ biến và giá thành chấp nhận được

* Các bus địa chỉ và các bus dữ liệu có thể mở rộng khả năng chuyển đổi

dữ kliệu cho nhau linh hoạt nhờ lập trình phần mềm

* Tính linh động của lập trình giúp cho việc mở rộng các ứng dụng

I GIỚI THIỆU

Bộ vi điều khiển viết tắt là: Micro_controller, là mạch tích hợp trên một chip có thể lập trình được, dùng để điều khiển hoạt động của một hệ thống Theo các tập lệnh của người lập trình, bộ vi điều khiển tiến hành đọc, lưu trữ thông tin, xử lý thông tin, đo thời gian hoặc tiến hành đóng mở một cơ cấu nào đó Các thiết bị điện và điện tử dân dụng, các bộ vi điều khiển , điều khiển hoạt động của TV, máy giặt, đầu lọc Laser, điện thoại, lò vi ba,…

Trong hệ thống sản xuất tự động, bộ vi điều khiển được sử dụng trong Robot, dây chuyền tự động Các hệ thống càng “thông minh” thì vai trò của hệ

vi điều khiển càng quan trọng

II KHẢO SÁT HỌ VI ĐIỀU KHIỂN 8051

1 Cấu trúc

IC vi điều khiển 8051/8031 thuộc họ MCS51 có các đặc điểm:

- 4 byte ROM ( được lập trình bởi nhà sản xuất chí có ở 8051)

- 4 Port In/ Out 8 bit

- Hai bộ định thời gian 16 bit

- Giao tiếp nối tiếp

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

Trang 17

- 64 KB 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 4µs

Phần chính của vbi điều khiển 8051/8031 là bộ xử lý trung tâm (CPU: Central Processing Unit) bao gồm:

Thanh ghi tích luỹ A

Thanh ghi tích luỹ phụ B, dùng cho phép nhân và chia

Đơn vị logic học ( ALU: Arithmic Logical Unit)

Từ trạng thái chương trình (PSW: Prorgam Status Word)

Bốn băng thanh ghi

Con trỏ ngăn xếp

Ngoài ra còn có bộ nhớ chương trình, bộ giải mã lệnh, bộ điều khiển thời gian và logic

Đơn vị xử lý trung tâm nhập trực tiếp xung từ bộ giao động, ngoài ra còn

có khả năng đưa một tín hiệu giữ nhịp từ bên ngoài

Chương trình đang chạy có thể cho dừng lại nhờ một khối điều khiển ngắt

ở bên trong Các nguồn ngắt có thể là: các biến cố ở bên ngoài, sự tràn bộ đếm định thời gian hoặc cũng có thể là giao diện nối tiếp

2 Chức năng các chân vi điều khiển

Trang 18

a Port0: là port có 2 chức năng ở trên chân từ 32 đến 39 trong các thiết kế

cỡ nhỏ (không dùng bộ nhớ mở rộng) có 2 chức năng như các đường I/O Đối với các thiết kế cỡ lớn ( với bộ nhớ mở rộng) nó được kết hợp kênh giữa với các bus

b Port1: là một port I/O trên các chân 1_8 Các chân được ký hiệu P1.0, P1.1, P1.2… có thể dùng cho các thiết bị ngoài nếu cần Port1 không có chức năng khác, vì vậy chúng ta chỉ được dùng trong giao tiếp với các thiết bị ngoài

c Port2: là một port công dụng kép trên các chân 21_28 được dùng như các đường xuất nhập hoặc là các byte cao của bus địa chỉ đối với các thiết kế dùng

bộ nhớ mở rộng

d Port3: là một port công dụng kép trên các chân 10_17 Các chân của port này có nhièu chức năng, các công dụng chuyển đổi có liên hệ với các đặc tín đặc biệt của 8051 như ở bảng sau:

Bit Tên Chức năng chuyển đổi

P3.0 RXD Dữ liệu nhận cho port nối tiếp

P3.1 TXD Dữ liệu phát cho port nối tiếp

Trang 19

P3.2 INTO Ngắt 0 bên ngoài

P3.3 INT1 Ngắt 1 bên ngoài

8051 vận hành với nguồn đơn +5V Vcc được nối và chân 40 và Vss (GND) được nối vào chân 20

Bộ nhớ bên trong bao gồm ROM (8501) và RAM trên chip, RAM trên chip bao gồm nhiều phần: phần lưu trữ đa dụng, phần lưu trữ địa chỉ hoá từng bit, các bank thanh ghi và các thanh ghi chức năng đặc biệt

RAM bên 8051/8031 được chia giữa các bank thanh ghi (00H_1FH), RAM địa chỉ hoá từng bit (20H_2FH), RAM đa dụng (30H_7FH) và các thanh ghi chức năng đặc biệt (80H_FFH)

III TẬP LỆNH CỦA 8051/8031

Tập lệnh 8051/8031 có 255 lệnh gồm 139 lệnh 1 byte, 92 lệnh 2byte và 24 lệnh 3 byte

1 Các chế độ đánh địa chỉ

Trong tập lệnh có 8 chế độ đánh địa chỉ:

1.1 Thanh ghi địa chỉ

8051/8031 có 4 bank thanh ghi, mỗi bank có 8 thanh ghi đánh số từ R0 đến R7 Tại mỗi thời điểm chỉ có một bank thanh ghi được tích cực Muốn chọn bank thanh ghi nào ta chỉ cần gán các bit nhị phân thích hợp vào RSI(PSW.4) và RS0(PSW.3) trong thanh ghi trạng thái chương trình (PSW)

Ngoài ra, một số thanh ghi đặc biệt như thanh ghi tích luỹ, con trỏ dữ liệu

… cũng được xác định trong các lệnh nên không cần các bit địa chỉ Trong các lệnh này thanh ghi tích luỹ được xác định là “A”, con trỏ dữ liệu là “DPTR” thanh đếm chương trình là “PC”, cờ nhớ “C”, cặp thanh ghi tích luỹ B là “AB”

Trang 20

1.3 Địa chỉ gián tiếp

R0 và R1 được dùng để chứa địa chỉ ô nhớ mà lệnh tác động đến Người ta quy ước dùng dấu @ trước R0 hoặc R1

1.4 Đị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 Các hạng toán đó có thể

là một hằng số, một ký tự hay một biểu thức toán học… Trường hợp dịch sẽ tự động tính toán và thay thế dữ liệu trực tiếp vào mã lệnh

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

Địa chỉ tương đối được dùng trong các điểm nhảy 8051/8031 dùng giá trị 8 bit có dấu để cộng thêm vào thanh ghi đếm chương trình (PC) Tầm nhảy của lệnh này trong khoảng từ -128 đến 127 ô nhớ Trước khi cộng, thanh ghi PC sẽ tăng đến địa chỉ theo sau lệnh nhảy rồi tính toán địa chỉ offset cần thiết để nhảy đến địa chỉ yêu cầu Như vậy địa chỉ mới là địa chỉ tương đối so với lệnh kế tiếp chứ không phải là bản thân lệnh nhảy Thường lệnh này có liên quan đến nhãn được định nghĩa trước

1.6 Địa chỉ dài

Địa chỉ chỉ dùng cho lệnh LCALL và LJIMP Các lệnh này chiếm 3 byte và dùng 2 byte sau ( byte 2 và byte3) để định địa chỉ đích của lệnh (16 bit) Ưu điểm của lệnh này có thể có thể sử dụng trong toàn bộ vùng nhớ 64 Kbyte Tuy nhiên, lệnh này chiếm nhiều byte và lệ thuộc vào vị trí vùng nhớ

1.7 Địa chỉ tham chiếu

Địa chỉ tham chiếu dùng một thanh ghi cơ bản( hoặc thanh ghi đếm chương trình PC hoặc thanh ghi con trỏ dữ liệu DPTR) và địa chỉ offset (trong thanh ghi

Trang 21

tích luỹ A) để tạo địa chỉ được tác động cho các lệnh JMP hoặc MOVC Các bảng nhảy và bảng tìm kiếm dễ dàng được tạo ra để sử dụng địa chỉ tham chiếu

- chuyển điều khiển

Các chi tiết thiết lập lệnh:

RN: thanh ghi R0 đến R7 của bank thanh ghi được chọn

Data: 8 bit địa chỉ vùng dữ liệu bên trong Nó có thể dùng RAM dữ liệu trong (0_127) hoặc các thanh ghi chức năng đặc biệt

@Ri: 8 bit vùng RAM dữ liệu bên trong (0_125) được đánh giá địa chỉ gián tiếp qua thanh ghi R0 hoặc R1

#Data: Hằng 8 bit chứa trong câu lệnh

#Data16: Hằng 16 bit chứa trong câu lệnh

Addr16: 16 bit địa chỉ đích được dùng trong lệnh LCALL và LJMP

Addr11: 11 bit địa chỉ đích được dùng trong lệnh LCALL và SJMP

Rel: byte offset 8 bit có dấu được dùng trong lệnh SJMP và những lệnh nhảy có điều kiện

Bit: Bit được định địa chỉ trực tiếp trong RAM dữ liệu nội hoặc các thanh ghi có chức năng đặc biệt

3 Nhóm lệnh xử lý số liệu

ADD A,Rn (1 byte, 1 chu trình máy): cộng nội dung thanh ghi RN vào thanh ghi A

ADD A,data (2,1): cộng trực tiếp 1 byte vào thanh ghi A

ADD A,@Ri (1,1): cộng gián tiếp nội dung RAM chứa tại địa chỉ được khai báo trong Ri vào thanh ghi A

ADD A,#data (2,1): Cộng giữ liệu tức thời vào A

Trang 22

ADD A,Rn (1,1): Cộng thanh ghi và cờ nhớ vào A

ADD A,@Ri(1,1): Cộng gián tiếp nội dung RAM và cờ nhớ vào A

ADDC A,#data(2,1): Cộng dữ liệu tức thời và cờ nhớ vào A

SUBB A,Rn (1,1): Trừ nội dung thanh ghi A cho nội dung thanh ghi Rn và

cờ nhớ

SUBB A,data(2,1): Trừ trực tiếp A cho một số và cờ nhớ

SUBB A,@Ri(1,1): Trừ gián tiếp A cho một số và cờ nhớ

SUBB A,#data(2,1): Trừ nội dung A cho một số tức thời và cờ nhớ

INC A (1,1): Tăng nội dung thanh ghi A lên 1

INC Rn (1,1): Tăng nội dung thanh ghi Rn lên 1

INC data (2,1): Tăng dữ liệu trực tiếp lên 1

INC @Ri (1,1): Tăng gián tiếp nội dung vùng RAM lên 1

DEC A (1,1): Giảm nội dung thanh ghi A xuống 1

DEC Rn (1,1): Giảm nội dung thanh ghi Rn xuống 1

DEC data (2,1): Giảm dữ liệu trực tiếp xuống 1

DEC @Ri (1,1): Giảm gián tiếp nội dung vùng RAM xuống 1

INC DPTR (1,2): Tăng nội dung con trỏ dữ liệu lên 1

MUL AB(1,4): Nhân nội dung thanh ghi A với nội dung thanh ghi B

DIV AB (1,4): Chia nội dung thanh ghi A cho nội dung thanh ghi B

DA A(1,1): Hiệu chỉnh thập phân thanh ghi A

ANL A,#data (2,1): AND nội dung thanh ghi với dữ liệu tức thời

ANL data,A (2,1): AND một dữ liệu trực tiếp với A

ANL data, #data ( 3,2): AND một dữ liệu trực tiếp với A một dữ liệu tức thời

Trang 23

ANL C,bit (2,2): AND cờ nhớ với 1 bit trực tiếp

ANL C,/bit (2,2): AND cờ nhớ với bù 1 bit trực tiếp

ORL A,Rn (1,1): OR thanh ghi A với thanh ghi Rn

ORL A,data (2,1): OR thanh ghi A với một dữ liệu trực tiếp

ORL A,@Ri (1,1): OR thanh ghi A với một dữ liệu gián tiếp

ORL A,#data (2,1): OR thanh ghi A với một dữ liệu tức thời

ORL data,A (2,1): OR một dữ liệu trực tiếp với thanh ghi A

ORL data,#data (3,1): OR một dữ liệu trực tiếp với một dữ liệu tức thời ORLC,bit (2,2): OR cờ nhớ với một bit trực tiếp

ORL C,/bit (2,2): OR cờ nhờ với bù của một bit trực tiếp

XRLA,RN (1,1): XOR thanh ghi A với thanh ghi Rn

XRL A,data (2,1): XOR thanh ghi A với một dữ liệu trực tiếp

XRL A,@Ri (1,1): XOR thanh ghi A với một dữ liệu gián tiếp

XRL A,#data (2,1): XOR thanh ghi A với một dữ liệu tức thời

XRL data,A (2,1): XOR một dữ liệu trực tiếp với thanh ghi A

XRL data,#data (3,1): XOR một dữ liệu trực tiếp với một dữ liệu tức thời SETB C (1,1): Đặt cờ nhớ

SETB bit (2,1): Đặt một bit trực tiếp

CLR A (1,1): Xoá thanh ghi A

CLR C (1,1): Xoá cờ nhớ

CPL A (1,1): Bù nội dung thanh ghi A

CPL C (1,1): Bù cờ nhớ

CPL bit (2,1): Bù một bit trực tiếp

RL A (1,1): Quay trái nội dung thanh ghi A

RLC A (1,1): Quay trái nội dung thanh ghi A qua cờ nhớ

RR A (1,1): Quay phải nội dung thanh ghi A

RRC a (1,1): Quay phải nội dung thanh ghi A qua cờ nhớ

SWAP (1,1): Quay trái nội dung thanh ghi A 1 nibble (1/2 byte)

Trang 24

5 Nhóm lệnh truyền dữ liệu

MOV A, Rn (1,1) Chuyển nội dung thanh ghi Rn vào thanh ghi A MOV A, data (2 1) : Chuyển dữ liệu trực tiếp vào thanh ghi A

MOV A, @Ri (1,1): Chuyển dữ liệu gián tiếp vào thanh ghi A

MOV A, #data (2,1):Chuyển dữ liệu tức thời vào thanh ghi A

MOV Rn,data (2,2): Chuyển dữ liệu trực tiếp vào thanh ghi Rn

MOV Rn,#data (2,1):.Chuyển dữ liệu tức thời vào thanh ghi Rn

MOV data,A (2,1):Chuyển nội dung thanh ghi A vào một dữ liệu trực tiếp

MOV data, Rn (2,2):Chuyển nội dung thanh ghi Rn vào một dữ liệu trực tiếp

MOV data,data (3,2):Chuyển một dữ liệu tức thời vào một dữ liệu trực tiếp

MOV data,@Ri (2,2):chuyển một dữ liệu gián tiếp vào dữ liệu gián tiếp MOV data,#data (3,2): Chuyển một dữ liệu tức thời vào một dữ liệu trực tiếp

MOV@Ri,A (1,1):Chuyển dữ liệu thanh A vào một dữ liệu gián tiếp MOV@Ri,data (2,2): Chuyển một dữ liệu trực tiếp vào một dữ liệu gián tiếp

MOV@Ri,#data (2,1):Chuyển một dữ liệu tức thời vào dữ liệu gián tiếp MOV DPTR,#data (3,2):Chuyển 1 bít hằng 16 vào thanh con trỏ dữ liệu MOV C, bit (2,1):Chuyển 1 bít trực tiếp vào cờ nhớ

MOV bit, C (2,2): Chuyển cờ nhớ vào 1 bít trực tiếp

MOV A,@A+DPTR (1,2): Chuyển byte bộ nhớ chương trình có địa chỉ là

@A+DPTR vào thanh ghi A

MOV A,@A+PC (1,2): Chuyển byte bộ nhớ chương trình có địa chỉ

@A+PC thanh ghi A

MOV A,@Ri (1,2): Chuyển dữ liệu ngoài (8 bit địa chỉ) vào thanh

Trang 25

MOVX A,@DPTR (1,2): Chuyển dữ liệu ngoài (16 bit địa chỉ) vào thanh ghi A

MOVX @Ri,A (1,2):Chuyển dữ liệu nội dung A ra dữ liệu ngoài (8 bit địa chỉ)

MOVX @DPTR, A (1,2):Chuyển nội dung A ra dữ liệu bên ngoài (16 bit địa chỉ)

PUSH data (2,2): Chuyển dữ liệu trực tiếp vào ngăn xếp và tăng SP

POP data (2,2): Chuyển dữ liệu trực tiếp vào ngăn xếp và giảm SP XCH A,Rn (1,1): Trao đổi dữ liệu thanh ghi Rn và thanh ghi A

XCH A,data (2,1): Trao đổi giũa thanh ghi A và 1 dữ liệu trực ti ếp

XCH A, @Ri (1,1): Trao đổi giữa thanh ghi A và dữ liệu gián tiếp

6 Nhóm lệnh truyền điều

ACALL addr11 (2,2): Gọi chương trình con dùng địa chỉ trực tiếp

LCALL addr16 (3,2): Gọi chương trình con dùng địa chỉ dài

RET (1,2): Trở về từ chương trình con

RETI (1,2): Trở về từ lệnh gọi ngắt

AJMP addr11 (2,2): Nhảy tuyệt đối

LJMP addr16 (3,3): Nhảy dài

SJMP rel (2,2): Nhảy ngắn

JMP @A+DPTR (1,2): Nhảy gián tiếp từ con trỏ dừ liệu

JZ rel (2,2): Nhảy nếu A=0

JNZ rel (2,2): Nhảy nếu A=1

JC rel (2,2) : Nhảy nếu cờ nhớ được dặt

JNC rel (2,2): Nhảy nếu cờ nhớ không được đặt

JB bit,rel (3,2): Nhảy tương đương đối nếu bít trực tiếp được đặt

JNB bit,rel (3,2): Nhảy tương đối nếu bít trực tiêps không được đặt JBC bit,rel (3,2): Nhảy tương đối nếu bít trực tiếp được đặt, rồi xoá bit CJNE A,data,rel (3,2): So sánh dữ liệu tức thời với Avà nhảy nếu không bằng

Trang 26

CJNE A,#data,rel (3,2): So sánh dữ liệu tức thời với A và nhảy nếu không bằng

CJNE @Ri,#data,rel (3,2): So sánh dữ liệu tức thời với dữ liệu gián tiếp

và nhảy nếu không bằng

DJNZ Rn, rel (2,2): Giảm thanh ghi Rn và nhảy nếu không bằng

DJNZ data, rel (3,2): Giảm dữ liệu trực tiếp và nhảy nếu không bằng

IV HOẠT ĐỘNG TIMER CỦA 8051

1 Giới thiệu

Bộ định thời của Timer là 1 chuỗi các Flip Flop được chia làm 2, nó nhận tín hiệu vào là 1 nguồn xung clock, xung clock đưa vào FlipFlop thứ nhất là xung clock của FlipFlop thứ 2 mà nó cũng chia tần số này cho 2 và cứ tiếp tục

Vì mỗi tầng kế tiếp chia cho 2, nên Timer tầng phải chia cho tần số clock ngõ vào cho 2n Ngõ ra của tầng cuối cùng là clock của FlipFop tràn Timer hoặc

cờ mà nó kiểm tra bằng phần mềm hoặc sinh ra ngắt.Gía trị nhị phân trong các

FF của bộ Timer có thể được nghỉ như đếm xung clock hoặc đếm các sự kiện quan trọng bởi vì Timer đựơc khởi động.Ví dụ Timer 16 bit có thể đếm từ FFFFH sang 0000H

Các Timer được ứng dụng thực tế cho các hoạt động định hướng 8051 có

bộ Timer 16 bit, mỗi Timer có 4 mode hoạt động Các Timer dùng để đếm giờ, đếm các sự kiện cần thiết và sinh ra tốc độ của tốc độ Baud bởi sự gắn liền Port nối tiếp

Mỗi sự định thời là 1 Timer 16 bit,do đó tầng cuối cùng là tầng thứ 16 sẽ chia tần số clock vào cho 216 =65536

Trong các ứng dụng định thời, 1 Timer được lập trình để tràn ở 1 khoảng thời gian đều đặn và được set cờ tràn Timer Cờ được dùng để đồng bộ chương trình để thực hiện 1 hoạt động như việc đưa tới 1 tầng các ngõ vào hoặc gửi dữ liệu ra các ngõ ra.Các ứng dụng khác có sử dụng việc ghi gì đều đều của Timer

để đo thời gian đãtrôi qua 2 trạng thái (ví dụ đo độ rộng xung) Việc đếm một sự

Trang 27

kiện được dùng để xác định số lần xuất hiện của sự kiện đó, tức thờii gian trôi qua giữa các sự kiện

2 THANH GHI MODE TIMER MODE

Thanh ghi mode gồm hai nhóm 4 bit: 4 bit thấp đặt mode hoạt động cho Timer0 và 4 bit cao đặt mode hoạt động cho Timer 1 8 bit của thanh ghi TMOD được tóm tắt như bảng sau:

C/T = 0 : Ghi giờ đều đặn

Hai bit M0 và M1 để chọn chế độ hoạt động của 2 Timer

Trang 28

M1 M0 M

ODE

DESCRIPTION

TMOD không có bit định vị, nó thường được LOAD 1 lần bởi phần mềm ở đầu chương trình để khởi động mode Timer Sau đó sự định giờ có thể dừng lại, đựơc khởi động lại như thế bởi sự truy xuất các thanh ghi chức năng đặc biệt của Timer khác

3 THANH GHI ĐIỀU KHIỂN TIMER TCON (TIMER CONTROL REGISTER)

Thanh ghi điều khiển bao gồm các bit trạng thái và các bit điều khiển bởi Timer 0 và Timer 1 Thanh ghi TCON có bit định vị Hoạt động của từng bit được tóm tắt như sau:

Cờ tràn Timer 1 Đặt bởi phần cứng khi tràn, xoá bằng phần mềm hoặc khi xử lý ngắt quãng

4 CÁC MODE VÀ CỜ TRÀN(TIMER MODE AND OVERFLOW)

Trang 29

8051 có 2 Timer là Timer 0 và Timer 1.Ta dùng ký hiệu TLx và THX để chỉ 2 thanh ghi byte thấp và byte cao của Timer 0 và Timer 1

Mỗi Timer có 4 chế độ hoạt động nhưng trong thực tế người ta thường dùng

2 chế độ là

4.1 Chế độ 16 bit (chế độ 1)

Tương ứng M1=0, M0 = 1 Xung clock được dùng kết hợp với các thanh ghi cao và thấp (TLx, TLx) Khi xung clock được nhận vào, bộ đếm Timer tăng lên 0000H, 0001H, 0002H,… , và một sự tràn sẽ xuất hiện khi có sự chuyển bộ đếm Timer từ FFFFH sang 0000H và set cờ tràn Timer, sau đó Timer đếm tiếp

Cờ tràn là bit TFx trong thanh ghi T.CON mà nó sẽ được đọc hoặc được ghi bởi phần mềm

Bit trọng số lớn nhất (MSB) của giá trị trong thanh ghi của Timer là bit 7

THx và bit trọng số nhỏ nhất (LSB) là bit không của TLx.Bit LSB đổi trạng thái

ở tần số clock và được chia cho 216 =65536

Các thanh ghi Timer THx và TLx có thể được đọc hoặc được ghi bởi phần mềm

4.2 Chế độ 8 tự động nạp lại (chế độ 2)

Ở chế độ này thì M0 = 0, M1 =1

Mode 2 là mode tự động nạp lại 8 bit, byte thấp TLxcủa Timer hoạt động như một Timer 8 bit trong khi byte cao THxcủa Timer giữ giá trị Reload Khi bộ đếm tràn từ FFH sang 00H, không chỉ cờ tràn được set mà cả giá trị trong

THxcung được nạp vào TLx: Bộ đếm tiếp tục từ gía trị này lên đến sự chuyển trạng thái từ FFH sang 00H kế tiếp và cứ thế tiếp tục Mode này phù hợp bởi vì các sự tràn xuất hiện cụ thể mà mỗi lúc thanh ghi TMOD và THxđược khởi động

Trang 30

V CÁC NGUỒN XUNG CLOCK (CLOCK SOURCES)

Có 2 nguồn xung clock có thể đếm giờ là sự định giờ bên trong và sự đếm các sự kiện bên ngoài Bit C/T trong TMOD cho phép chọn 1 trong 2 khi Timer được khởi động

1 Sự bấm giờ bên trong (Interval Timing)

Nếu bit C/T = 0 thì hoạt động của Timer liên tục được chọn vào bộ Timer được ghi giờ từ bộ dao động trên chíp Một bộ được chia 12 được thêm vào để giảm tần số clock tới 1 giá trị thích hợp hầu hết các ứng dụng Các thanh ghi

THx và TLx tăng tốc độ 1/12 lần tần số dao động trên chip Nếu dùng thạch anh 12MHz thì sẽ đưa đến tốc độ clock 1MHz

Các sự tràn Timer sinh ra sau 1 con số cố định của những xung clock, nó phụ thuộc vào giá trị được khởi tạo được LOAD vào các thanh ghi THx và TLx

2 Sự đếm các sự kiện ( Event counting)

Nếu bit C/T = 1 thì bộ đếm Timer được ghi giờ từ bộ nguồn bên ngoài trong nhiều ứng dụng, bộ nguồn bên ngoài này cung cấp 1 sự định giờ với 1 xung trên

sự xảy ra sự kiện Sự định giờ là sự đếm sự kiện Con số sự kiện được xác định trong phần mềm bởi việc đọc các thanh ghi Timer TLx/THx, bởi vì các giá trị

16 bit trong các thanh ghi này tăng lên cho mỗi sự kiện

Trang 31

Nguồn xung clock bên ngoài được đến chân P3.4 là ngõ nhập của xung clock bởi Timer 0 (T0) và chân P3.5 là ngõ nhập của xung clock bởi Timer 1(T1)

Trong các ứng dụng đếm thanh ghi Timer được tăng trong sự đáp ứng của

sự chuyển trạng thái từ 1 sang 0 của ngõ nhập Tx Tần số bên ngoài lớn nhất là 500KHz nếu dao động thạch anh 12 MHz

3 Sự bắt đầu, sự kết thúc và sự điều khiển các thanh ghi Timer

Bit TRx trong thanh ghi có bit định vị TCON được điều khiển bằng phần mềm để bắt đầu hoặc kết thúc các Timer Để bắt đầu các Timer ta set các bit

TRx và để kết thúc các Timer ta clr TRx Ví dụ Timer 0 được bắt đầu bởi lệnh SETB TR0 và được kết thúc bởi lệnh CLR TR0 (bit GATE =0) Bit TRx bị xoá sau khi resethệ thống do đó các Timer bị cấm bằng sự mặc định

Thêm phương pháp nữa để điều khiển các Timer là dùng các bit GATE trong các thanh ghi TMOD và ngõ nhập bên ngoài INTx Điều này dùng để đo

độ rộng xung Gửixung đưa vào chân INT0 ta khởi động Timer 0 cho mode 1 là mode Timer 16 bit với TL0/TH0 =0000H, GATE = 1, TR0 =1 Như vậy khi INT0 =1 thì Timer “được mở cổng” và ghi giờ với tốc độ của tần số 1MHz Khi INT0 xuống thấp Timer “đóng cổng” và khoảng thời gian của xung tính bằng μs

là sự đếm được trong thanh ghi TL0/TH0

4 Sự khởi động và sự truy xuất các thanh ghi Timer

Các Timer đựoc khởi động 1 lần ở đầu chương trình để đặt mode hoạt động cho chúng Sau đó trong thân chương trình các Timer được bắt đầu , được xoá, các thanh ghi Timer được đọc và được cập nhật… theo yêu cầu của từng ứng dụng cụ thể

Mode Timer TMOD là thanh ghi đầu tiên được khởi gán, bởi vì đặt mode hoạt động cho các Timer Ví dụ khởi động cho Timer 1 hoạt động ở mode 1 (mode Timer 16 bit) và được ghi giờ bằng bộ dao động trên chip ta dùng lệnh : MOV TMOD, #00001000B Trong lệnh này M1 =0, M0 =1 để vào mode 1 và

Trang 32

Timer 0 Sau lệnh trên Timer vẫn chưa đếm giờ, nó chỉ đếm giờ khi set bit điều khiển chạy TR1 của nó

Nếu ta không khởi gán các giá trị đầu cho các thanh ghi TLx/THx thì Timer

sẽ bắt đầu từ 0000H và khi tràn từ FFFFH sang 0000H nó sẽ bắt đầu tràn TFx rồi tiếp tục đếm từ 0000H lên…

Nếu ta khởi gán giá trị đầu cho THx/TLx, thì Timer sẽ bắt đầu đếm từ giá trị khỏi gán đó lên nhưng khi tràn từ FFFFH sang 0000H thì lại đếm từ 0000H lên

Chú ý cờ tràn TFx tự động được set bởi phần cứng sau mỗi sự tràn và sẽ được xoá bởi phần mềm Vì vậy chúng ta có thể lập trình chờ sau mỗi lần tràn ta

sẽ xoá cờ TFx và quay vòng lặp khởi gán cho TLx /TLx để Timer luôn luôn bắt đầu đếm từ giá trị khởi gán theo mong muốn của ta

Đặc biệt những sự khởi gán nhỏ hơn 256μs, ta sẽ gọi mode Timer tự động nạp lại 8 bit của mode 2 Sau khi khởi gán giá trị đầu vào THx, khi set bit TRxthì Timer bắt đầu đếm từ giá trị khởi gán và khi tràn từ FFH sang 00H trong

TLx, cờ TRx tự động được set đồng thời giá trị khởi gán mà ta khởi gán THx tự động nạp vào TLx và Timer lại đếm từ giá trị khởi gán này lên Nói cách khác sau mỗi lần tràn ta không cần khởi gán lại giá trị cho các thanh ghi của Timer mà chúng vẫn đếm lại được từ giá trị ban đầu

VI HOẠT ĐỘNG CỦA PORT NỐI TIẾP 8051

1.Gíơi thiệu

Port nối tiếp của 8051 có thể hoạt động trong các mode riêng biệt trên phạm

vi cho phép của tần số Chức năng chủ yếu của Port nối tiếp là thực hiện sự chuyển đổi song song thành nối tiếp cho dữ liệu ra và chuyển đổi nối tiếp thành song song của dữ liệu đầu vào

Phần cứng truy xuất tới Port nối tiếp qua các chân TXD (P3.1) và RXD (P3.0)

Trang 33

Port nối tiếp tham dự hoạt động đầy đủ (sự phát và sự thu cùng lúc), và thu vào bộ đếm mà nó cho phép 1 ký tự được nhận vào và cất vào bộ đệm trong khi

ký tự thứ 2 được nhận vào Nếu CPU đọc ký tự thứ nhất trước khi ký tự thứ 2 được nhận vào hoàn toàn thì dữ liệu không bị mất

Hai thanh ghi chức năng đặc biệt cung cấp cho phần mềm truy

xuất đến Port nối tiếp là SBUF và SCON Sự đệm Port nối tiếp SBUF ở địa chỉ (99H) là 2 sự đệm thật sự: Ghi lên SBUF LOAD dữ liệu phát và đọc SBUF truy xuất dữ liệu đã nhận Đây là 2 thanh ghi riêng biệt và rõ rệt, mà thanh ghi phát chỉ ghi còn thanh ghi thu chỉ đọc

Thanh ghi điều khiển Pport nối tiếp SCON (98H) là thanh ghi được định vị bit bao gồm các trạng thái và các bit điều khiển Các bit điều khiển set mode của Port nối tiếp, còn các bit trạng thái cho biết sự kết thúc việc thu phát 1 ký tự Các bit trạng thái có thể được kiểm tra trong phần mềm hoặc lập trình sinh ra ngắt Tần số hoạt động của Port nối tiếp hoặc tốc độ BAUD có thể được lấy từ dao động trên chip 8051 hoặc thay đổi Nếu một tốc độ BAUD thay đổi được dùng, thì Timer cung cấp một tốc độ Baud ghi giờ và phải được lập trình phù hợp

Mode hoạt động của Port nối tiếp của 8051 được set bởi việc ghi lên thanh ghi mode của Port nối tiếp SCON ở địa chỉ 99H Bảng tóm tắt thanh ghi điều khiển Port nối tiếp SCON như sau:

Trang 34

Bảng các chế độ hoạt động của Port nối tiếp

Cờ ngắt thu RI và phát TI trong thanh ghi SCON vận hành 1 rơle quan trọng sự truyền nối tiếp 8051 Cả 2 bit đều được set bởi phần cứng nhưng phải được xoá bằng phần mềm

Điển hình là RI được set ở cuối sự thu ký tự và cho biết: “thanh ghi đệm thu

đã đầy” Điều kiện này có thể kiểm tra trong phần mềm hoặc có thể lập trình sinh

ra sự ngắt Nếu phần mềm muốn nhập một ký tự từ một thiết bị đã được kết nối tới Port nối tiếp, thì nó phải chờ đến khi RI được set,sau khi xoá RI và đọc ký tự

từ SBUF

TI được set ở cuối sự phát ký tự và cho biết “thanh ghi đệm của sự phát đã rỗng” Nếu phần mềm múò gửi 1 ký tự đến một thiết bị được nối đến Port nối tiếp, trước tiên nó phải kiểm tra xem Port nối tiếp đã sẵn sàng chưa

Nếu ký tự trước đã được gửi đi, thì nó phải chờ cho đến khi sự phát đi hoàn thành.Một việc quan trọng truyền thông nối tiếp là ta phải tạo tốc độ Baud Thường thì chúng ta dùng Timer 1 để tạo tốc độ Baud

Bảng sau sẽ cho chúng ta các giá trị Baud thường dùng:

Tốc độ Baud Tần số thạch anh SMOD TH1 Tốc độ thực tế Sai số

Trang 35

2400 11.059MHz 0 -12(F4H) 2400 0

1200 11.059MHz 0 -12(E8H) 1200 0

VII HOẠT ĐỘNG NGẮT CỦA (INTERRUPT) CỦA 8051

Trong nhiều ứng dụng đòi hỏi ta phải dùng phải ngắt mà không dùng Timer bởi vì nếu dùng Timer thì ta mất thời gian để cờ tràn Timer TFx được set mới xử

lý tiếp chương trình Do đó ta không có thời gian để làm các việc quan trọng khác mà ứng dụng đòi hỏi Đây là chương trình rất quan trọng của 8051

1 Gíơi thiệu

Interrupt là một sự cố điều kiện mà nó gây ra sự ngưng lại tạm thời của chương trình để phục vụ một chương trình khác Các Interrupt vận hành một Relay rất quan trọng trong thiết bị và cung cấp đầy đủ các ứng dụng vi điều khiển Chúng cho phép 1 hệ thống đáp ứng bộ đến sự kiện quan trọng và giải quyết sự kiện đó trong khi chương trình khác đang thực thi Một hệ thống được lái bởi Interrupt cho một kỹ xảo làm nhiều công việc cùng một lúc Tất nhiên CPU không thể thực hiện nhiều lệnh cùng một lúc, nhưng nó có thể tạm treo việc thực thi của chương trình để thực thi chương trình khác và sau đó quay trở lại

chương trình chính

Khi chương trình chính đang thực thi mà có một sự ngắt xảy ra thì chương trình chính ngưng thực thi và rẽ nhánh đến thủ tục phục vụ ngắt ISR ISR thực thi để thực hiện hoạt động và kết thúc với lệnh “trở lại từ sự ngắt”: Chương trình tiếp tục nơi mà nó dừng lại

2 Tổ chức Interrupt của 8051

8051 cung cấp 5 nguồn ngắt, 2 ngắt ngoài, 2 sự ngắt Timer, 1 ngắt Port nối tiếp Tất cả các Interrupt bị mất tác dụng bởi sự mặc định sau khi reset hệ thống

và được cho phép cá biệt bởi phần mềm

Trong trường hợp có 2 hoặc nhiều hơn sự ngắt xảy ra đồng thời hoặc một

sự ngắt đang được phục vụ mà xuất hiện một ngắt khác, thì sẽ có 2 cách thực hiện sự ngắt là sự kiểm tra liên tiếp và sự ưu tiên cấp 2

Trang 36

2.1 Sự cho phép ngắt và sự cấm ngắt

Mỗi nguồn Interrupt được cho phép riêng biệt hoặc sự cấm riêng biệt qua

thanh ghi chức năng đặc biệt có bit định vị IE (Interrupt Enable) tại địa chỉ

0A8H Cũng như sự cá biệt cho các bit của mỗi nguồn ngắt có 1 bit cho phép

(hoặc cấm ) chung mà nó được xoá để cấm tất cả các Interrupt hoặc được để cho

phép chung các Interrupt

Hoạt động của từng bit trong thanh ghi cho phép ngắt IE được tóm tắt trong

bảng sau:

Program excution with interrupt

Trong đó ký hiệu * cho biết ngắt chương trình chính để thực thi chương

trình con trong trình phục vụ ngắt ISR Còn ký hiệu ** cho biết quay trở lại

chương trình chính thực thi tiếp kết thúc chương trình con trong ISR

Trang 37

IE0 EX0 A8H Cho phép ngắt ngoài Exxternal 0

Hai bit phải set cho một sự ngắt nào đó : Là bit cho phép riêng và bit cho phép chung Ví dụ để cho phép ngắt Timer 1 ta có thể thực hiện trên bit: SETB ET1 và SETB EA hoặc sự thực hiện trên byte: MOV IE, #10001000B Cả 2 phương pháp này đều có kết quả chính xác sau khi reset hệ thống, nhưng kết quả khác nhau nếu thanh ghi IE được ghi trên tuyến ở giữa chương trình

Giải pháp thứ nhất không có tác dụng trên các bit còn lại trong thanh ghi IE, còn giải pháp thứ 2 xoá các bit còn lại trong thanh ghi IE Ở đầu chương trình ta nên khởi gán IE với lệnh MOV BYTE, nhưng sự cho phép ngắt và sự cấm ngắt trên tuyến trong 1 chương trình, dùng các lệnh SET BIT và CLR BIT để tránh kết quả phụ với các bit khác trong thanh ghi IE

2.2 Sự ưu tiên ngắt (Interrupt Priority)

Mỗi nguồn ngắt được lập trình cá biệt đến một trong 2 mức ưư tiên qua thanh ghi chức năng đặc biệt có định vị IP (Interrupt Priority) tại địa chỉ 0B8H Hoạt động của từng bit trong thanh ghi IP được tóm tắt trong bảng sau:

BBH Ưu tiên cho phép ngắt Timer 1

Trang 38

sự ngắt ở mức ưu tiên thấp hơn sự mặc định.Ý tưởng “các sự ưu tiên” cho phép 1 thủ tục phục vụ ngắt ISR mới được ngắt nếu sự ngắt mới này ưu tiên cao hơn sự ngắt hiện hành đang phục vụ

Trên 8051 có 2 mức ưu tiên cao và 2 mức ưu tiên thấp Nếu một thủ tục phục vụ ngắt có mức ưu tiên thấp đang thực thi mà có một ngắt có mức ưu tiên cao hơn xuất hiện, thì thủ tục phục vụ ngắt đó bị ngắt để thực thi thủ tục ngắt mới Ngược lại thủ tục phục vụ ngắt có mức ưu tiên cao hơn đang thực thi mà có một ngắt ưu tiên thấp hơn xuất hiện, thì nó không bị ngắt mà phải chờ thực thi xong thủ tục phục vụ cao hơn mới nhảy tới thủ tục phục vụ ngắt thấp

Chương trình thực thi ở mức cơ bản và không kết hợp với sự ngắt nào, nó

có thể luôn luôn bị ngắt bất chấp sự ưu tiên ngắt ở mức cao hay thấp Nếu 2 sự ngắt của các ưu tiên khác nhau xuất hiện đồng thời, sự ngắt ưu tiên cao hơn sẽ đựơc phục đầu tiên

2.3 Sự kiểm tra vòng quét liên tiếp

Nếu 2 sự ngắt có cùng mức ưu tiên cùng xuất hiện đồng thời, thì sự kiểm tra vòng quét sẽ ấn định sự ngắt nào được thực thi trước Sự kiểm tra vòng quét liên tiếp ưu tiên từ trên xuống dưới theo thứ tự là: External 0, Timer 0, External 1, Timer1, SERIAL Port, Timer 2

Hình trên minh hoạ 5 nguồn ngắt của 8051, các kỹ xảo cho phép ngắt

riêng và chung, kiểm tra vòng quát liên tiếp và mức ưu tiên Trạng thái của tất cả các nguồn ngắt có hiệu lực thông qua các bit cờ tương ứng trong các thanh ghi đặc biệt Nếu có sự ngắt nào bị cấm thì sự ngắt đó không xuất hiện nhưng phần mềm vẫn kiểm tra cờ ngắt

Trang 39

Sự ngắt của Port nối tiếp đưa đến cổng OR logic của sự ngắt thu RI (Receive Interrupt) hoặc sự ngắt phát TI (Transmit Interrupt) Tương tự sự ngắt của Port nối tiếp, các sự ngắt của Timer 2 có thể được sinh ra bởi cờ tràn TF2 hoặc cờ nhập ngoài EXF2 (External Input Flag)

2.4 Việc xử lý các sự ngắt (processing Interrupt)

Khi một sự ngắt xuất hiện và được chấp nhận bởi CPU thì chương trình chính bị ngắt Các hoạt động sau đây xuất hiện

• Lệnh hiện hành và kết thúc thực thi

• Bộ đếm chương trình PC được cất giữ vào Stack

Trang 40

• Trạng thái ngắt hiện hành được cất giữ vào bên trong

• Những sự ngắt bị ngăn lại tại mức ngắt

Bộ đếm chương trình PC được LOAD với địa chỉ vectơ của thủ tục phục vụ ngắt ISR

Thủ tục phục vụ ngắt ISR được thực thi

Thủ tục phục vụ ngắt ISR thực thi và đưa hạt động vào đáp ứng ngắt, thủ tục phục vụ ngắt ISR kết thúc với lệnh RETTI (quay trở về chương trình chính từ Stack) Điều này khôi phục lại giá trị cũ của bộ đếm chương trình từ Stack và hoàn toàn dừng lại ở trạng thái cũ Sự thực thi chương trình chính tiếp tục ở nơi

mà nó ngừng lại

2.5 Các vectơ ngắt (Interrupt vectors)

Khi có một sự ngắt được nhận giá trị được LOAD vào PC được gọi bởi

vectơ ngắt Nó là địa chỉ của sự khởi động thủ tục phục vụngắt ISR của nguồn ngắt Các vectơ được cho trong bảng sau:

Vectơ reset hệ thống RST tại địa chỉ 0000H được tính trong bảng này, bởi

vì trong ý nghĩa này nó giống như 1 Interupt: nó ngắt chương trình và LOAD vào PC với giá trị mới

Khi đưa một vectơ ngắt đến sự ngắt thì cờ của nó gây ra sự ngắt, tự

Ngày đăng: 24/11/2014, 08:40

HÌNH ẢNH LIÊN QUAN

Bảng các chế độ hoạt động của Port nối tiếp - đồ án cơ điện tử thiết kế mô hình cấp phôi tự động
Bảng c ác chế độ hoạt động của Port nối tiếp (Trang 34)
Hình trên minh hoạ 5 nguồn ngắt của 8051, các kỹ xảo cho phép ngắt   riêng và chung, kiểm tra vòng quát liên tiếp và mức ưu tiên - đồ án cơ điện tử thiết kế mô hình cấp phôi tự động
Hình tr ên minh hoạ 5 nguồn ngắt của 8051, các kỹ xảo cho phép ngắt riêng và chung, kiểm tra vòng quát liên tiếp và mức ưu tiên (Trang 38)
2. Sơ đồ động và hệ toạ độ của tay máy - đồ án cơ điện tử thiết kế mô hình cấp phôi tự động
2. Sơ đồ động và hệ toạ độ của tay máy (Trang 46)
BẢNG THÔNG SỐ DENAVIT- HARTENBERRG ( DH) - đồ án cơ điện tử thiết kế mô hình cấp phôi tự động
BẢNG THÔNG SỐ DENAVIT- HARTENBERRG ( DH) (Trang 47)
Hình biểu diễn cách tính n x , n y , n z ; s x , s y , s z ; a x , a y , a z - đồ án cơ điện tử thiết kế mô hình cấp phôi tự động
Hình bi ểu diễn cách tính n x , n y , n z ; s x , s y , s z ; a x , a y , a z (Trang 52)
Sơ đồ chân vào ra của khối điều khiển trung tâm có các thành phần như sau: - đồ án cơ điện tử thiết kế mô hình cấp phôi tự động
Sơ đồ ch ân vào ra của khối điều khiển trung tâm có các thành phần như sau: (Trang 69)
Sơ đồ chân của MAX 232 - đồ án cơ điện tử thiết kế mô hình cấp phôi tự động
Sơ đồ ch ân của MAX 232 (Trang 72)
Sơ đồ mạch khối nối tiếp giữa PC và vi điều khiển. - đồ án cơ điện tử thiết kế mô hình cấp phôi tự động
Sơ đồ m ạch khối nối tiếp giữa PC và vi điều khiển (Trang 73)
Sơ đồ khối - đồ án cơ điện tử thiết kế mô hình cấp phôi tự động
Sơ đồ kh ối (Trang 78)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w