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
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
- 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
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
- SƠ ĐỒ MẠCH KHỐI TRUNG TÂM 65
- 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
II. ĐỀ XUẤT Ý KIẾN 132
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.
PHẦN I: GIỚI THIỆU TỔNG QUAN
CHƯƠNG I
TỔNG QUAN VỀ ROBOT CÔNG NGHIỆP
- 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 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
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ỉ bằng tiền chi phí cho người thợ trong vòng 3 đến 5 năm, tuỳ theo Robot làm 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 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.
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
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 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 sự tinh khôn nhất định.
Vấn đề thiết bị cảm biến được nhiều ngành kỹ thuật quan tâm và cũng đạt được nhiều thành tựu mới trong thời kỳ phát triển sôi động của kỹ thuật vi xử lý. Đó cũng là điều kiện thuận lợi để áp dụng vào kỹ thuật robot nhằm tăng khả năng thông minh của thiết bị.
Những loại hình được quan tâm nhiều trong công nghiệp là các Robot thông minh có các cảm biến nhận biết khoảng cách để tránh các vật cản khi di chuyển, cảm biến nhận biết màu sắc để phân loại, cảm biến lực khi lắp ráp vv… Khi được lắp thêm các modul này thì Robot được gọi với nhiều tên mới, ví dụ robot “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..
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 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.
CHƯƠNG II
GIỚI THIỆU VI ĐIỀU KHIỂN HỌ 8051
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)
- 128 bit RAM
- 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
- 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
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.
- 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 |
P3.2 |
INTO |
Ngắt 0 bên ngoài |
P3.3 |
INT1 |
Ngắt 1 bên ngoài |
P3.4 |
TO |
Ngõ vào của timer/counter 0 |
P3.5 |
T1 |
Ngõ vào của timer/ counter1 |
P3.6 |
WR |
Xung ghi bộ nhớ dữ rliệu ngoài |
P3.7 |
RD |
Xung đọc bộ nhớ dữ liệu 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”.
1.2. Địa chỉ trực tiếp
Trong chế độ này, các thanh ghi bên trong 8051/8031 được đánh địa chỉ trực tiếp bằng 8 bit địa chỉ nằm trong byte thứ hai của mã lệnh.
Dù vậy, trình hợp dịch cho phép gọi các thanh ghi chức năng đặc biệt ( có địa chỉ trực tiếp từ 80H đến FFH) ví dụ: P) cho port0, TMOD cho thanh ghi chế độ timer….
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 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.
2. Các nhóm lệnh của 8051/8031
Tập lệnh của 8051/8031 được chia thành 5 nhóm:
- Số học
- Luận lý
- Chuyển dữ liệ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.
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.
- Nhóm lệnh luận lý
ANL A,Rn (1,1): AND nội dung thanh ghi A với nội dung thanh ghi Rn.
ANL A, data (2,1): AND nội dung thanh ghi A với dữ liệu trực tiếp.
ANL A,@Ri (1,1):AND nôi dung thanh ghi A với dữ liệu gián tiếp trong RAM.
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.
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).
5. Nhóm lệnh truyền dữ liệu
MOV A, R (1,1) Chuyển nội dung thanh ghi R 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, @R (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 R,data (2,2): Chuyển dữ liệu trực tiếp vào thanh ghi R.
MOV R,#data (2,1):.Chuyển dữ liệu tức thời vào thanh ghi R
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, R (2,2):Chuyển nội dung thanh ghi R 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,@R (1,2): Chuyển dữ liệu ngoài (8 bit địa chỉ) vào thanh ghi A.
MOVX A,@DPTR (1,2): Chuyển dữ liệu ngoài (16 bit địa chỉ) vào thanh ghi A.
MOVX @R,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,R (1,1): Trao đổi dữ liệu thanh ghi R 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, @R (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
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 @R,#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 R, rel (2,2): Giảm thanh ghi R 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ầngcá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ự 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.
Timer SFR |
Purpose |
A ddress |
BitAddressable |
TCON |
Control |
89H |
YES |
TMOD |
Mode |
88H |
NO |
TL0 |
Timer 0 low - byte |
8AH |
NO |
TL1 |
Timer 1 low - byte |
8BH |
NO |
TH0 |
Timer 0 high - byte |
8CH |
NO |
TH1 |
Timer l high - byte |
8DH |
NO |
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:
Bit |
Name |
Timer |
Description |
7 |
GATE |
1 |
Khi GATE = 1, Timer chỉ làm việc khi INT = 1 |
6 |
C/T |
1 |
Bit cho biết đếm sự kiện hay giờ |
C/T = 1 : đếm sự kiện |
|||
C/T = 0 : Ghi giờ đều đặn |
|||
5 |
M1 |
1 |
Bit chọn Mode của Timer1 |
4 |
M0 |
1 |
Bit chọn Mode của Timer1 |
3 |
GATE |
0 |
Bit cổng của Timer |
2 |
C/T |
0 |
Bit chọn Count/Timer của Timer0 |
1 |
M1 |
0 |
Bit chọn Mode của Timer0 |
0 |
M0 |
0 |
Bit chọn Mode của Timer0 |
Hai bit M0 và M1 để chọn chế độ hoạt động của 2 Timer
M1 |
M0 |
MODE |
DESCRIPTION |
0 |
0 |
0 |
Mode Timer 13 bit(mode 8048) |
0 |
1 |
1 |
Mode Timer 16 bit |
1 |
0 |
2 |
Mode tự động nạp lại 8 bit |
1 |
1 |
3 |
Mode tách Timer |
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:
TCON |
TF1 |
8FH |
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 |
TCON6 |
TR1 |
8EH |
Bit điều khiển Timer 1 chạy/ dừng |
TCON5 |
TR0 |
8DH |
Cờ báo tràn Timer 0 |
TCON4 |
TR0 |
8CH |
Bit điều khiển Timer 0 chạy/ dừng |
TCON3 |
IE1 |
8BH |
Cờ ngắt ngoài 1( cạnh xuống) |
TCON2 |
IT1 |
8AH |
Chọn kiểu ngắt cho kênh 1 |
TCON1 |
IE0 |
89H |
Cờ ngắt ngoài 0(cạnh xuống) |
TCON0 |
IT0 |
88H |
Chọn kiểu ngắt cho kênh 0 |
4. CÁC MODE VÀ CỜ TRÀN(TIMER MODE AND OVERFLOW)
8051 có 2 Timer là Timer 0 và Timer 1.Ta dùng ký hiệu TL và TH để 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 (TL, TL). 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 TF 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 TH và bit trọng số nhỏ nhất (LSB) là bit không của TL.Bit LSB đổi trạng thái ở tần số clock và được chia cho 216 =65536.
Các thanh ghi Timer TH và TL 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 TLcủa Timer hoạt động như một Timer 8 bit trong khi byte cao THcủ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 THcung được nạp vào TL: 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à THđược khởi động.
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 TH và TL 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 TH và TL.
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. TL/TH, 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.
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 T. 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 TR 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 TR và để kết thúc các Timer ta clr TR. 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 TR 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 INT. Đ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à C/T=0, GATE =0 để cho phép ghi giờ bên trong đồng thời xoá các bit mode của 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 TL/TH thì Timer sẽ bắt đầu từ 0000H và khi tràn từ FFFFH sang 0000H nó sẽ bắt đầu tràn TF rồi tiếp tục đếm từ 0000H lên…
Nếu ta khởi gán giá trị đầu cho TH/TL, 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 TF 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ờ TF và quay vòng lặp khởi gán cho TL /TL để 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, 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 TH, khi set bit TR thì Timer bắt đầu đếm từ giá trị khởi gán và khi tràn từ FFH sang 00H trong TL, cờTR tự động được set đồng thời giá trị khởi gán mà ta khởi gán TH tự động nạp vào TL 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.
- 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).
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:
SCON.7 |
SM0 |
9FH |
Bit 0 của chế độ port nối tiếp |
SCON.6 |
SM1 |
9EH |
Bit 1 của chế độ port nối tiếp |
SCON.5 |
SM2 |
9DH |
Cho phép chế độ nhiều vi xử lý |
SCON.4 |
REN |
9CH |
Cho phép nhận. Lập/xoá mềm |
SCON.3 |
TB8 |
9BH |
Bit thứ 9 trong mode 2và 3. Lập/xoá mềm |
SCON.2 |
RB8 |
9AH |
Bit thứ 9 nhận vào ( tuỳ mode) |
SCON.1 |
TI |
99H |
Cờ ngắt truyền |
SCON.0 |
RI |
98H |
Cờ ngắt nhận |
Bảng các chế độ hoạt động của Port nối tiếp
SMOD |
SM1 |
MODE |
Mô tả |
Tốc độ |
0 |
0 |
0 |
Thanh ghi dịch |
f/12 |
0 |
1 |
1 |
UART 8bit |
Thay đổi |
1 |
0 |
2 |
ỦART 9bit |
f/64 hoặc / 32 |
1 |
1 |
3 |
ART 9bit |
Thay đổi |
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ố |
9600 12.000MHz 1 -7(F9H) 8923 7% 2400 12.000MHz 0 -13(F3H) 2404 0.16% 1200 12.000MHz 0 -26(E6H) 1202 0.16% |
19200 11.059MHz 1 -3(FDH) 19200 9600 11.059MHz 0 -3(FDH) 9600 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 TF đượ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.
.......................
2. Mô tả quá trình test thử
Đầu tiên viết chương trình test thử chỉ sử dụng công tắc hành trình và thử từng động cơ, chưa lắp cảm biến để tránh hư cảm biến. Sau khi test thành công từng động cơ thì mới ghép toàn bộ chương trình lại và thử toàn bộ các động cơ.
Khi thử với cảm biến lúc đầu chưa lắp cảm biến với các cơ cấu truyền động, mà ta thay đổi các thông số của cảm biến bằng tay và hiển thị kết quả lên máy tính xem cảm biến có hoạt động tốt không. Lúc đầu ta cũng chỉ thử từng động cơ, khi đã thử được tất cả các động cơ mới bắt đầu ghép chương trình và thử tất cả các động cơ.
Sau cùng là viết chương trình giao tiếp với máy tính và thử nghiệm.
II. HƯỚNG DẪN SỬ DỤNG
Giải thích bảng điều khiển, và hướng dẫn sử dụng.
Khi cấp nguồn ta phải cấp nguồn cho mạch điều khiển trước sau đó mới cấp nguồn động cơ, nếu không sẽ rất dễ gây hỏng các cơ cấu nhất là các cảm biến gắn với các bộ truyền động.
Nút lệnh HOME dùng để điều khiển tay máy về vị trí HOME. Chú ý khi muốn thay đổi toạ độ các vị trí thì ta phải đưa tay máy về vị trí HOME để xác định toạ độ gốc.
Nút lệnh Start để chạy chương trình.
Nút lệnh Stop dùng để dừng hoạt động của tay máy.
Nút lệnh Exit để thoát chương trình.
Nút lệnh T để nhập thời gian đợi gia công.
Bảng gồm các ô trống để nhập toạ độ của các vị trí mà tay máy cần với tới. Chú ý khi nhập toạ độ của từng vị trí thì ta cần phải nhấn các nút chữ A tương ứng với vị trí phôi, B tương ứng với vị trí bàn máy, C ứng với vị trí thành phẩm, trước khi nhập toạ độ vào và phải nhập theo thứ tự từ trên xuống , z. Sau mỗi lần nhập ta phải ấn nút Enter, sau khi nhập xong ta nhấn nút Start để chạy chương trình.
Bảng điều khiển cũng có các nút lệnh dùng để điều khiển bằng tay. Khi ta nhấn các nút lệnh này thì khớp ứng với ký hiệu được nhấn sẽ hoạt động.
KẾT LUẬN VÀ ĐỀ XUẤT Ý KIẾN
I. LỜI KẾT
Việc thiết kế chế tạo mô hình tay máy 3 bậc tự do về cơ bản hoàn thành theo yêu cầu của đề tài cả về mặt lý thuyết cũng như việc điều khiển cho mô hình hoạt động. Tuy nhiên trong quá trình thực hiện đề tài, do gặp nhiều khó khăn về tài chính và đặc biệt là thời gian, do em phải tìm hiểu về hai ngôn ngữ lập trình assembly, visual basic và kỹ thuật vi xử lý cộng với việc phải chế tạo mô hình thật. Đây là hai lĩnh vực hoàn toàn mới đối với sinh viên chuyên nghành chế tạo máy. Vì vậy em đã gặp rất nhiều khó khăn trong việc tìm hiểu cũng như việc thiết kế chế tạo mô hình. Do còn nhiều hạn chế cả về tài chính, thời gian cũng như khả năng bản thân nên em chưa thực hiện được hết những ý tưởng đặt ra, mà mới tập trung để thực hiện một số vấn đề phục vụ cho đề tài. Em dã cố gắng hoàn thành nhiệm vụ đặt ra là:
- Tính toán phương trình động học tay máy: giải bài toán thuận và bài toán ngược để xác định vị trí cũng như các thông số kích hoạt.
- Tính toán động lực học tay máy: vận tốc và gia tốc.
- Thiết kế mạch điều khiển và viết chương trình điều khiển.
- Viết chương trình giao tiếp với máy tính.
- Chế tạo mô hình thật.
II. ĐỀ XUẤT Ý KIẾN
Do em chưa có điều kiện thực hiện hết ý tưởng đặt ra. Vì vậy em rất kính mong các thầy tạo điều kện cho em xin lại mô hình để em hoàn thiện mô hình như có thêm camera quét vị trí, phân tích hình dạng vật, màu sắc vật
cũng như để phát triển thêm khả năng bản thân.