5. Phương pháp nghiên cứu
2.6 Các cải tiến của 8052
Các vi mạch 8052 (và các phiên bản CMOS) có hai cải tiến so với 8051. Một là có thêm 128 byte RAM trên chip từ địa chỉ 80H-FFH. Điều này không xung đột với các thanh ghi chức năng đặc biệt (có cùng địa chỉ) vì 128 byte Ram thêm vào chỉ có thể truy xuất bằng cách dùng kiểu định địa chỉ gián tiếp.
Ex: MOV A,#100
MOV R0,#0F0H ( Trùng với địa chỉ của thanh ghi B ) MOV A,@R0
Cải tiến thứ hai là có thêm bộ định thời 16 bit Timer 2 2.7. Hoạt động Reset
8051 được reset bằng cách giữ chân RST ở mức cao tối thiểu 2 chu kỳ máy và sau đó chuyển về mức thấp. RST có thể được tác động tay hoặc đựơc tác động khi cấp nguồn bằng cách dùng một mạch RC.
Bảng 2.3 Trạng thái của các thanh ghi sau khi reset
Thanh ghi Nội dung
Bộ đếm chương trình 0000H Thanh chứa A 00H Thanh ghi B 00H PSW 00H SP 07H DPTR 0000H Port 0-3 FFH IP xxx00000B IE 0xx00000B
23 SCON 00H SBUF 00H PCON (HMOS) 0xxxxxxxB PCON (CMOS) 0xxx0000B 2.8 Cấu trúc lệnh 2.8.1 Câu lệnh rẽ nhánh - if: Cấu trúc 1: if(dieu_kien) { // Đoạn chương trình }
Giải thích: nếu dieu_kien đúng thì xử lí các câu lệnh bên trong còn sai thì nhảy qua. Cấu trúc 2: if(dieu_kien) { // Đoạn chương trình 1 } else { // Đoạn chương trình 2 }
Giải thích: nếu dieu_kien đúng thì xử lí “Đoạn chương trình 1” bên trong còn sai thì xử lý “Đoạn chương trình 2”.
2.8.2 Vòng lặp xác định - For:
Cấu trúc: for( x=n ; điều_kiện ; phép_toán )
{
// các câu lệnh xử lí }
24
Giải thích: x là biến, n là giá trị xác định. Trước tiên vòng lặp sẽ gán giá trị ban đầu cho biến: x=n, rồi kiểm tra nếu điều_kiện đúng thì thực hiện các câu lệnh xử lý, sau đó thực hiện Phép_toán nhằm tác động đến điều kiện. Sau đó lại kiểm tra lại điều_kiện, nếu còn đúng thì thực hiện tiếp, nếu sai sẽ thoát khỏi vòng lặp.
Các thành phần trong vòng for có thể không cần khai báo,for sẽ bỏ qua phần đó, nhưng vẫn phải có đủ 2 dấu “;”.
2.8.3 Vòng lặp không xác định - while:
Cấu trúc: while(dieu_kien) {
// các câu lệnh }
Giải thích: Trước tiên chương trình sẽ kiểm tra điều_kiện, nếu đúng thì thực hiện các câu lệnh, sau đó quay lại kiểm tra điều_kiện. Còn nếu điều_kiện sai thì thoát khỏi vòng lặp ngay.
2.8.4 Vòng lặp không xác định - do while: Cấu trúc: do While
{
// các câu lệnh } while(dieu_kien);
Giải thích: Trước tiên đoạn chương trình thực hiện các câu lệnh sau đó kiểm tra điều_kiện nếu đúng thì lặp lại thực hiện các câu lệnh tiếp, nếu sai thì thoát khỏi vòng lặp.
25 Chương 3
THIẾT KẾ VÀ CHẾ TẠO ROBOT 3.1 Thiết kế phần cơ khí
Đối với một robot mặt đế là vô cùng quan trọng trong việc làm phát triển khả năng hoạt động ổn định của robot. Vì vậy yêu cầu cơ bản nhất cho phần đế của robot đó là độ cứng vững và đồng phẳng “tương đối” trên địa hình di chuyển. Tất nhiên không phải địa hình di chuyển nào cũng giống nhau về nhiều yếu tố như độ phẳng, độ ma sát của bánh xe. Đối với robot định hướng này tôi sử dụng một khung đế đơn giản bằng gỗ.
Phần thân robot là một bảng gỗ mỏng, nhẹ với kích thước 22x15cm Phía đuôi robot được lắp hai bánh xe có đường kính 5,4cm tiện bằng nhựa, màu xám, vòng ngoài là cao su mềm màu đen.
Phía đầu robot được lắp một bánh xe dẫn hướng có đường kính 2,4cm bằng sắt, vòng ngoài là cao su cứng. Bánh xe dẫn hướng này có thể quay tròn quanh trục.
Cả ba bánh xe này được lắp sao cho robot được cân đối và đảm bảo độ cân bằng và vững.
Phía mặt trên đầu của robot được gắn một kim la bàn bằng sắt, phía hai bên của kim la bàn là hai thanh nhôm hình trụ. Kim la bàn được nối với mạch điện chính là một dụng cụ cảm biến, có tác dụng nhận biết đường đi của robot là đi thẳng, lệch trái hay lệch phải sau đó đưa tín hiệu về lập trình và định hướng chuyển động cho robot.
Bao quanh kim la bàn là một ống trụ bằng nhôm có tác dụng ngăn từ trường ngoài tác dụng lên kim la bàn. Nhờ có ống trụ này mà có thể hạn chế được từ trường ngoài gây ảnh hưởng đến hoạt động của kim la bàn giúp cho kim la bàn hoạt động được chính xác hơn.
26
Động cơ được sử dụng cho robot là hai động cơ hộp số một chiều loại 5V, trên mỗi giá gắn bánh xe gắn một động cơ hộp số. Hai động cơ hộp số này là như nhau cả về tốc độ và nguồn sử dụng để đảm bảo sự đồng tốc khi robot hoạt động.
Hình 3.1: Bản vẽ cơ khí của robot
3.2 Thiết kế mạch điện cho robot
3.2.1 Mạch nguồn
Sử dụng điện áp 1 chiều từ 9-15V, có thể lấy từ Pin, hoặc Acquy IC7805 –IC ổn áp có chức năng tạo điện áp ra 5V ổn định.
27
Hình 3.2: Sơ đồ mạch nguồn 3.2.2 Mạch dao động
- Sử dụng dao động thạch anh tần số 12Mhz - Mạch dao động được nối như hình vẽ
Hình 3.3: Sơ đồ mạch dao động
3.2.3 Mạch xuất tín hiệu điều khiển rơle:
- Cổng P0.2, và P0.3 có chức năng kích mở Transistor: TIP41 hoặc C2353 cấp điện cho cuộn dây rơ le.
28
Hình 3.4: Sơ đồ mạch xuất tín hiệu điều khiển rơle 3.2.4 Mạch nhận tín hiệu lệch trái lệch phải từ bộ la bàn:
- Sử dụng điện trở thanh treo toàn bộ cổng P0
- Khi có tín hiệu lệch trái, hoặc lệch phải thì tín hiệu được đưa về cổng P0.0 hoặc P0.1 mức điện áp thấp.
Hình 3.5: Sơ đồ mạch nhận tín hiệu từ la bàn 3.2.5 Cơ cấu chấp hành
29
- Các động cơ DC1 và DC2 được kết nối với tiếp điểm của rơ le K1, và K2 ( hình vẽ 3.6 ).
30
3.2.6 Mạch điện tổng quát
Hình 3.7: Sơ đồ mạch điện tổng quát
3.3 Lập trình cho hoạt động của robot Chương trình điều khiển: Chương trình điều khiển:
#include <sfr51.inc> ; Thư viện cho chip 89c51 Khoidong: MOV P0,#0FFH ;Khởi tạo cổng P0
;---DI DUONG---
DI: JNB P0.0,Lechtrai ;Nếu lệch hướng sang trái thì nhảy JNB P0.1,Lechphai ;Nếu lệch hướng sang phải thì nhảy LCALL DITHANG ;Không lệch thì đi thẳng
31
SJMP DI ;Nhảy về nhãn DI để kiểm tra chế độ hoạt động lechphai:LCALL RETRAI ;Gọi chương trình con rẽ trái khi lệch phải SJMP DI ;Nhảy về nhãn DI để kiểm tra chế độ hoạt động
Lechtrai:LCALL REPHAI ;Gọi chương trình con rẽ phải khi lệch trái SJMP DI;---
RETRAI: SETB P0.2 ;Chương trình con rẽ trái CLR P0.3
RET
REPHAI: CLR P0.2 ;Chương trình con rẽ phải SETB P0.3
RET
DITHANG:CLR P0.2 ;Chương trình con đi thẳng CLR P0.3
RET
32 KẾT LUẬN
Sau quá trình tìm hiểu và nghiên cứu thực tế trên mô hình tôi có thể rút ra được một số kết luận như sau:
- Thiết kế và chế tạo được các cơ cấu cơ khí cho ro bot như: Thân, bánh xe, hộp số, bánh dẫn hướng, la bàn xác định phương hướng, vỏ chống nhiễu. Các cơ cấu hoạt động tốt, đạt được những yêu cầu đề ra.
- Thiết kế và chế tạo được các mạch điện cho robot như: mạch nguồn, mạch điều khiển rơle, mạch vi điều khiển… Các mạch điện trên hoạt động tốt theo yêu cầu đặt ra
- Viết chương trình điều khiển bằng Assembly và nạp chương trình điều khiển này cho robot. Robot hoạt động theo đúng chương trình đề ra.
Sau thời gian nghiên cứu, làm việc khẩn trương, nghiêm túc và nỗ lực hết mình, luận văn của tôi đã hoàn thành. Với sự phát triển như vũ bão của ngành khoa học, công nghệ chế tạo robot cũng thay đổi theo từng ngày, do vậy, tôi rất mong nhận được nhiều ý kiến đóng góp từ quý thầy cô và các bạn để luận văn của tôi có nhiều cải tiến mới hơn.
Hà Nội, tháng 05 năm 2013
Sinh viên
33
TÀI LIỆU THAM KHẢO
[1] Automation.net.vn (2011), “Xu thế phát triển robot trên thế giới và tình hình nghiên cứu robot ở Việt Nam hiện nay”,
[2] Doc.edu.vn, “ Đồ án Thiết kế robot tham gia Robocon 2010 của đội TĐH – K4”,
[3] Đỗ Xuân Tiến (2001), Kĩ thuật vi xử lý và lập trình Assembly cho hệ vi xử lý, NXB Khoa học Kĩ thuật.
[4] Nguyễn Mạnh Trường (2002), Giáo trình Robocon, Đại học Bách
khoa Hà Nội.
[5] Nguyễn Bá Hội, Vi điều khiển 8051, Đại học Bách khoa_Đại học
Đà Nẵng
[6] Tiasang.com.vn, “Công nghệ Robot Việt Nam vẫn ở dạng tiềm năng”,
[7] Titans.com.vn, “ Kinh nghiệm làm Robocon”,
[8] Tống Văn On – Hoàng Đức Hải (2008), Họ vi điều khiển 8051,
NXB Lao động – Xã hội.
[9] Văn Thế Minh ( 1997 ), Kĩ thuật vi xử lý, NXB Giáo dục, Hà Nội. [10] WWW.lhu.edu.vn, “Công nghệ dò đường ADC cho robocon 2013”,
MỤC LỤC
MỞ ĐẦU ... 1
1. Lí do chọn đề tài ... 1
2. Mục đích nghiên cứu ... 1
3. Đối tượng, phạm vi nghiên cứu ... 2
4. Nhiệm vụ nghiên cứu ... 2
5. Phương pháp nghiên cứu ... 2
NỘI DUNG ... 3
Chương 1. GIỚI THIỆU VỀ ROBOT VÀ CÁC MODUL CỦA ROBOT ... 3
1.1 Sự hình thành và phát triển của ngành khoa học chế tạo robot ... 3
1.1.1 Sự hình thành và phát triển của ngành khoa học chế tạo robot trên thế giới. ... 3
1.1.2Sự hình thành và phát triển của ngành khoa học chế tạo robot ở Việt Nam ... 4
1.2 Các phần chính của robot. ... 9
1.2.1 Phần cơ khí ... 9
1.2.2 Phần mạch điện ... 9
1.2.3 Phần chương trình điều khiển. ... 9
Chương 2. HỌ VI ĐIỀU KHIỂN 8051 ... 11
2.1 Sự ra đời của họ vi điều khiển 8051. ... 11
2.2 Sơ đồ khối chip 8051 ... 12
2.3 Sơ đồ và chức năng các chân của chip 8051: ... 12
2.3.1 PORT 0 ... 13
2.3.2 PORT 1 ... 14
2.3.3 PORT 2 ... 14
2.3.4 PORT 3 ... 14
2.3.6 ALE ... 15
2.3.7 /EA ... 16
2.3.8 RESET (RST) ... 16
2.3.9 XTAL1, XTAL2 ... 16
2.4. Tổ chức bộ nhớ: ... 16
2.5. Các thanh ghi chức năng đặc biệt (SFR): ... 19
2.5.1 Từ trạng thái chương trình PSW (program status word):... 19
2.5.2 Thanh ghi B ... 20
2.5.3 Con trỏ Stack ... 20
2.5.4 Con trỏ dữ liệu DPTR ... 20
2.5.5 Các thanh ghi Port ... 21
2.5.6 Các thanh ghi định thời ... 21
2.5.7 Các thanh ghi port nối tiếp ... 21
2.5.8 Các thanh ghi ngắt ... 21
2.6 Các cải tiến của 8052 ... 22
2.7. Hoạt động Reset ... 22 2.8 Cấu trúc lệnh ... 23 2.8.1 Câu lệnh rẽ nhánh - if: ... 23 2.8.2 Vòng lặp xác định - For: ... 23 2.8.3 Vòng lặp không xác định - while: ... 24 2.8.4 Vòng lặp không xác định - do while:... 24
Chương 3. THIẾT KẾ VÀ CHẾ TẠO ROBOT ... 25
3.1 Thiết kế phần cơ khí ... 25
3.2 Thiết kế mạch điện cho robot ... 26
3.2.1 Mạch nguồn ... 26
3.2.2 Mạch dao động ... 27
3.2.3 Mạch xuất tín hiệu điều khiển rơle: ... 27
3.2.5 Cơ cấu chấp hành ... 28
3.2.6 Mạch điện tổng quát ... 30
3.3 Lập trình cho hoạt động của robot ... 30
KẾT LUẬN ... 32