MỤC LỤC 
 
 
 CHƯƠNG 1: GIỚI TỔNG QUAN VỀ MỘT SỐ ROBOT TỰ HÀNH HIỆN CÓ TRÊN THẾ GIỚI1 
 
CHƯƠNG II :GIỚI THIỆU VỀ VI XỬ LÝ HỌ MSC-51 3 
 I / Giới thiệu cấu trúc phần cứng họ MSC-51 (8951) 3 
 II/ Sơ đồ chân AT89C51 và chức năng từng chân 3 
 III/ Cấu trúc bên trong vi điều khiển 7 
 IV/ Hoạt động Timer của 8951 14 
 V/ Tổ chức ngắt của c8031/8951 21 
 VI/ Tóm tắt tập lệnh của 8951 30 
 CHƯƠNG III : GIỚI THIỆU CÁC LINH KIỆN SỬ DỤNG TRONG LUẬN VĂN42 
 I/MOSFET42 
 II/ OPTO PC817 44 
 III/ GIỚI THIỆU ENCODER45 
 IV/ CÁC LOẠI CẢM BIẾN QUANG TRONG CÔNG NGHIỆP46 
 V/GIỚI THIỆU LCD48 
 VI.GIỚI THIỆU VỀ ĐỘNG CƠ ĐIỆN MỘT CHIỀU55 
 CHƯƠNG 4: THIẾT KẾ VÀ THI CÔNG MÔ HÌNH58 
 I/GIỚI THIỆU PHẦN CƠ KHÍ59 
 II.GIỚI THIỆU SƠ ĐỒ NGUYÊN LÝ CỦA MẠCH ĐIỆN61 
 
CHƯƠNG 5: THUẬT TOÁN ĐIỀU KHIỄN VÀ TÓM LƯỢC CHƯƠNG TRÌNH 65 
I/THUẬT TOÁN ĐIỀU KHIỄN65 
II/CHƯƠNG TRÌNH HOẠT ĐỘNG70
                
              
                                            
                                
            
 
            
                 94 trang
94 trang | 
Chia sẻ: banmai | Lượt xem: 2174 | Lượt tải: 2 
              
            Bạn đang xem trước 20 trang tài liệu Thiết kế và thi công Robot tìm báu vật, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ong 128 vùng nhớ thấp và 80H - FFH ở các vùng thanh ghi chức năng 
đặc biệt. 
 Bit Carry C trong thanh ghi PSW của từ trạng thái chương trình và được 
dùng như một sự tích lũy đơn của bộ xử lí luận lý. Bit Carry cũng là bit định vị và 
có địa chỉ trực tiếp vì nó nằm trong PSW. Hai lệnh CLR C và CLR CY đều có cùng 
tác dụng là xóa bit cờ Carry nhưng lệnh này mất 1 byte còn lệnh sau mất 2 byte. 
 Hoạt động của các lệnh luận lý được tóm tắt như sau: 
 CLR C : Xóa cờ Carry xuống 0. Có ảnh hưởng cờ Carry. 
 CLR BIT : Xóa bit xuống 0. Không ảnh hưởng cờ Carry 
 SET C : Set cờ Carry lên 1. Có ảnh hưởng cờ Carry. 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang42 
 SET BIT : Set bit lên 1. Không ảnh hưởng cờ Carry. 
 CPL C : Đảo bit cờ Carry. Có ảnh hưởng cờ Carry. 
 CPL BIT : Đảo bit. Không ảnh hưởng cờ Carry. 
 ANL C, BIT : (C) (C) AND (BIT) : Có ảnh hưởng cờ Carry. 
 ANL C, /BIT: (C) (C) AND NOT (BIT):Không ảnh hưởng cờ Carry. 
 ORL C, BIT : (C) (C) OR (BIT) : Tác động cờ Carry. 
 ORL C, /BIT : (C) (C) OR NOT (BIT) : Tác động cờ Carry. 
 MOV C, BIT : (C) (BIT) : Cờ Carry bị tác động. 
 MOV BIT, C : (BIT) (C) : Không ảnh hưởng cờ Carry. 
 Các lệnh xen vào (Miscellamous Intstruction): 
 NOP : Không hoạt động gì cả, chỉ tốn 1 byte và 1 chu kỳ máy. Ta dùng để 
delay những khoảng thời gian nhỏ. 
CHƯƠNG III : GIỚI THIỆU CÁC LINH KIỆN SỬ DỤNG 
TRONG LUẬN VĂN 
I/ MOSFET : 
Mosfet sử dụng trong mạch này là IRF540 và IRF9540 
Mosfet : Ñöôïc ñieàu khieån ñoùng ngaét baèng ñieän aùp, thôøi gian ñoùng ngaét nhanh, 
ñoùng ngaét caùc doøng lôùn. 
+ IRF540: Thuộc loại npn, dòng trung bình định mức 28A, điện áp định mức lớn 
nhất 100v 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang43 
Sơ đồ khối bên trong 
 - Khi VGS >0V , thì IRF540 daãn . 
Các thông số kĩ thuật của IRF540 : 
 VDS đỉnh có thể chịu được là 100V. 
 VDGR đỉnh có thể chịu được là 100V. 
 VGS đỉnh có thể chịu được là V20 . 
 ID đỉnh có thể chịu được là 28A. 
 -Khi ñieän aùp döông ñaët leân giöõa coång G vaø S .taùc duïng cuûa ñieän tröôøng seõ 
keùo caùc electron töø lôùp n vaøo lôùp p ,cho pheùp doøng ñieän daãn töø cöïc D tôùi cöïc S. 
+ IRF9540: loaïi pnp, doøng trung bình ñònh möùc 19A,ñieän aùp ñònh möùc lôùn nhaát 
100V. 
Sơ đồ bên trong 
 - Khi VGS <0V , thì IRF9540 daãn . 
Các thông số kĩ thuật của IRF9540 : 
 VDS đỉnh có thể chịu được là -100V. 
 VDGR đỉnh có thể chịu được là -100V. 
 VGS đỉnh có thể chịu được là V20 . 
 ID đỉnh có thể chịu được là -19A. 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang44 
 -Khi ñieän aùp ñaët leân giöõa coång G vaø S .taùc duïng cuûa ñieän tröôøng seõ keùo caùc 
electron töø lôùp n vaøo lôùp p ,cho pheùp doøng ñieän daãn töø cöïc D tôùi cöïc S. 
II/ OPTO PC817 : 
Opto là loại IC có cấu tạo như 1 tổ hợp Led phát và Phototransistor dùng để 
cách ly tín hiệu vào và ra . 
Sơ đồ khối bên trong 
 Chân 1 và 2 được có chức năng như 1 LED phát khi có tín hiệu sẽ dẫn điện áp 
từ chân 4 sang chân 3. 
Các thông số kĩ thuật của OPTO PC817: 
Ngõ vào : Dòng điện IF để có tín hiệu dẫn là 10 mA. Dòng đỉnh có thể chịu được là 
100mA. Điện áp ngõ vào có thể chịu được là 6V. 
Ngõ ra : Điện áp VCE có thể chịu được là 35V. Dòng điện dẫn IC có thể chịu được 
là 50mA. 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang45 
III/ GIỚI THIỆU ENCODER: 
 * Dạng thiết bị mã hoá theo số gia: 
 Là loại thiết bị mã hoá có dãy xung ra phù hợp với góc của trục quay.thiết bị 
mã hoá này không có xung ra khi trục không làm việc .Cần có một bộ đếm xung ra. 
Thiết bị mã hoá cho biết vị trí của trục quay bằng số xung được đếm .dạng 
thiết bị này có thể xếp vào loại một chiều (chỉ có đầu ra kênh A) là loại chỉ sinh ra 
xung khi trục quay và loại hai chiều (có đầu ra kênh A va B)cũng có thể cho biết 
chiều của trục quay(nghĩa là thuận hay ngược chiều kim đồng hồ ) 
* Bộ mã hoá quay(rotary encoder) 
Để cảm biến góc,hay vị trí người ta hay dùng bộ mã hoá quay. 
Có nhiều loại bộ mã hoá (encoder).Tuỳ theo cách chế tạo đĩa mà ta có ngõ ra 
là mã Gray,BCD,là số xung 500 hay 1000,1500xung/vòng quay 
** ứng dụng : 
Có rất nhiều ứng dụng: định vị sản phẩm trên dây chuyền, định vị vị trí cho xe 
tự động ( đồ án), … 
**Encoder của omron: 
Loại thiết bị mã hoá theo số gia kiểu mới 
+ Phạm vi điện áp làm việc rộng từ 5_24 V một chiều(dạng encoder hở) 
+ Độ phân giải 2000 xung/1vòng quay. 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang46 
+ Pha Z có thể được điều chỉnh dễ dàng bằng việc sử dụng chức năng chỉ thị 
ban đầu. 
+ Cho phép phụ tải lớn 3 kg(29.4 N) theo hướng xuyên tâm và 2 kg(19.4 N) 
theo hướng đè lên. 
+có lắp bảo vệ đảm bảo độ tin cậy khi ngắn mạch tải và đảo chiều. 
IV. CÁC LOẠI CẢM BIẾN QUANG TRONG CÔNG NGHIỆP: 
Với môi trường làm việc trong hóa chất, nhiệt độ cao,… các linh kiện cảm biến 
quang phải đảm bảo đạt các yếu cầu sau: 
 - Có độ bền cơ khí cao, giảm được chấn động, vận tốc quét cao, chống run cơ học, 
