Tải bản đầy đủ (.doc) (28 trang)

Robot điều khiển từ xa bằng sóng radio (RF)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (575.9 KB, 28 trang )

Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh
ĐỀ CƯƠNG SƠ BỘ
Lời mở đầu
Chương 1: Tổng quan công nghệ
1.1 Tổng quan về Robot
1.2 Giới thiệu về công nghệ thu phát RF
1.3 Họ vi điều khiển 8051
Chương 2: Xây dựng mạch phần cứng
2.1 Phương án thiết kế Robot
2.2 Sơ đồ khối mạch Robot
2.3 Các sơ đồ mạch nguyên lý
2.3.1 Mạch nguồn
2.3.2 Mạch vi điều khiển
2.3.3 Mạch công suất điều khiển động cơ
2.3.4 Mạch thu phát RF
Chương 3: Lưu đồ thuật toán và chương trình điều khiển cho Robot
3.1. Lưu đồ thuật toán
3.2. Viết chương trình điều khiển cho Robot
Kết luận
Tài liệu tham khảo
Giáo viên hướng dẫn Sinh viên
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 1
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh
LỜI NÓI ĐẦU

Quá trình công nghiệp hóa hiện đại hóa đất nước đang trong giai
đoạn phát triển mạnh mẽ. Những ứng dụng trong lĩnh vực tự động hóa do vậy
ngày càng đóng vai trò quan trọng và được sử dụng rộng rãi trong mọi ngành
sản xuất. Trong đó, Robot là một thành tựu đã xuất hiện từ rất sớm và đang có
những thay đổi mạnh mẽ, thông minh hơn, linh hoạt hơn, chính xác hơn.
Điều khiển Robot từ xa cũng là một lĩnh vực có nhiều ứng dụng


trong thực tế. Sau khi nhận được đề tài bài tập lớn môn vi xử lý: “Robot điều
khiển từ xa bằng sóng radio (RF)”. Em đã cố gắng tìm tòi và nỗ lực hoàn thiện
bài tập, nhưng hẳn sẽ không thể tránh khỏi những thiếu sót, vì vậy, kính mong
thầy giáo góp ý và chỉ bảo thêm, giúp em bổ sung và nắm vững hơn vốn kiến
thức của mình.
Em xin chân thành cảm ơn thầy Phạm Tuấn Anh, đã tận tình giúp đỡ,
hướng dẫn, hỗ trợ, tạo mọi điều kiện để em hoàn thành Bài tập lớn này .
Sinh viên thực hiện
ĐỖ KHẮC HUY
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 2
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh
CHƯƠNG I: TỔNG QUAN CÔNG NGHỆ
1.1 Tổng quan về robot:
Một bước di chuyển ngắn của robot đồng nghĩa với một bước phát triển
lớn về tri thức của nhân loại. Sáng tạo ra robot là niềm vinh hạnh của con người.
Quần thể robot hiện nay khá phong phú, chúng thực hiện được rất nhiều chức
năng: từ thăm dò chinh phục vũ trụ, hỗ trợ thầy thuốc chẩn đoán bệnh, giúp đỡ
người khuyết tật, cho đến vận chuyển đồ vật và tham vui chơi cùng với trẻ em.
Các nhà nghiên cứu châu Âu và Mỹ đã phóng nhiều robot lên sao Hoả, nhằm
khám phá, thăm dò và chinh phục Hành tinh này. Lĩnh vực nữa mà robot phát
huy tác dụng tích cực là hỗ trợ thầy thuốc khám, chẩn đoán và phát hiện bệnh.
Robot còn hỗ trợ người khuyết tật thực hiện các thao tác hàng ngày, mà họ
không làm được.Nhóm robot khác có hệ thống máy móc tạo khả năng tự hành
cao hơn, giống "người" hơn: ví dụ như ô-tô tự điều khiển (không cần sự hỗ trợ
của người); robot thích ứng thăm dò biển thế hệ thứ ba - loại robot này đi được
gần giống người. Nhóm robot này hoạt động ở những địa điểm nguy hiểm nhất
mà con người không thâm nhập được, như trong nhà máy điện hạt nhân hay
trong núi lửa. Hiện nay, việc nghiên cứu kỹ thuật robot còn đang ở giai đoạn
đầu, nhưng đã có những ứng dụng ban đầu rất thành công. Có thể khẳng định,
đây là lĩnh vực công nghệ rất có triển vọng. Robot điển hình trong công nghiệp

được hình dung như cỗ máy thực hiện các tác vụ khó khăn, nguy hiểm hay thậm
chí rất đần độn nữa. Chúng nhấc những vật nặng, xách các thùng sơn hay hóa
chất độc hại, hay làm công việc lắp ráp khác trong hàng giờ liền, ngày qua ngày
với một độ chính xác không thay đổi. Chúng không bao giờ mệt mỏi nên chúng
không phạm các sai lầm do mệt mỏi đem lại. Chính vì thế, robot rất lý tưởng cho
công việc kiểu lặp đi lặp lại. Theo cấu trúc cơ khí, robot có thể được phân chia
thành các loại chính như sau:
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 3
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh
Cartesian robot/ Gantry robot

