Nội dung text: Điều khiển xe robot bằng mạch thu phát tín hiệu rf (dùng vi xử lý)
Đồ án 1: ĐIỀU KHIỂN XE ROBOT BẰNG MẠCH THU PHÁT RF (DÙNG VI XỬ LÝ)
BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM
KHOA CÔNG NGHỆ ĐIỆN TỬ
BOÄ MOÂN TỰ ĐỘNG
ĐỒ ÁN MÔN HỌC
Ñeà taøi:
Giáo viên hướng dẫn : Th.s Trần Nguyên Bảo
Trân
Sinh viên thực hiện : Nguyễn Trung Ngôn
Lê Minh Khánh Vũ
Lớp : DHDT1ATLT
Tp - Hoà Chí Minh : 03 - 2000
Đồ án 1: ĐIỀU KHIỂN XE ROBOT BẰNG MẠCH THU PHÁT RF (DÙNG VI XỬ LÝ)
MUÏC LUÏC
Lôøi noùi ñaàu
PHẦN A: LÝ THUYẾT
Khaûo Saùt Vi Ñieàu Khieån 89V51RB2/RC2/RD2
I. Giôùi Thieäu Caáu Truùc Phaàn Cöùng Hoï MSC_51
II. Khaûo Saùt Sô Ñoà Chaân 89V51RB2/RC2/RD2
1. Sô ñoà chaân 89V51RB2/RC2/RD2
2. Chöùc naêng töøng chaân
III. Caáu Truùc Beân Trong Cuûa Vi Ñieàu Khieån
89V51RB2/RC2/RD2
1. Toå chöùc boä nhôù
2. Caùc thanh ghi chöùc naêng ñaëc bieät
3. Boä nhôù ngoaøi
IV. Hoaït Ñoäng Timer Cuûa Vi Ñieàu Khieån
89V51RB2/RC2/RD2
1. Giôùi thieäu
2. Caùc thanh ghi ñieàu khieån timer
3. Caùc cheá ñoä timer vaø côø traøn
V. Hoaït Ñoäng Port Noái Tieáp Cuûa Vi Ñieàu Khieån
89V51RB2/RC2/RD2
1. Giôùi thieäu
2. Caùc thanh ghi ñieàu khieån vaø caùc cheá ñoä cuûa port noái
tieáp
3. Toå chöùc ngaét trong 89V51RB2/RC2/RD2
VI. Toùm Taét Taäp Leänh Cuûa 89V51RB2/RC2/RD2
Phaàn B: THIẾT KẾ VÀ THI CÔNG
I.THIẾT KẾ:
A.SƠ ĐỒ KHỐI CỦA MẠCH PHAT VÀ THU TÍN HIỆU RF
B.SƠ ĐỒ MẠCH PHÁT RF:
C.SƠ ĐỒ MẠCH THU RF:
II.THI CÔNG:
A.SƠ ĐỒ NGUYÊN LÝ MẠCH PHÁT
B.SƠ ĐỒ NGUYEN LÝ MẠCH THU
C.LƯU ĐỒ GIẢI THUẬT MẠCH PHÁT
D.LƯU ĐỒ GIẢI THUẬT MẠCH THU
III.KEÁT LUAÄN
IV.HÖÔÙNG PHAÙT TRIEÅN ÑEÀ TAØI
TAØI LIEÄU THAM KHAÛO
Đồ án 1: ĐIỀU KHIỂN XE ROBOT BẰNG MẠCH THU PHÁT RF (DÙNG VI XỬ LÝ)
LỜI CẢM TẠ
Sinh viên thực hiện xin bày tỏ lòng
cảm ơn đến thầy Trần Nguyên Bảo
Trân trên cương vị là người hướng dẫn
chính của đề tài đã tận tình giúp đỡ
trong suốt quá trình thực hiện đồ án.
Bên cạnh đó chúng em cũng xin
bày tỏ lòng biết ơn đến các thầy cô
trong trường Đại Học Công nghiệp
TP.HCM đã tận tình dạy dỗ và truyền
thụ những kinh nghiệm quý báu trong
suốt thời gian qua.
Sinh viên thực hiện.
Nguyễn Trung Ngôn
Lê Minh Khánh Vũ
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
KHOA CÔNG NGHỆ ĐIỆN TỬ Độc lập – Tự do – Hạnh phúc
Đồ án 1: ĐIỀU KHIỂN XE ROBOT BẰNG MẠCH THU PHÁT RF (DÙNG VI XỬ LÝ)
PHIẾU NHẬN ĐỒ ÁN MÔN HỌC
Tên đồ án: ĐIỀU KHIỂN XE ROBOT BẰNG MẠCH THU PHÁT TÍN HIỆU RF
(DÙNG VI XỬ LÝ)
Đồ án 1
Họ tên sinh viên: NGUYỄN TRUNG NGÔN Mã số sv:08019471
LÊ MINH KHÁNH VŨ Mã số sv:08017681
Lớp : ĐHĐT1ATLT
Nội dung đề tài:
- Thực hiện mô hình xe Robot dùng 2 động cơ DC.
- Sử dụng mạch thu phát tín hiệu RF .
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ử Tp.HCM, ngày 08 tháng 08 năm 2009
Bộ môn Điện Tử Tự Động Giáo viên hướng dẫn
TRẦN NGUYÊN BẢO TRÂN
Đồ án 1: ĐIỀU KHIỂN XE ROBOT BẰNG MẠCH THU PHÁT RF (DÙNG VI XỬ LÝ)
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Họ và tên sinh viên : Nguyễn Trung Ngôn MSSV: 08019471
Lê Minh Khánh Vũ 08017681
Lôùp : DHDT1ATLT
Ngaønh : Điện Tử - Tự Động
Teân ñeà taøi:
ĐIỀU KHIỂN XE ROBOT BẰNG MẠCH THU PHÁT TÍN HIỆU RF (DÙNG VI XỬ LÝ)
Nhaän xeùt cuûa giaùo vieân höôùng daãn:
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
Ngaøy
thaùng naêm 2010
Giaùo vieân höôùng daãn
Đồ án 1: ĐIỀU KHIỂN XE ROBOT BẰNG MẠCH THU PHÁT RF (DÙNG VI XỬ LÝ)
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên sinh viên : Nguyễn Trung Ngôn MSSV: 08019471
Lê Minh Khánh Vũ 08017681
Lôùp : DHDT1ATLT
Ngaønh : Điện Tử - Tự Động
Teân ñeà taøi:
ĐIỀU KHIỂN XE ROBOT BẰNG MẠCH THU PHÁT TÍN HIỆU RF (DÙNG VI XỬ LÝ)
Nhaän xeùt cuûa giaùo vieân phaûn bieän:
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
Ngaøy thaùng naêm
2010
Giaùo vieân phaûn bieän
Đồ án 1: ĐIỀU KHIỂN XE ROBOT BẰNG MẠCH THU PHÁT RF (DÙNG VI XỬ LÝ)
PHAÀN A:
Đồ án 1: ĐIỀU KHIỂN XE ROBOT BẰNG MẠCH THU PHÁT RF (DÙNG VI XỬ LÝ)
LỜI NÓI ĐẦU
Kỹ thuật vi xử lý hiện nay rất phát triển, nó được ứng dụng vào rất nhiều lĩnh
vực như sản xuất công nghiệp, tự động hóa và còn nhiều lĩnh vực khác nữa.
So với kỹ thuật số thì kỹ thuật vi xử lý nhỏ gọn hơn rất nhiều do nó được tích
hợp lại và được lập trình để điều khiển.
Với tính ưu việt của vi xử lý thì trog phạm vi đồ án nhỏ này nhóm thục hiện chỉ
tiến hành việc dùng vi xử lý để điều khiển tốc độ xe robot, đây chỉ là một ứng
dụng nhỏ của vi xử lý trong các ứng dụng của nó.
Những kiến thức học được cộng với tài liệu tham khảo, tuy có thể hòan thành
cuốn đồ án này nhưng không thể tránh khỏi nhiều thiếu sót mong thầy và các
bạn đóng góp để cuốn đồ án hòan thiện hơn.
Để hòan thành cuốn đồ án này nhóm đã nhận được sự chỉ bảo tận tình của
thầy hướng dẫn và sự giúp đỗ nhiệt tình của bạn bè. Cuối cùng nhóm xin cảm
ơn thầy hướng dẫn Trần Nguyên Bảo Trân, thầy hướng dẫn vi xử lý và các
thầy cô đã dạy cho nhóm những kiến thức cơ bản để nhóm có thể hòan thành
cuốn đồ án này.
Sinh viên thực hiện
Nguyễn Trung Ngôn
Lê Minh Khánh Vũ
Đồ án 1: ĐIỀU KHIỂN XE ROBOT BẰNG MẠCH THU PHÁT RF (DÙNG VI XỬ LÝ)
CHÖÔNG I:
1. Giới thiệu sơ lược về Vi điều khiển 89V51RB2/RC2/RD2 của hãng Phillip
1.1 Khái quát chung
89V51RB2/RC2/RD2 là 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ể qui ướ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 (In-Application
Programmable), cho phép cấu hình lại bộ nhớ Flash trong khi chạy ứng dụng.
Các tính năng:
– CPU 80C51
– 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 (In-System
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
Đồ án 1: ĐIỀU KHIỂN XE ROBOT BẰNG MẠCH THU PHÁT RF (DÙNG VI XỬ LÝ)
– 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 1.35 – Sơ đồ khối và sơ đồ chân của 89V51RB2/RC2/RD2
1.2 Chức năng của các chân
– 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.
Đồ án 1: ĐIỀU KHIỂN XE ROBOT BẰNG MẠCH THU PHÁT RF (DÙNG VI XỬ LÝ)
– 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 dùng 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):
+ : 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.
Đồ án 1: ĐIỀU KHIỂN XE ROBOT BẰNG MẠCH THU PHÁT RF (DÙNG VI XỬ LÝ)
– 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
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 – (Chân nhập): Ngõ vào ngắt ngoài 0.
– P3.3 – (Chân nhập): Ngõ vào ngắt ngoài 1.
Đồ án 1: ĐIỀU KHIỂN XE ROBOT BẰNG MẠCH THU PHÁT RF (DÙNG VI XỬ LÝ)
– 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 – (Chân xuất): Điều khiển ghi vào bộ nhớ dữ liệu ngoài.
– P3.7 – (Chân xuất): Điều khiển đọc từ bộ nhớ dữ liệu ngoài.
– (Program Store Enable): Chân 29, chân xuất / nhập.
Khi sử dụng bộ nhớ chương trình trong chip, không hoạt động (mức cao).
Khi sử dụng bộ nhớ chương trình ngoài, được tích cực 2 lần trong mỗi chu kì
máy, ngoại trừ sự khích hoạt đượ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 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 đượ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.
– (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.
– (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 ( ) 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.
Đồ án 1: ĐIỀU KHIỂN XE ROBOT BẰNG MẠCH THU PHÁT RF (DÙNG VI XỬ LÝ)
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 .
– 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.3 Tổ chức bộ nhớ
89V51RB2/RC2/RD2 có bộ nhớ theo cấu trúc Harvard: có những vùng bộ nhớ
riêng biệt cho chương trình và dữ liệu. Như đã nói ở trên, cả chương trình và dữ liệu
có thể ở bên trong, dù vậy chúng có thể được mở rộng bằng các thành phần ngoài lên
đến tối đa 64 Kbytes bộ nhớ chương trình và 64 Kbytes bộ nhớ dữ liệu.
1.3.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).
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.3.2 Bộ nhớ dữ liệu
P89V51RB2/RC2/RD2 có 1 kB bộ nhớ RAM được chia thành 3 phần:
Đồ án 1: ĐIỀU KHIỂN XE ROBOT BẰNG MẠCH THU PHÁT RF (DÙNG VI XỬ LÝ)
–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 đí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 (địa chỉ các thanh ghi được trình bày trong phụ
lục).
– 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.
Đồ án 1: ĐIỀU KHIỂN XE ROBOT BẰNG MẠCH THU PHÁT RF (DÙNG VI XỬ LÝ)
Hình 1.36 – Tổ chức bộ nhớ
1.4 Một số thanh ghi (chỉ nêu những thanh ghi chưa học)
1.4.1 Thanh ghi AUXR
1.4.2 Thanh ghi AUXR1
DPS (Data pointer select):
Đồ án 1: ĐIỀU KHIỂN XE ROBOT BẰNG MẠCH THU PHÁT RF (DÙNG VI XỬ LÝ)
– Mức 0: DPTR0 được chọn.
– Mức 1: DPTR1 được chọn.
Hình 1.37 – Sử dụng thanh ghi DPTR
1.4.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 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.
1.4.3.1 Các thanh ghi
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.4.3.1.1 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ả
Cờ tràn của Timer 2 được set khi Timer 2 tràn và phải được xóa
7 TF2 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.
6 EXF2 Cờ ngắt ngoài Timer 2 được thiết lập khi Timer 2 ở chế độ
Đồ án 1: ĐIỀU KHIỂN XE ROBOT BẰNG MẠCH THU PHÁT RF (DÙNG VI XỬ LÝ)
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
Cờ xung thu. Khi RCLK = 1, UART dùng Timer 2 tạo xung thu
5 RCLK trong chế độ 1 và 3. Khi RCLK = 0, Timer 1 được sử dụng tạo
xung thu.
Cờ xung truyền. Khi RCLK = 1, UART dùng Timer 2 tạo xung
4 TCLK truyền trong chế độ 1 và 3. Khi RCLK = 0, Timer 1 được sử
dụng tạo xung truyền.
Cờ cho phép ngoài của Timer 2. Khi EXEN2 = 1, nếu Timer 2
không dùng làm tốc độ Baud cho Port nối tiếp thì nó cho phép
3 EXEN2 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.
Điều khiển bắt đầu/ dừng cho Timer 2. Mức 1 cho phép Timer 2
2 TR2
chạy.
Bit chọn chức năng đếm hoặc định thời cho Timer 2.
1 0 = bộ định thời.
1 = đếm sự kiện bên ngoài.
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, auto-
0 reloads 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.4.3.1.2 Thanh ghi T2MOD
Đồ án 1: ĐIỀU KHIỂN XE ROBOT BẰNG MẠCH THU PHÁT RF (DÙNG VI XỬ LÝ)
Mô tả bit của thanh ghi điều khiển chế độ Timer/Counter 2 T2MOD
Bit Ký hiệu Mô tả
Cho phép ngõ ra Timer 2. Chỉ dùng trong chế độ Clock-out có thể
1 T2OE
lập trình
Cho phép đếm xuống. Khi thiết lập, bit này cho phép Timer 2 cấu
0 DCEN
hình như một bộ đếm xuống.
1.4.3.2 Các chế độ của Timer/Counter 2
Các chế độ hoạt động của Timer 2
RCLK +
TR2 T2OE Chế độ
TCLK
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
X X 0 X Tắt Timer 2
1.4.3.2.1 Chế độ Capture (Chế độ chụp ảnh)
Chế độ Capture có 2 chế độ được chọn bằng bit EXEN2. Nếu EXEN2 = 0 thì
Timer 2 là một Timer hoặc một Counter 16 bit. Và khi tràn Timer 2 thì cờ TF2 = 1. Bit
này có thể được dùng để phát ra một ngắt. Nếu EXEN2 = 1, Timer 2 hoạt động như
trên nhưng có thêm một chức năng đó là khi có sự chuyển tiếp từ 1 sang 0 tại chân
T2EX gây ra, giá trị tức thời trong thanh ghi Timer 2 (TL2 và TH2) được chụp vào
thanh ghi RCAP2L và RCAP2H tương ứng. Trong chức năng bổ xung này, sự chuyển
tiếp trên chân T2EX làm cho bit EXF2 = 1, và bit EXF2 này giống như bit TF2 có thể
phát ra một ngắt. Chương trình phục vụ ngắt Timer 2 có thể quyết định ngắt TF2 và
EXF2 là sự kiện gây ra ngắt. Chế độ này không nạp lại giá trị cho TL2 và TH2. Khi sự
kiện Capture xảy ra từ chân T2EX, bộ đếm tiếp tục đếm sự thay đổi trên chân T2 hoặc
Đồ án 1: ĐIỀU KHIỂN XE ROBOT BẰNG MẠCH THU PHÁT RF (DÙNG VI XỬ LÝ)
định thời gian. Nội dung của thanh ghi RCAP2L và RCAP2H sau sự kiện Capture sẽ
không được bảo vệ, nó cần phải lưu trữ lại trong sự kiện ngắt này trước khi có sự kiện
capture mới.
Hình 1.38 – Chế độ Capture của Timer/counter 2
1.4.3.2.2 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
) 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.
Hình 1.39 – Timer 2 trong chế độ Auto-reload (DCEN = 0)
Tần số Auto-reload khi Timer 2 đếm lên được tính như sau: