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

XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH

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 (914.18 KB, 41 trang )

ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH

TRANG - 2 -

BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP. HỒ CHÍ MINH
KHOA CÔNG NGHỆ ĐIỆN TỬ

ĐỒ ÁN I
Đề Tài : XE ROBOT ĐIỀU KHIỂN BẰNG 6 BÁNH XÍCH

GVHD

:

Th.s TRẦN NGUYÊN BẢO

LỚP
SVTH

:
:

DHDT1ATLT
TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG

TRÂN

TP. Hồ Chí Minh Ngày 20 Tháng 01 Năm 2010


GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG


ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM
KHOA CÔNG NGHỆ ĐIỆN TỬ

TRANG - 3 -

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc





PHIẾU NHẬN ĐỒ ÁN MÔN HỌC
MÔ HÌNH XE ROBOT BẰNG BÁNH XÍCH

Tên đồ án:

Đồ án 1
Họ tên sinh viên:
TRẦN THẾ PHƯƠNG
ĐHĐT1ATLT


Mã số sv:08014431

Lớp:

TRẦN ĐẰNG KHOA
ĐHĐT1ATLT

Mã số sv:08014761

Lớp:

NGUYỄN VIẾT HÙNG
ĐHĐT1ATLT

Mã số sv:08017671

Lớp:

Nội dung đề tài:
-

Thực hiện mô hình xe Robot truyền động bằng bánh xích thông qua 6
bánh.

-

Điều khiển bằng tay .

-


Thay đổi hướng, vượt chướng ngại vật.

Hướng phát triển của đề tài :
………………………………………………………………………………………..
.………………………………………………………………………………………..
………………………………………………………………………………………
…..
Giáo viên hướng dẫn: Th.s TRẦN NGUYÊN BẢO TRÂN.
Ngày nhận đề tài:
……………………………………………………………………………………………
Ngày hoàn thành:
……………………………………………………………………………………………
Điểm đề nghị: …………………………………………………………….
…………………………………
Khoa Công Nghệ Điện Tử
Bộ môn Điện Tử Tự Động

GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

Tp.HCM, ngày 08 tháng 08 năm 2009
Giáo viên hướng dẫn

SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG


ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH

TRẦN VĂN TRINH


TRANG - 4 -

TRẦN NGUYÊN BẢO TRÂN.

LỜI MỞ ĐẦU
----oOo---Trong xu thế phát triển như ngày nay con người dành rất nhiều

thời gian cho công việc tại cơ quan, xí nghiệp. nên thời gian còn lại
dành cho gia đình ngày càng ít đi. Chính điều đó thôi thúc các nhà khoa
học tìm tòi nghiên cứu và cho ra đời khá nhiều những sản phẩm hỗ trợ
con người nói chung, và trong lĩnh vực tự động hóa nói riêng mà chủ
yếu là robot, nó đã không còn xa lạ đối với chúng ta ngày nay và robot
đã bước vào các hộ gia đình qua các sản phẩm như: Robot giữ nhà,
robot lau nhà, hỗ trợ người tàn tật di chuyển… Bên cạnh đó nó đã thay
thế dần con người trong các công việc nặng nhọc, nguy hiểm và độc
hại như: trong các lò luyện kim, nhà máy hóa chất…
Lĩnh vực nghiên cứu ứng dụng chế tạo robot không có gì là mới
mẻ đối với các nước phát triển trong khu vực và thế giới. Nhưng đối với
những nước còn nghèo như chúng ta thì đây là một lĩnh vực khá mới,
và thu hút rất nhiều các nhà khoa học, cũng như các kỹ sư của chúng
ta tham gia nghiên cứu. Do kiến thức chung của nhóm chúng em hiện
tại còn nhiều điều chưa rõ về lĩnh vực này nên nhóm chúng em giới
thiệu đề tài nghiên cứu robot điều khiển bằng tay truyền động bằng
bánh xích.
Trong quá trình thực hiện rất mong nhận được sự giúp đỡ của
thầy cô, bạn bè chia sẻ những kinh nghiệm quý báu trong thực tế để

GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN


SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG


ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH

TRANG - 5 -

chúng em hoàn thành đồ án này, và phát triển lên trong tương lai nhằm
tạo ra một sản phẩm hữu ích cho xã hội VIỆT NAM, mục đích nhằm
giảm bớt chi phí nhập khẩu những sản phẩm cùng chức năng của
nước ngoài với giá cao hơn rất nhiều.
Vì thời gian nghiên cứu có hạn nên trong lúc thực hiện không
tránh khỏi những sai sót trong quá trình tính toán và thi công, mong quý
thầy cô đóng góp ý kiến thêm.
Nhóm thực hiện đề tài
TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG

GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG


ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH


TRANG - 6 -