Loại robot này thích hợp với công việc gắp vật thể và đặt chúng vào vị trí
khác. Các ứng dụng có thể là đóng gói, lắp ráp máy móc, cầm nắm các máy
công cụ hoặc hàn theo hình cung. Đối với loại robot này, cánh tay được tạo
thành từ 3 khớp trượt mà trục của chúng trùng với hệ trục tọa độ Đê-các-tơ.
Cylindrical robot:
Sử dụng trong công nghệ lắp ráp, cầm nắm các máy công cụ, hàn điểm.
Loại robot này, trục có dạng hệ tọa độ trụ
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 4
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh
Spherical/Polarrobot:
Được sử dụng để cầm nắm các dụng cụ, hàn điểm, đánh bong, hàn hơi
hoặc hàn theo cung. Trục của robot tạo thành hệ tọa độ cầu.
SCARA robot:

Được sử dụng để gắp nhả vật, đóng gói, lắp ráp hay cầm nắm máy công
cụ.
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 5
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh
Robot có 2 khớp xoay song song với nhau cho phép thao tác trên mặt

phẳng.
Articulated robot:

Sử dụng để lắp ráp, đánh bóng, hàn hơi, hàn theo cung, sơn phun. Loại
robot này có tối thiểu 3 khớp xoay
Parallel robot
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 6
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh

Thường được ứng dụng để tạo ra khung đế xoay tự do trong mô phỏng
bay. Loại robot này có các khớp trượt và xoay đồng thời
1.2 Giới thiệu về công nghệ thu phát Radio (RF):
1.2.1. Đôi nét về truyền tin không dây:
Truyền tin không dây là cách thức truyền tải tin tức, dữ liệu thông qua
hệ thống không dây như hồng ngoại, sóng điện từ , sóng radio,…
Đối với truyền dữ liệu số thông thường người ta phải mã hoá tín hiệu
truyền .
Các tín hiệu số 0 hoặc 1 được đưa vào bộ truyền phát, nếu bộ phát là
máy điều chế ASK đơn giản thì mức 1 tương ứng là máy sẽ phát ra sóng điện từ,
mức 0 tương đương là máy không phát ra sóng điện từ .
Dựa vào tín hiệu on / off này mà máy thu sẽ đưa ra một mức logic
tương ứng với mạch phát. Tuy nhiên do kĩ thuật và công nghệ chế tạo hay điển
hình một số kiểu mạch không thể đáp ứng được các yêu cầu khắt khe của việc
truyền dữ liệu. Ví dụ truyền tốc độ cao ( máy thu không kịp giải điều chế, băng
thông của máy thu quá nhỏ , truyền bit với khoảng thời gian quá dài …v.v )
Bởi rất nhiều yếu tố nên trong truyền thông có rất nhiều kiểu để khắc
phục khi truyền thông tin, đặc biệt trong RF.
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 7
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh
1.2.2. Mã hóa dữ liệu

Khi ta bật máy phát tức thì, máy thu chưa chắc đã giải điều chế tức thì
ngay được mà sau đó một khoảng thời gian (phụ thuộc vào công nghệ máy thu)
thì mới có tín hiệu được đưa ra. Đây có thể hiểu như trễ đường truyền.
Bởi thế trước khi phát 1 chuỗi dữ liệu người ta thường làm một khâu
quan trọng là phát một vài bit gọi là “chuẩn bị”. Việc phát này sẽ làm cho máy
thu nhận được đầy đủ các bit được phát loại trừ trường hợp bỏ sót bit đầu tiên do
máy thu không kịp giải điều chế nếu như ta không có sự “phát chuẩn bị này”.
Dữ liệu được đưa vào máy phát là dạng nối tiếp. Trong truyền thông
số, các bit 0 hoặc 1 sẽ được đưa vào đầu dữ liệu phát và máy thu có nhiệm vụ
giải điều chế, hoàn lại dạng của tín hiệu này.
Tốc độ baud: tốc độ thu phát hay mã hoá dữ liệu rất quan trọng bởi vì
không phải bộ thu phát nào cũng có khả năng đáp ứng tốc độ cao .
Việc mã hoá được coi rất quan trọng trong điều khiển, nó nâng cao độ
bảo mật , không bị nhiễu do môi trường xung quanh .
Trên không trung có rất nhiều sóng điện từ tồn tại, tác động vào máy
thu (gọi là nhiễu), việc mã hoá / giải mã để đưa ra được tín hiệu truyền đi, thu về
đạt độ chính xác cao. Loại trừ các tác động sai do môi trường bị nhiễu tác động
vào máy thu.
Phương pháp mã hoá:
Đối với điều khiển hoặc những IC có khả năng lập trình ta có thể hình
dung dễ dàng hơn về mã hoá. Ví như quy định nếu máy thu thu được 8 bit
10101011 trong khoảng thời gian 500us (micrô giây) thì ra lệnh cho đèn bật lên.
Bây giờ muốn bật đèn sáng, ta chỉ việc đưa 1 chuỗi bit 10101011 với
độ trễ thời gian các bit tương ứng vào máy phát, tức thì đèn được bật lên .
Nói đến đây ta có thể hiểu mã hoá / giải mã là những cái ta quy định,
ngầm định, đặt ra để làm một mục đích nào đó có tính chất bảo mật, mà chỉ ta và
hệ thống của ta mới hiểu được.
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 8
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh
Việc mã hoá truyền dữ liệu cũng như mã hoá điều khiển vậy, ta có thể

