Đồ án Điều khiển robot dò đƣờng

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!

pdf47 trang | Chia sẻ: oanh_nt | Lượt xem: 2072 | Lượt tải: 1download
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