LỜI CẢM ƠN
Trong suốt khóa học tại Trường Đại Học Công Nghiệp TP.HCM,
với sự giúp đỡ của quý thầy cô và giáo viên hướng dẫn về mọi mặt và
nhất là trong thời gian thực hiện đề tài, nên đề tài của chúng Em đã
được hoàn thành đúng thời hạn quy định, chúng Em xin chân thành
cảm ơn đến:
Quý thầy cô Bộ Môn Điện Tử Tự Động Hóa và tất cả các thầy cô
trong khoa Điện Tử, đã truyền đạt kiến thức chuyên môn làm cơ sở nền
tảng giúp chúng Em thực hiện tốt đồ án này.
Cảm ơn Thầy TRẦN NGUYÊN BẢO TRÂN là giáo viên hướng
dẫn đề tài đã giúp đỡ cho chúng Em định hướng tốt và hoàn chỉnh đồ
án này.
TP. HỒ CHÍ MINH Ngày 20 Tháng 01 Năm 2010
Nhóm Sinh Viên Thực Hiện
TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG

GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG


ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH

TRANG - 7 -


BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM
KHOA CÔNG NGHỆ ĐIỆN TỬ
NHẬN XÉT ĐỒ ÁN I CỦA GIÁO VIÊN HƯỚNG DẪN
Họ tên Sinh Viên

:
:
:

TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG

Lớp

:

DHDT1ATLT

Ngành

:

Điện Tử Tự Động Hóa

Giáo Viên Hướng Dẫn

:


TRẦN NGUYÊN BẢO TRÂN

Nhận xét của giáo viên hướng đẫn:
……………………………………………………………………………..........
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………

GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG


ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH

TRANG - 8 -

…………………………………………………………………………………
………………

Ngày …..Tháng ….. Năm 2010
Giáo viên hướng dẫn

TRẦN NGUYÊN BẢO
TRÂN


BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM
KHOA CÔNG NGHỆ ĐIỆN TỬ
NHẬN XÉT ĐỒ ÁN I CỦA GIÁO VIÊN PHẢN BIỆN
Họ tên Sinh Viên

:
:
:

TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG

Lớp

:

DHDT1ATLT

Ngành

:

Điện Tử Tự Động Hóa

Giáo Viên Phản biện
:
……………………………………

Nhận xét của giáo viên phản biện:
……………………………………………………………………………..........
…………………………………………………………………………………
…………………………………………………………………………………

GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG


ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH

TRANG - 9 -

…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
………………

Ngày …..Tháng ….. Năm 2010
Giáo Viên Phản Biện

……………………………

MỤC LỤC
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT ........................................................................2
1.1. DẪN NHẬP ........................................................................................................2

1.2. CHIP VI ĐIỀU KHIỂN 89V51 .................................................................2
1.2.1

Khái quát chung.............................................................................2

1.2.2

Tính năng.......................................................................................3

1.2.3 Chức năng của các chân..................................................................4
1.2.4 Bộ nhớ............................................................................................8
1.2.5 Thanh ghi......................................................................................10
1.2.6. Chế độ tự động nạp lại 16 bit........................................................17
1.2.7 Chế độ có thể lập trình..................................................................18
1.2.8 Chế độ ngõ ra tốc độ cao...............................................................19
1.2.9 Chế độ điều chế độ rộng xung......................................................19
1.2.10 Hoạt động ngắt..............................................................................20
1.3. IC 2803 ....................................................................................................21
CHƯƠNG II: PHẦN CƠ SỞ THỰC HÀNH........................................................22
2.1. THIẾT KẾ PHẦN CỨNG.........................................................................22
2.1.1 Giới thiệu các thành phần của board mạch chính.............................23
GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG


ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH


TRANG- 10 -

2.1.2 Nhiệm vụ của các khối....................................................................25
2.2. CHƯƠNG TRÌNH ĐIỀU KHIỂN.............................................................28
2.2.1. Lưu đồ giải thuật.............................................................................28
2.2.2. Đoạn chương trình..........................................................................28

Chương I
CƠ SỞ LÝ THUYẾT
1.1 : Dẫn nhập:
Cùng với sự ứng dụng của kĩ thuật điện tử ngày nay càng rộng
rãi và đi đôi với nó là sự ra đời của công nghệ vi điều khiển lập trình,
đã góp phần giải quyết được bài toán nan giải, đơn giản là thay đổi
được chức năng hoạt động của mạch cũng như của hệ thống điều
khiển dễ dàng mà không cần phải thay đổi phần cứng, khi đó ta chỉ
cần thay đổi phần mềm lập trình là làm được.
Cụ thể ở đồ án này nhóm em giới thiệu ứng dụng của chip vi
điều khiển họ 8951 mà điển hình là chip 89V51, đây là chip đời sau
của họ 8051. Dùng vào Robot điều khiển bằng tay đơn giản, đây là
một ứng dụng nhỏ của vi điều khiển dùng trong lĩnh vưc tự động
hóa. Mục đích tìm hiểu và ứng dụng họ Vi Điều Khiển nhằm tạo ra
những sản phẩm, thiết bị tiên tiến hơn ứng dụng vào thực tế làm tăng
năng xuất …Ngoài ra tập đồ án này cũng có thể dùng làm tài liệu
GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG



ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH

TRANG - 11 -

tham khảo cho các bạn khóa sau nâng cao ứng dụng của Chip vi điều
khiển.
1.2 : Chip vi điều khiển 89V51:
1.2.1 : Khái quát chung:
89V51RB2/RC2/RD2 thuộc họ vi điều khiển 80C51 có 64kB Flash và
1024bytes (1kB) bộ nhớ dữ liệu RAM.
Tính năng đặc biệt của 89V51RB2/RC2/RD2 là ở chế độ hoạt động
mode X2. Người thiết kế có thể quy ước chạy ứng dụng của mình ở chế độ 12
chu kỳ xung nhịp trên 1 chu kỳ máy hoặc chọn chế độ X2 với 6 chu kỳ xung
nhịp trên 1 chu kỳ máy.
Bộ nhớ chương trình Flash cho phép lập trình ISP hoặc/và song song.
Chế độ lập trình song song được đưa ra để thích ứng với tốc độ cao, giảm thời
gian và giá thành.
Bộ nhớ chương trình 89V51RB2/RC2/RD2 có tính năng IAP (InApplication Programmable), cho phép cấu hình lại bộ nhớ Flash trong khi chạy
ứng dụng.

1.2.2 : Tính năng:
* Hoạt động ở 5VDC trong tầm tần số dao động đến 40MHz.
* 16/32/64 kB bộ nhớ chương trình trên chip với tính năng ISP (InSystem Programming) và IAP (In-Application Programming)
* Sử dụng chế độ 12 chu kì xung nhịp (mặc định) hoặc 6 chu kỳ xung
nhịp được chọn bằng phần mềm hoặc ISP
* SPI (Serial Peripheral Interface) và tăng cường UART
* 5 PCA (Programmable Counter Array) với chức năng PWM / capture/
compare 16bits.
* 4 Port I/O (xuất nhập) 8 bit. 3 Port có dòng lớn (16mA trên mỗi chân)
* 3 Timers/Couters 16 bit

* Watchdog Timer có thể lập trình được
GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG


ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH

TRANG- 12 -

* 8 nguồn ngắt với 4 mức độ ưu tiên.
* 2 thanh ghi DPTR
* Chế độ IEM mức thấp
* Thích hợp mức Logic của TTL và CMOS
* Phát hiện nguồn yếu
* Chế độ nguồn yếu

Hình Sơ đồ khối và sơ đồ chân của 89V51RB2/RC2/RD2

1.2.3 : Chức năng của các chân:
GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG


ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH


TRANG- 13 -

– Port 0: (P0.0 đến P0.7) có số chân từ 39 đến 32, Port xuất / nhập.
Port 0 là một port xuất/nhập song hướng cực máng hở 8 bit. Nếu được
sử dụng như là một ngõ xuất thì mỗi chân có thể kéo 8 ngõ vào TTL. Khi mức
1 được viết vào các chân của port 0, các chân này có thể được dùng như là các
ngõ nhập tổng trở cao.
Port 0 có thể được định cấu hình để hợp kênh giữa bus địa chỉ và bus dữ
liệu (phần byte thấp) khi truy cập đến bộ nhớ dữ liệu và bộ nhớ chương trình
ngoài. Ở chế độ này, P0 có các điện trở pullup bên trong.
Port 0 cũng nhận các byte code (byte mã chương trình) khi lập trình
Flash, và xuất ra các byte code khi kiểm tra chương trình. Cần có các điện trở
pullup bên ngoài khi thực hiện việc kiểm tra chương trình.
Port 1: (P1.0 đến P1.7) có số chân từ 1 đến 8, Port xuất / nhập.
–Port 1 là một port xuất/nhập song hướng 8 bit có các điện trở pullup
bên trong. Các bộ đệm ngõ ra của port 1 có thể kéo hoặc cung cấp 4 ngõ nhập
TTL. Khi mức 1 được viết vào các chân của port 1, chúng được kéo lên cao bởi
các điện trở pullup nội và có thể được 13ung như là các ngõ nhập. Nếu đóng
vai trò là các ngõ nhập, các chân của port 1 (được kéo xuống thấp qua các điện
trở bên ngoài) sẽ cấp dòng IIL do các điện trở pullup bên trong. P1.5, P1.6,
P1.7 có dòng điều khiển ra cao 16mA.
Port 1 cũng đóng vai trò là ngõ vào của địa chỉ byte thấp ở chế độ
lập trình cho ROM và kiểm tra.
P1.0 – T2 (Chân xuất / nhập): Ngõ vào đếm của Timer/ Counter 2
hoặc ngõ ra xung (Clock out) từ Timer/ Counter 2.
P1.1 – T2EX (Chân nhập): Điều khiển hướng và khởi động timer/
Counter 2 ở chế độ Capture/reload.
P1.2 – ECI (Chân nhập): Ngõ vào xung nhịp. Tín hiệu này là
nguồn xung nhịp ngoài cho chức năng PCA.