làm bằng nhiều cách sử dụng các IC mã hoá / giải mã cứng, lập trình bằng IC vi
điều khiển, mã hoá trực tiếp với PC….
Có rất nhiều chuẩn mã hoá, mỗi cái có một ưu nhược điểm khác nhau,
tuỳ vào những ứng dụng cụ thể để sử dụng. Các loại mã hoá / giải mã như:
PWM, RC5, Manchester, on/off, PCM ….
Mỗi mã hoá có đặc điểm riêng, có rất nhiều chuẩn về mã hoá, giải
mã, ở đây chỉ lấy đơn cử một mã hoá đơn giản để giải thích :
Mã hoá ManChester là một mã hoá đơn giản. Với những bit phát là 0
thì mã hoá này sẽ được mã hoá là 01 hoặc cũng có thể là 10 (tuỳ ta đặt). Với bit
=1 sẽ được mã hoá thành 10 (hoặc cũng có thể là 01 tuỳ ta đặt) .
Bây giờ ta muốn phát 1 chuỗi 8 bit 10101011 để truyền đến máy thu
ta sẽ mã hoá chuỗi trên thành: 1001100110011010 và máy thu sẽ thu được 1
chuỗi 01 này. Máy thu sau khi thu được phải hoàn nguyên về 10101011 như
máy phát phát ra, ta gọi quá trình này là giải mã - Decoder .
Với mã Manchester việc nhận ra được đâu là 0 và đâu là 1 dựa vào
khoảng thời gian ngắn hay dài của bit 0 hay 1 thu được. Sự thay đổi thời gian
này cho phép xác định bit ta thu được là 1 hay 0.
Sự cần thiết của thuật toán giải mã/mã hóa:
Bình thường nếu không có mã hoá, giải mã, đối với một số máy thu
phát đơn giản sử dụng dạng điều chế ASK sẽ xảy ra một số rắc rối sau :
a) Môi trường có nhiều sóng điện từ gây nhiễu làm đầu ra dữ liệu sẽ
có những xung nhiễu ở đầu data out, nếu ta lập trình vi điều khiển trong trường
hợp này và sử dụng ngắt ngoài thì đó là một sai lầm lớn và khó có thể làm được.
Bởi vì khi môi trường nhiễu ảnh hưởng đến máy thu làm cho đầu data out lúc là
1, lúc là 0 (tính chất không ổn định vì nhiễu) chính cái đó làm cho ngắt (vi điều
khiển) hoạt động sai, vì vậy không thu được dữ liệu đúng.
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 9
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh
Để khắc phục cái đó người ta thường không dùng ngắt mà dùng
cách hỏi lặp đi lặp lại gọi là mã CRC.

b) Nếu truyền nhiều bit 1 thì thời gian phát của máy phát quá dài,
trong khi đó thời gian của máy thu thì không thể kéo dài duy trì mức logic cao
cùng máy phát được, tín hiệu logic bị suy giảm theo thời gian theo kiểu đường
cong parabole. Mã hoá Manchester giúp cho việc biến đổi nhiều bit (có thời gian
quá dài) thành nhiều bit nhưng có thời gian ngắn hơn để phù hợp với tốc độ của
máy thu.
1.3. Vi điều khiển 8051:
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 và tiến hành đóng mở một cơ cấu nào đó.
Trong các thiếh bị điện và đ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 đọc laser, điện thọai, 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.
Đến năm 1980 công ty INTEL cho ra đời thế hệ thứ hai của bộ vi điều
khiển đơn chip với tên gọi 8051. Và sau đó hàng loạt các vi điều khiển cùng loại
với 8051 ra đời và hình thành họ vi điều khiển MCS-51 .
Đến nay họ vi điều khiển 8 bit MCS51 đã có đến 250 thành viên và hầu
hết các công ty hàng đầu thế giới chế tạo. Đứng đầu là công ty INTEL và rất
nhiều công ty khác như : AMD, SIEMENS, PHILIPS, DALLAS, OKI …
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 10
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh
Ngoài ra còn có các công ty khác cũng có những họ vi điều khiển riêng
như:
Họ 68HCOS của công ty Motorola
Họ ST62 của công ty SGS-THOMSON
Họ H8 của công ty Hitachi
Họ pic cuả công ty Microchip

