Mô hình Robot dò đường thiết kế chạy ổn định, bám vạch chính xác, chạy đúng thuật
toán yêu cầu và hoàn thành nhiệm vụ.
Thể hiện được khả năng hoàn toàn tự động của mô hình, hoạt động theo chương trình
đã lập trình.Đây là bước ngoặc quan trong mở để Robot tiến xa hơn nữa trong quá
trình tự động hóa.
Trong tương lai không xa, Robot sẽ thay thế con người làm tất cả công việc nặng nhọc
nâng cao hiệu suất lao động và giảm thiểu tối đa sức lực con người.
47 trang |
Chia sẻ: lylyngoc | Lượt xem: 8962 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Đồ án Điều khiển robot dò đường, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 1
LỜI NÓI ĐẦU
Ngày nay điều khiển tự động đã trở thành một nhu cầu không thể thiếu đƣợc của
con ngƣời, dƣới sự xuất hiện của các học thuyết và các ứng dụng cụ thể trong đời sống
hằng ngày, có thể nói điều khiển tự động đang chi phối dần cuộc sống của chúng ta.
con ngƣời đang cố gắng sáng tạo ra các con robot có khả năng làm việc thay cho con
ngƣời, chúng ta thƣờng bắt gặp các con robot trong các dây chuyền công nghiệp sản
xuất tự động hay robot giúp việc trong gia đình. Để tìm ra các ý tƣởng sáng tạo hay
hàng năm đề diễn ra cuộc thi robocon châu á thái bình dƣơng đó là tiền đề để tạo ra
những con robot có khả năng áp dụng vào thực tế.
Cũng chính vì mục đích đó mà chúng em thực hiện đồ án điều khiển robot dò
đƣờng, nó lại là bƣớc khởi đầu trong lập trình robot để robot có thể thực hiện các công
việc tiếp theo. Đây chỉ là một công việc nhỏ của lập trình điều khiển robot nhƣng qua
quá trình thiết kế và thi công đề tài chúng em đã rút ra đƣợc rất nhiều kinh nghiệm
thực tiễn quý báu. Mục đích của đề tài hƣớng đến là tạo ra bƣớc đầu cho sinh viên thử
nghiệm những ứng dụng của vi điều khiển trong thực tiễn để rồi từ đó tìm tòi, phát
triển nhiều ứng dụng khác trong đời sống hằng ngày cần đến.
Mặc dù đã cố gắng hết sức mình để hoàn thành xong đồ án môn học bằng các
kiến thức đã học, một số sách tham khảo và một số nguồn tài liệu khác nhƣng cũng
không tránh khỏi những thiếu sót. Do vậy, chúng em rất mong đƣợc sự góp ý quý báu
của thầy cô và các bạn để đề tài có thể hoàn thiện ở mức cao nhất.
Nhân đây cho chúng em xin gữi lời cám ơn chân thành đến Thầy Phạm Duy
Dƣởng và các Thầy bộ môn đã tận tình hƣớng dẫn để chúng em hoàn thành tốt đề tài
của mình!
Nhóm sinh viên thực hiện :
Bùi Xuân Dũng
Trần Văn Thọ
Bùi Phúc Hát
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 2
CHƢƠNG I
TỔNG QUAN VỀ VI ĐIỀU KHIỂN 8051
1. Tổng quan
1.1. Giới thiệu chung
MCS-51 là họ vi điều khiển của hãng Intel. Vi mạch tổng quát của họ MCS-51 là chip
8051.
Chip 8051 có một số đặc trƣng cơ bản sau:
– Bộ nhớ chƣơng trình bên trong: 4 KB (ROM).
– Bộ nhớ dữ liệu bên trong: 128 byte (RAM).
– Bộ nhớ chƣơng trình bên ngoài: 64 KB (ROM).
– Bộ nhớ dữ liệu bên ngoài: 64 KB (RAM).
– 4 port xuất nhập (I/O port) 8 bit.
– 2 bộ định thời 16 bit.
– Mạch giao tiếp nối tiếp.
– Bộ xử lý bit (thao tác trên các bit riêng lẻ).
– 210 vị trí nhớ đƣợc định địa chỉ, mỗi vị trí 1 bit.
– Nhân / Chia trong 4 µs.
Ngoài ra, trong họ MCS-51 còn có một số chip vi điều khiển khác có cấu trúc tƣơng
đƣơng nhƣ:
Bảng 1
Bảng 1: Cấu trúc tương ứng của họ 8051
1.2. Các phiên bản của chip vi điều khiển 8051
1.2.1. Bộ vi điều khiển 8052
8052 là một phiên bản của họ 8051. 8052 có tất cả các thông số kỹ thuật của
8051, ngoài ra còn có thêm 128 byte RAM, 4KB ROM và một bộ định thời nữa. Nhƣ
vậy, 8052 có tổng cộng 256 byte RAM, 8KB ROM và ba bộ định thời.
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 3
Bảng 2
Đặc tính kỹ thuật 8031 8051 8052
ROM trên chip(KB) 0 4 8
RAM trên chip(byte) 128 128 256
Bộ định thời 2 2 3
Chân vào/ra 32 32 32
Cổng nối tiếp 1 1 1
Nguồn ngắt 5 5 6
Bảng 2:Các phiên bản của 8051
Nhƣ bảng thông số trên ta thấy 8051 là một trƣờng hợp riêng của 8052. Mọi chƣơng
trình viết cho 8051 đều có thể chạy đƣợc trên 8052 nhƣng điều nguợc lại có thể là
không đúng.
1.2.2. Bộ vi điều khiển AT8951 của Atmel Corporation
AT8951 là phiên bản 8051 có ROM trên chip là bộ nhớ Flash. Phiên bản này rất
thích hợp cho các ứng dụng nhanh vì bộ nhớ Flash có thể đƣợc xóa trong vài giây. Dĩ
nhiên là để dùng AT8951 cần phải có thiết bị lập trình PROM hỗ trợ bộ nhớ Flash
nhƣng không cần đến thiết bị xóa ROM vì bộ nhớ Flash đƣợc xóa bằng thiết bị lập
trình PROM. Để tiện sử dụng, hiện nay hãng Atmel đang nghiên cứu một phiên bản
của AT8951 có thể đƣợc lập trình qua cổng COM của máy tính PC và Nhƣ vậy sẽ
không cần đến thiết bị lập trình PROM.
Bảng 3
Ký hiệu ROM RAM I/O Timer Ngắt Vcc Số chân IC
AT89C51 4KB 128 32 2 5 5V 40
AT89LV51 4KB 128 32 2 5 3V 40
AT89C1051 1KB 64 15 1 3 3V 20
AT89C2051 2KB 128 15 2 5 3V 20
AT89C52 8KB 256 32 3 6 5V 40
AT89LV52 8KB 256 32 3 6 3V 40
Bảng 3: Cấu trúc bộ vi điều khiển 8051
1.2.3. Bộ vi điều khiển DS5000 của Dallas Semiconductor
Một phiên bản phổ biến khác nữa của 8051 là DS5000 của hãng Dallas
Semiconductor. Bộ nhớ ROM trên chip của DS5000 là NV-RAM. DS5000 có khả
năng nạp chƣơng trình vào ROM trên chip trong khi nó vẫn ở trong hệ thống mà
không cần phải lấy ra. Cách thực hiện là dùng qua cổng COM của máy tính PC. Đây
là điểm mạnh đƣợc ƣa chuộng,Ngoài ra NV-RAM còn có nhiều ƣu việt là cho phép
thay đỏi nội dung RAM theo từng byte mà không phải xóa hết trƣớc khi lập trình nhƣ
bộ nhớ EPROM.
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 4
Bảng 4
Ký hiệu ROM RAM I/O Timer Ngắt Vcc Số chân IC
DS5000-8 8KB 128 32 2 6 5V 40
DS5000-32 32KB 128 32 2 6 5V 40
DS5000T-8 8KB 128 32 2 6 5V 40
DS5000T-32 32KB 128 32 2 6 5V 40
Đây là một phiên bản cải tiến sử dụng CPU là bộ vi điều khiển 80C51 với nhiều
tính năng vuợt trội: dung lƣợng ROM/RAM trên chip rất lớn, 3 Timer 16 bit + 1
Watch-dog Timer, 2 thanh ghi DPTR, 8 nguồn ngắt, PWM (Pulse Width Modulator),
SPI (Serial Peripheral Interface) và đặc biệt là bộ nhớ chƣơng trình trên chip có tính
năng ISP (In-System Programming) và IAP (In-Application Programming),…
2. Các chân của chip 8051
2.1 . Sơ đồ khối và chức năng các khối của chip 8051
Hình 1: Sơ đồ khối của chíp 8051
Chức năng các khối:
– CPU (Central Processing Unit): Đơn vị xử lý trung tâm tính toán và điều khiển
quá trình hoạt động của hệ thống.
– OSC (Oscillator): Mạch dao động tạo tín hiệu xung clock cung cấp cho các
khối trong chip hoạt động.
– Interrupt control: Điều khiển ngắt nhận tín hiệu ngắt từ bên ngoài (INT0\,
INT1\), từ bộ định thời (Timer 0, Timer 1) và từ cổng nối tiếp (Serial port), lần
luợt đua các tín hiệu ngắt này đến CPU để xử lý.
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 5
– Other registers: Các thanh ghi khác Lƣu trữ dữ liệu của các port xuất/nhập,
trạng thái làm việc của các khối trong chip trong suốt quá trình hoạt động của
hệ thống.
– RAM (Random Access Memory): Bộ nhớ dữ liệu trong chip lƣu trữ các dữ
liệu.
– ROM (Read Only Memory): Bộ nhớ chƣơng trình trong chip lƣu trữ chƣơng
trình hoạt động của chip.
– I/O ports (In/Out ports): Các port xuất/nhập điều khiển việc xuất nhập dữ liệu
duới dạng song song giữa trong và ngoài chip thông qua các port P0, P1, P2,
P3.
– Serial port: Port nối tiếp điều khiển việc xuất nhập dữ liệu duới dạng nối tiếp
giữa trong và ngoài chip thông qua các chân TxD, RxD.
– Timer 0, Timer 1: Bộ định thời 0, 1 dùng để định thời gian hoặc đếm sự kiện
(đếm xung) thông qua các chân T0, T1.
– Bus control: Điều khiển bus điều khiển hoạt động của hệ thống bus và việc di
chuyển thông tin trên hệ thống bus.
– Bus system: Hệ thống bus liên kết các khối trong chip lại với nhau.
2.2 . Sơ đồ chân và chức năng các chân của chip 8051
Hình 2: Sơ đồ chân chíp 8051
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 6
2.2.1. Port 0
Port 0 (P0.0 – P0.7) có số chân từ 32 – 39.
Port 0 có hai chức năng:
– Port xuất nhập dữ liệu (P0.0 - P0.7) không sử dụng bộ nhớ ngoài.
– Bus địa chỉ byte thấp và bus dữ liệu đa hợp (AD0 – AD7) có sử dụng bộ nhớ
ngoài.
Lƣu ý: Khi Port 0 đóng vai trò là port xuất nhập dữ liệu thì phải sử dụng các điện trở
kéo lên bên ngoài.
Ở chế độ mặc định (khi reset) thì các chân Port 0 (P0.0 - P0.7) đƣợc cấu hình là port
xuất dữ liệu. Muốn các chân Port 0 làm port nhập dữ liệu thì cần phải lập trình lại,
bằng cách ghi mức logic cao (mức 1) đến tất cả các bit của port truớc khi bắt đầu nhập
dữ liệu từ port (vấn đề này đƣợc trình bày ở phần kế tiếp). Khi lập trình cho ROM
trong chip thì Port 0 đóng vai trò là ngõ vào của dữ liệu (D0-D7).
2.2.2. Port 1
Port 1 (P1.0 – P1.7) có số chân từ 1 – 8.
Port 1 có một chức năng:
– Port xuất nhập dữ liệu (P1.0 – P1.7) sử dụng hoặc không sử dụng bộ nhớ
ngoài.
– Ở chế độ mặc định (khi reset) thì các chân Port 1 (P1.0 – P1.7) đƣợc cấu hình
là port xuất dữ liệu. Muốn các chân Port 1 làm port nhập dữ liệu thì cần phải
lập trình lại, bằng cách ghi mức logic cao (mức 1) đến tất cả các bit của port
truớc khi bắt đầu nhập dữ liệu từ port (vấn đề này đƣợc trình bày ở phần kế
tiếp).
Khi lập trình cho ROM trong chip thì Port 1 đóng vai trò là ngõ vào của địa chỉ byte
thấp (A0 – A7).
2.2.3. Port 2
Port 2 (P2.0 – P2.7) có số chân từ 21 – 28.
Port 2 có hai chức năng:
– Port xuất nhập dữ liệu (P2.0 – P2.7)không sử dụng bộ nhớ ngoài.
– Bus địa chỉ byte cao (A8 – A15) có sử dụng bộ nhớ ngoài.
Ở chế độ mặc định (khi reset) thì các chân Port 2 (P2.0 – P2.7) đƣợc cấu hình là port
xuất dữ liệu. Muốn các chân Port 2 làm port nhập dữ liệu thì cần phải lập trình lại,
bằng cách ghi mức logic cao (mức 1) đến tất cả các bit của port truớc khi bắt đầu nhập
dữ liệu từ port (vấn đề này đƣợc trình bày ở phần kế tiếp).
Khi lập trình cho ROM trong chip thì Port 2 đóng vai trò là ngõ vào của địa chỉ byte
cao (A8 – A11) và các tín hiệu điều khiển.
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 7
2.2.4. Port 3
Port 3 (P3.0 – P3.7) có số chân từ 10 – 17.
Port 3 có hai chức năng:
– Port xuất nhập dữ liệu (P3.0 – P3.7) không sử dụng bộ nhớ ngoài hoặc các
chức năng đặc biệt.
– Các tín hiệu điều khiển có sử dụng bộ nhớ ngoài hoặc các chức năng đặc biệt.
Ở chế độ mặc định (khi reset) thì các chân Port 3 (P3.0 – P3.7) đƣợc cấu hình là port
xuất dữ liệu. Muốn các chân Port 3 làm port nhập dữ liệu thì cần phải lập trình lại,
bằng cách ghi mức logic cao (mức 1) đến tất cả các bit của port truớc khi bắt đầu nhập
dữ liệu từ port (vấn đề này đƣợc trình bày ở phần kế tiếp).
Khi lập trình cho ROM trong chip thì Port 3 đóng vai trò là ngõ vào của các tín hiệu
điều khiển (xem sách “Họ vi điều khiển 8051” trang 333-352).
Chức năng của các chân Port 3:
Bảng 5
Bit Tên Địa chỉ bit Chức năng
P3.0 RxD B0H Chân nhận dữ liệu của port nối tiếp.
P3.1 TxD B1H Chân phát dữ liệu của port nối tiếp.
P3.2 INT0\ B2H Ngõ vào ngắt ngoài 0.
P3.3 INT1\ B3H Ngõ vào ngắt ngoài 1.
P3.4 T0 B4H Ngõ vào của bộ định thời/đếm 0.
P3.5 T1 B5H Ngõ vào của bộ định thời/đếm 1.
P3.6 WR\ B6H Điều khiển ghi vào RAM ngoài.
P3.7 RD\ B7H Điều khiển ñọc từ RAM ngoài.
Bảng 5: Chức năng của các chân Port 3
2.2.5Chân PSEN\
PSEN (Program Store Enable): cho phép bộ nhớ chƣơng trình, chân số 29.
Chức năng:
– Là tín hiệu cho phép truy xuất (đọc) bộ nhớ chƣơng trình (ROM) ngoài.
– Là tín hiệu xuất, tích cực mức thấp.
PSEN\ = 0 trong thời gian CPU tìm - nạp lệnh từ ROM ngoài.
PSEN\ = 1 CPU sử dụng ROM trong (không sử dụng ROM ngoài).
Khi sử dụng bộ nhớ chƣơng trình bên ngoài, chân PSEN\ thƣờng đƣợc nối với chân
OE\ của ROM ngoài để cho phép CPU đọc mã lệnh từ ROM ngoài.
2.2.6. Chân ALE
ALE (Address Latch Enable): cho phép chốt địa chỉ, chân số 30.
Chức năng:
– Là tín hiệu cho phép chốt địa chỉ để thực hiện việc giải đa hợp cho bus địa chỉ
byte thấp và bus dữ liệu đa hợp (AD0 – AD7).
– Là tín hiệu xuất, tích cực mức cao.
ALE = 0 trong thời gian bus AD0 - AD7 đóng vai trò là bus D0 - D7.
ALE = 1 trong thời gian bus AD0 - AD7 đóng vai trò là bus A0 - A7.
Khi lập trình cho ROM trong chip thì chân ALE đóng vai trò là ngõ vào của xung lập
trình (PGM\).
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 8
Lƣu ý: fALE = fOSC/6 có thể dùng làm xung clock cho các mạch khác.
(MHz): tần số xung tại chân ALE. f
(MHz): tần số dao động trên chip (tần số thạch anh).
Khi lệnh lấy dữ liệu từ RAM ngoài (MOVX) đƣợc thực hiện thì một xung ALE bị bỏ
qua.
2.2.7. Chân EA\
EA (External Access): truy xuất ngoài, chân số 31.
Chức năng:
– Là tín hiệu cho phép truy xuất (sử dụng) bộ nhớ chƣơng trình (ROM) ngoài.
– Là tín hiệu nhập, tích cực mức thấp.
EA\ = 0 Chip 8051 sử dụng chƣơng trình của ROM ngoài.
EA\ = 1 Chip 8051 sử dụng chƣơng trình của ROM trong.
Khi lập trình cho ROM trong chip thì chân EA đóng vai trò là ngõ vào của điện áp lập
trình(Vpp = 12V – 12,5V cho họ 89xx; 21V cho họ 80xx, 87xx).
Lƣu ý: Chân EA\ phải đƣợc nối lên Vcc (nếu sử dụng chƣơng trình của ROM trong)
hoặc nối xuống GND (nếu sử dụng chƣơng trình của ROM ngoài), không bao giờ
đƣợc phép bỏ trống chân này.
2.2.8. Chân XTAL1, XTAL2
XTAL (Crystal): tinh thể thạch anh, chân số 18-19.
Chức năng:
– Dùng để nối với thạch anh hoặc mạch dao động tạo xung clock bên ngoài, cung
cấp tín hiệu xung clock cho chip hoạt động.
– XTAL1 ngõ vào mạch tạo xung clock trong chip.
– XTAL2 ngõ ra mạch tạo xung clock trong chip
Lƣu ý: fTYP = 12MHz fTYP (MHz): tần số danh định.
2.2.9. Chân RST
RST (Reset): thiết lập lại, chân số 9.
Chức năng:
– Là tín hiệu cho phép thiết lặp (đặt) lại trạng thái ban đầu cho hệ thống.
– Là tín hiệu nhập, tích cực mức cao.
RST = 0 Chip 8051 hoạt động bình thƣờng.
RST = 1 Chip 8051 đƣợc thiết lặp lại trạng thái ban đầu.
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 9
Lƣu ý:
tReset ≥ 2 × TMachine TMachine = 12/fOSC.
tReset(µs): thời gian reset. fOSC = (MHz): tần số thạch anh.
TMACHINE(µs): chu kỳ máy.
Hình 3: Sơ đồ nguyên lý chân Reset
2.2.10. Chân Vcc, GND
Vcc, GND: nguồn cấp điện, chân số 40 và 20.
Chức năng:
– Cung cấp nguồn điện cho chip 8051 hoạt động.
– Vcc = +5V, 10% và GND = 0V
3. Tổ chức bộ nhớ của chip 8051
Bộ vi xử lý có không gian bộ nhớ chung cho dữ liệu và chƣơng trình.
3.1. Bộ nhớ chƣơng trình (ROM)
Dùng để lƣu trữ chƣơng trình điều khiển cho chip 8051 hoạt động.
Chip 8051 có 4 KB ROM trong, địa chỉ truy xuất: 000H – FFFH.
3.2. Bộ nhớ dữ liệu (RAM)
Dùng để lƣu trữ các dữ liệu và tham số.
Chip 8051 có 128 byte RAM trong, địa chỉ truy xuất: 00H – 7FH.
RAM trong của chip 8051 đƣợc chia ra:
– RAM đa chức năng:
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 10
– RAM định địa chỉ bit: Cho phép xử lý từng bit dữ liệu riêng lẻ mà không ảnh
hƣởng đến các bit khác trong cả byte.
3.3. Thanh ghi chức năng đặc biệt
3.3.1. Thanh ghi A
3.3.2. Thanh ghi B
Phép nhân 2 số 8 bit không dấu -> kết quả là số 16 bit.
– Byte cao -> chứa vào thanh ghi B.
– Byte thấp -> chứa vào thanh ghi A.
– Phép chia 2 số 8 bit -> thƣơng số và số dƣ là số 8 bit.
– Thƣơng số -> chứa vào thanh ghi A.
– Số dƣ -> chứa vào thanh ghi B.
3.3.3.Thanh ghi ngăn xếp (Stack Pointer)
Con trỏ stack SP (stack pointer) là 1 thanh ghi 8 bit ở địa chỉ 81H. SP chứa địa
chỉ của dữ liệu hiện đang ở đỉnh của stack. Các lệnh liên quan đến satck bao gồm lệnh
cất dữ liệu vào stack và lệnh lấy dữ liệu ra khỏi stack. Việc cất vào stack làm tăng SP
trƣớc khi ghi dữ liệu và việc lấy dữ liệu ra khỏi stack sẽ giảm SP. Vùng stack của
8051 đƣợc giữ trong RAM nội và đƣợc giới hạn đến các địa chỉ truy xuất đƣợc bởi
kiểu định địa chỉ gián tiếp. Các lệnh PUSH và POP sẽ cất dữ liệu vào stack và lấy dữ
liệu từ stack, các lệnh gọi chƣơng trình con (ACALL, LCALL) và lệnh trở về (RET,
RETI) cũng cất và phục hồi nội dung của bộ đếm chƣơng trình PC (Program counter).
3.3.4. Con trỏ dữ liệu DPTR
Con trỏ dữ liệu DPTR (data pointer) đƣợc dùng để truy xuất bộ nhớ chƣơng
trình ngoài hoặc bộ nhớ dữ liệu ngoài. DPTR là một thanh ghi 16 bit có địa chỉ là 82H
(DPL, byte thấp) và 83H (DPH, byte cao).
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 11
3.3.5. Thanh ghi bộ đệm truyền thông nối tiếp (Serial Data Buffer)
Bộ đệm truyền thông đƣợc chia thành hai bộ đệm, bộ đệm truyền dữ liệu và bộ
đệm nhận dữ liệu. Khi dữ liệu đƣợc chuyển vào thanh ghi SBUF, dữ liệu sẽ đƣợc
chuyển vào bộ đệm truyền dữ liệu và sẽ đƣợc lƣu giữ ở đó cho đến khi quá trình
truyền dữ liệu qua truyền thông nối tiếp kết thúc. Khi thực hiện việc chuyển dữ liệu từ
SBUF ra ngoài, dữ liệu sẽ đƣợc lấy từ bộ đệm nhận dữ liệu của truyền thông nối tiếp.
3.3.6. Thanh ghi của bộ định thời/bộ đếm
8051 có 2 bộ đếm/định thời (counter/timer) 16 bit để định các khoảng thời gian
hoặc để đếm các sự kiện. Các cặp thanh ghi (TH0, TL0) và (TH1, TL1) là các thanh
ghi của bộ đếm thời gian. Bộ định thời 0 có địa chỉ 8AH (TL0, byte thấp) và 8CH
(TH0, byte cao). Bộ định thời 1 có địa chỉ 8BH (TL1, byte thấp) và 8DH (TH1, byte
cao).Hoạt động của bộ định thời đƣợc thiết lập bởi thanh ghi chế độ định thời TMOD
(Timer Mode Register) ở địa chỉ 88H. Chỉ có TCON đƣợc định địa chỉ từng bit.
3.3.7. Các thanh ghi điều khiển
Các thanh ghi điều khiển đặc biệt nhƣ IP, IE, TMOD, TCON, SCON và PCON là các
thanh ghi điều khiển và ghi nhận trạng thái của hệ thống ngắt, bộ đếm/định thời,
truyền thông nối tiếp.
4. Ứng dụng
Vi điều khiển là một IC lập trình, vì vậy Vi điều khiển cần đƣợc lập trình trƣớc khi sử
dụng. Mỗi phần cứng nhất định phải có chƣơng trình phù hợp kèm theo, do đó trƣớc
khi viết chƣơng trình đòi hỏi ngƣời viết phải nắm bắt đƣợc cấu tạo phần cứng và các
yêu cầu mà mạch điện cần thực hiện.
Ứng dụng của vi điều khiển rất rộng rãi trong đời sống va trong công nghiệp.Tất cả
những thiết bị điện tử có phần điều khiển tự động đều có thể có mặt vi điều
khiển,trong nhu cầu công nghiệp hóa thì vi điều khiển trong vai trò quan trọng bậc
nhất trong chuyên nghành tự động và điều khiển.
Những ứng dụng đơn giản của vi điều khiển 8051:
– VĐK giao tiếp led đơn và phím nhấn
– Kết nối VĐK với Rơle
– Kết nối VĐK với LCD
– Kết nối VĐK với ma trận led.…
Chƣơng trình là tập hợp các lệnh đƣợc tổ chức theo một trình tự hợp lí để giải quyết
các yêu cầu của ngƣời lập trình.Tập hợp tất cả các lệnh gọi là tập lệnh. Họ Vi điều
khiển MSC-51 đều có chung một tập lệnh, các Vi điều khiển đƣợc cải tiến sau này
thƣờng ít thay đổi hoặc mở rộng tập lệnh mà chú trọng phát triển phần cứng.Vì các
lệnh của Vi điều khiển có dạng số nhị phân quá dài và khó nhớ, hơn nữa việc gỡ lỗi
khi chƣơng trình phát sinh lỗi rất phức tạp và khó khăn. Khó khăn này đƣợc giải quyết
với sự hỗ trợ của máy vi tính, ngƣời viết chƣơng trình có thể viết chƣơng trình cho vi
điều khiển bằng các ngôn ngữ lập trình cấp cao, sau khi việc viết chƣơng trình đƣợc
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 12
hoàn tất, các trình biên dịch sẽ chuyển các câu lệnh cấp cao thành mã máy một cách tự
động. Các mã máy này sau đó đƣợc đƣa (nạp) vào bộ nhớ ROM của Vi điều khiển, Vi
điều khiển sẽ tìm đến đọc các lệnh từ ROM để thực hiện chƣơng trình . Bản thân máy
tính không thể thực hiện các mã máy này vì chúng không phù hợp với phần cứng máy
tính, muốn thực hiện phải có các chƣơng trình mô phỏng dành riêng.Chƣơng trình cho
Vi điều khiển có thể viết bằng C++,C,Visual Basic, hoặc băng các ngôn ngữ cấp cao
khác. Tuy nhiên hợp ngữ Assembler đƣợc đa số ngƣời dùng Vi điều khiển sử dụng để
lập trình, vì lí do này chúng tôi chọn Assembly để hƣớng dẫn viết chƣơng trình cho Vi
điều khiển. Assembly là một ngôn ngữ cấp thấp, trong đó mỗi câu lệnh chƣơng trình
tƣơng ứng với một chỉ lệnh mà bộ xử lý có thể thực hiện đƣợc. Ƣu điểm của hợp ngữ
Assembly là: mã gọn,ít chiếm dung lƣợng bộ nhớ, hoạt động với tốc độ nhanh, và nó
có hiệu suất tốt hơn so với các chƣơng trình viết bằng ngôn ngữ bậc cao khác.
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 13
CHƢƠNG II
TỔNG QUAN VỀ ROBOT
GIỚI THIỆU VỀ ROBOT DÕ ĐƢỜNG
1. Tổng quan về robot
1.1. Lịch sử
Robot đã và đang xuất hiện trong cuộc sống của chúng ta từ lâu và ngày càng trở
thành một phần không thể thiếu trong cuộc sống hiện đại. Chúng đã góp phần mình
vào công cuộc lao động, chính robot đang làm nên một cuộc cách mạng về lao động,
khoa học, và đang phục vụ đắc lực cho các ngành khoa học nhƣ: khoa học quân sự,
khoa học giáo dục, các ngành dịch vụ, giải trí, v.v...
Vậy robot xuất hiện từ khi nào?
Năm 1921 nhà soạn kịch Karel Capek ngƣời Tiệp Khắc đã đƣa lên sân khấu vở kịch
có tiêu đề “Romands Univesal Robot”. Theo tiếng Séc “Robot” nghĩa là “Ngƣời tạp
dịch”. Có thể nói đây là một gợi ý, một ý tƣởng ban đầu về những cỗ máy có khả năng
thao tác nhƣ con ngƣời. Đến trƣớc chiến tranh thế giới lần thứ hai nhu cầu sử dụng
những máy móc có khả năng thay thế con ngƣời ở những môi trƣờng làm việc độc hại
đã trở thành một nhu cầu cấp thiết. Ban đầu cơ cấu máy này hoạt động giống nhƣ tay
máy của ngƣời vận hành. Cấu tạo của cơ cấu này bao gồm các thanh và các khớp và
hệ thống giây chằng. Ngƣời vận hành điều khiển tay máy thông qua một cơ cấu
khuyếch đại cơ khí.Trong chiến tranh thế giới lần thứ hai (năm 1945), xuất hiện cơ
cấu máy đƣợc điều khiển từ xa để cầm nắm chất phóng xạ. Cho đến những năm 1950
cùng với sự ra đời của kỹ thuật điều khiển chƣơng trình số NC (Number Control) kỹ
thuật tay máy lúc này đã kết hợp đƣợc cả kỹ thuật điều khiển xa và điều khiển chƣơng
trình số. Sự kết hợp này đã tạo ra những thế hệ máy điều khiển từ xa có khả năng
mềm dẻo, khả năng tự động hoá cao gọi tên là robot.
Năm 1949, máy phay điều khiển số ra đời phục vụ sản xuất ở Mỹ. Đến năm 1960
George Devol đƣa ra mẫu Robot đầu tiên. Năm 1961 cũng tại Mỹ Robot công nghiệp.
(IR: Industrial Robot) đầu tiên đƣa ra thị trƣờng: Robot Unimat 1990 (Do trƣờng đại
học MIT chế tạo) đây là Robot phản hồi lực nó đƣợc ứng dụng vào công nghiệp sản
xuất ô tô. Theo con số thống kê thì đến năm 1990 toàn thế giới đã triển khai và ứng
dụng khoảng 300.000 IR. Do sự phát triển mạnh mẽ của kỹ thuật Vi xử lý và Tin học
mà số lƣợng IR tăng nhanh chóng và tính năng cũng có nhiều bƣớc đột phá, giá thành
trên một đơn vị IR giảm dần.
Đó là về lịch sử, còn ngày nay, robot đã có mặt ở khắp nơi, ngay cả trong gia đình
chúng ta, chúng ta cùng điểm qua những con robot mà cả thế giới biết đến.
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 14
1.2.Robot trong đời sống và sản xuất
1.2.1.Robot đi xe đạp
Hình 1: Robot đi xe đạp
Với chiều cao chỉ với 50cm, chú robot mang “quốc tịch” Nhật này đƣợc coi là
“vua” giữ thăng bằng. Vì dù là đạp hay đang dừng xe , khí cụ con quay sẽ luôn giữ
cho chú robot này đứng vững. Một số bộ phận đặc biệt khác cho phép Murataboy xác
định đƣợc chƣớng ngại vật trên đƣờng và giảm xóc khi va phải chƣớng ngại vật.
Murataboy là ví dụ cho loại robot có khả năng di chuyển bằng 2 chân, đang là một
trong những thách thức lớn của việc nghiên cứu và sản xuất robot.
1.2.2 Robot làm việc nhà
Đƣợc nghiên cứu tại trƣờng đại học Karlsruhe (Đức), lĩnh vực ƣa thích nhất của
cô là vào bếp. Nhờ những cử động của đôi cánh tay giống hệt nhƣ ngƣời, Armar có
khả năng dọn bàn ăn, cho bát đĩa vào máy rửa bát và sắp xếp thực phẩm. Một chiếc
camera kỹ thuật số cho phép cô giúp việc này nhận diện đƣợc ngƣời đang ra lệnh và
tuân lệnh khi dò thấy những cử chỉ tay của ngƣời ấy.
Hình 2: Robot làm việc nhà
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 15
1.2.3. Robot là bạn của những ngƣời khuyết tật
Friend là nghiên cứu của các nhà
khoa học Đức. Ngƣời máy này thực chất
có dạng một chiếc xe lăn với đôi cánh tay
giống con ngƣời. Thông qua một bộ phận
nhận diện giọng nói, chủ nhân chiếc ghế
có thể ra lệnh cho ngƣời giúp việc này mở
cửa, rót nƣớc. Hệ thống định vị không
gian 3 chiều gắn trên xe cho phép ngƣời
sử dụng chỉ cần đƣa tay chỉ hƣớng, robot
sẽ tự động tìm ra đƣờng đi tốt nhất.
Hình 3: Robot trong y học
1.2.4. Robot là bác sĩ ngoại khoa
Hãy tƣởng tƣợng những cánh tay kim loại với những khớp nối chằng chịt mổ xẻ
trên một cơ thể bằng xƣơng bằng thịt. Với nhiều ngƣời đó là một cơn ác mộng. Trên
thực tế việc sử dụng ngƣời máy thay các bác sĩ phẫu thuật lại đảm bảo độ chính xác và
tỷ lệ thành công cao hơn cho ca mổ. Sự chính xác này cùng với việc giảm thiểu các
thiết bị y khoa giúp đƣờng mổ sắc và gọn hơn đồng thời giúp bệnh nhân đỡ mất nhiều
máu.Ca mổ vẫn sẽ đƣợc một bác sĩ phẫu thuật theo dõi trực tiếp thông qua một camera
nối với một cánh tay robot. 2 cánh tay robot còn lại thực hiện những thao tác thành
thạo của một bác sĩ thực thụ. Ngƣời máy này xứng đáng là niềm tự hào của các nhà
khoa học Mỹ.
Hình 4: Robot là bác sĩ
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 16
1.2.5. Asimo, robot giống ngƣời nhất
Asimo lần đầu tiên ra đời năm 1993 tại
Nhật, đặt tên P1, là thành quả nghiên cứu của
tập đoàn Honda. Asimo P1 đã khiến các nƣớc
phƣơng Tây kinh ngạc vì ý tƣởng chế tạo một
loại robot giống hệt con ngƣời. Tuy vậy mục
đích ban đầu của Honda chỉ là nghiên cứu
một ngƣời máy phục vụ các nhu cầu của
chúng ta. Ngày nay, cả 2 ý tƣởng này, robot
giống ngƣời và đáp ứng nhu cầu của con
ngƣời đã trở thành tiêu chí chung trong
nghiên cứu Asimo.
Hình 5: Robot asimo
1.2.6. Robot viễn tƣởng
Đƣợc trang bị hệ thống nhận dạng giọng
nói, có khả năng ngôn ngữ và diễn đạt, Mỹ đã
giới thiệu một ngƣời máy là bản sao của
Philipe K.Dick, tác giả của nhiều truyện viễn
tƣởng nổi tiếng, mất năm 1982.
Đó là những gì chúng ta đƣợc chứng kiến về
sự phát triển của thế giới, nhƣng chúng ta
cũng cần biết rằng Việt Nam cũng có những
con robot vô cùng thông minh. Đã đƣa vị thế
củaViệt Nam lên 1 tầm cao mới. Hình 6: Robot người nhân tạo
Và chú robot này chính là robot TOPIO :Từ ngày 5 - 10/2/2009, chú robot “made in
Vietnam” Topio 2.0 do Công ty Cổ phần Robot TOSY (TOSY Robotics JSC) nghiên
cứu và chế tạo đã tham gia triển lãm lớn nhất thế giới về đồ chơi lần thứ 60 tại Đức.
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 17
2. Giới thiệu về robot dò đƣờng
Robot dò đƣờng là 1 biến thể đặc biệt của robot hƣớng sáng.Sở dĩ nói nhƣ vậy là
do chúng có cùng nguyên tắc hoạt động là sử dụng cảm biến quang điện ( quang trở
hoặc diode hồng ngoại) để so sánh cƣờng độ sáng từ đó điềuchỉnh hƣớng đi thích hợp.
Khi robot đi lệch vào vùng có vạch vẽ, ánh sáng phát ra từ robot không phản xạ lại
nhƣ bình thƣờng mà bị đƣờng kẻ hấp thụ 1 phần làm sai lệch độ sáng giữa 2 cảm biến.
Việc còn lại là thiết kế sao cho robot có hành vi khắc phục sự sai lệch đó và ta có
đƣợc loại robot đi theo đƣờng vẽ.
Nhiệm vụ của các cảm biến quang đƣợc mô tả nhƣ hình sau:
Hình 7: Nhiệm vủ của cảm biến trong Robot dò đường
Đƣờng đi đƣợc vạch sẵn với chiều dài mặt cắt ngang xác định. Đƣờng đi đƣợc
đặt trên nền có vật liệu khác loại. Nếu đƣờng đi là vật liệu phản quang thì nền không
phản quang và ngƣợc lại.
Robot sử dụng các LED phát chiếu xuống mặt đƣờng đi hoặc nền. Ánh sáng hồng
ngoại sẽ phản xạ lại khi gặp vật liệu phản quang. Sử dụng cảm biến quang Robot xác
định đƣợc trạng thái của mình trên mặt đƣờng: lệch trái hoặc phải so với mặt đƣờng,
còn hoặc không còn trên mặt đƣờng,…; từ đó đƣa ra quyết định điều khiển tƣơng ứng.
Dựa trên yêu cầu của đề bài và bám sát với nội dung môn học, nhóm chọn phƣơng án
thiết kế.
Robot vận hành có 3 bánh, 2 bánh sau chủ động, bánh trƣớc xoay tròn định hƣớng
(bánh đa hƣớng).Robot dẫn động bằng 2 động cơ 1 chiều đặt ở hai bánh sau.Phần dò
đƣờng dùng 8 cặp cảm biến (8 led phát và 8 quang trở.), tín hiệu đƣa về đi qua khâu
so sánh LM324 để đảm bảo mức điện áp đƣa vào vi điều khiển.Phần xử lý chọn vi
điều khiển 89S52 của Atmel.
2.2. Nguyên tắc hoạt động của robot dò đƣờng
Robot dò dƣờng hoạt động độc lập dựa vào cảm biến dò đƣờng gắn tên thân robot và
đƣờng đi là vạch trắng dán trên nền đất.Cảm biến đƣợc hiểu nhƣ là con mắt của robot.
2.3. Ứng dụng của robot dò đƣờng
Đƣợc ứng dụng vào công nghệ dò đƣờng di chuyển tự động trong vận chuyển hàng
hóa. Tuy còn sơ khai vê nguyên tắc điều khiển nhƣng robot dò đƣờng đã tạo một bƣớc
ngoặc quan trọng trong công nghệ thiết kế và chế tạo robot, mở ra một kỷ nguyên mới
về nghành công nghệ kỹ thuật tự động hóa và đƣa tự động hóa vào sản xuất.
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 18
MẠCH CÔNG SUẤT
CHƢƠNG III
THIẾT KẾ MÔ HÌNH ROBOT DÕ ĐƢỜNG
1. Cấu trúc cơ bản của Robot dò đƣờng tự động
Hình 1: Sơ đồ cấu trúc cơ bản của Robot dò đường tự động
MẠCH CÁCH LY
KHỐi XỬ LÝ
TRUNG TÂM
AT89S52
KHỐI CẢM BIẾN
Cảm biến dò đƣờng
ĐIỀU KHIỂN ĐỘNG
CƠ (Bánh trái)
ĐIỀU KHIỂN ĐỘNG
CƠ (nâng hạ)
KHỐI ĐIỀU
CHỈNH
NÚT ẤN
CHỌN
CHƢƠNG
TRÌNH
ĐIỀU KHIỂN ĐỘNG
CƠ (Bánh phải)
KHỐI HIỂN THỊ
LED
BỘ PHẬN CHẤP HÀNH
KHỐI CÔNG TẮC
HÀNH TRÌNH
M1 M2 M3
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 19
Trong đó:
– Khối hiển thị: là 8 led hiển thị cho cảm biến dò đƣờng vs 2 led báo lỗi
– Khối cảm biến: bao gồm các cảm biến nhận tín hiệu vạch trắng.
– Khối điều chỉnh: là khối giao tiếp giữa ngƣời điều khiển và Robot. Đó là
các nút nhấn chọn chƣơng trình và các vi trở điều chỉnh độ nhạy của cảm
biến.
– Khối công tắc hành trình: các công tắc hành trình sử dụng cho việc xác định
trạng thái của cơ cấu chấp hành và trạng thái của robot
– Khối VĐK: quan trọng nhất là chip 89S52 điều khiển toàn bộ hoạt động
của Robot: nhận tín hiệu từ khối cảm biến,khối điều chỉnh, sau đó gửi tín
hiệu qua khối hiển thị và điều khiển khối cơ cấu chấp hành.
– Khối cơ cấu chấp hành: là mạch công suất dùng để điều khiển động cơ bánh
xe, và các động cơ của các cơ cấu chấp hành.
2. Các khối cơ bản của Robot
2.1. Khối nguồn cấp cho robot
Hình 2: Sơ dồ mạch nguồn cho Robot
Dùng nguồn 12V để cấp điện áp vào, sau đó thông qua khối lọc, hạ áp dùng 7805 ta
lấy ra điện áp 5V ổn định để cung cấp cho các khối còn lại.
Ngoài ra còn có một số biện pháp bảo vệ nhƣ dùng cầu chi 2A, dùng diode chống
ngƣợc nguồn.
2.3 Khối cảm biến dò đƣờng
Cảm biến quang dò đƣờng là thành phần quan trọng không thể thiếu trong điều khiển
lộ trình chạy của Robot một cách chính xác và đẹp mắt. Sơ đồ mạch đƣợc lựa chọn là
kiểu thông dụng do đơn giản nhƣng để nâng cao khả năng nhận dạng vạch trắng và
phù hợp với việc dùng chung nguồn vi điều khiển +12V, ta sẽ nâng cao điện áp cung
cấp cho cảm biến, tăng số led phát ánh sáng trắng.
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 20
Hình 3: Sơ đồ cảm biến dò đường
Điện áp đặt lên các led siêu sáng trắng có điện áp khoảng 2V, dòng qua led từ 10 đến
15mA. Ta có thể chọn điện trở hạn dòng cho led siêu sáng:
cc led
led 3 3
V V 5 2
R 200
15.10 15.10
Chọn Rled = 270
Ở đây ta dùng LED siêu sáng và quang trở để cảm biến dò đƣờng. Khi Led phát tín
hiệu và có tín phản lại thì quang trở sẽ thay đổi điện trở nó phát tín hiệu vào LM324
để so sánh rồi đƣa vào vi điều khiển để vi điều khiển xử lý rồi đƣa ra tín hiệu để phát
lệnh điều khiển động cơ.
Chức năng của khối:
– Tạo tín hiệu phản hồi về khối vi xử lý trung tâm để từ đó điều khiển động cơ.
– Nguyên lý hoạt động: Khi có ánh sáng thì điện trở của quang trở sẽ giảm và
ngƣợc lại, điện trở của nó thay đổi cỡ từ 0.5k (khi có ánh sáng) đến 250k
(không có ánh sáng), ta sử dụng led phát làm nguồn sáng cho nó.
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 21
Khi gặp nền trắng, ánh sáng sẽ phản xạ lên quang trở làm điện trở nó giảm xuống và
khi gặp vạch đen (băng keo đen) thì ánh sáng sẽ khó phản xạ nên quang trở nhận ít
ánh sáng => trở nó tăng. Từ đó dựa vào 2 quang trở, robot có thể phân biệt đƣợc vạch
đen trên nền trắng (dƣới sự hỗ trợ của opamp so sánh).
3.3. Khối động lực
Loại động cơ ta sử dụng là 2 động cơ DC-12V, phục vụ cho việc điều khiển xe
tiến, lùi, tăng tốc, quay phải, quay trái, với các cấp tốc độ khác nhau
Hình 4: Sơ đồ mạch động lực
Nguyên lý làm việc:
– Khi rơle chƣa đƣợc kích hoạt thì nam châm điện không hoạt động nên tiếp
điểm của cầu H giữ nguyên vị trí ban đầu. Tức là tiếp điểm 4 và 6 (cầu H) đƣợc
nối với nhau, tiếp điểm 13 và 11 (cầu H) đƣợc nối với nhau. Khi có xung kích
vào PWM, dòng điện chạy tới tiếp điểm 4 (cầu H), qua tiếp điểm 6 (cầu H) rồi
qua động cơ về tiếp điểm 11 (cầu H), qua tiếp điểm 13(cầu H) rồi về âm nguồn
(nối đất). Do vậy, động cơ quay theo chiều thuận.
– Khi rơle đƣợc kích hoạt thì nam châm điện hoạt động kéo tiếp điểm của cầu H
làm tiếp điểm 4 và 8 (cầu H) đƣợc nối với nhau, tiếp điểm 13 và 9 (cầu H)
đƣợc nối với nhau. Khi có xung kích vào PWM, dòng điện chạy tới tiếp điểm 4
(cầu H), qua tiếp điểm 8 (cầu H) rồi qua động cơ về tiếp điểm 9 (cầu H), qua
tiếp điểm 13(cầu H) rồi về âm nguồn (nối đất). Do vậy, động cơ quay theo
chiều nghịch.
3.4. Khối xử lý trung tâm
Sử dụng vi xử lý 8 bit AT89S52 có cấu trúc tƣơng tự nhƣ 89C51 (8051).
Đây là VĐK thuộc họ MCS-51, với 8K bytes bộ nhớ, có thể đọc/ghi dữ liệu khoảng
1000 lần.
Điện áp hoạt động đầu vào từ 4.0 đến 5.5V
Tần số cung cấp tĩnh từ 0 đến 33 kHz.
32 đƣờng I/O có thể lập trình đƣợc.
Timer/Counter 16 bit
8 nguồn ngắt ngoài.
Đối với bộ vi xử lý AT89S52 rất thích hợp cho việc điều khiển động cơ DC. Tuy
nhiên do các động cơ đƣợc sử dụng trên Robot thƣờng hoạt động không ổn định hay
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 22
do sự cố kỹ thuật nên có tốc độ không ổn định cũng nhƣ việc điều khiển đòi hỏi tốc độ
động cơ đƣợc thay đổi liên tục, nên có thể thiết kế mạch công suất cho 3 động cơ bao
gồm 1 FET và 1 Rơle tận dụng đầy đủ ƣu thế các chân điều xung.
Dòng xuất nhập của các chíp vi điều khiển tƣơng đối nhỏ. Đối với một số các ứng
dụng sử dụng số lƣợng cổng I/O nhỏ thì ta có thể dùng trực tiếp các cổng này. Trong
mạch Robot các cổng I/O đƣợc tận dụng tối đa nên ta sẽ thiết kế thêm các mạch đệm
xuất nhập trƣớc mỗi cổng điều khiển, các chíp đệm có thể sử dụng cung cấp dòng lớn
hơn cho tải, chống nhiễu tốt nhƣ: 74LS04, 74LS244, 74LS541…
Hình 5: Sơ đồ mạch vi điều khiển
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 23
Vcc
3.5. Khối phím ấn
Sử dụng các nút nhấn để điều chỉnh và chọn chƣơng trình hoạt động của Robot.
Hình 6: Sơ đồ mạch phím ấn
3.6. Khối công tắc hành trình
Sử dụng 4 công tắc hành trình đƣợc nối với khối điều khiển để điều khiển quá trình
hoạt động của Robot nhƣ dừng lại, nâng cần, hạ cần.
Hình 7: Sơ đồ mạch công tắc hành trình
V
D
K
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 24
3.7. Khối LED hiển thị
LED hiển thị các trạng thái hoạt động của Robot, cho phép ta xử lý tình huống khi
có sự cố.
Hình 8: Sơ đồ LED báo lỗi
LED nhận tín hiệu từ cảm biến dò đƣờng đã qua khối so sánh trong khối xử lý cho
thấy đƣợc trạng thái bám vạch dò đƣờng của Robot.
Hình 9: Sơ đồ LED báo cảm biến
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 25
S
Đ
Đ
S
CHƢƠNG IV
LẬP TRÌNH
1. Lƣu đò thuật toán
1.1. Lƣu đồ thuật toán đoạn chƣơng trình bám vạch
START
DOCCAMBIEN
LỆCH TRÁI
B.TRÁI NHANH
B.PHẢI CHẬM
LỆCH PHẢI
B.TRÁI CHẬM
B.PHẢI NHANH
STOP
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 26
Đ
S
Đ
Đ
Đ
Đ
Đ
Đ
Đ
Đ
Đ
Đ
S
S
S
S
S
S
S
– Trƣờng hợp lệch trái
DOCCAMBIEN()
CB=00011000B VP=10,VT=10
VP=9,VT=10
VP=8,VT=10
VP=3,VT=8
START
CB=00010000B
CB=00110000B
CB=00100000B
CB=01100000B
CB=10000000B
CB=11000000B
CB=01000000B
VP=3,VT=6
VP=3,VT=5
VP=2,VT=5
VP=0,VT=5
STOP
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 27
Đ
S
S
Đ
Đ
Đ
Đ
Đ
Đ
Đ
Đ
Đ
Đ
S
S
S
S
S
S
S
– Trƣờng hợp lệch phải
DOCCAMBIEN()
CB=00011000B VT=10,VP=10
VT=9,VP=10
VT=8,VP=10
VT=3,VP=8
START
CB=00001000B
CB=00001100B
CB=00000100B
CB=00000110B
CB=00000001B
CB=00000011B
CB=00000010B
VT=3,VP=6
VT=3,VP=5
VT=2,VP=5
VT=0,VP=5
STOP
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 28
Đ
Đ
Đ
Đ
Đ
Đ
Đ
S
S
S
S
S
S
1.2. Lƣu đồ thuật toán bám vạch, đếm ngã tƣ
START
ĐẾM=0, A LÀ SỐ NGÃ TƢ
CB=11111111B
CB=11110000B
CB=01111000B
CB=00111100B
CB=00011110B
CB=00001111B
TĂNG ĐẾM
ĐẾM=A
STOP
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 29
S
Đ
1.3. Lƣu đồ thuật toán xoay trái
START
VP=0,VT=0
ĐẢO ROLE B.TRÁI
VP=5,VT=5
VP=4,VT=4
VP=0,VT=0
ĐẢO ROLE B.TRÁI
STOP
DELAY(100)
DELAY(5000)
DELAY(50)
DOCCAMBIEN()
CB=00010000B
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 30
Đ
S
Đ
1.4. Lƣu đồ thuật toán xoay phải
START
VP=0,VT=0
ĐẢO ROLE B.PHẢI
VP=5,VT=5
VP=4,VT=4
VP=0,VT=0
ĐẢO ROLE B.PHẢI
STOP
DELAY(50)
DELAY(5000)
DELAY(50)
DOCCAMBIEN
CB=00001000B
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 31
1.5. Lƣu đồ thuật toán nâng cần
START
PWM_2=0
DELAY(20000)
PWM_2=1
STOP
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 32
S
Đ
1.6. Lƣu đồ thuật toán hạ cần
START
ĐẢO ROLE NÂNG
PWM_3=0
CTHT_3=1
PWM_2=1
ĐẢO ROLE NÂNG
STOP
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 33
Đ
S
2. Lƣu đồ thuật toán chƣơng trình chính
START
MAIN
KHỞI TẠO NGẮT
STOP
KT PHÍM
NHẤN
T.HIỆN CT CỦA
TỪNG PHÍM NHẤN
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 34
3.Cuộc thi robocon do trƣờng cao đẳng công nghệ tổ chức
Cuộc thi ROBOCON do Khoa Điện trƣờng Cao Đẳng Công Nghệ tổ chức.
Sân thi đấu:
Hình 1: Sân thi đấu
Yêu cầu Robot dò đƣờng tƣ ô xuất phát (bên xanh hoặc bên đỏ) đến lấy quà và
qua sông bỏ quà vào ô chứa quà là hoàn thành nhiệm vụ.
Dƣới đây là lƣu đò thuật toán viết cho Robot dò đƣờng khi ở vị trí bên ô xuất phát
màu xanh.
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 35
S
Đ
S
S
Đ
Đ
S
3.1. Lƣu đồ thuật toán của cuộc thi
Giả sử Robot đang ở vị trí là bên xanh và Phím nhấn 1 đƣợc nhấn.
START
Hạ Cần
SNT=2
STOP
Bám Vạch
Đếm Ngã Tƣ
Nâng Cần
Lùi 2s
Xoay Trái
Bám Vạch
Đếm Ngã Tƣ
SNT=3
Xoay Phải
Bám Vạch
Đếm Ngã Tƣ
SNT=6 Xoay Phải
Bám Vạch
Đếm Ngã Tƣ
SNT=2
Hạ Cần
Lui 2s
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 36
CHƢƠNG V
LẮP RÁP VÀ KẾT LUẬN
1. Lắp ráp
1.1. Lắp ráp mạch
Hình 1: Bo mạch điều khiển
Bên trên là bo mạch điều khiển của robot bao gồm tất cả linh kiện điện tử trong mô
hình.
Hình 2: Mạch cảm biếndò đường
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 37
Động cơ cho 2 bánh sau:
Hình 3: Động cơ DC một chiều
Động cơ gắp quà:
Hình 3: Động cơ DC gắp quà
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 38
Bánh xe đa hƣớng:
Bánh xe sau:
2. Ƣu nhƣợc điểm của robot dò đƣờng
2.1. Ƣu điểm
Mô hình Robot dò đƣờng thiết kế chạy ổn định, bám vạch chính xác, chạy đúng thuật
toán yêu cầu và hoàn thành nhiệm vụ.
Thể hiện đƣợc khả năng hoàn toàn tự động của mô hình, hoạt động theo chƣơng trình
đã lập trình.Đây là bƣớc ngoặc quan trong mở để Robot tiến xa hơn nữa trong quá
trình tự động hóa.
Trong tƣơng lai không xa, Robot sẽ thay thế con ngƣời làm tất cả công việc nặng nhọc
nâng cao hiệu suất lao động và giảm thiểu tối đa sức lực con ngƣời.
1.2. Nhƣợc điểm
Bên cạnh những ƣu điểm vƣợt trội,Robot dò đƣờng cũng có những mặt hạn chế:
– Quá trình thiết kế mạch, lắp ráp, sửa chữa phức tạp tốn nhiều thời gian.
– Để Robot hoạt động nhƣ ý con ngƣời đòi hỏi ngƣời lập trình phải am hiểu cả
phần cứng lẫn phần mềm của Robot, đòi hỏi trình độ và kinh nghiệm của ngƣời
lập trình và thiết kế mạch.
– Tuy hoạt động đƣợc, nhƣng Robot dò đƣờng còn hoạt động khá chậm, chƣa
mang tính linh hoạt cao, phụ thuộc hoàn toàn vào cảm biến dò đƣờng.
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 39
1.3. Hƣớng phát triển đề tài
Từ ứng dụng điều khiển robot dò đƣờng, ta có thể ứng dụng trong nhiều mặt nhƣ
thám hiểm, vận chuyển hàng hóa trong nhà máy, xe không ngƣời lái….
Cụ thể chúng ta có thể lập trình cho robot thông minh hơn và có khả năng làm nhiều
công việc khác khi đã di chuyển linh hoạt. Kĩ thuật do đƣờng là vô cùng quan trọng
trong các cuộc thi robocon chúng ta có thể tiếp tục phát triển nó để làm ra các con
robot có tính ứng dụng cao.
1.4. Tài liệu tham khảo
VI ĐIỀU KHIỂN Cấu trúc – Lập trình và Ứng dụng(Kiều Xuân Thực)
NXB Giáo Dục
Internet:
www.dientuvietnam.net
www.alldatasheet.com
www.keil.com/c51
www.atmel.com/atmel/acrobat/doc1919.pdf
PHỤ LỤC
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 40
CHƢƠNG TRÌNH LẬP TRÌNH CHO ROBOT DÕ ĐƢỜNG
#include
#define ROLE_1 P1_0
#define ROLE_2 P1_2
#define ROLE_3 P1_4
#define PWM_1 P1_1 // dc trai
#define PWM_2 P1_3 // dc phai
#define PWM_3 P1_5 // dc nang qua
#define CB1 P0_1
#define CB2 P0_2
#define CB3 P0_3
#define CB4 P0_0
#define CB5 P0_5
#define CB6 P0_6
#define CB7 P0_7
#define CB8 P0_4
#define LED_DEBUG_1 P2_0
#define LED_DEBUG_2 P2_1
#define CTHT_1 P2_7
#define CTHT_2 P2_6
#define CTHT_3 P2_5
#define PROG_1 P3_3
#define PROG_2 P3_4
#define PROG_3 P3_5
#define PROG_4 P3_6
#define PROG_5 P3_7
#define high(x)((x & 0xFF00) >> 8)
#define low(x)((unsigned char)(x & 0x00FF))
#define LongToBin(n) \
(\
((n >> 21) & 0x80) | \
((n >> 18) & 0x40) | \
((n >> 15) & 0x20) | \
((n >> 12) & 0x10) | \
((n >> 9) & 0x08) | \
((n >> 6) & 0x04) | \
((n >> 3) & 0x02) | \
((n ) & 0x01) \
)
#define B(n) LongToBin(0x##n##l)
void delay(unsigned long ms) {
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 41
while(ms--) continue;}
unsigned char V_BanhTrai, V_BanhPhai, PWM_Tick;
unsigned char CamBien;
void T0_ISR() interrupt 1 {
if (PWM_Tick++ == 10) PWM_Tick = 0;
switch (V_BanhTrai) {
case 0:
PWM_2 = 1;
break;
case 10:
PWM_2 = 0;
break;
default:
if (PWM_Tick < V_BanhTrai) PWM_2 = 0;
else PWM_2 = 1;}
switch (V_BanhPhai) {
case 0:
PWM_1 = 1;
break;
case 10:
PWM_1 = 0;
break;
default:
if (PWM_Tick < V_BanhPhai) PWM_1 = 0;
else PWM_1 = 1;}}
void DocCamBien () {
CamBien = ((P0_0 == 1) <<2) |
((P0_1 == 1) << 3) |
((P0_2 == 1) << 1) |
((P0_3 == 1) << 0) |
((P0_4 == 1) << 6) |
((P0_5 == 1) << 7) |
((P0_6 == 1) << 4) |
((P0_7 == 1) << 5); }
void BamVach(){
DocCamBien();
if ((CamBien & B(00011000))==B(00011000)){ // Ngay giua
V_BanhTrai=10;
V_BanhPhai=10;}
if ((CamBien & B(00001000))==B(00001000)){
V_BanhTrai=10;
V_BanhPhai=9;}
if ((CamBien & B(00001100))==B(00001100)){
V_BanhTrai=10;
V_BanhPhai=7;}
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 42
if ((CamBien &B(00000100))==B(00000100)){
V_BanhTrai=10;
V_BanhPhai=6;}
if ((CamBien &B(00000110))==B(00000110)){
V_BanhTrai=8;
V_BanhPhai=6;}
if ((CamBien &B(00000010))==B(00000010)){
V_BanhTrai=8;
V_BanhPhai=5;}
if ((CamBien &B(00000011))==B(00000011)){
V_BanhTrai=8;
V_BanhPhai=4;}
if ((CamBien &B(00000001))==B(00000001)){
V_BanhTrai=6;
V_BanhPhai=0;}
if ((CamBien &B(00010000))==B(00010000)){
V_BanhTrai=9;
V_BanhPhai=10;}
if ((CamBien &B(00110000))==B(00110000)){
V_BanhTrai=8;
V_BanhPhai=10;}
if ((CamBien &B(00100000))==B(00100000)){
V_BanhTrai=7;
V_BanhPhai=10;}
if ((CamBien &B(01100000))==B(01100000)){
V_BanhTrai=5;
V_BanhPhai=8;}
if ((CamBien &B(01000000))==B(01000000)){
V_BanhTrai=4;
V_BanhPhai=6;}
if ((CamBien &B(11000000))==B(11000000)){
V_BanhTrai=4;
V_BanhPhai=5;}
if ((CamBien &B(10000000))==B(10000000)){
V_BanhTrai=0;
V_BanhPhai=7;}}
void Ham(){
ROLE_1 = 0;
ROLE_2 = 0;
V_BanhTrai=10;
V_BanhPhai=10;
delay(2000);
ROLE_1 = 1;
ROLE_2 = 1;
V_BanhTrai=0;
V_BanhTrai=0; }
void HamNguoc(){
ROLE_1 = 0;
ROLE_2 = 0;
V_BanhTrai=10;
V_BanhPhai=10;
delay(3000);
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 43
ROLE_1 = 1;
ROLE_2 = 1;
V_BanhTrai=0;
V_BanhTrai=0; }
void NangCan(){
PWM_3 = 0;
delay(10000);
PWM_3 = 1;
delay(100);
V_BanhTrai=0;
V_BanhPhai=0;
ROLE_1 = 1;
ROLE_2 = 1; }
void BoQua(){
PWM_3 = 0;
ROLE_3 = 0;
delay(9000);
PWM_3 = 1;
delay(1000);
PWM_3 = 1;
ROLE_3 = 1;
V_BanhTrai=0;
V_BanhPhai=0;
ROLE_1 = 1;
ROLE_2 = 1; }
void HaCan(){
PWM_3 = 0;
ROLE_3 = 0;
while(CTHT_3 == 1);
PWM_3 = 1;
ROLE_3 = 1;}
void Lui_1s(){
ROLE_1 = 0;
ROLE_2 = 0;
V_BanhTrai=5;
V_BanhPhai=5;
delay(9000);
V_BanhTrai=0;
V_BanhPhai=0;
ROLE_1 = 1;
ROLE_2 = 1;
V_BanhTrai=4;
V_BanhPhai=4;
delay(1400);
V_BanhTrai=0;
V_BanhPhai=0;}
void Lui_2s(){
ROLE_1 = 0;
ROLE_2 = 0;
V_BanhTrai=10;
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 44
V_BanhPhai=10;
delay(12000);
V_BanhTrai=0;
V_BanhPhai=0;
ROLE_1 = 1;
ROLE_2 = 1;
V_BanhTrai=10;
V_BanhPhai=10;
delay(2000);
V_BanhTrai=0;
V_BanhPhai=0;}
void HamXoayTrai(){
ROLE_1 = 0;
ROLE_2 = 1;
V_BanhTrai=10;
V_BanhPhai=10;
delay(3000);
ROLE_1 = 1;
ROLE_2 = 1;
V_BanhTrai=0;
V_BanhTrai=0; }
void Xoay_Trai() {
V_BanhPhai=0;
V_BanhTrai=0;
delay(100);
// Dao chieu banh trai
ROLE_2 = 0; // Tra ve
delay(100);
V_BanhPhai=6;
V_BanhTrai=6;
delay(3000);
V_BanhPhai=5;
V_BanhTrai=5;
DocCamBien();
while ((CamBien & B(01000000))!=B(01000000)) DocCamBien();
delay(200);
while ((CamBien & B(00100000))!=B(00100000)) DocCamBien();
HamXoayTrai();
V_BanhPhai=0;
V_BanhTrai=0;
delay(1000);
ROLE_2 = 1; // Tra ve}
void HamXoayPhai(){
ROLE_1 = 1;
ROLE_2 = 0;
V_BanhTrai=7;
V_BanhPhai=70;
delay(2000);
ROLE_1 = 1;
ROLE_2 = 1;
V_BanhTrai=0;
V_BanhTrai=0; }
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 45
void Xoay_Phai() {
V_BanhPhai=0;
V_BanhTrai=0;
delay(100);
ROLE_1 = 0; // Dao chieu banh phai
// Tra ve
delay(100);
V_BanhPhai=8;
V_BanhTrai=8;
delay(3000);
V_BanhPhai=7;
V_BanhTrai=7;
DocCamBien();
while ((CamBien & B(00000010))!=B(00000010)) DocCamBien();
delay(300);
while ((CamBien & B(0001000))!=B(00001000)) DocCamBien();
V_BanhPhai=0;
V_BanhTrai=0;
delay(1);
HamXoayPhai();
delay(1000);
ROLE_1 = 1; // Tra ve
V_BanhPhai=0;
V_BanhTrai=0; }
unsigned char TongSoBit1() {
unsigned char i, temp, tong;
temp = CamBien;
tong = 0;
for (i=0; i<8; i++) {
if (temp & 0x01 == 0x01) tong++;
temp = temp >> 1;}
return(tong);}
void KhoiDongBenXanh(){
HaCan();
BamVach_DemNgaTu(1);
V_BanhTrai = 0;
V_BanhPhai = 0;
NangCan();
Lui_1s();
Xoay_Trai();
BamVach_DemNgaTu(3);
HamNguoc();
Xoay_Phai();
BamVach_DemNgaTu(6);
HamNguoc();
Xoay_Phai();
BamVach_DemNgaTu(2);
ROLE_1=1;
ROLE_2=1;
V_BanhTrai = 10;
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 46
V_BanhPhai = 10;
delay(1500);
V_BanhTrai = 0;
V_BanhPhai = 0;
BoQua();
Lui_1s();
delay(10000);
NangCan();
Xoay_Phai();
V_BanhTrai = 0;
V_BanhPhai = 0;
BamVach_DemNgaTu(2);
HamNguoc();
V_BanhTrai = 0;
V_BanhPhai = 0;}
void Retry_1(){
BamVach_DemNgaTu(3);
HamNguoc();
Xoay_Phai();
BamVach_DemNgaTu(6);
HamNguoc();
Xoay_Phai();
BamVach_DemNgaTu(2);
ROLE_1=1;
ROLE_2=1;
V_BanhTrai = 10;
V_BanhPhai = 10;
delay(1500);
V_BanhTrai = 0;
V_BanhPhai = 0;
BoQua();
Lui_1s();
delay(10000);
NangCan();
Xoay_Phai();
V_BanhTrai = 0;
V_BanhPhai = 0;
BamVach_DemNgaTu(2);
HamNguoc();
V_BanhTrai = 0;
V_BanhPhai = 0;}
void Retry_2(){
BamVach_DemNgaTu(3);
HamNguoc();
Xoay_Phai();
BamVach_DemNgaTu(2);
ROLE_1=1;
ROLE_2=1;
V_BanhTrai = 10;
V_BanhPhai = 10;
delay(1500);
V_BanhTrai = 0;
V_BanhPhai = 0;
BoQua();
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
SVTH: BÙI XUÂN DŨNG Trang 47
Lui_1s();
delay(10000);
NangCan();
Xoay_Phai();
V_BanhTrai = 0;
V_BanhPhai = 0;
BamVach_DemNgaTu(2);
HamNguoc();
V_BanhTrai = 0;
V_BanhPhai = 0;}
void main(){
TMOD = 0x02; //Timer 0,1 che do 2 - 8 bit
TF0 = 0;
TH0 = 5;
TL0 = 5;
TR0 = 1;
TR1 = 1;
ET0 = 1;
EA = 1;
PWM_1 = 0;
PWM_2 = 0;
while(1){
if(PROG_1==0){
while(PROG_1==0);
KhoiDongBenXanh();}
if(PROG_2==0){
while(PROG_2==0);
Retry_1();}
if(PROG_3==0){
while(PROG_3==0);
Retry_2();}
if(PROG_4==0){
while(PROG_1==0);
NangCan();}
If(PROG_5==0){
while(PROG_5==0);
HaCan();}}}
Các file đính kèm theo tài liệu này:
- dung_xong_7003.pdf