… 
- Có độ nhạy cảm cao, giảm tối thiểu được ảnh hưởng của môi trường làm việc,… 
-Thích hợp với nhu cầu và đáp ứng được nhu cầu sử dụng. 
Các hãng sản xuất thiết bị tự động đã đưa ra thị trường các loại cảm biến đạt 
được các yêu cầu nói trên. Đề tài ứng dụng cảm biến quang (Photo Electric 
Sensors) nên chỉ tập trung tìm hiểu về loại cảm biến này. 
* Đặc điểm của loại phản hồi 
a. Nguyên tắc hoạt động: 
Mỗi vật chất đều có tính chất hấp thụ (vật đen) hay phản xạ (gương) năng lượng 
từ ngoài tác động vào. Tùy theo mức độ phản xạ của vật thể khi nhận một chùm 
tia tới chiếu đến mà chùm tia phản xạ có thể là mạnh hay yếu. Cảm biến quang 
dựa theo nguyên tắc phản hồi chính là dựa trên nguyên tắc phản xạ của chùm tia 
phản xạ. 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang47 
b. Các thông số tiêu chuẩn: 
Hình dạng: hình trụ hay khối chữ nhật. 
Tầm cảm nhận : 1,570mm. 
Đầu vào : 2 đầu dây, 12VDC hay 24VDC. 
Đầu ra : 1 đầu dây tín hiệu. 
Tần số chuyển : 1,5200Hz. 
Theo tài liệu của hãng “PEPPERL+FUCHS” về cường độ phản xạ 
tia hồng ngoại trên các gam màu và vật chất ta có bảng sau: 
Hình 06: Sơ đồ nguyên 
lý hoạt động của bộ thu 
phát loại phản hồi 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang48 
Vật chất Phản xạ Từ nguyên bản 
Trắng tiêu chuẩn 90% Testcard standard white 
Xám tiêu chuẩn 18% Testcard standard grey 
Giấy trắng 80% White paper 
Chữ in trên báo 55% News print 
Gỗ thông sạch 75% Clean pine wood 
Nút bần 35% Cork 
Tấm bảng gỗ sạch 20% Wooden pallets clean 
Bọt bia 70% Beer foam 
Chai nhựa trong 40% Clear plastic bottes 
Chai nhựa nâu trong 60% Transparent brown plastic bottles 
Nhựa trắng đục 87% Opaque white plastic 
Nhựa đen 14% Black plastic 
Đen tuyền 04% Black neoprene 
Gáy xoắn đen 02% Black foam carpet backing 
Lốp xe hơi 1.5% Automobile tyres 
Nhôm nguyên chất 140% Aluminium, untreated 
Thép bóng láng 400% Polished stainless steel 
V. GIỚI THIỆU LCD 
 Để có được hiển thị tiết kiệm năng lượng và linh hoạt hơn, người ta sử dụng 
bộ hiển thị LCD. Có nhiều loại LCD, trong số đó thông dụng là hiển thị 162 và 
20 2 ( có nghĩa là 2 hàng với 16 ký tự trên một hàng và 2 hàng với 20 ký tự trên 
một hàng ). 
 Người ta đã thiết lập chuẩn để cho phép ta có thể giao tiếp với các hãng LCD 
bất chấp hãng sản xuất với điều kiện là các LCD có sử dụng cùng IC điều khiển 
HD44780. 
2. Hình dáng và kích thước của LCD: 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang49 
 Các LCD được chế tạo từ các hãng như Densitrn, Epson, Hewlett Packard, 
Optrex, Sharp,… Với các cấu hình thông dụng là 16, 20, 24, 32, hay 40 ký tự trên 
một hàng với màn hình hiển thị 1,2 hay 4 hàng. Thí dụ 202, 404 …. 
 Có loại LCD hiển thị theo ký tự hay đồ hoạ, các mạch lái trong các module LCD 
là các chip điều khiển, thí dụ Hitachi HD44780. 
3. Một vài LCD thông dụng : 
Hình 3.16 
3. Chiếu sáng trong bộ hiển thị LCD: 
 Người ta sử dụng các kiểu sau : 
 + Backlit ( back lighting ), sử dụng neon chiếu sáng sau bộ hiển thị thay vì 
dùng ánh sáng phản xạ. 
 + CfL( Cold Cathode Flourescent Lamp = Đèn huỳng quang cathod lạnh). 
Một loại đèn huỳnh quang đặc biệt để chiếu sáng phía trong các hiển thị LCD hiện 
đại, đặc biệt trong các mảng đồ hoại lớn như dùng trong các laptop. Chúng cho 
chiếu sáng rất tốt với dòng điện thấp. Được cấp điện bởi nguồn AC cao áp và cao 
tần (200-1000V ở tần số 25-75kHz), các yêu cầu về điện của chúng nghiêm ngặt và 
phải chính xác khớp với inverter thích hợp do nhà sản xuất đề nghị. Thí dụ mức do 
backlit CFL của Stanley 20 character2 line : 230V, 2,5mA, 65KHz 
4. Sơ đồ chân và chức năng : 
 Sơ đồ chân : 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang50 
Hình 3.17 : Sơ đồ chân 
 Mô tả các chân : 
Thứ tự 
chân 
Kí hiệu Mức 
logic 
Vào / 
Ra 
Chức 
năng 
1 Vss - - GND 
2 Vcc - - 5V 
3 Vee - - Điều 
chỉnh độ sáng 
4 RS 0/1 Vào 0 = Tín 
hiệu chỉ dẫn 
1=Dữ 
liệu vào 
5 R / W 0/1 Vào 0 = Ghi 
vào LCD 
1 = 
Đọc từ LCD 
6 E 1,1 ---
>0 
Vào Tín hiệu 
cho phép 
7 DB0 0/1 Vào /Ra Đường 
dữ liệu 0 
8 DB1 0/1 Vào / 
Ra 
Đường 
dữ liệu1 
9 DB2 0/1 Vào / 
Ra 
 Đường 
dữ liệu 2 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang51 
10 DB3 0/1 Vào / 
Ra 
 Đường 
dữ liệu 3 
11 DB4 0/1 Vào / 
Ra 
 Đường 
dữ liệu 4 
12 DB5 0/1 Vào / 
Ra 
 Đường 
dữ liệu 5 
13 DB6 0/1 Vào / 
Ra 
 Đường 
dữ liệu 6 
14 DB7 0/1 Vào / 
Ra 
 Đường 
dữ liệu 7 
 Mặc dù theo sổ tay kỹ thuật LCD thì cấp nguồn cho nó là 5VDC ( chỉ 
khoảng vài mA ) nhưng cung cấp cho nó 6VDC hay 4,5 VDC thì nó cũng hoạt động 
tốt và ngay cả với 3VDC cũng đủ cho một số module. Kết quả là các module LCD 
tiêu thụ năng lượng ít. 
 Chân 3 là chân điều khiển Vee dùng để thay đổi độ tương phản của màn hình 
hiển thị. Lý tưởng thì chân này nên nối với nguồn điện áp thay đổi được, người ta 
thực hiện bằng cách gắn mạch chia áp dùng biến trở có đầu ra thay đổi đưa và chân 
này, tuy nhiên nên chú ý là một số module cần nguồn điện DC_7 VDC. Đơn giản 
nhất là người ta nối chân này với nguồn 0V (xuống đất ). 
 Chân 4 là đường RS (register select = chọn thanh ghi ) đây là một trong 3 
ngõ vào điều khiển lệnh. Khi chân này để mức thấp thì các dữ liệu được truyền đến 
LCD được xử lý như các mệnh lệnh và các dữ liệu độc ra chỉ trạng thái của nó. 
Bằng cách đưa đường RS này lên mức cao thì dữ liệu ký tự có thể xuất/ nhập trên 
module này. 
 Chân 5 là đường R/W (read/write). Chân này được kéo xuống mức thấp để 
ghi các lệnh hay dữ liệu ký tự vào module hoặc được kéo lên mức cao để đọc dữ 
liệu ký tự hay thông tin trạng thái từ các thanh ghi của nó. 
 Chân 6 là đường E (enable) ngõ vào này dùng để khởi động việc chuyển các 
lệnh hay dữ liệu Khi ghi ra màn hình hiển thị LCD, dữ liệu chỉ được chuyển khi có 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang52 
tín hiệu xuống ở cạnh E này. Tuy nhiên khi độc ra từ LCD thì dữ liệu khã dụng sau 
khi có chuyển tiếp từ thấp lên cao và duy trì dữ liệu khã dụng cho đến khi dữ liệu 
xuống thấp một lần nữa. 
 Các chân 7 đến 14 là 8 đường bus dữ liệu (DO đến D7). Dữ liệu có thể được 