Vi điều khiển AT89S52:
Đây là vi điều khiển thuộc họ vi điều khiển 8051 của hãng Atmel. Các
tính năng của VDK :
- Tương thích với tập lệnh 8051
- 8K bộ nhớ FLASH hỗ trợ nạp ISP
- Điện áp hoạt động là 4.0V-5.5V
- Tần số dao động cấp là 0-33Mhz
- 256x8b Ram nội
- 32 đường xuất nhập
- 3bộ định thời 16 bit
- 8 nguồn ngắt
- Hỗ trợ truyền thông máy tính cổng nối tiếp
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 11
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh
CHƯƠNG II: THIẾT KẾ VÀ XÂY DỰNG MẠCH PHẦN CỨNG
2.1 Lựa chọn phương án thiết kế Robot:
Với đề tài thiết kế robot điều khiển từ xa SV đã có sự phân tích các
phương án thiết kế như sau:
Phương án 1: Robot sử dụng bộ 4 bánh
Robot sử dụng 4 bánh. 2 bánh chủ động phía sau và điều khiển 2 bánh bị
động ở phía trước. Ưu điểm của phương án này đơn giản dễ chế tạo, khi hỏng dễ
sửa chữa và thay thế còn đặc điểm quan trọng nữa là giá thành rẻ và đảm bảo
yêu cầu di chuyển của robot như: tiến, lùi, rẽ trái, rẽ phải, quay trên mọi địa hình
trong nhà, và nhưng nơi tương đối bằng phẳng. Đó cũng là mục tiêu của đề tài
điều khiển robot từ xa
Phương án 2: Robot sử dụng bộ truyền đai
Robot dạng đai thì chạy nhanh vượt được nhiều địa hình hơn khả năng di
chuyển tốt Có thể vượt qua được mõi địa hình phức tạp hơn nhưng nhược điểm
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 12
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh

của phương án Là qua trình chế tạo phức tạp hơn, giá thành của đai và các chi
tiết khác là đắt hơn nếu hỏng hóc sửa tốn kém hơn.
→ Lựa chọn phương án:
Qua 2 phương án nêu trên để đảm bảo đúng mục đích của mình SV đã
quyết định lựa chọn phương án 1 là sử dụng robot 4 bánh điều khiển từ xa để
thiết kế.
2.2 Sơ đồ khối mạch điều khiển Robot:
Nhiệm vụ từng khối:
Khối Vi điều khiển: Nhận tín hiệu từ khối thu RF và điều khiển động cơ
Khối Thu RF: Nhận tín hiệu RF từ tay cầm điều khiển phát tín hiệu RF
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 13
VI ĐIỀU KHIỂN
ĐIỀU KHIỂN
ĐỘNG CƠ
NGUỒN
TAY CẦM
ĐIỀU KHIỂN
PHÁT
RF
THU RF
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh
Khối Nguồn: Cung cấp điện áp hoạt động cho toàn bộ mạch
Khối Điều khiển Động Cơ: Điều khiển động cơ dùng FET và Rơle
Tay cầm điều khiển phát: Phát tín hiệu RF điều khiển
2.3 Các sơ đồ mạch nguyên lý:
2.3.1. Mạch nguồn:
0
J 2
5 V D C
1

2
5 V
J 1
1 2 V D C
1
2
0 00
U 1
L M 7 8 0 5
1
2
3
V I N
G N D
V O U T
R 1
3 3 0
0
C 2
1 0 4
0
D 1
L E D
C 1
1 0 0 0 u F / 2 5 V
Mạch nguồn
Nguyên lý hoạt động:
Khối nguồn sử dụng ắc quy có điện áp 12 VDC
7805 để tạo nguồn 5V cung cấp cho hoạt động của toàn bộ mạch, đầu vào
nối đất và lấy nguồn 12V từ ắc quy

2.3.2. Mạch vi điều khiển:
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 14
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh
Mạch vi điều khiển

Nguyên lý hoạt động:
Nhận tín hiệu digital từ mạch thu RF qua Port 3, xuất tín hiệu điều khiển
động cơ qua các chân P1.0, P1.1, P1.4, P1.5.
Mạch Reset để khởi tạo lại trạng thái ban đầu cho mạch vi điều khiển.
Mạch dao động sử dụng thạch anh 12Mhz. 2 tô lµ hai tô läc nhiÔu cã gi¸
trÞ lµ 33pF
2.3.3. Mạch điều khiển động cơ (mạch công suất):
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 15
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh
+Tính toán mạch cách ly, sử dụng bộ cách quang PC817.
I
led đỏ
=1,7 V, I
led xanh
=2,3 V
2,1Ω
10
1,21,75
I
VVV
R
LED
DIODELEDCC
=
−−

=
−−
=

+ULN2803: Dùng để khuếch đại dòng ra từ VĐK trước khi đưa vào
mạch động lực điều khiển động cơ. Gồm 8 BJT ghép darlington có sẵn các điện
trở và diode bảo vệ, cung cấp dòng đến 500mA, điện áp làm việc lên đến 50V.
Sơ đồ chân:
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 16
I
NPUT
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh
Ở điều kiện làm việc bình thường của ULN2803: I
C
=100mA,
I
B
=250μA, V
CE
=2V

điện trở ghép với ngõ ra của PC817 điện trở khá lớn:
chọn 4,7 KΩ
I
B_C1815/A1015(SAT)


1.43mA
R
C_ULN2803

=
100Ω
100
212
I
V12
CSAT
CESAT
=

=

Dòng yêu cầu kích cho BJT nhỏ hơn nên lấy R =330 Ω .
+Giá trị của điện trở công suất trên tải ra của mạch đẩy kéo.
0,236KΩ
50
0,212
50
V12
R
CESAT
CS
=

=

=
Lấy R
cs
=300 Ω