P1.3 – CEX0 (Chân xuất / nhập): Ngõ xuất nhập (I/O) bên ngoài
của Capture/compare cho PCA Module 0.
P1.4 (Chân xuất / nhập):
GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG


ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH

TRANG- 14 -

+ SS : Chọn cổng phụ vào cho SPI.
+ CEX1: Ngõ xuất nhập (I/O) bên ngoài của Capture/compare
cho PCA Module1.
P1.5 (Chân xuất / nhập):
+ MOSI: Ngõ ra chính, ngõ vào phụ cho SPI.
+ CEX2: Ngõ xuất nhập (I/O) bên ngoài của Capture/compare
cho PCA Module2.
P1.6 (Chân xuất / nhập):
+ MISO: Ngõ vào chính, ngõ ra phụ cho SPI.
+ CEX3: Ngõ xuất nhập (I/O) bên ngoài của Capture/compare
cho PCA Module3.
P1.7 (Chân xuất / nhập):
+ SCK: Ngõ ra chính, ngõ vào phụ cho SPI.
+ CEX4: Ngõ xuất nhập (I/O) bên ngoài của Capture/compare
cho PCA Module4.
Port 2 (P2.0 đến P2.7) có số chân từ 21 đến 28, Port xuất / nhập.

Port 2 là một port xuất/nhập song hướng 8 bit có các điện trở pullup bên
trong. Các bộ đệm ngõ ra của port 2 có thể kéo hoặc cung cấp 4 ngõ vào TTL.
Khi các mức 1 được viết vào các chân của port 2 thì chúng được kéo lên cao
bởi các điện trở pullup nội và có thể được dùng như các ngõ vào. Khi được
dùng như các ngõ vào, các chân của port 2 (được kéo xuống qua các điện trở
bên ngoài) sẽ cấp dòng IIL do có các điện trở pullup bên trong.
Port 2 là địa chỉ byte cao của khi đọc từ bộ nhớ chương trình ngoài và
khi truy cập bộ nhớ dữ liệu ngoài dùng các địa chỉ 16 bit (MOVX @DPTR). Ở
chế độ này, nó dùng các điện trở pullup nội “mạnh” khi phát ra các mức 1.
Port 2 cũng nhận các bit cao của địa chỉ và một vài tín hiệu điều khiển
khi lập trình và kiểm tra bộ nhớ ROM.
Port 3 (P3.0 đến P3.7) có số chân từ 10 đến 17, Port xuất / nhập

GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG


ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH

TRANG- 15 -

Port 3 là một port xuất-nhập song hướng 8 bit có điện trở pullup nội bên
trong. Các bộ đệm ngõ ra của port 3 có thể kéo hoặc cung cấp 4 ngõ vào TTL.
Khi các mức 1 được viết vào các chân của port 3 thì chúng được kéo lên cao
bởi các điện trở pullup nội và có thể được dùng như các ngõ vào. Khi được
dùng như các ngõ vào, các chân của port 3 (được kéo xuống qua các điện trở
bên ngoài) sẽ cấp dòng IIL do có các điện trở pullup bên trong.

Port 3 cũng nhận một số tín hiệu điều khiển và một phần bit địa chỉ cao
trong quá trình lập trình và kiểm tra.
P3.0 – RXD (Chân nhập): Ngõ vào của Port nối tiếp.
P3.1 – TXD (Chân xuất): Ngõ ra của Port nối tiếp.
P3.2 – INT0 (Chân nhập): Ngõ vào ngắt ngoài 0.
P3.3 – INT1 (Chân nhập): Ngõ vào ngắt ngoài 1.
P3.4 – T0 (Chân nhập): Ngõ vào đếm của Timer/Counter 0.
P3.5 – T1 (Chân nhập): Ngõ vào đếm của Timer/Counter 1.
P3.6 – WR (Chân xuất): Điều khiển ghi vào bộ nhớ dữ liệu ngoài.
P3.7 – RD (Chân xuất): Điều khiển đọc từ bộ nhớ dữ liệu ngoài.
– PSEN (Program Store Enable): Chân 29, chân xuất / nhập.
Khi sử dụng bộ nhớ chương trình trong chip, PSEN không hoạt động
(mức cao). Khi sử dụng bộ nhớ chương trình ngoài, PSEN được tích cực 2 lần
trong mỗi chu kì máy, ngoại trừ sự khích hoạt PSEN được bỏ qua trong khi kết
nối bộ nhớ chương trình ngoài . Sự thay đổi cưỡng bức mức cao sang thấp trên
PSEN trong khi ngõ vào RST đang ở mức cao trong hơn 10 chu kì máy sẽ đưa