chuyển đến và lấy ra khỏi bộ hiển thị LCD theo dạng một byte 8 bit hay dạng 2 nữa 
byte 4 bit (nibble). Trong trường hợp sau có 4 đường dữ liệu trên được sử dụng ( 4 
bit cao: D4 đến D7. Chế độ 4 bít này thuận tiện khi xử lý, cần có ít đường xuất/nhập 
hơn. 
Tóm tắt tập lệnh điều khiển LCD: 
ommand 
(Lệnh) 
RS RW NHỊ PHÂN HEX 
D7 D6 D5 D4 D3 D2 D1 D0 
NOP 
(No operation = 
không làm gì cả) 
0 0 0 0 0 0 0 0 0 0 00 
Clear display 
(xoá hiển thị ) 
0 0 0 0 0 0 0 0 0 1 01 
Display&Cursor 
home (hiển thị 
và đặt cursor ở 
vị trí góc trái 
phía trên ). 
0 0 0 0 0 0 0 0 1 X 02 
hoặc 
03 
Character Entry 
mode (chế độ 
nhập ký tự ). 
0 0 0 0 0 0 0 1 I/D S 04 
đến 
07 
Display 
ON/Off& 
Cursor (hiển thị 
tắt mở và cursor 
). 
0 0 0 0 0 0 1 D U B 08 
đến 
0F 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang53 
Display / Cursor 
Shift(dịch hiển 
thị / cursor ). 
0 0 0 0 0 1 D/C R/L X X 10 
đến 
1F 
Funtion set( đặt 
chúc năng ). 
0 0 0 0 1 8/4 2/1 10/7 X X 20 
đến 
3F 
Set CGRAM 
address ( đặt địa 
chỉ CGRAM ). 
0 0 0 1 A A A A A A 40 
đến 
7F 
Set DDRAM 
address ( đặt địa 
chỉ DDRAM ). 
0 0 1 A A A A A A A 80 
đến 
FF 
Busy Flag & 
Addr(cờ bận và 
bộ đếm địa chỉ ). 
0 1 BF Bộ đếm địa chỉ 
Read Data ( đọc 
dữ liệu từ 
CGRAM hoặc 
DDRAM ). 
1 0 Dữ liệu đọc 
Write Data ( ghi 
dữ liệu vào 
CGRAM hoặc 
DDRAM ) 
1 1 Dữ liệu ghi 
Chú thích : 
Tên bit Thiết lập 
I/D 1 = increment 0= decrement 
S 1 = display shift on 0 = display shift off 
D 1= display on 0 = display off 
U 1= cursor underline on 0 = underline off 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang54 
B 1 = cursor blink on 0 = cursor blink off 
D/C 1= display shift 0 = cursor move 
R/L 1 = right shift 0 = left shift 
8/4 1 = 8 bit interface 0 = 4 bit interface 
2/1 1= chế độ 2 hàng 0 = chế độ 1 hàng 
10/7 1 = 5* 10 dot format 0 = 5*7 dot format 
CGRAM = character gernerator RAM 
DDRAM = display data RAM 
X : don’t care 
Bảng ký tự chuẩn LCD : 
Hoạt động : 
 LCD HD 44780 cần 3 đường điều khiển cũng như 4 hay 8 ngõ vào ra cho 
dữ liệu. Nếu sử dụng giao tiếp 4 bit thì cần 7 đường ( 3 đường điều khiển và 4 
đường giao tiếp ), nếu sử dụng giao tiếp 8 bit thì cần 11 đường ( 3 đường điều khiển 
và 8 đường giao tiếp ). 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang55 
 Ba đường điều khiển là : 
 EN : Để gởi data đến LCD thì trước hết phải đưa bước này lên 
mức cao.Sau 
đó đưa 2 bit điều khiển còn lại là RS và RW lên mức cao rồi nhận dữ liệu 
từ data bus. Sau đó lại đưa EN về lại mức thấp. Sự chuyển trạng thái từ 0 
sang 1 để yêu cầu LCD xem data trên data bus giống như một lệnh yêu 
cầu . 
 RS : Khi RS ở mức thấp thì data xem như một lệnh yêu cầu hay 
một chỉ dẫn 
đặc biệt ( chẳng hạn như clear display hay cursor position …). Khi RS ở 
mức cao thì data trên data bus chính là data được hiển thị trên màn hình. 
 RW : Là đường điều khiển đọc hay ghi data. Khi RW = 0 thì data 
đang được đọc từ data bus. Khi RS ở mức 1 thì chương trình đang xềp 
hàng hay đang đọc. Vì vậy chỉ có một trường hợp duy nhất RW = 1 là khi 
lệnh chỉ dẫn là đọc một lệnh ( cho biết trạng thái của LCD ), còn lại tất 
các trường hợp khác thì RS luôn ở mức thấp 
 Có thể hiển thị kí tự tên LCD bằng 1 dòng , 2 dòng hay 4 dòng. Trong phạm 
vi đồ án này sử dụng LCD hiển thị kí tự trên 2 dòng và mỗi dòng 16 kí tự. 
VI.GIỚI THIỆU VỀ ĐỘNG CƠ ĐIỆN MỘT CHIỀU. 
Trong thời đại ngày nay, hầu hết các dây chuyền sản xuất đang dần dần được tự 
động hóa bằng cách áp dụng các kỹ thuật tiên tiến của khoa học kỹ thuật. Tuy 
thế, động cơ điện một chiều vẫn được coi là một loại máy quan trọng. Nó có đặc 
tính điều chỉnh tốc độ rất tốt, vì vậy máy được dùng nhiều trong các nghành 
công nghiệp có yêu cầu cao về điều chỉnh tốc độ như cán thép, hầm mỏ, giao 
thông vận tải… 
1.Cấu tạo : 
 Động cơ điện một chiều gồm hai phần : Phần tĩnh (stator) và phần quay 
(rotor). 
 Phần tĩnh là phần đứng yên của máy. Nó thường bao gồm các bộ phận sau 
: 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang56 
– Cực từ chính : là bộ phận sinh ra từ trường chính trong vỏ máy, gồm có 
lõi sắt cực từ và dây quấn kích từ lồng ngoài lõi sắt cực từ. Lõi sắt cực từ 
làm bằng những lá thép kỹ thuật điện hay thép cacbon dày 0,5  1 mm ép 
chặt lại với nhau. 
– Cực từ phụ : được đặt giữa các cực từ chính và dùng để cải thiện đổi chiều 
giúp cho máy điện làm việc không có tia lửa xảy ra giữa chổi điện và 
vành đổi chiều. Lõi thép cực từ cực từ phụ thường làm bằng thép khối và 
trên thân cực từ phụ có đặt dây quấn. 
– Gông từ : dùng để làm mạch từ nối liền các cực từ, đồng thời làm vỏ máy. 
– Các bộ phận khác như Nắp máy để bảo vệ, Cơ cấu chổi than. 
Phần quay gồm có những bộ phận sau : 
– Lõi sắt phần ứng : dùng để dẫn từ, thường dùng những tấm thép kỹ thuật 
điện dày 0,5 mm được phủ lớp cách điện và ghép chặt lại với nhau. 
– Dây quấn phần ứng : là phần sinh ra sức điện động và có dòng điện chạy 
qua. Dây quấn được cách điện cẩn thận với rãnh của lõi thép. 
– Các bộ phận khác như cánh quạt dùng để quạt gió làm nguội máy, trục 
máy để đặt lõi sắt phần ứng, cổ góp, cánh quạt và ổ bi. 
2.Nguyên lý làm việc của động cơ điện một chiều : 
 Động cơ điện một chiều là một thiết bị biến đổi năng lượng của dòng một chiều 
thành cơ năng. Trong quá trình biến đổi đó, một phần năng lượng của dòng xoay 
chiều bị tiêu tán do các tổn thất trong mạch phần ứng và trong mạch kích thích. 
Phần còn lại là năng lượng được biến đổi thành cơ năng trên trục động cơ. 
 Khi cho dòng điện một chiều chạy vào dây quấn kích thích và dây quấn 
phần ứng sẽ sinh ra từ trường ở phần tĩnh. Từ trường này tác dụng tương hỗ lên 
dòng điện trong dây quấn phần ứng tạo ra momen tác dụng lên rotor và làm 
rotor quay. Nhờ có vành đổi chiều nên dòng điện một chiều được chỉnh lưu 
thành dòng xoay chiều đưa vào dây quấn phần ứng. Điều này làm lực từ tác 
dụng lên thanh dẫn dây quấn phần ứng không bị đổi chiều và làm động cơ quay 
theo một hướng. 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang57 
 Công suất ứng với momen điện từ đưa ra đối với động cơ gọi là công suất điện 
từ và bằng : Pđt = M = EưIư 
Trong đó : M : momen điện từ. 
60
2 n
  : tốc độ góc phần ứng. 
 Iư : dòng điện phần ứng. 
 Eư : suất điện động phần ứng. 
3.Đặc điểm: 
-Nguồn điện áp cung cấp cho động cơ DC từ 5  24V (tuỳ theo loại 
động cơ) 
 -Tốc độ thay đổi vô cấp (v/p). 
 -Cókhả năng mang tải ngay khi cấp nguồn điện. 
 * Phương pháp điều khiển động cơ. 
- Dùng điện áp DC 5 24V. 
- Cấp nguồn đúng chiều theo yêu cầu. 
- Thay đổi chiều quay bằng cách hoán vị các cực . 
 - + + - 
 + - 
 - + 
 Hình 3.5 : Phương pháp đảo chiều quay động cơ 
Để làm được công việc trên , ở mạch điều khiển ta trang bị các cầu dao đảo 
hoặc rơle điện từ . 
Dựa theo nguyên lý trên khi ứng dụng lắp ráp ROBOT thì những chuyển 
động đảo chiều đó sẽ đảo chiều được hành trình chuyển động của các khâu. 
* Nguyên lý hãm ngược 
+ Đối với động cơ một chiều thì công việc hãm ngược đơn giản hơn, giả sử 
động cơ chạy theo chiều nào đó, có thể cùng chiều hoặc ngược chiều kim đồng hồ. 
+ Khi ngưng cấp nguồn đồng thời đưa nguồn điện khác ngược chiều với 
nguồn đang hoạt động lập tức động cơ sẽ bị hãm cưỡng bức, lúc ấy lực từ sẽ có 
M M 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang58 
chiều ngược lại và ta điều chỉnh thời gian sao cho động cơ dừng hẳn thì thôi cấp 
nguồn. 
CHƯƠNG 4: THIẾT KẾ VÀ THI CÔNG MÔ HÌNH. 
Mô hình thiết kế của xe ROBOT gắp vật. 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang59 
Mô hình thực của xe ROBOT gắp vật. 
I.Giới thiệu phần cơ khí: 
 + Thân ROBOT được làm từ các thanh nhôm, liên kết với nhau qua một tấm đế 
bằng Meca dày và được kết chặt bởi các ốc vít. Kích thước của thân xe là 2.2x3.2 
cm. 
 + Trên xe được trang 4 động cơ DC, mỗi động cơ đều có lắp kèm theo hộp số 
nhằm tăng moment và giảm tốc độ quay. 
 + Tất cả 4 động cơ đều được cấp nguồn 12V 
+ Hai động cơ DC chính được vặn chặt với khung nhôm và liên kết chặt với hai 
bánh lái. 
- Phía trước đầu xe là cánh tay làm bằng các thanh nhôm liên kết lại dùng để gắp 
vật, cánh được sử dụng 2 động cơ; một động cơ là dùng gắp và một động cơ là 
dùng để nâng tay lên và hạ tay xuống khi gắp vật. 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang60 
- Tất cả các các động cơ này đều được điều khiễn bởi mạch công suất ( mạch 
cầu sử dụng MOSFET), mạch này có thể thay đổi chiều quay của động cơ một cách 
dễ dàng thông qua mạch Vi Xử Lý. 
 + Phía trước khung xe đặt một bánh nhỏ có thể quay tự do. 
+ Tỷ lệ truyền động giữa motor và bánh xe là: 3:1. 
+ Khoảng cách bánh trái và phải là 24cm. 
+ Đường kính bánh:10cm 
+ Chu vi bánh: 31cm 
- Xe chạy thẳng: hai bánh lái cùng quay . 
- Xe quay trái: bánh lái phải quay tới đồng thời bánh lái trái quay lui với số 
vòng tương ứng. 
- Xe quay phải: bánh lái trái quay tới, bánh lái phải quay lùi với số vòng tương 
ứng 
- Xe dừng: cả hai bánh lái cùng dừng. 
- Phía sau đuôi có gắn thêm 2 encoder dùng để đếm số xung khi cần xác định 
chính sát quảng đường bánh xe dịch chuyển. 
- Cảm biến quang được bố trí như mô hình thực dùng để đọc các tín hiệu phản 
hồi khi có vật cản. 
+ Cảm biến phía trước có tác dụng phát hiện khi có chướng ngại vật phía trước 
đồng phát hiện khi gặp báu vật. 
+ Hai cảm biến bên hông là trái và phải dùng để quan sát chướng ngại vật hai 
bên trước khi xe quay một góc 900 vì có vật cản phía trước. 
*Quan hệ giữa động cơ bánh xe và động cơ trên cánh tay gắp với Vi Xử Lý: 
+ Bánh trái quay tới: P0.0 = 0 
 P0.1 = 1 
+ Bánh trái quay lùi: P0.0 = 1 
 P0.1 = 0 
+ Bánh phải quay tới: P0.2 = 1 
 P0.3 = 0 
+ Bánh phải quay lùi: P0.2 = 0 
 P0.3 = 1 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang61 
+ Cánh tay nâng lên: P0.4 = 0 
 P0.5 = 1 
+ Cánh tay hạ xuống: P0.4 = 1 
 P0.5 = 0 
+ Cánh tay đóng lại: P0.6 = 0 
 P0.7 = 1 
+ Cánh tay mở ra: P0.6 =1 
 P0.7 = 0 
 Từ mô hình xe và mạch. ta có thể cho xe chay tới, lùi, quay trái, phải. 
Muốn cho xe tới hay lùi bao nhiêu ,ta chỉ cần tính số xung . 
 + N = 
C
S số vòng bánh xe :S = chiều dài đoạn đường,C = chu vi bánh 
xe. 
 + n = N*
3
10 = số vòng quay của motor. 
 + Số xung = n * 360 . 
 * Ví Dụ: 
 Xe quay phải 90 độ: lúc này bánh trái quay, bánh phải dừng . 
 Bánh trái sẽ quay đoạn đường bằng ¼ vòng tròn có bán kính là khoảng 
cách giửa 2 bánh xe. 
 S = 2*24*3.14*1/4 38cm 
 - Số vòng quay của bánh trái : 38/31 = 1.2 
 - Số vòng quay của motor: 1.2*10/3 
 - Số xung = 360*1.2*10/3 =1440 xung. 
II.Giới thiệu sơ đồ nguyên lý của mạch điện: 
1.Mạch xử lý chính: 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang62 
D7
control 7
J9
UP_SENSOR
1
2
3 GND
C1
33p
+ C5
100uF
DOWN
control 8
C
R17 10K*8
1 2
3
4
5
6
7
8
9
Y1 12Mhz
control 3
SENSOR 4 SENSOR 6
START/STOP
RW_16X2
RST
GND
C2
33p
D3
control 2
control 7
control 8
JP2
HEADER 8
1
2
3
4
5
6
7
8
D0
control 3
SENSOR 6
OK
MENU
GND
control 6
R19
8.2K
J7 ENCODER 2
1
2
3
SW HT 1
J10
LEFT_SENSOR
1
2
3
GND
OK VEE
VCC
control 6
VCC
J5
DOWN_SENSOR
1
2
3
RW_16X2
START/STOP
E_16X2
C6
104
SW HT 1
GND
control 1
D1
VEE
SW4 UP
1 2
GND
J6 RIGHT_SENSOR
1
2
3
D7
control 4
J12
FONT_SENSOR
1
2
3
C9
104
control 4
MENU
SENSOR 3
VCC
+C3
10uF
VCC
SENSOR 3
UP
GND
D1
D5
SENSOR 4
control 3
control 4
SW HT 2 SENSOR 5
D5
GND
GND
RST
D6
D4
RS_16X2
U12
LM7805 / TO220
1 3
2
IN OUT
G
N
D
D2
VCC
control 5
D0
C11
104
VCC
+ C4
4700uF
SW1 START/STOP
1 2
- +
D1
1A
2
1
3
4
control 5
control 8
D2
control 5
GNDGND
C7
104
U6 LCD
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Gnd
Vcc
Vee
RS
R/W
E
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
SENSOR 5
E_16X2
SW HT 2
GND
control 1
J11
ENCODER1
1
2
3
SENSOR 1
R18
10K
1
3
2
UP
VCC
SENSOR 1
SW5 DOWN
1 2
VCC
D3
GND
control 7
D6
control 2 SW2 MENU
1 2
VCC
control 6
J8 SENSOR 1
1
2
3
C10
104
U1
AT89C51
31
19
18
9
12
13
14
15
1
2
3
4
5
6
7
8
39
38
37
36
35
34
33
32
21
22
23
24
25
26
27
28
17
16
29
30
11
10
EA/VP
X1
X2
RESET
INT0
INT1
T0
T1
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
RD
WR
PSEN
ALE/P
TXD
RXD
SENSOR 2
GND
SW3 OK
1 2
DOWN
VCC
GND
D4
VCC
SENSOR 2
control 2
JP1
12VAC
1
2
VCC
RS_16X2
control 1
C8
104
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang63 
2.Khối mạch công suất điều khiễn 4 động cơ: 
12V
K4
R3
220
R16
1k
VCC
K2 K3
GND
U2
Q P621
1
2 3
4
Q5540
1
2
3
Q8
540
1
2
3
A -+
MG1
DC TRAI
1 2
K5
Q16
540 1
2
3
R5
220
Q2
9540
1
2
3
12V VCC
12V
GND
DONG CO PHAI
GND
Q6
540
1
2
3
12V
control 4
R9
220
U7
Q P621
1
2 3
4
R13
220
R7
220
GND
12V
A -+
MG4
DC GAP
1 2
Q13
540
1
2
3
control 2
U10
Q P621
1
23
4
DONG CO KEO
k7
Q1
9540
1
2
3
GND
12V
12V
R12
1k
Q7
5401
2
3
VCC
R11
220
R10
1k
Q10
9540
1
2
3
R15
220
control 8
GNDcontrol 1
Q3
9540
1
2
3
U9
Q P621
1
2 3
4
control 3
K4
12V
Q11
9540
1
2
3
U8
Q P621
1
23
4
DONG CO GAP
R2
1k
Q4
9540
1
2
3
A -+
MG3
DC NANG
1 2
k5
12V
DONG CO TRAI
VCC12V
K2K1
R14
1k
R8
1k
Q12
9540
1
2
3
Q15
5401
2
3
control 6
U3
Q P621
1
23
4
K8
GND
VCC
12V
A -+
MG2
DC PHAI
1 2
GND
R4
1k
R1
220
Q14
540
1
2
3
U4
Q P621
1
2 3
4
K6
R6
1k
K3
U5
Q P621
1
23
4
Q9
9540
1
2
3
12V
VCC
K7K6
K1
VCC VCC
control 5 control 7
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang64 
3.Khối mạch cách ly dùng cho cảm biến quang: 
OUT 2
OUT 4
R?
1k
R?
10k
J?
HEADER 3
1
2
3
12V
5V
U?
Q P621
1
2 3
4
5V
OUT 1
A
0 1Friday , June 09, 2006
Title
Size Document Number Rev
Date: Sheet of
OUT 1
R?
1k
J?
HEADER 6
1
2
3
4
5
6
12V
12V
R?
10k
J?
12V
1
2
12V
OUT 2
J?
HEADER 3
1
2
3
5V12V
J?
HEADER 3
1
2
3
5V
OUT 3
J?
HEADER 3
1
2
3
R?
1k
R?
10k
U?
Q P621
1
2 3
4
R?
1k
U?
Q P621
1
2 3
4
5V
C?
104
OUT 4
R?
10k
U?
Q P621
1
2 3
4
OUT 3
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang65 
Chương 5: Thuật toán điều khiễn và tóm lược chương trình 
Bắt đầu 
Xoá Ram 
Thiết lập Timer 
Thiết lập LCD 
Hiển thi chuổi “RoBot 
dò đường gắp vật” 
Delay 1S 
Gọi chương trình nhập 
đích tới 
Cho mặc định hướng ban 
đầu RoBot là “N” 
Chờ phím 
Start 
Gọi chương trình 
dò đường 
1 
N 
Nhập đích tới địa 
chỉ 1x1 
Gọi chương trình 
tìm đường 
Nhập đích 
tới 0,0 
Ret 
1 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang66 
2 
Cảm biến 
trái=1 
1 
Cảm biến 
trước=1 
Ghi lên LCD 
chữ F 
Ghi lên LCD 
chữ L 
Cảm biến 
phải=1 
Ghi lên LCD 
chữ R 
Cảm biến 
trước=1 
cảm biến trái=1 
3 
4 
N 
Y 
N 
Y 
Y 
y 
N 
Y 
Y 
Y 
N 
N 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang67 
Cảm biến 
phải=1 
4 
2 
Robot chạy lùi 1 ô 
1 
Y 
3 
1 
Cảm biến 
trái=1 
Cảm biến 
phải=1 
Cảm biến 
trước=1 
Cảm biến 
trước=1 
Robot xoay phải Robot xoay trái 
Robot chạy tới 
1 
1 
5 
Y 
N 
Y 
N 
N N 
Robot chạy tới 
Đích tới x =giá 
trị định vị x 
5 
6 
7 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang68 
7 
Hướng W Hướng E 
Gọi chương trình tính 
toán cho y 
Gọi chương trình tính 
toán cho x 
Đích tới y = giá 
trị định vị y 
Bit _finish_x = 1 
6 
Bit _finish_y = 1 
Ret 
Chương trình tính 
toán cho x,y 
8 9 
Y 
N 
Y 
N 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang69 
Tham chiếu y = S 
Robot quay phải 
Tham chiếu x= S 
Robot quay trái 
Ret 
Robot quay trái 
Robot quay phải 
Ret 
8 9 
Y 
N 
Y 
N 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang70 
II.CHƯƠNG TRÌNH HOẠT ĐỘNG 
DATABUS EQU P1 
count_lcd equ 30h 
bit_motor1 bit p0.0 
bit_motor2 bit p0.1 
bit_motor3 bit p0.3 
bit_motor4 bit p0.2 
bit_motor5 bit p0.4 
bit_motor6 bit p0.5 
bit_motor7 bit p0.6 
bit_motor8 bit p0.7 
EN BIT P2.1 
RW BIT P2.0 
RS BIT P2.2 
save_dh equ 31h 
save_dl equ 32h 
count_encoder equ 33h 
encoder_1 equ 34h 
encoder_2 equ 35h 
encoder_3 equ 36h 
encoder_4 equ 37h 
save_encoder equ 38h 
save_encoder_1 equ 39h 
save_encoder_2 equ 3Ah 
save_encoder_3 equ 3Bh 
save_encoder_4 equ 3Ch 
temp_EWNS equ 3Dh 
Process_run equ 3Eh 
matrix_x equ 3Fh 
matrix_y equ 40h 
local_x equ 41h 
local_y equ 42h 
prefer_x equ 43h 
prefer_y equ 44h 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang71 
tagret_x equ 45h 
tagret_y equ 46h 
compass equ 47h 
font_sensor bit p3.7 
left_sensor bit p3.6 
right_sensor bit p3.4 
down_sensor bit p3.1 
up_sensor bit p3.3 
key_menu bit p2.4 
key_up bit p2.7 
key_down bit p2.6 
key_ok bit p2.5 
key_start bit p2.3 
mode_set equ 48h 
temp_a equ 49h 
bit_finish_x bit 11 
bit_finish_y bit 12 
sensor_line bit 13 
bit_run bit 14 
bit_keypress bit 15 
ORG 0000H 
 ljmp main 
org 0003h ; ngat ngoai 0 tac dong encoder 
 ljmp up_encoder 
org 0013h 
org 001Bh 
org 0030h 
main: 
 lcall reset_ram 
 setb EX0 ; cho phep ngat ngoai 0 
 setb IT0 ; cho phep ngat canh xuong 
 Mov Tmod,#01h 
 Lcall INIT_LCD 
 mov count_lcd,#00h 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang72 
 mov dptr,#sample_text 
 lcall write_string_lcd 
 lcall delay1s 
 Lcall CLEAR_LCD 
 setb bit_keypress 
 point_display_encoder: 
 lcall sub_set_tagret 
 mov save_encoder,#0FFh 
 setb EA 
 lcall display_encoder 
 mov compass,#'N' 
 jb key_start,$ 
 lcall delay_key 
 ;lcall process_intelligent_y_finish_x 
 lcall Thinking_run_find_object 
 rot_display_information: 
 lcall drag_object 
 mov tagret_x,#00 
 mov tagret_y,#00 
 lcall Thinking_run_find_object 
 lcall drag_object 
 ljmp point_display_encoder 
Thinking_run_find_object: 
 lcall display_information 
 jb font_sensor,check_left_sensor 
 mov a,#'F' 
 lcall write_text 
 check_left_sensor: 
 jb left_sensor,check_right_sensor 
 mov a,#'L' 
 lcall write_text 
 check_right_sensor: 
 jb right_sensor,process_sensor_font 
 mov a,#'R' 
 lcall write_text 
 process_sensor_font: 
 jb font_sensor,process_left_sensor 
 jb left_sensor,perfer_process_font 
 jb right_sensor,perfer_process_font 
 lcall robot_backward 
 ljmp Thinking_run_find_object 
 perfer_process_font: 
 jnb left_sensor,process_left_sensor 
 jnb right_sensor,process_left_sensor 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang73 
 mov a,#'1' 
 lcall write_text 
 lcall delay1s 
 lcall robot_rotate_left 
 ;lcall process_intelligent_y_finish_x 
 ljmp Thinking_run_find_object 
 process_left_sensor: 
 jb left_sensor,process_right_sensor 
 process_left_sensor_1: 
 jb font_sensor,process_left_sensor_2 
 lcall robot_rotate_right 
 ljmp Thinking_run_find_object 
 process_left_sensor_2: 
 mov a,#'2' 
 lcall write_text 
 lcall delay1s 
 lcall robot_forward 
 ljmp Thinking_run_find_object 
 process_right_sensor: 
 jb right_sensor,not_signal_sensor 
 process_right_sensor_1: 
 jb font_sensor,process_right_sensor_2 
 lcall robot_rotate_left 
 ljmp Thinking_run_find_object 
 process_right_sensor_2: 
 mov a,#'3' 
 lcall write_text 
 lcall delay1s 
 lcall robot_forward 
 ljmp Thinking_run_find_object 
 not_signal_sensor: 
 mov a,#'4' 
 lcall write_text 
 lcall robot_forward 
 ;lcall delay1s 
 ;lcall delay1s 
 ;lcall delay1s 
 ;lcall robot_rotate_left 
 mov a,local_x 
 cjne a,tagret_x,not_finish_tagret_x 
 setb bit_finish_x 
 mov a,local_y 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang74 
 cjne a,tagret_y,not_finish_tagret_y 
 setb bit_finish_y 
 lcall display_information 
 ret 
 not_finish_tagret_y: 
 lcall process_intelligent_y_finish_x 
 ljmp Thinking_run_find_object 
 not_finish_tagret_x: 
 clr bit_finish_x 
 lcall process_intelligent_y_finish_x 
 ljmp Thinking_run_find_object 
process_intelligent_y_finish_x: 
 mov a,compass 
 process_x: 
 cjne a,#'W',process_intelligent_y_point_E_finish_x 
 jnb bit_finish_x,temp_exit_process_intelligent_y_finish_x 
 lcall calculate_prefer_y 
 mov a,prefer_y 
 cjne a,#'S',process_intelligent_y_point_WN 
 lcall robot_rotate_right 
 ljmp exit_process_intelligent_y_finish_x 
 process_intelligent_y_point_WN: 
 lcall robot_rotate_left 
 ljmp exit_process_intelligent_y_finish_x 
 process_intelligent_y_point_E_finish_x: 
 cjne a,#'E',againts_wrong_x 
 jnb bit_finish_x,temp_exit_process_intelligent_y_finish_x 
 lcall calculate_prefer_y 
 mov a,prefer_y 
 cjne a,#'S',process_intelligent_y_point_WN_point_E 
 lcall robot_rotate_left 
 ljmp exit_process_intelligent_y_finish_x 
 process_intelligent_y_point_WN_point_E: 
 lcall robot_rotate_right 
 ljmp exit_process_intelligent_y_finish_x 
 againts_wrong_x: 
 mov a,compass 
 cjne a,#'W',againts_wrong_x_2 
 lcall calculate_prefer_x 
 mov a,prefer_x 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang75 
 cjne a,#'E',temp_exit_process_intelligent_y_finish_x 
 lcall robot_rotate_right 
 lcall robot_rotate_right 
 ljmp temp_exit_process_intelligent_y_finish_x 
 againts_wrong_x_2: 
 cjne a,#'E',process_Y 
 lcall calculate_prefer_x 
 mov a,prefer_x 
 cjne a,#'W',exit_process_intelligent_y_finish_x 
 lcall robot_rotate_left 
 lcall robot_rotate_left 
 ljmp temp_exit_process_intelligent_y_finish_x 
 temp_exit_process_intelligent_y_finish_x: 
 ret 
 process_Y: 
 cjne a,#'N',process_intelligent_y 
 jb bit_finish_x,exit_process_intelligent_y_finish_x 
 lcall calculate_prefer_x 
 mov a,prefer_x 
 cjne a,#'E',process_intelligent_y_1 
 lcall robot_rotate_right 
 ljmp exit_process_intelligent_y_finish_x 
 process_intelligent_y_1: 
 lcall robot_rotate_left 
 ljmp exit_process_intelligent_y_finish_x 
 process_intelligent_y: 
 cjne a,#'S',againts_wrong_y 
 jb bit_finish_x,exit_process_intelligent_y_finish_x 
 lcall calculate_prefer_x 
 mov a,prefer_x 
 cjne a,#'E',process_intelligent_y_2 
 lcall robot_rotate_left 
 ljmp exit_process_intelligent_y_finish_x 
 process_intelligent_y_2: 
 lcall robot_rotate_right 
 ljmp exit_process_intelligent_y_finish_x 
 againts_wrong_y: 
 mov a,compass 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang76 
 cjne a,#'S',againts_wrong_y_2 
 lcall calculate_prefer_y 
 mov a,prefer_y 
 cjne a,#'N',exit_process_intelligent_y_finish_x 
 lcall robot_rotate_right 
 lcall robot_rotate_right 
 ljmp exit_process_intelligent_y_finish_x 
 againts_wrong_y_2: 
 cjne a,#'N',exit_process_intelligent_y_finish_x 
 lcall calculate_prefer_y 
 mov a,prefer_y 
 cjne a,#'S',exit_process_intelligent_y_finish_x 
 lcall robot_rotate_left 
 lcall robot_rotate_left 
 ljmp exit_process_intelligent_y_finish_x 
exit_process_intelligent_y_finish_x: 
 ret 
display_information: 
 lcall CLEAR_LCD 
 mov dptr,#string_tagret_run 
 lcall write_string_lcd 
 mov count_lcd,#07 
 lcall command_pos_lcd 
 mov a,#'X' 
 lcall write_text 
 mov a,#':' 
 lcall write_text 
 mov a,tagret_x 
 mov b,#10 
 div ab 
 orl a,#30h 
 lcall write_text 
 mov a,b 
 orl a,#30h 
 lcall write_text 
 mov count_lcd,#12 
 lcall command_pos_lcd 
 mov a,#'Y' 
 lcall write_text 
 mov a,#':' 
 lcall write_text 
 mov a,tagret_y 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang77 
 mov b,#10 
 div ab 
 orl a,#30h 
 lcall write_text 
 mov a,b 
 orl a,#30h 
 lcall write_text 
 mov count_lcd,#16 
 lcall command_pos_lcd 
 mov a,#'X' 
 lcall write_text 
 mov a,#':' 
 lcall write_text 
 mov a,local_x 
 mov b,#10 
 div ab 
 orl a,#30h 
 lcall write_text 
 mov a,b 
 orl a,#30h 
 lcall write_text 
 mov count_lcd,#21 
 lcall command_pos_lcd 
 mov a,#'Y' 
 lcall write_text 
 mov a,#':' 
 lcall write_text 
 mov a,local_y 
 mov b,#10 
 div ab 
 orl a,#30h 
 lcall write_text 
 mov a,b 
 orl a,#30h 
 lcall write_text 
 mov count_lcd,#26 
 lcall command_pos_lcd 
 mov a,compass 
 lcall write_text 
 mov a,#' ' 
 lcall write_text 
 ret 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang78 
drag_object: 
 lcall motor_lift_down 
 jb down_sensor,drag_object 
 lcall stop_motor_lift 
 lcall hand_open 
 lcall delay1s 
 lcall stop_hand 
 lcall hand_close 
 lcall delay1s 
 lcall stop_hand 
 lift_up_object: 
 lcall motor_lift_up 
 jb up_sensor,lift_up_object 
 lcall stop_motor_lift 
 ret 
motor_lift_up: 
 clr bit_motor5 
 setb bit_motor6 
 ret 
motor_lift_down: 
 setb bit_motor5 
 clr bit_motor6 
 ret 
stop_motor_lift: 
 setb bit_motor5 
 setb bit_motor6 
 ret 
hand_close: 
 clr bit_motor7 
 setb bit_motor8 
 ret 
hand_open: 
 setb bit_motor7 
 clr bit_motor8 
 ret 
stop_hand: 
 setb bit_motor7 
 setb bit_motor8 
 ret 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang79 
;*******************************************************************
***** 
; Process function display and set tagret 
;*******************************************************************
***** 
sub_set_tagret: 
 mov a,mode_set 
 cjne a,#02,process_and_display_tagret 
 mov mode_set,#00h 
 lcall clear_lcd 
 ret 
 process_and_display_tagret: 
 lcall process_key_tagret 
 lcall display_data_tagret 
 ljmp sub_set_tagret 
display_data_tagret: 
 jnb bit_keypress,exit_display_data_tagret 
 clr bit_keypress 
 lcall CLEAR_LCD 
 mov dptr,#string_tagret 
 lcall write_string_lcd 
 mov count_lcd,#19 
 lcall command_pos_lcd 
 mov a,#'X' 
 lcall write_text 
 mov a,#':' 
 lcall write_text 
 mov a,tagret_x 
 mov b,#10 
 div ab 
 orl a,#30h 
 lcall write_text 
 mov a,b 
 orl a,#30h 
 lcall write_text 
 mov count_lcd,#25 
 lcall command_pos_lcd 
 mov a,#'Y' 
 lcall write_text 
 mov a,#':' 
 lcall write_text 
 mov a,tagret_y 
 mov b,#10 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang80 
 div ab 
 orl a,#30h 
 lcall write_text 
 mov a,b 
 orl a,#30h 
 lcall write_text 
 exit_display_data_tagret: 
 ret 
process_key_tagret: 
 check_key_up_set_tagret: 
 jb key_up,check_key_down_set_tagret 
 setb bit_keypress 
 lcall delay_key 
 mov a,mode_set 
 cjne a,#00,mode_set_tagret_y 
 inc tagret_x 
 mov a,tagret_x 
 cjne a,#100,exit_process_key_tagret 
 mov tagret_x,#00h 
 ljmp exit_process_key_tagret 
 mode_set_tagret_y: 
 cjne a,#01,exit_process_key_tagret 
 inc tagret_y 
 mov a,tagret_y 
 cjne a,#100,exit_process_key_tagret 
 mov tagret_y,#00h 
 ljmp exit_process_key_tagret 
 check_key_down_set_tagret: 
 jb key_down,check_key_ok_set_tagret 
 setb bit_keypress 
 lcall delay_key 
 mov a,mode_set 
 cjne a,#00,mode_set_down_tagret_y 
 dec tagret_x 
 mov a,tagret_x 
 cjne a,#0FFh,exit_process_key_tagret 
 mov tagret_x,#99 
 ljmp exit_process_key_tagret 
 mode_set_down_tagret_y: 
 cjne a,#01,exit_process_key_tagret 
 dec tagret_y 
 mov a,tagret_y 
 cjne a,#0FFh,exit_process_key_tagret 
 mov tagret_y,#99 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang81 
 ljmp exit_process_key_tagret 
 check_key_ok_set_tagret: 
 jb key_ok,exit_process_key_tagret 
 setb bit_keypress 
 lcall delay_key 
 inc mode_set 
 exit_process_key_tagret: 
 ret 
;*******************************************************************
******* 
; process 
;*******************************************************************
******* 
calculate_prefer_x: 
 mov a,tagret_x 
 clr c 
 subb a,local_x 
 jnc set_prefer_x 
 mov prefer_x,#'E' 
 ret 
 set_prefer_x: 
 mov prefer_x,#'W' 
 ret 
calculate_prefer_y: 
 mov a,tagret_y 
 clr c 
 subb a,local_y 
 jnc set_prefer_y 
 mov prefer_y,#'N' 
 ret 
 set_prefer_y: 
 mov prefer_y,#'S' 
 ret 
robot_rotate_right: 
 setb EA 
 setb bit_motor1 
 clr bit_motor2 
 clr bit_motor3 
 setb bit_motor4 
 ;setb bit_run 
 ;jb bit_run,$ 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang82 
 clr EA 
 lcall delay1s 
 lcall delay1s 
 lcall robot_stop 
 lcall delay1s 
 mov a,compass 
 rotate_right_1: 
 cjne a,#'W',rotate_right_2 
 mov compass,#'N' 
 ljmp exit_robot_rotate_right 
 rotate_right_2: 
 cjne a,#'N',rotate_right_3 
 mov compass,#'E' 
 ljmp exit_robot_rotate_right 
 rotate_right_3: 
 cjne a,#'E',rotate_right_4 
 mov compass,#'S' 
 ljmp exit_robot_rotate_right 
 rotate_right_4: 
 cjne a,#'S',exit_robot_rotate_right 
 mov compass,#'W' 
 ljmp exit_robot_rotate_right 
 exit_robot_rotate_right: 
 ret 
robot_rotate_left: 
 ;setb EA 
 clr bit_motor1 
 setb bit_motor2 
 setb bit_motor3 
 clr bit_motor4 
 ;setb bit_run 
 ;jb bit_run,$ 
 lcall delay1s 
 lcall delay1s 
 ;clr EA 
 lcall robot_stop 
 lcall delay1s 
 mov a,compass 
 rotate_left_1: 
 cjne a,#'W',rotate_left_2 
 mov compass,#'S' 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang83 
 ljmp exit_robot_rotate_left 
 rotate_left_2: 
 cjne a,#'S',rotate_left_3 
 mov compass,#'E' 
 ljmp exit_robot_rotate_left 
 rotate_left_3: 
 cjne a,#'E',rotate_left_4 
 mov compass,#'N' 
 ljmp exit_robot_rotate_left 
 rotate_left_4: 
 cjne a,#'N',exit_robot_rotate_left 
 mov compass,#'W' 
 ljmp exit_robot_rotate_left 
 exit_robot_rotate_left: 
 ret 
robot_forward: 
; setb EA 
 setb bit_motor1 
 clr bit_motor2 
 setb bit_motor3 
 clr bit_motor4 
 setb bit_run 
; jb bit_run,$ 
; clr EA 
 lcall delay1s 
 lcall robot_stop 
 mov a,compass 
 forward_1: 
 cjne a,#'W',forward_2 
 inc local_x 
 ljmp exit_robot_forward 
 forward_2: 
 cjne a,#'S',forward_3 
 dec local_y 
 ljmp exit_robot_forward 
 forward_3: 
 cjne a,#'E',forward_4 
 dec local_x 
 ljmp exit_robot_forward 
 forward_4: 
 cjne a,#'N',exit_robot_forward 
 inc local_y 
 ljmp exit_robot_forward 
 exit_robot_forward: 
 ret 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang84 
robot_backward: 
; setb EA 
 clr bit_motor1 
 setb bit_motor2 
 clr bit_motor3 
 setb bit_motor4 
 setb bit_run 
 lcall delay1s 
; jb bit_run,$ 
; clr EA 
 lcall robot_stop 
 mov a,compass 
 backward_1: 
 cjne a,#'W',backward_2 
 inc local_x 
 ljmp exit_robot_backward 
 backward_2: 
 cjne a,#'S',backward_3 
 inc local_y 
 ljmp exit_robot_backward 
 backward_3: 
 cjne a,#'E',backward_4 
 dec local_x 
 ljmp exit_robot_backward 
 backward_4: 
 cjne a,#'N',exit_robot_backward 
 dec local_y 
 ljmp exit_robot_backward 
 exit_robot_backward: 
 ret 
robot_stop: 
 clr bit_motor1 
 clr bit_motor2 
 clr bit_motor3 
 clr bit_motor4 
 mov encoder_1,#00h 
 mov encoder_2,#00h 
 mov encoder_3,#00h 
 mov encoder_4,#00h 
 ret 
display_encoder: 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang85 
 clr ea 
 mov a,save_encoder 
 cjne a,encoder_1,update_display_encoder 
 ljmp check_key_ok_test_signal 
 update_display_encoder: 
 lcall clear_lcd 
 mov save_encoder,encoder_1 
 mov count_lcd,#00h 
 mov dptr,#string_Encoder 
 lcall write_string_lcd 
 mov a,encoder_4 
 orl a,#30h 
 lcall write_text 
 mov a,encoder_3 
 orl a,#30h 
 lcall write_text 
 mov a,encoder_2 
 orl a,#30h 
 lcall write_text 
 mov a,encoder_1 
 orl a,#30h 
 lcall write_text 
 check_key_ok_test_signal: 
 jb key_ok,check_key_menu_test_signal 
 lcall delay_key 
 mov save_encoder_1,encoder_1 
 mov save_encoder_2,encoder_2 
 mov save_encoder_3,encoder_3 
 mov save_encoder_4,encoder_4 
 mov encoder_1,#00h 
 mov encoder_2,#00h 
 mov encoder_3,#00h 
 mov encoder_4,#00h 
 ljmp exit_display_encoder 
 check_key_menu_test_signal: 
 jb key_menu,exit_display_encoder 
 lcall delay_key 
 lcall clear_lcd 
 lcall clear_lcd 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang86 
 mov dptr,#string_run 
 lcall write_string_lcd 
 ret 
 exit_display_encoder: 
 setb ea 
 ljmp display_encoder 
DEMO_LCD: ;Chuong tring Test LCD 
 Mov Tmod,#01h 
 Lcall INIT_LCD 
loop_demo: 
 Lcall CLEAR_LCD 
 ;lcall Demo 
 mov count_lcd,#00h 
 mov dptr,#sample_text 
 lcall write_string_lcd 
 lcall delay1s 
 lcall delay1s 
 lcall delay1s 
 lcall delay1s 
 Lcall CLEAR_LCD 
 mov count_lcd,#00h 
 mov dptr,#sample_name 
 lcall write_string_lcd 
 lcall delay1s 
 lcall delay1s 
 lcall delay1s 
 lcall delay1s 
 ljmp loop_demo 
up_encoder: ; dung bien r1 chu yeu 
 mov temp_a,a 
 inc count_encoder 
 mov r1,count_encoder 
 cjne r1,#10,exit_up_encoder 
 mov count_encoder,#00 
 normal_up: 
 inc encoder_1 
 mov r1,encoder_1 
 cjne r1,#10,compare_save_encoder 
 mov encoder_1,#00 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang87 
 inc encoder_2 
 mov r1,encoder_2 
 cjne r1,#10,compare_save_encoder 
 mov encoder_2,#00 
 inc encoder_3 
 mov r1,encoder_3 
 cjne r1,#10,compare_save_encoder 
 mov encoder_3,#00 
 inc encoder_4 
 mov r1,encoder_4 
 cjne r1,#10,compare_save_encoder 
 mov encoder_4,#00 
 compare_save_encoder: 
 jnb bit_run,exit_up_encoder 
 mov a,encoder_4 
 cjne a,save_encoder_4,exit_up_encoder 
 mov a,encoder_3 
 cjne a,save_encoder_3,exit_up_encoder 
 mov a,encoder_2 
 cjne a,save_encoder_2,exit_up_encoder 
 mov a,encoder_1 
 cjne a,save_encoder_1,exit_up_encoder 
 lcall robot_stop 
 clr bit_run 
 exit_up_encoder: 
 mov a,temp_a 
 reti 
delay_key: 
 mov r7,#03 
 loop_r6: 
 mov r6,#200 
 loop_r5: 
 mov r5,#250 
 djnz r5,$ 
 djnz r6,loop_r5 
 djnz r7,loop_r6 
 ret 
write_string_lcd: 
 mov r3,#00h 
 mov a,#00h 
 mov save_dh,dph 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang88 
 mov save_dl,dpl 
 loop_write_string_lcd: 
 mov a,R3 
 mov dph,save_dh 
 mov dpl,save_dl 
 movc a,@a+dptr 
 cjne a,#01h,countinue_write_text 
 ret 
 countinue_write_text: 
 lcall write_text 
 inc r3 
 ljmp loop_write_string_lcd 
 exit_write_string: 
 ret 
WAIT_LCD : ;Chuong tring kiem tra trang thai LCD 
 Setb EN ;bat dau truyen lenh vao LCD 
 Clr RS ;Noi cho Lcd chi thi la LENH 
 Setb RW ;Doc Lcd 
 MOV DATABUS,#0FFh ;Gan DATABUS la FF 
 MOV A,DATABUS 
 Jb ACC.0,WAIT_LCD ;Neu bit 7 o muc cao , thi Lcd dang ban 
 Clr EN ;Ket thuc lenh 
 Clr RW ;Chuan bi RW cho lenh toi 
 Ret 
INIT_LCD: ;Khai bao LCD 
 MOV R3,#4 
 SETUP: Setb EN 
 Clr RS 
 mov a,#038H 
 lcall convert_invert_data 
 Mov DATABUS,a ;Khai bao che do LCD : 8 bit , ky tu : 5X8 
character 
 Clr EN 
 Lcall WAIT_LCD 
 DJNZ R3,SETUP 
 setb EN 
 CLR RS 
 CLR RW 
 mov a,#0Ch 
 lcall convert_invert_data 
 Mov DATABUS,a ;Bat man hinh LCD 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang89 
 Clr EN 
 Lcall WAIT_LCD 
 Lcall Clear_Lcd 
 Ret 
CLEAR_LCD: ;Chuong trinh xoa man hinh 
 mov count_lcd,#00h 
 Setb EN 
 Clr RS 
 clr rw 
 mov a,#02H 
 lcall convert_invert_data 
 Mov DATABUS,a ;Dua con tro ve dau dong 
 Clr EN 
 Lcall WAIT_LCD 
 Setb EN 
 Clr RS 
 clr rw 
 mov a,#01H 
 lcall convert_invert_data 
 Mov DATABUS,a ;Lenh xoa man hinh 
 Clr EN 
 Lcall WAIT_LCD 
 mov count_lcd,#00h 
 Ret 
WRITE_TEXT: ;Chuong tring ghi ky tu vao LCD 
 Setb EN 
 Setb RS 
 clr rw 
 lcall convert_invert_data 
 Mov DATABUS,A 
 Clr EN 
 Lcall WAIT_LCD 
 inc count_lcd 
 lcall command_pos_lcd 
 Ret 
command_pos_lcd: 
 setb en 
 clr rs 
 clr rw 
 mov a,count_lcd 
 mov dptr,#pos_lcd 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang90 
 movc a,@a+dptr 
 orl a,#10000000b 
 lcall convert_invert_data 
 Mov DATABUS,a 
 Clr EN 
 Lcall WAIT_LCD 
 mov a,count_lcd 
 cjne a,#32,exit_write_text_lcd 
 mov count_lcd,#00h 
 exit_write_text_lcd: 
 ret 
DELAY1S: 
 MOV R7,#20 
 AGAIN : MOV TH0,#HIGH(-50000) 
 MOV TL0,#LOW(-50000) 
 SETB TR0 
 WAIT : JNB TF0,WAIT 
 CLR TF0 
 CLR TR0 
 DJNZ R7,AGAIN 
 RET 
reset_ram: 
 mov r0,#20h 
 loop_del: 
 inc r0 
 mov @r0,#00h 
 cjne r0,#80h,loop_del 
 ret 
convert_invert_data: 
 mov c,acc.7 
 mov 01,c 
 mov c,acc.6 
 mov 02,c 
 mov c,acc.5 
 mov 03,c 
 mov c,acc.4 
 mov 04,c 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang91 
 mov c,acc.3 
 mov 05,c 
 mov c,acc.2 
 mov 06,c 
 mov c,acc.1 
 mov 07,c 
 mov c,acc.0 
 mov 08,c 
 ;convert 
 mov c,08 
 mov acc.7,c 
 mov c,07 
 mov acc.6,c 
 mov c,06 
 mov acc.5,c 
 mov c,05 
 mov acc.4,c 
 mov c,04 
 mov acc.3,c 
 mov c,03 
 mov acc.2,c 
 mov c,02 
 mov acc.1,c 
 mov c,01 
 mov acc.0,c 
 ret 
sample_text: 
 db ' Robot do duong ' 
 db ' Gap vat ',01h 
sample_name: 
 db ' NGUYEN HOP ' 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang92 
 db '04D3N - 410639D',01h 
string_Encoder: 
 db 'Encoder : ',01h 
string_tagret: 
 db ' Input tagret',01h 
string_tagret_run: 
 db 'Tagret ',01h 
string_lengh: 
 db 'Input encoder',01h 
string_saved_encoder: 
 db 'Saved encoder',01h 
string_run: 
 db ' Press key ST ' 
 db ' To Run' ,01 
pos_lcd: 
db 00h,01h,02h,03h,04h,05h,06h,07h,08h,09h,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh 
db 40h,41h,42h,43h,44h,45h,46h,47h,48h,49h,4Ah,4Bh,4Ch,4Dh,4Eh,4Fh 
END 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang93 
TÀI LIỆU THAM KHẢO 
1.HỌ VI ĐIỀU KHIỄN 8051 
 Tác giả: TốNG VĂN ON 
 HOÀNG ĐỨC HẢI 
NHÀ XUẤT BẢN LAO ĐỘNG XÃ HỘI 
2.CẤU TRÚC VÀ LẬP TRÌNH HỌ VI ĐIỀU KHIỄN 8051 
 Tác giả: NGUYỄN TĂNG CƯỜNG 
 PHAN QUỐC THẮNG 
NHÀ XUẤT BẢN KHOA HỌC VÀ KỸ THUẬT 
3.ĐIỆN TỬ CÔNG SUẤT 
 Tác giả: NGUYỄN VĂN NHỜ 
NHÀ XUẤT BẢN ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH 
4.SƠ ĐỒ CHÂN LINH KIỆN 
 Tác giả: DƯƠNG MINH TRÍ 
5.MỘT SỐ TÀI LIỆU TRÊN MẠNG INTERNET 
THIẾT KẾ VÀ THI CÔNG ROBOT TÌM BÁU VẬT 
 Trang94 
MỤC LỤC 
Trang 
Nhiệm vụ luận văn tốt nghiệp. 
Nhiệm vụ luận văn tốt nghiệp. 
Lịch trình luận văn tốt nghiệp. 
Nhận xét của Giáo viên hướng dẫn 
Nhận xét của Giáo viên phản biện 
Lời cảm ơn 
Lời nói đầu 
CHƯƠNG 1: GIỚI TỔNG QUAN VỀ MỘT SỐ ROBOT TỰ HÀNH HIỆN 
CÓ TRÊN THẾ GIỚI…………………………………………………………..1 
CHƯƠNG II :GIỚI THIỆU VỀ VI XỬ LÝ HỌ MSC-51 ........................... 3 
 I / Giới thiệu cấu trúc phần cứng họ MSC-51 (8951) .............................. 3 
 II/ Sơ đồ chân AT89C51 và chức năng từng chân ................................. 3 
 III/ Cấu trúc bên trong vi điều khiển ....................................................... 7 
 IV/ Hoạt động Timer của 8951 ............................................................... 14 
 V/ Tổ chức ngắt của c8031/8951 .......................................................... 21 
 VI/ Tóm tắt tập lệnh của 8951 ................................................................. 30 
CHƯƠNG III : GIỚI THIỆU CÁC LINH KIỆN SỬ DỤNG TRONG LUẬN 
VĂN……………………………………………………………………………..42 
 I/MOSFET………………………………………………………………..42 
 II/ OPTO PC817 …………………………………………………………44 
 III/ GIỚI THIỆU ENCODER…………………………………………….45 
 IV/ CÁC LOẠI CẢM BIẾN QUANG TRONG CÔNG NGHIỆP……... 46 
 V/GIỚI THIỆU LCD……………………………………………………48 
 VI.GIỚI THIỆU VỀ ĐỘNG CƠ ĐIỆN MỘT CHIỀU…………………..55 
 CHƯƠNG 4: THIẾT KẾ VÀ THI CÔNG MÔ HÌNH.................................58 
 I/GIỚI THIỆU PHẦN CƠ KHÍ………………………………………….59 
 II.GIỚI THIỆU SƠ ĐỒ NGUYÊN LÝ CỦA MẠCH ĐIỆN…………….61 
CHƯƠNG 5: THUẬT TOÁN ĐIỀU KHIỄN VÀ TÓM LƯỢC CHƯƠNG 
TRÌNH ………………………………………………………………………….65 
I/THUẬT TOÁN ĐIỀU KHIỄN………………………………………………..65 
II/CHƯƠNG TRÌNH HOẠT ĐỘNG…………………………………………...70 
            Các file đính kèm theo tài liệu này:
 TRINH BAY.pdf TRINH BAY.pdf