+Công suất tiêu thụ trên điện trở.
I
CESAT
=50mA
P
cs
=
0,75W.30050.RI
2
CS
2
CESAT
==
Chọn công suất điện trở P
cs
=1 đến 2 W.
Mạch công suất
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 17
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh
Nguyên lý hoạt động:
Opto để cách ly mạch vi điều khiển và mạch công suất.
ULN2803 để khuếch đại dòng ra, kích hoạt động cho FET và Rơle
FET cho phép dòng điện chạy qua hoặc không, điều khiển động cơ
chạy hay dừng
Rơle đảo chiều dòng điện, làm đảo chiều động cơ
2.3.4 Mạch thu- phát RF:
a, Mạch phát RF:
Khối phát RF
Nguyên lý hoạt động:
Tín hiệu digital từ nút nhấn điều khiển qua PT2262 sẽ được mã hóa rồi

gửi đến Trasmitter để gửi đi dưới dạng sóng radio (RF).
Ta có sơ đồ mạch phát RF:
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 18
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh
OPTO 6
GND
+
C1
10 00 UF
CAMBIEN4
LEDT HU4
C ROLE4
M4DC4
IRF540
R19 100 K
-
+
U7D
LM324
12
13
14
R20 100K
P2.3
LEDT HU3
DC3_DC3
CON2
1
2
D7

Y1
Z T A
12V
5V
DC2_DC2
CON2
1
2
24V
P3.7
D8
LED
C10
104
R1
R
D19
DIODE
12V
R27
330 2W
D10
LED
D6
LED
12V
PWM2
D1
DIODE
C9

104
12V
5V
12
D15
LED
R8
R
+
C5
10UF
P2.2
LEDT HU6
9V
DK ROLE4
OPT O4
C ROLE4
RN4
1K
2
3
4
5
6
7
8
1
9
D7
LED

U5
74151
4
3
2
1
15
14
13
12
11
10
9
7
6
5
D0
D1
D2
D3
D4
D5
D6
D7
A
B
C
G
Y
Y

5V
CAMBIEN2
LEDT HU2
CAMBIEN4
LEDT HU8
PWM4
Q11
D468
-
+
U7C
LM324
10
9
8
D31
R4
R
RN1
4K7
2
3
4
5
6
7
8
1
9
12

5V
CAMBIEN1
DK PWM3
D11
LED
CAMBIEN5
13
C6
30P
Q7
D468
12V
DK PWM4
12
-
+
U7A
LM324
3
2
1
U9
ULN28 03
10 9
1
2
3
4
5
6

7
8
18
17
16
15
14
13
12
11
COM GND
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
24V
P2.0
LEDT HU1

D1
D3
LED
D22
D27
DIODE
-
+
U8B
LM324
5
6
7
12V
5V
OPTO 7
9V
5V
LEDT HU3
11
12V
LEDTHU4
OPTO5
DC1_DC1
CON2
1
2
R3
R
D29

CAMBIEN8
RN7
1K
2
3
4
5
6
7
8
1
9
Q14
B562
D12
LED
R2
330
J4
CON8
1
2
3
4
5
6
7
8
ROLE4
C PWM3

RN5
2K2
2
3
4
5
6
7
8
1
9
D13
LED
J4
SWITC H LIMIT
1
2
3
4
5
6
7
8
9
10
LEDT HU7
PT 2 272
1
2
3

4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Q10
B562
R5
R
R26
330 2W
PWM3
J2
NAP P HILLIP
1
2
3
4
CAMB IEN1
OPTO4

RN2
2K2
2
3
4
5
6
7
8
1
9
J1
PT2262
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

18
LEDT HU2
GND
12V
5V
LEDT HU7
C ROLE3
C11
104
LS2
RELAY
3
2
4
6
7
5
1
8
D26
5V
ROLE2
ISO5DC2
12
43
5V
CAMBIEN8
GND
D3
P2.5

J4
PORT 3
1
2
3
4
5V
C ROLE1
ROLE1
10
VCC
11
U1 780 5
1 3
2
VIN VOUT
GND
DK ROLE3
D18
LED
SW1
RESE T
D25
D5
LE D
PWM1
ROLE4
PWM2
D6
CAMBIEN8

P2.1
P3.6
LEDT HU2
P2.4
LEDT HU1
LEDT HU7
R9
R
RN6
4k7
2
3
4
5
6
7
8
1
9
CAMBIEN4
C PWM2
AnT en
CA MBIEN7
R6
R
Q8
B562
OPTO8
PWM1
GND

24V
OPTO1
D1
LE D
Tra nsmist er
13
ISO3DC1
12
43
24V
DK ROLE1
LS3
RELAY
3
2
4
6
7
5
1
8
5V
D32
D23
12
M1
IRF540
Data
in
5V

CAMB IEN3
DK PWM3
-
+
U7B
LM324
5
6
7
CAMBIEN5
PWM4
J3
DA T A
1
2
3
-
+
U8 D
LM324
12
13
14
5V
5V
DK PWM2
LEDT HU5
LS1
RELAY
3

2
4
6
7
5
1
8
J6
12VDC
1
2
PC 817
12
43
P2.6
D30
DIODE
C7
30P
12V
LEDT HU5
DK ROLE3
10
12V
CAMBIEN6
R17 100 K
D2
DIODE
12V
C PWM4