vi điều khiển vào chế độ lập trình host từ bên ngoài.
RST (Reset): Chân 9, chân nhập.
Trong khi bộ dao động đang chạy, vi điều khiển sẽ được Reset khi đặt
mức cao vào chân này trong 2 chu kỳ máy. Nếu chân PSEN được điều khiển
bằng cách chuyển tiếp mức cao sang thấp trong khi chân RST giữ ở mức cao
thì Vi điều khiển sẽ vào chế độ host từ bên ngoài, còn không thì Vi điều khiển
sẽ vào chế độ hoạt động bình thường.
GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG



ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH

TRANG- 16 -

– EA (External Access Enable): Chân 31, chân nhập.
Chân EA phải được kết nối với điện áp VSS khi cho phép vi điều khiển
truy cập mã từ bộ nhớ chương trình bên ngoài. EA phải được đưa lên điện áp
VDD khi thực thi chương trình bên trong. Tuy nhiên, khóa bảo vệ level 4 sẽ vô
hiệu hóa EA , chương trình thực thi chỉ chương thực hiện từ bộ nhớ chương
trình bên trong. Chân EA có thể chịu đựng điện áp đến 12V.
– ALE/PROG (Address Latch Enable): Chân 30, chân xuất / nhập.
ALE là tín hiệu ngõ ra để chốt byte thấp của địa chỉ trong khi truy cập
bộ nhớ ngoài. Chân này cũng là ngõ nhập xung lập trình ( PROG ) khi lập trình
Flash.
Khi hoạt động bình thường, ALE được phát với một tỷ lệ không đổi là
1/6 tần số bộ dao động và có thể được dùng cho các mụch đích timing và
clocking bên ngoài. Một xung ALE sẽ bị bỏ qua mỗi khi truy cập bộ nhớ dữ
liệu ngoài. Tuy nhiên, nếu AO được đưa lên mức 1 sẽ vô hiệu hóa chân
ALE/PROG .

XTAL1 và XTAL2: chân 18 và 19
XTAL1 và XTAL2 là hai ngõ vào và ra của một bộ khuếch đại dao động
nghịch được cấu hình để dùng như một bộ dao động trên chip.
– VDD và VSS: Chân nguồn và chân Gound của Vi điều khiển.

1.2.4 . Bộ nhớ:
1.2.4.1. Bộ nhớ chương trình:
89V51RB2/RC2/RD2 gồm có 2 khối bộ nhớ chương trình bên trong.
Block 0 có 16/32/64 kB và được phân chia thành 128/256/512 sectors, mỗi

sector gồm có 128 Bytes. Block 1 bao gồm chương trình IAP/ISP và có thể cho
phép nó trở thành 8kB đầu tiên trong bộ nhớ user code. Block 0 này được kích
hoạt bằng cách kết hợp Software Reset Bit (SWR) tại FCF.1 và Bank Select Bit
(BSEL) tại FCF.0 (địa chỉ RAM B1H).

GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG


ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH

TRANG- 17 -

Quá trình tuần tự sau khi nguồn được bật, chương trình boot sẽ tự động
thực thi và cố gắng lấy tín hiệu autobaud từ máy chủ. Nếu không có quá trình
này xảy ra trong vòng 400ms và bit cờ SoftICE không được bật, chương trình
boot sẽ tự động vào đoạn chương trình user code.

1.2.4.2. Bộ nhớ dữ liệu:
P89V51RB2/RC2/RD2 có 1 kB bộ nhớ RAM được chia thành 3 phần:
–128 Byte thấp (00H to 7FH) là địa chỉ truy xuất trực tiếp và gián tiếp.
Được chia làm 3 vùng: RAM đa chức năng, RAM định địa chỉ từng bit và các
dãy thanh ghi.
+ Vùng RAM đa chức năng: gồm có 80 Byte RAM. Địa chỉ truy
xuất từ 30H đến 7FH. Mọi địa chỉ trên vùng RAM đa chức năng đều có thể
truy xuất theo kiểu trực tiếp hoặc gián tiếp.
+ Vùng RAM định địa chỉ bit: gồm 128 bit được định địa chỉ. Địa

