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!
47 trang |
Chia sẻ: oanh_nt | Lượt xem: 2089 | Lượt tải: 1
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
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
SVTH: BÙI XUÂN DŨNG Trang 1
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
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.
SVTH: BÙI XUÂN DŨNG Trang 2
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
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.
SVTH: BÙI XUÂN DŨNG Trang 3
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
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ý.
SVTH: BÙI XUÂN DŨNG Trang 4
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
– 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
SVTH: BÙI XUÂN DŨNG Trang 5
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
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.
SVTH: BÙI XUÂN DŨNG Trang 6
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
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\).
SVTH: BÙI XUÂN DŨNG Trang 7
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
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.
SVTH: BÙI XUÂN DŨNG Trang 8
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
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:
SVTH: BÙI XUÂN DŨNG Trang 9
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
– 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).
SVTH: BÙI XUÂN DŨNG Trang 10
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
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
SVTH: BÙI XUÂN DŨNG Trang 11
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
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.
SVTH: BÙI XUÂN DŨNG Trang 12
ĐỒ ÁN TỐT NGHIỆP GVHD KS. PHẠM DUY DƯỞNG
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