+
C4
100 0 UF
LEDT HU1
C ROLE2
J1
P T2272
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
LS4
RELAY
3
2
4

6
7
5
1
8
R7
R
LEDT HU6
D9
LED
J2
DA TA
1
2
3
4
F1
FUSE
R14
10 K
R23
2.2K
DC4_DC4
CON2
1
2
GND
PWM3
DK ROLE1
C PWM2

C PWM1
5V
LEDT HU6
TX D
OPTO7
ISO4DC2
12
43
12
P2.4
PWM4
DK PWM1
12
-
+
U8 A
LM324
3
2
1
CAMBIEN5
DK ROLE4
OPTO2
DK ROLE2
CAMBIEN7
OPT O2
D28
DK PWM1
CAMBIEN3
CAMBIEN7

D17
LED
5V
R25
330 2W
12V
12V
C PWM4
D5
RN8
1K
2
3
4
5
6
7
8
1
9
R2
R
D16
LED
C8
104
P2.3
M3DC3
IRF540
J7

12VDC
1
2
5V
ROLE2
J12
S ENSOR
1
2
3
4
5
6
7
8
9
10
R1
R
Rec eiver
5V
R15 100 K
CAMBIEN1
PWM1
R1
3 3W
Q1
B6 88
12V
P2.2

Q9
D468
C PWM1
R16 100K
C ROLE3
5V
ROLE1
LEDTHU8
CAMBIEN2
Q13
D468
R22 100 K
D2
LED
OPTO3
DK ROLE2
D10
Q12
B562
D21
DIODE
OPTO6
C3
104
CAMBIEN2
R18 100 K
ISO6DC 3
12
43
18

J1
EN CODER
1
2
3
4
5
6
5V
OPT O3
18
D8
DIODE
5V
CAMBIEN6
LEDT HU5
PWM3
P2.0
OPTO 5
M2DC2
IRF540
J2
NGUON 5V
1
2
D4
LED
5V
DK PWM4
C ROLE1

J13
CON6
1
2
3
4
5
6
LEDT HU4
J3
NGUON 9V
1
2
24V
D20
LED
5V
C PWM3
U4
8 0 51
29
30
31
19
18
9
39
38
37
36

35
34
33
32
1
2
3
4
5
6
7
8
21
22
23
24
25
26
2728
10
11
12
13
14
15
16
17
PSE N
ALE
E A

X1
X2
RST
P 0.0 /AD0
P 0.1/AD1
P 0.2/AD2
P 0.3/AD3
P 0.4/AD4
P 0.5/AD5
P 0.6 /AD6
P 0.7/AD7
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P 2.0/ A8
P 2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/ A14P2.7/A15
P3.0/R XD
P3.1/TXD
P3.2/INT0
P3.3/INT1

P3.4/T0
P3.5/T1
P3.6/ WR
P3.7/RD
+
C2
0.33UF
PWM2
9V
R21 100 K
ISO9DC 4
12
43
SW2
MODE
5V
CA MBIEN3
ROLE3
C ROLE2
-
+
U8 C
LM324
10
9
8
D4
ISO8DC 4
12
43

AnT en
12V
5V
9V
RX D
DK PWM2
OPT O1
J8
24VDC
1
2
D14
LED
12V
ISO7DC3
12
43
OPTO 8
D24
DIODE
Dat a
out
RST
R24
330 2W
CAMBIEN6
LEDT HU8
ROLE3
PT22 72
1

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
LEDT HU3
D9
b, Mạch thu RF:
Mạch thu RF
Nguyên lý hoạt động:
Tín hiệu RF thu được từ Receiver, qua PT2272 để giải mã và gửi đến vi
điều khiển xử lý.
Ta có sơ đồ mạch thu RF:
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 19
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh
OPT O6
GND
+

C1
10 00 UF
CAMBIEN4
LEDT HU4
C ROLE4
M4DC4
IRF540
R19 100 K
-
+
U7D
LM324
12
13
14
R20 10 0 K
P 2.3
LEDTHU3
DC3_DC3
CON2
1
2
D7
Y1
Z T A
12V
5V
DC2_DC2
CON2
1

2
24V
P3.7
D 8
LED
C10
104
R1
R
D19
DIODE
12V
R 27
330 2W
D10
LED
D6
LED
12V
PWM2
D1
DIODE
C9
104
12V
5V
12
D15
LED
R8

R
+
C5
10UF
P 2.2
LEDTHU6
9V
DK ROLE4
OPTO4
C ROLE4
RN4
1K
2
3
4
5
6
7
8
1
9
D7
LED
U5
74151
4
3
2
1
15

14
13
12
11
10
9
7
6
5
D0
D1
D2
D3
D4
D5
D6
D7
A
B
C
G
Y
Y
5V
CAMBIEN2
LE DTHU2
CAMBIEN4
LEDT HU8
P WM4
Q11

D46 8
-
+
U7C
LM324
10
9
8
D31
R4
R
RN1
4K7
2
3
4
5
6
7
8
1
9
12
5V
CA MBIEN1
DK PWM3
D11
LED
CAMBIEN5
13

C6
30P
Q7
D46 8
12V
DK PWM4
12
-
+
U7A
LM324
3
2
1
U9
ULN280 3
10 9
1
2
3
4
5
6
7
8
18
17
16
15
14