chỉ truy xuất từ 20H đến 2FH. Kiểu truy xuất dữ liệu là trực tiếp, hoặc gián tiếp
hoặc theo từng bit. Vùng RAM này 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 Byte.
+ Các dãy thanh ghi: gồm 4 dãy thanh ghi, mỗi day thanh ghi chứa
8 thanh ghi. Địa chỉ truy xuất từ 00H đến 1FH. Kiểu truy xuất dữ liệu là trực
tiếp, gián tiếp và thanh ghi. Vùng này cho phép truy xuất dữ liệu nhanh, lệnh
truy xuất đơn giản và ngắn gọn. Ở chế độ mặc định thì dãy thanh ghi tích cực
là dãy thanh ghi 0. Có thể thay đổi dãy tích cực bằng cách thay đổi các bit chọn
dãy thanh ghi RS1 và RS0 trong thanh ghi PSW. Nếu chương trình chỉ sử dụng
dãy thanh ghi 0 thì ta có thể sử dụng vùng nhớ từ 08H đến 1FH cho các mục

GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG


ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH

TRANG- 18 -

đích khác. Nhưng nếu trong chương trình có sử dụng các dãy thanh ghi khác
thì phải cẩn thận khi sử dụng vùng nhớ này làm vùng nhớ dữ liệu.
Thanh ghi chức năng đặc biệt (special function registers) là địa chỉ chỉ
truy cập trực tiếp, có địa chỉ từ 80H đến FFH.
768 Byte RAM mở rộng (000H to 2FFH) là địa chỉ truy cập gián tiếp
bằng cách dùng lệnh MOVX và xóa bằng bit EXTRAM. Vùng RAM này sử
dụng giống như 1 vùng RAM ngoài. Chúng ta có thể kết hợp với RAM ngoài
theo 2 trường hợp bằng cách sử dụng bit EXTRAM trong thanh ghi AUXR.


Tổ chức bộ nhớ

1.2.5 : Thanh ghi:
1.2.5.1. Thanh ghi AUXR:

GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG


ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH

TRANG- 19 -

1.2.5.2. Thanh ghi AUXR1:

DPS (Data pointer select):
* Mức 0: DPTR0 được chọn.
* Mức 1: DPTR1 được chọn.

Sử dụng thanh ghi DPTR

1.2.5.3. Các thanh ghi và hoạt động của Bộ
Timer/Counters 2:
Timer 2 là bộ Timer/Counter 16 bit, có thể hoạt động ở 2 trường hợp
hoặc là Timer hoặc là Counter. Hai trường hợp này được thiết lập bằng bit
C/ T 2 trong thanh ghi T2CON. Timer 2 có 4 chế độ hoạt động: Capture, tự động


nạp lại (Auto-reload) (đếm lên hoặc đếm xuống), Clock-out, và tạo tốc độ
Baud. Các chế độ hoạt động của Timer 2 được chọn theo bảng sau sử dung
thanh ghi T2CON và T2MOD.

GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG


ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH

TRANG- 20 -

89V51RB2/RC2,RD2 sử dụng 6 thanh ghi để truy suất và điều khiển
Timer 2: T2CON, T2MOD, TH2, TL2, RCAP2H, RCAP2L.

1.2.5.4. Thanh ghi điều khiển Timer/Counter 2
T2CON:

Mô tả bit của thanh ghi điều khiển Timer/Counter 2 T2CON
Bit

Ký hiệu

Mô tả

TF2


Cờ tràn của Timer 2 được set khi Timer 2 tràn và phải được xóa
bằng phần mềm. TF2 sẽ không được set khi bit RCLK hoặc
TCLK ở mức 1 hoặc Timer 2 ở chế độ Clock-out.

EXF2

Cờ ngắt ngoài Timer 2 được thiết lập khi Timer 2 ở chế độ
Reload, capture, hoặc baud-rate, cờ cho phép ngắt ngoài EXEN2
= 1 và có một sự chuyển tiếp xảy ra trên chân T2EX. Nếu ngắt
Timer 2 được phép, EXF2 = 1 gây ra cho CPU một ngắt Timer 2.
EXF2 phải được xóa bằng phần mềm

RCLK

Cờ xung thu. Khi RCLK = 1, UART 20ung Timer 2 tạo xung thu
trong chế độ 1 và 3. Khi RCLK = 0, Timer 1 được sử dụng tạo
xung thu.

TCLK

Cờ xung truyền. Khi RCLK = 1, UART 20ung Timer 2 tạo xung
truyền trong chế độ 1 và 3. Khi RCLK = 0, Timer 1 được sử
dụng tạo xung truyền.

3

EXEN2

Cờ cho phép ngoài của Timer 2. Khi EXEN2 = 1, nếu Timer 2

không 20ung làm tốc độ Baud cho Port nối tiếp thì nó cho phép
lấy kết quả tức thời ở chế độ capture hoặc nạp lại thanh ghi tức
thời trong chế độ reload. EXEN2 = 0 sẽ bỏ qua sự kiện trên chân
T2EX.

2

TR2

Điều khiển bắt đầu/ dừng cho Timer 2. Mức 1 cho phép Timer 2

7

6

5

4

GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG


ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH

TRANG- 21 -