13
12
11
COM GND
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
24V
P 2.0
LEDT HU1
D1
D3
LED
D22
D27
DIODE
-

+
U8B
LM324
5
6
7
12V
5V
OPT O7
9V
5V
LEDT HU3
11
12V
LEDTHU4
OPTO 5
DC1_DC1
CON2
1
2
R3
R
D29
CA MBIEN8
RN7
1K
2
3
4
5

6
7
8
1
9
Q14
B5 62
D12
LED
R2
330
J4
CON8
1
2
3
4
5
6
7
8
ROLE4
C PWM3
RN5
2K2
2
3
4
5
6

7
8
1
9
D13
LED
J4
SWITC H LIMIT
1
2
3
4
5
6
7
8
9
10
LEDTHU7
PT 2272
1
2
3
4
5
6
7
8
9
10

11
12
13
14
15
16
17
18
Q10
B5 62
R5
R
R 26
330 2W
P WM3
J2
N AP PHILLIP
1
2
3
4
CA MBIEN1
OPTO 4
RN2
2K2
2
3
4
5
6

7
8
1
9
J1
PT 2262
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
LEDTHU2
GND
12V
5V
LEDTHU7
C ROLE3

C11
104
LS2
RELAY
3
2
4
6
7
5
1
8
D26
5V
ROLE2
ISO5DC2
12
43
5V
CA MBIEN8
GND
D3
P2.5
J4
PORT 3
1
2
3
4
5V

C ROLE1
ROLE1
10
VC C
11
U1 7805
1 3
2
VIN VOUT
GND
DK ROLE3
D18
LED
SW1
RESET
D25
D5
LED
P WM1
ROLE4
PW M2
D6
CAMBIEN8
P2.1
P3.6
LEDT HU2
P 2.4
LEDTHU1
LEDT HU7
R9

R
RN6
4k7
2
3
4
5
6
7
8
1
9
CA MBIEN4
C PWM2
AnT en
CA MBIEN7
R6
R
Q8
B5 62
OPTO 8
PW M1
GND
24V
OPTO 1
D1
LED
Tra nsmis ter
13
ISO3DC1

12
43
24V
DK ROLE1
LS3
RELAY
3
2
4
6
7
5
1
8
5V
D32
D23
12
M1
IRF540
Dat a
in
5V
CA MBIEN3
DK PWM3
-
+
U7B
LM324
5

6
7
CA MBIEN5
PWM4
J3
DA TA
1
2
3
-
+
U8D
LM324
12
13
14
5V
5V
DK PWM2
LEDTHU5
LS1
RELAY
3
2
4
6
7
5
1
8

J6
12VDC
1
2
PC817
12
43
P2.6
D30
DIODE
C7
30P
12V
LEDT HU5
DK ROLE3
10
12V
CA MBIEN6
R17 100K
D2
DIODE
12V
C PWM4
+
C4
100 0UF
LEDT HU1
C ROLE2
J1
PT2272

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
LS4
RELAY
3
2
4
6
7
5
1
8
R7
R

LEDT HU6
D9
LED
J2
DA TA
1
2
3
4
F1
FUSE
R14
10 K
R 23
2.2K
DC4_DC4
CON2
1
2
G ND
PWM3
DK ROLE1
C PWM2
C PWM1
5V
LE DTHU6
TX D
OPTO 7
ISO4DC2
12

43
12
P2.4
PW M4
DK PWM1
12
-
+
U8A
LM324
3
2
1
CAMBIEN5
DK ROLE4
OPTO 2
DK ROLE2
CAMBIEN7
OPTO2
D28
DK PWM1
CA MBIEN3
CA MBIEN7
D17
LED
5V
R 25
330 2W
12V
12V

C PWM4
D5
RN8
1K
2
3
4
5
6
7
8
1
9
R2
R
D16
LED
C8
104
P2.3
M3DC3
IRF540
J7
12VDC
1
2
5V
ROLE2
J12
SENSOR

1
2
3
4
5
6
7
8
9
10
R 1
R
Rec eiver
5V
R15 100 K
CAMBIEN1
PWM1
R1
3 3W
Q1
B68 8
12V
P2.2
Q9
D46 8
C PWM1
R16 10 0 K
C ROLE3
5V
ROLE1

LEDTHU8
CAMBIEN2
Q13
D46 8
R22 100 K
D2
LED
OPTO 3
DK ROLE2
D10
Q12
B5 62
D21
DIODE
OPTO 6
C3
104
CA MBIEN2
R18 100 K
ISO6DC3
12
43
18
J1
ENCODER
1
2
3
4
5

6
5V
OPTO3
18
D8
DIODE
5V
CAMBIEN6
LEDT HU5
PW M3
P2.0
OPT O5
M2DC2
IRF540
J2
NGUON 5V
1
2
D4
LE D
5V
DK PWM4
C ROLE1
J13
CON6
1
2
3
4
5

6
LEDTHU4
J3
NGUON 9V
1
2
24V
D20
LED
5V
C PWM3
U4
80 5 1
29
30
31
19
18
9
39
38
37
36
35
34
33
32
1
2
3