chạy.
Bit chọn chức năng đếm hoặc định thời cho Timer 2.
1

0 = bộ định thời.

C/ T 2

1 = đếm sự kiện bên ngoài.

0

CP/ RL 2

Cờ Capture/Reload. Khi thiết lập, capture sẽ xuất hiện khi có sự
chuyển tiếp trên chân T2EX nếu EXEN2 = 1. Khi xóa, autoreloads sẽ xuất hiện hoặc Timer 2 tràn hoặc có sự chuyển tiếp
trên chân T2EX khi EXEN2 = 1. Khi RCLK = 1 hoặc TCLK = 1,
bit này được bỏ qua, Timer tự động nạp lại khi Timer 2 tràn.

1.2.5.5. Thanh ghi T2MOD:

Mô tả bit của thanh ghi điều khiển chế độ Timer/Counter 2 T2MOD
Bit

Ký hiệu

Mô tả

1


T2OE

Cho phép ngõ ra Timer 2. Chỉ dùng trong chế độ Clock-out có thể
lập trình

0

DCEN

Cho phép đếm xuống. Khi thiết lập, bit này cho phép Timer 2 cấu
hình như một bộ đếm xuống.

1.2.5.6. Các chế độ của Timer/Counter 2:
Các chế độ hoạt động của Timer 2
RCLK + TCLK

CP/ RL 2

TR2

T2OE

Chế độ

0

0

1


0

16 bit tự động nạp lại

0

1

1

0

16 bit Capture

0

0

1

1

Clock-out có thể lập trình

1

X

1


0

Nguồn phát tốc độ Baud

GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG


ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH

X

X

0

X

TRANG- 22 -

Tắt Timer 2

1.2.5.7. Thanh ghi CMOD (PCA Counter
Mode):

Bit


Ký hiệu

Chức năng

7

CIDL

Điều khiển trạng thái rỗi của Counter PCA. CIDL = 0 sẽ
cho Counter PCA tiếp tục hoạt động bất chấp đang trong
trạng thái rỗi. CIDL = 1 sẽ lập trình cho nó không hoạt
động trong trạng thái rỗi.

6

WDTE

Cho phép Watchdog Timer trên modules 4 (1: cho phép
hoạt động).

2–1

CPS1
CPS0

0

ECF




Lựa chọn nguồn xung đếm cho PCA.
Cho phép ngắt khi tràn Counter PCA.

Nguồn xung nhịp cho PCA được chọn từ 2 bit CPS1 và CPS2 trên thanh ghi
CMOD
CPS1 CPS2

Chọn xung nhịp cho PCA

0

0

1/6 fOSC

0

1

1/2 fOSC

1

0

Tràn từ Timer 0.

1


1

Xung nhịp ngoài tại chân ECI (P1.2). Tốc độ lớn nhất 1/4
fOSC

1.2.5.8. Thanh ghi CCON (PCA Counter
Control):

GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG


ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH

Bit

TRANG- 23 -

Kí hiệu

Chức năng

7

CF

Cờ đếm tràn PCA. Được thiết lập bằng phần cứng khi đếm

tràn. CF là cờ ngắt khi ECF = 1. CF được thiết lập bằng phần
cứng hoặc phần mềm nhưng chỉ xóa được bằng phần mềm.

6

CR

Bit điều khiển chạy counter PCA. Được thiết lập bằng phần
mềm. 1: chạy. 0: dừng.

4

CCF4

Cờ ngắt modul PCA 4. Được thiết lập bằng phần cứng khi
xuất hiện match hoặc capture. Được xóa bằng phần mềm.

3

CCF3

Cờ ngắt modul PCA 3.

2

CCF2

Cờ ngắt modul PCA 2.

1


CCF1

Cờ ngắt modul PCA 1.

0

CCF0

Cờ ngắt modul PCA 0.

Hình 1.43 – Hoạt động ngắt của PCA

1.2.5.9. Thanh ghi CCAPMn (PCA modules
compare/capture):
Mỗi Modules có 1 thanh ghi, các thanh ghi bao gồm các bit điều khiển
chế độ hoạt động cho mỗi modules.
GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG


ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH

TRANG- 24 -

Bit


Kí hiệu

Chức năng

6

ECOM
n

Cho phép bộ so sánh. ECOMn = 1 cho phép chức năng so sánh.

5

CAPPn

Cho phép capture cạnh lên.

4

CAPNn Cho phép capture cạnh xuống.

MATn

Khi MATn = 1, bộ đếm PCA kết hợp với thanh ghi
compare/capture của Modules này để thiết lập bit CCFn tạo ra
một ngắt.

2

TOGn


Đổi trạng thái ngõ ra. TOGn = 1, bộ đếm PCA kết hợp với
thanh ghi compare/capture của Modules này gây ra sự đổi trạng
thái trên chân CEXn.

1

PWMn

Chế độ điều chế độ rộng xung (PWM). PWMn = 1 cho phép
chân CEXn dùng để điều chế độ rộng xung ngõ ra.

0

ECCFn

Cho phép ngắt CCF. Cho phép cờ ngắt CCFn compare/capture
trong thanh ghi CCON hoạt động ở chế độ ngắt.

3

1.2.5.10. Các chế độ hoạt động của PCA:
ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn

Chế độ hoạt động

0

0


0

0

0

0

0

Không hoạt động.

X

1

0

0

0

0

X

Capture 16 bit kích cạnh
lên trên chân CEXn

X


0

1

0

0

0

X

Capture 16 bit kích cạnh
xuống trên chân CEXn

X

1

1

0

0

0

X


Capture 16 bit kích cạnh
trên chân CEXn

1

0

0

1

0

0

X

Timer 16 bit

GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG


ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH

TRANG- 25 -


1

0

0

1

1

0

X

Ngõ ra tốc độ cao 16 bit.

1

0

0

0

0

1

0


PWM 8 bit.

1

0

0

1

X

0

X

Đồng hồ Watchdog.

1.2.6 : Chế độ Auto-reload (đếm lên hoặc đếm xuống)
(Chế độ tự động nạp lại 16 bit):
Trong chế độ này, Timer 2 có thể cấu hình là Timer hoặc Counter (sử dụng
bit C/ T 2 ) và có thể lập trình để đếm lên hoặc đếm xuống (sử dụng bit DCEN).
Khi Reset, DCEN = 0 và Timer 2 mặc định là đếm lên. Nếu bit DCEN được
thiết lập, Timer 2 có thể đếm lên hoặc đếm xuống phụ thuộc vào trạng thái của
chân T2EX.
Trong chế độ này, có 2 chế độ được chọn bằng bit EXEN2. Nếu EXEN2 =
0 thì Timer 2 đếm lên đến FFFFH và thiết lập cờ tràn (overflow flag). Đồng
thời thanh ghi của Timer 2 được nạp lại với giá trị 16 bit trong RCAP2L và
RCAP2H. Giá trị RCAP2L và RCAP2H bởi phần mềm.


Timer 2 trong chế độ Auto-reload (DCEN = 0)

Tần số Auto-reload khi Timer 2 đếm lên được tính như sau:
Auto reload frequency =

GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

SupplyFrequency
65536 - (RCAP2H, RCAP2L)

SVTH : TRẦN THẾ PHƯƠNG
TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG


ĐỒ ÁN I : XE ROBOT ĐIỀU KHIỂN BẰNG BÁNH XÍCH

TRANG- 26 -

SupplyFrequency là tần số fOSC ( C/ T 2 = 0) hoặc tần số tín hiệu trên chân T2
( C/ T 2 = 1)
Nếu EXEN2 = 1, nạp lại 16 bit được kích bởi cờ tràn TF2 hoặc một sự
chuyển tiếp tại chân T2EX. Sự chuyển tiếp này sẽ thiết lập bit EXF2. Ngắt
Timer 2, nếu cho phép sẽ gây ra ngắt khi TF2 hoặc T2EX ở mức 1.
Trong hình 2.11, DCEN = 1 và Timer 2 cho phép đếm lên hoặc đếm xuống.
Chế độ này chân T2EX điều khiển hướng đếm. T2EX = 1 sẽ đếm lên. Timer 2
sẽ tràn tại FFFFH và thiết lập cờ tràn. Hoạt động ngắt sẽ xảy ra nếu cho phép
ngắt. Timer tràn sẽ nạp lại giá trị 16 bit trong RCAP2L và RCAP2H vào thanh
ghi TH2 và TL2. T2EX = 1 sẽ đếm xuống. Timer sẽ tràn dưới (underflow) khi
TH2 và TL2 bằng giá trị của RCAP2L và RCAP2H. Timer 2 underflow thiết

lập cờ TF2 và nạp giá trị FFFFH vào thanh ghi TH2 và TL2. Cờ ngắt ngoài
EXF2 được chốt khi Timer 2 underdlow hoặc overflow. Bit EXF2 có thể được
26ung như là bit thứ 17 nếu cần.

Timer 2 trong chế độ Auto-reload (DCEN = 1)

1.2.7

Chế

độ

Clock-out



thể

lập

trình

(Programmable clock-out):
Chế độ này tạo ra xung có độ rộng 50% có thể lập trình được tại chân ngõ
ra T2 (chân này co 2 chức năng). Nó có thể lập trình như sau:
Tần số có thể thiết lập bằng Timer/Counter 2.

GVHD : Th.s TRẦN NGUYÊN BẢO TRÂN

SVTH : TRẦN THẾ PHƯƠNG

TRẦN ĐĂNG KHOA
NGUYỄN VIẾT HÙNG


×