4
5
6
7
8
21
22
23
24
25
26
2728
10
11
12
13
14
15
16
17
PSEN
ALE
EA
X1
X2
RST
P 0.0/AD0
P 0.1/AD1
P 0.2/AD2
P 0.3/AD3

P 0.4/AD4
P 0.5/AD5
P 0.6/AD6
P 0.7/AD7
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14P2.7/A 15
P 3.0/RXD
P 3.1/TXD
P3.2/INT 0
P3.3/INT 1
P3.4/T 0
P3.5/T 1
P3.6/WR
P3.7/RD
+
C2
0.33UF

P WM2
9V
R21 100K
ISO9DC4
12
43
SW2
MODE
5V
CA MBIEN3
ROLE3
C ROLE2
-
+
U8 C
LM324
10
9
8
D4
ISO8DC4
12
43
AnTen
12V
5V
9V
RX D
DK PWM2
OPTO1

J8
24VDC
1
2
D14
LED
12V
ISO7DC3
12
43
OPT O8
D24
DIODE
Data
out
RST
R 24
330 2W
CAMBIEN6
LEDTHU8
ROLE3
PT2272
1
2
3
4
5
6
7
8

9
10
11
12
13
14
15
16
17
18
LEDTHU3
D9
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 20
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh
CHƯƠNG III: LƯU ĐỒ THUẬT TỐN VÀ CHƯƠNG TRÌNH
ĐIỀU KHIỂN CHO ROBOT
3.1. Lưu đồ thuật tốn:
Bắt đầu
Đọc cổng P3
ORL Với
11000011(C3H)
Sai
P3=0C3(H) ?
Đúng
Sai
P3= 0D3(H)?
Đúng
Sai
Đúng
P3=0EB(H)?

Sai
P3=0C7(H)?
Đúng
P3=0E3(H)?
Đúng
Cùng Tiến
Re? Phải
Re? Trái
Cùng Lùi
Sai
Dừng
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 21
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh
3.2. Chương trình điều khiển Robot:
ORG 0000H
DATBIEN :
DCT DATA P1.4
ROLET BIT P1.0
DCP DATA P1.5
ROLEP BIT P1.1
MAIN :
MOV A,#11000011B
NHAN:
MOV 32H,A
MOV A,P3
ORL A,#0C3H ; 11000011
CJNE A,32H,KTRA
JMP NHAN
KTRA:
CJNE A,#0C7H,KTRA2 ; 11000111

LCALL RE_TRAI
KTRA2:
CJNE A,#0CBH,KTRA3 ; 11001011
LCALL PHAI_TIEN
KTRA3:
CJNE A,#0D3H,KTRA4 ; 11010011
LCALL CUNG_TIEN
KTRA4:
CJNE A,#0E3H,KTRA5 ; 11100011
LCALL CUNG_LUI
KTRA5:
CJNE A,#0F3H,KTRA6 ; 11110011
LCALL TRAI_TIEN
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 22
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh
KTRA6:
CJNE A,#0D7H, KTRA7 ; 11010111
LCALL STOP

KTRA7:
CJNE A,#0EBH,NHAN ; 11101011
LCALL RE_PHAI
JMP NHAN
; CHUONG TRINH CHO MOTOR
STOP:
MOV DCT,#10
MOV DCP,#10
LCALL DELAY
LCALL DELAY
MOV DCT,#0

MOV DCP,#0
CALL DELAY
JMP NHAN
PHAI_TIEN:
MOV DCT,#0
MOV DCP,#0
SETB ROLET
SETB ROLEP
LCALL DELAY
MOV DCT,#100
MOV DCP,#60
LCALL DELAY
JMP NHAN
RE_TRAI:
MOV DCT,#0
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 23
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh
MOV DCP,#0
SETB ROLET
CLR ROLEP
LCALL DELAY
MOV DCT,#50
MOV DCP,#50
LCALL DELAY
JMP NHAN
TRAI_TIEN:
MOV DCP,#0
MOV DCT,#0
SETB ROLET
SETB ROLEP

LCALL DELAY
MOV DCP,#100
MOV DCT,#60
LCALL DELAY
JMP NHAN
RE_PHAI:
MOV DCT,#0
MOV DCP,#0
CLR ROLET
SETB ROLEP
LCALL DELAY
MOV DCT,#50
MOV DCP,#50
LCALL DELAY
JMP NHAN
CUNG_TIEN:
MOV DCT,#0
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 24
Bài tập lớn vi xử lý GVHD: Phạm Tuấn Anh
MOV DCP,#0
SETB ROLET
SETB ROLEP
LCALL DELAY
MOV DCT,#100
MOV DCP,#100
LCALL DELAY
JMP NHAN
CUNG_LUI:
MOV DCT,#0
MOV DCP,#0

CLR ROLET
CLR ROLEP
LCALL DELAY
MOV DCT,#120
MOV DCP,#120
LCALL DELAY
JMP NHAN
; DELAY
DELAY:
MOV 7FH,#100
BACK_DELAY:
MOV 7EH,#250
DJNZ 7EH,$
DJNZ 7FH, BACK_DELAY
DJNZ THOI_GIAN_TRE, DELAY
MOV THOI_GIAN_TRE, #1
RET
END
SV: Đỗ Khắc Huy- ĐTĐ49ĐH2 25

×