Đồ án Điều khiển xe robot sử dụng mạch thu phát tín hiệu RF

MỤC LỤC Lời nói đầu PHẦN A: LÝ THUYẾT Khảo Sát Vi Điều Khiển 89V51RB2/RC2/RD2 I. Giới Thiệu Cấu Trúc Phần Cứng Họ MSC_51 II. Khảo Sát Sơ Đồ Chân 89V51RB2/RC2/RD2 1. Sơ đồ chân 89V51RB2/RC2/RD2 2. Chức năng từng chân III. Cấu Trúc Bên Trong Của Vi Điều Khiển 89V51RB2/RC2/RD2 1. Tổ chức bộ nhớ 2. Các thanh ghi chức năng đặc biệt 3. Bộ nhớ ngoài IV. Hoạt Động Timer Của Vi Điều Khiển 89V51RB2/RC2/RD2 1. Giới thiệu 2. Các thanh ghi điều khiển timer 3. Các chế độ timer và cờ tràn V. Hoạt Động Port Nối Tiếp Của Vi Điều Khiển 89V51RB2/RC2/RD2 1. Giới thiệu 2. Các thanh ghi điều khiển và các chế độ của port nối tiếp 3. Tổ chức ngắt trong 89V51RB2/RC2/RD2 VI. Tóm Tắt Tập Lệnh Của 89V51RB2/RC2/RD2 Phầ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 PHT 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.KẾT LUẬN IV.HƯỚNG PHÁT TRIỂN ĐỀ TÀI TÀI LIỆU THAM KHẢO 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 khc 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 hnh việc dng 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 cc ứ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 thnh 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 cng 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 cc thầy cơ đ dạy cho nhĩm những kiến thức cơ bản để nhóm có thể hịan thnh cuốn đồ án này.

doc48 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2592 | Lượt tải: 4download
Bạn đang xem trước 20 trang tài liệu Đồ án Điều khiển xe robot sử dụng mạch thu phát tín hiệu RF, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở 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Ử 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 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 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 ˜ á ™ ˜ á ™ 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ử Bộ môn Điện Tử Tự Động Tp.HCM, ngày 08 tháng 08 năm 2009 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 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 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 PHAÀN A: 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ũ 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 – 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. – 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. – 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. – 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 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. 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 , 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 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. 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: –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. 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): – 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ả 7 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. 6 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 5 RCLK Cờ xung thu. Khi RCLK = 1, UART dùng Timer 2 tạo xung thu trong chế độ 1 và 3. Khi RCLK = 0, Timer 1 được sử dụng tạo xung thu. 4 TCLK Cờ xung truyền. Khi RCLK = 1, UART dùng 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 dùng 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 chạy. 1 Bit chọn chức năng đếm hoặc định thời cho Timer 2. 0 = bộ định thời. 1 = đếm sự kiện bên ngoài. 0 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-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 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.4.3.2 Các chế độ của Timer/Counter 2 Các chế độ hoạt động của Timer 2 RCLK + TCLK 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 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 đị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: SupplyFrequency là tần số fOSC ( = 0) hoặc tần số tín hiệu trên chân T2 ( = 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 dùng như là bit thứ 17 nếu cần. Hình 1.40 – Timer 2 trong chế độ Auto-reload (DCEN = 1) 1.4.3.2.3 Chế độ Clock-out có 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. – Ngõ ra là xung có độ rộng 50% thay đổi từ 122 Hz đến 8 MHz tại tần số hoạt động 16 MHz. Cấu hình Timer/Counter 2 là nguồn phát xung, bit = 0, T20E = 1, TR2 =1 để bắt đầu hoạt động. Tần số Clock-out tùy thuộc vào tần số oscillator và giá trị nạp lại của thanh ghi Capture Timer 2 (RCAP2L và RCAP2H). Chế độ Clock-out và chế độ baud-rate không gây ra hoạt động ngắt. 1.4.3.2.4 Chế độ Baud rate generator (tạo tốc độ Baud) Hình 1.41 – Timer 2 hoạt động ở chế độ Baud rate generator Bit TCLK và / hoặc RCLK trong T2CON cho phép tạo tốc độ Baud truyền và nhận UART sử dụng Timer 1 hoặc Timer 2. Khi TCLK = 0, Timer 1 dùng để tạo tốc độ truyền UART. Khi TCLK = 1, Timer 2 dùng để tạo tốc độ truyền UART. RCLK có chức năng giống như trên nhưng dùng để tạ tốc độ thu UART. Với hai bit này, Port nối tiếp có thể có tốc độ truyền và nhận khác nhau bằng cách sử dụng Timer 1 và Timer 2. Chế độ Baud rate generator cũng giống như chế độ auto-reload, khi thanh ghi TH2 và TL2 tràn sẽ nạp lại giá trị 16 bit từ thanh ghi RCAP2H và RCAP2L, thanh ghi này phải được thiết lập bằng phần mềm. Tốc độ Baud được tính theo công thức: Timer hoạt động ở chế độ Baud rate generator chỉ khi nào bit RCLK và / hoặc TCLK = 1. Khi thanh ghi TH2 và TL2 tràn sẽ không thiết lập TF2 và không gây ra hoạt động ngắt. Vì vậy, ngắt Timer 2 không được phép khi Timer 2 ở chế độ Baud rate generator. Ngoài ra, nếu EXEN2 được thiết lập, một sự chuyển tiếp từ 1 đến 0 trên chân T2EX sẽ thiết lập EXF2 nhưng không nạp lại giá trị từ (RCAP2H, RCAP2L) đến (TH2,TL2). Vì vậy, Timer 2 dùng ở chế độ Baud rate generator, T2EX có thể được dùng như một ngắt ngoài bổ xung nếu cần sử dụng. Sơ lược về tính tốc độ Baud Nếu Timer 2 được tạo xung bởi chân T2, tốc độ Baud là: Nếu Timer 2 được tạo xung bên trong, tốc độ Baud là: Giá trị cần nạp vào cho thanh ghi RCAP2H và RCAP2 được tính theo công thức: 1.4.4 Cấu trúc và hoạt động của Programmable Counter Array (PCA) 1.4.4.1 Khái quát PCA là một Timer 16 bit đặc biệt, bao gồm 5 Modules capture/compare 16 bit được kết nối với nó. Mỗi modules được lập trình để hoạt động ở 1 trong 4 chế độ: Capture cạnh lên/xuống, Timer, ngõ ra tốc độ cao, điều chế độ rộng xung (PWM). Mỗi Modules có 1 chân được kết nối với nó thông qua Port 1. Modules 0 được kết nối đến P1.3 (CEX0), Modules đến chân P1.4 (CEX1)… Thanh ghi CH và CL chứa giá trị tức thời đếm lên của Timer PCA 16 bit. Timer PCA là chung cho tất cả 4 Modules và có thể lập trình để hoạt động tại các xung nhịp: 1/2 fOSC, 1/6 fOSC, tốc độ tràn của Timer 0, hoặc ngõ vào tại chân ECI (P1.2). Nguồn xung nhịp của PCA được chọn nhờ các bit CPS1-CPS0 trên thanh ghi CMOD. Hình 1.42 – Cấu trúc hoạt động của PCA 1.4.4.2 Các thanh ghi của PCA 1.4.4.2.1 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 Lựa chọn nguồn xung đếm cho PCA. 0 ECF 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.4.4.2.2 Thanh ghi CCON (PCA Counter Control) bao gồm bit điều khiển chạy PCA, các cờ cho PCA và mỗi Modules. Bit 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.4.4.2.3 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. Bit Kí hiệu Chức năng 6 ECOMn 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. 3 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. 1.4.4.3 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 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.4.4.3.1 Chế độ PCA Capture (PCA capture mode) Một trong các PCA Modules trong chế độ Capture sử dụng 1 hoặc cả 2 bit CAPPn và CAPNn trong thanh ghi CCAPMn để thiết lập chế độ hoạt động. Sự chuyển mức trên chân CEXn sẽ trở thành ngõ vào capture cho modules này. Khi xuất hiện sự chuyển mức trên chân CEXn, phần cứng của Modules PCA sẽ nạp giá trị thanh ghi đếm PCA (CH và CL) vào thanh ghi Capture của modules đó (CCAPnL và CCAPnH). Nếu bit CCFn cho modules trong thanh ghi CCON và bit ECCFn trong thanh ghi CCAPMn được thiết lập thì ngắt sẽ xảy ra. Hình 1.44 – PCA ở chế độ capture 1.4.4.3.2 Chế độ Timer 16 bit (16-bit software timer mode) Modul PCA có thể được sử dụng như timer phần mềm bằng cách cho 2 bit ECOMn và MATn trong thanh ghi CCAPMn lên mức 1. PCA timer sẽ được so sánh với thanh ghi Capture của modules và khi bằng nhau thì ngắt sẽ xuất hiện nếu cả 2 bit CCFn (CCON) và ECCFn (CCAPMn) ở mức 1. Hình 1.45 – PCA ở chế độ 16-bit software timer 1.4.4.3.3 Chế độ ngõ ra tốc độ cao (High speed output mode): Trong chế độ này, ngõ ra CEXn được kết nối với Modul PCA sẽ thay đổi mỗi khi có sự bằng nhau giữa thanh ghi PCA counter thanh ghi Capture của modul. Để chế độ hoạt động này xảy ra thì các bit TOG, MAT, và ECOM trong thanh ghi CCAPMn của modul đó phải ở mức 1. Hình 1.46 – PCA ở chế độ High speed output 1.4.4.3.4 Chế độ điều chế độ rộng xung (Pulse width modulator mode) Tất cả các Modul đều có thể sử dụng như là ngõ ra PWM. Tần số ngõ ra được lấy từ PCA timer. Tất cả các modul sẽ có tần số ngõ ra giống nhau vì sử dụng chung PCA timer. Độ rộng xung của mỗi modul phụ thuộc vào giá trị của thanh ghi CCAPnL. Khi giá trị thanh ghi CL của thanh ghi PCA nhỏ hơn giá trị thanh ghi CCAPnL của modul thì ngõ ra sẽ ở mức thấp. Khi nó bằng hoặc lớn hơn thì ngõ ra ở mức cao. Khi CL tràn từ FFH về 00H, CCAPnL được nạp lại từ thanh ghi CCAPnH. Bit PWM và ECOM trong thanh ghi CCAPMn của modul phải ở mức 1. Hình 1.47 – PCA ở chế độ Pulse width modulator (PWM) 1.4.5 Các thanh ghi và hoạt động ngắt 1.4.5.1 Khái quát Ngắt là việc xảy ra một điều kiện làm cho chương trình thực thi bị tạm dừng để quay sang thực hiện một chương trình khác rồi sau đó quay lại để thực thi tiếp chương trình đang bị tạm ngưng. Các ngắt đóng vai trò quang trọng trong việc thiết kế và thực hiện các ứng dụng của vi điều khiển. 89V51RB2/RC2/RD2 có 8 nguồn ngắt với 4 mức độ ưu tiên. Bảng các ngắt Mô tả Cờ ngắt Địa chỉ ngắt Cho phép ngắt Ưu tiên ngắt Ngắt ngoài 0 IE0 0003H EX0 PX0 - PX0H Brown-out –– 004BH EBO PBO – PBOH Timer 0 TF0 000BH ET0 PT0 – PT0H Ngắt ngoài 1 IE1 0013H EX1 PX1 – PX1H Timer 1 TF1 001BH ET1 PT1 – PT1H PCA CF – CCFn 0033H EC PPC – PPCH UART – SPI TI – RI – SPIF 0023H ES PS – PSH Timer 2 TF2 – EXF2 002BH ET2 PT2 – PT2H Hình 1.48 – Cấu trúc ngắt của 89V51RB2/RC2/RD2 1.4.5.2 Các thanh ghi 1.4.5.2.1 Thanh ghi cho phép ngắt IEN0 (Interrupt enable register 0) Bit Kí hiệu Chức năng 7 EA Cho phép tất cả ngắt. 6 EC Cho phép ngắt PCA. 5 ET2 Cho phép ngắt Timer 2. 4 ES Cho phép ngắt Port nối tiếp. 3 ET1 Cho phép ngắt khi Timer 1 tràn. 2 EX1 Cho phép ngắt ngoài 1. 1 ET0 Cho phép ngắt khi Timer 0 tràn. 0 EX0 Cho phép ngắt ngoài 0. 1.4.5.2.2 Thanh ghi cho phép ngắt IEN1 (Interrupt enable register 1): Bit Kí hiệu Chức năng 3 EBO Cho phép ngắt Brown-out. 1.4.5.2.3 Thanh ghi ưu tiên ngắt thấp IP0 (Interrupt priority 0 low register) Bit Kí hiệu Chức năng 6 PPC Ưu tiên ngắt PCA thấp 5 PT2 Ưu tiên ngắt Timer 2 thấp 4 PS Ưu tiên ngắt Port nối tiếp thấp 3 PT1 Ưu tiên ngắt Timer 1 thấp 2 PX1 Ưu tiên ngắt ngoài 1 thấp 1 PT0 Ưu tiên ngắt Timer 0 thấp 0 PX0 Ưu tiên ngắt ngoài 0 thấp 1.4.5.2.4 Thanh ghi ưu tiên ngắt cao IP0H (Interrupt priority 0 high register) Bit Kí hiệu Chức năng 6 PPCH Ưu tiên ngắt PCA cao 5 PT2H Ưu tiên ngắt Timer 2 cao 4 PSH Ưu tiên ngắt Port nối tiếp cao 3 PT1H Ưu tiên ngắt Timer 1 cao 2 PX1H Ưu tiên ngắt ngoài 1 cao 1 PT0H Ưu tiên ngắt Timer 0 cao 0 PX0H Ưu tiên ngắt ngoài 0 cao 1.4.5.2.5 Thanh ghi ưu tiên ngắt thấp / cao IP1 / IP1H Bit 7 6 5 4 3 2 1 0 IP1 Symbol – – – PBO – – – – IP1H Symbol – – – PBOH – – – – PBO và PBOH là bit ưu tiên ngắt thấp / cao Brown-out PHAÀN B: I.THIẾT KẾ : A.SƠ ĐỒ KHỐI CỦA MẠCH PHAT VÀ THU TÍN HIỆU RF Sơ đồ khối mạch phát tín hiệu RF 89V51RB2 Điều khiển phím nhấn Module mã hóa tín hiệu và phát RF Khối điểu khiển motor Sơ đồ khối mạch thu tín hiệu RF Module thu tín hiệu RF 89V51RB2 B.THIẾT KẾ MẠCH PHÁT: Giới thiệu về IC pt 2262: Đây là bộ IC tích hợp,có chức năng mã hóa dữ liệu và địa chỉ dạng song song thành mã dạng nối tiếp để phù hợp với các module phát vô tuyến và hồng ngoại . Nó có tất cả 12 chân địa chỉ 3 trạng thái từ đó cung cấp số mã địa chỉ lên đến 531.441 (312). Vì thế nó nâng cao tính bảo mật và tránh trường hợp truyền sai địa chỉ hoặc trùng địa chỉ. Hoạt động của PT2262 như sau: PT2262 sẽ mã hoá các địa chỉ hay dữ liệu từ các chân A0~A5 và A6/D5~A1/D0 thành tín hiệu đặc biệt và xuất ra ở ngõ D out khi chân TE được đặt ở mức thấp. Tín hiệu này sẽ được cấp vào bộ điều chế của module phát hồng ngoại hay vô tuyến để phát đi xa. Một khung truyền bao gồm các tín hiệu thành phần như sau 8 bit địa chỉ 4 bit dữ liệu Syn.Bit Dạng sóng của các bit địa chỉ và dữ liệu : Dạng sóng của bit Syn (bit đồng bộ): : chu kỳ của xung clock C.THIẾT KẾ MẠCH THU: Nguyên lý hoạt hộng : Tín hiệu ASK thu được ở module thu sẽ được giải điều chế để cho ra dạng xung nối tiếp. Sau đó tín hiệu nối tiếp qua bộ sửa để khôi phục dạng xung vuông Khi đã đạt được dạng sóng như bên phát, tín hiệu này sẽ được đưa qua bộ giải mã IC PT2272 .PT2272 sau khi kiểm tra đúng địa chỉ sẽ thực hiện giải mã để xuất ra tín hiệu 4 bit.Vi điều khiển 89V51RB2 sẽ đọc vào tín hiệu 4 bit và xử lý từng bit. Hoạt động của IC PT2272: IC PT 2272 sẽ trong trạng thái chờ khi bật nguồn, khi có tín hiệu từ bộ mã hoá thì sẽ xuất hiện một tín hiệu ở ngõ DIN cho phép nhận tín hiệu. Địa chỉ đưa vào sẽ được so sánh phần địa chỉ đã được quy định sẵn trên các chân địa chỉ của PT2272 . Sau khi so sánh nếu địa chỉ giống nhau thì dữ liệu sẽ được lưu vào bộ nhớ đệm. Lúc này nó vẫn tiếp tục so sánh các bit địa chỉ 2 lần nữa nếu đúng thì chân VT mới được kích để thông báo rằng dữ liệu là hợp lệ. Các chân ngõ ra sẽ được reset trước khi chốt 4 bit data ở ngõ ra.Để thay đổi các địa chỉ ta chỉ cần điều chỉnh công tắc ở các chân địa chỉ từ A0~A7 . II. THI CÔNG: A. SƠ ĐỒ NGUYÊN LÝ MẠCH PHÁT: Khối vi xử ly phát tín hiệu RF Khối nguồn phat B. SƠ ĐỒ NGUYÊN LÝ MẠCH THU: Khối Vi xử lý thu RF Khối nguồn Vi Xử Lý Khối cách ly Khối công suất Khối cấp nguồn động cơ C. LƯU ĐỒ GIẢI THUẬT: SƠ ĐỒ GIẢI THUẬT MẠCH PHÁT: BEGIN Tới bit P0.0 Lui bit P0.1 Trái bit P0.2 Phải bit P0.3 TE bit P0.7 Call trái Trái=0? Call phải Phải=0 Call lùi Call tới Lùi=0? Tới=0 ? D.SƠ ĐỒ GIẢI THUẬT MẠCH THU RF : CHƯƠNG TRÌNH MACH PHÁT RF: INCLUDE 89C51.MC INCLUDE MOD51fx ;---- TOI BIT P0.0 LUI BIT P0.1 TRAI BIT P0.2 PHAI BIT P0.3 TE BIT P0.7 ; = = = = = = = = = = = = = = = = = = = = ;= MAIN = = = = = = = = = = = = = = = = = ORG 0000H BEGIN: MOV P1,#ffh SETB TE MAIN: JB TOI,P_LUI LCALL CHAY_TOI P_LUI: JB LUI,P_TRAI LCALL CHAY_LUI P_TRAI: JB TRAI,P_PHAI LCALL CUA_TRAI P_PHAI: JB PHAI,NONE LCALL CUA_PHAI NONE: SETB TE JMP MAIN ;----------------------------------------------------------- CUA_PHAI: MOV P1,#80H CLR TE NOP SETB TE RET ;---------------------------------------------- CUA_TRAI: MOV P1,#40H CLR TE NOP SETB TE RET ;---------------------------------------------- CHAY_TOI: MOV P1,#10H CLR TE NOP SETB TE RET ;---------------------------------------------- CHAY_LUI: MOV P1,#20H CLR TE NOP SETB TE RET ;---------HAM DELAY 500MS ----- DELAY10MS: MOV R4,#1 LOOP_DELAY_10MS: MOV R2,#50 LOOP_DELAY_10MS1: MOV R3,#100 DJNZ R3,$ DJNZ R2,LOOP_DELAY_10MS1 DJNZ R4,LOOP_DELAY_10MS RET ;---------HAM DELAY 500MS ----- DELAY50MS: MOV R4,#5 LOOP_DELAY_50MS: MOV R2,#50 LOOP_DELAY_50MS1: MOV R3,#100 DJNZ R3,$ DJNZ R2,LOOP_DELAY_50MS1 DJNZ R4,LOOP_DELAY_50MS RET END CHƯƠNG TRÌNH MẠCH THU RF: INCLUDE 89C51.MC INCLUDE MOD51fx ;---- MOTORTRAI DATA CCAP0H MOTORPHAI DATA CCAP1H DAO_MOTOR_PHAI BIT P1.5 DAO_MOTOR_TRAI BIT P1.2 TOC_DO DATA 40H TOI BIT P0.0 LUI BIT P0.1 TRAI BIT P0.2 PHAI BIT P0.3 ORG 0000H BEGIN: MOV CMOD,#0 SETB CR MOV CCAPM0,#01000010B MOV CCAPM1,#01000010B MOV P0,#FFH MAIN: P_TOI: JNB TOI,P_LUI LCALL CHAY_TOI P_LUI: JNB LUI,P_TRAI LCALL CHAY_LUI P_TRAI: JNB TRAI,P_PHAI LCALL CUA_TRAI P_PHAI: JNB PHAI,NONE LCALL CUA_PHAI NONE: MOV MOTORTRAI,#00H MOV MOTORPHAI,#00H SETB DAO_MOTOR_TRAI SETB DAO_MOTOR_TRAI SJMP MAIN ;----------------------------------------------------------- CUA_PHAI: CLR DAO_MOTOR_PHAI SETB DAO_MOTOR_TRAI LCALL DELAY50MS TT_CUA_PHAI: MOV MOTORPHAI,#200 MOV MOTORTRAI,#180 JB P0.3,$ MOV MOTORPHAI,#0 MOV MOTORTRAI,#0 SETB DAO_MOTOR_PHAI SETB DAO_MOTOR_TRAI RET ;---------------------------------------------- CUA_TRAI: SETB DAO_MOTOR_PHAI CLR DAO_MOTOR_TRAI LCALL DELAY50MS TT_CUA_TRAI: MOV MOTORPHAI,#180 MOV MOTORTRAI,#200 JB P0.2,$ MOV MOTORPHAI,#0 MOV MOTORTRAI,#0 SETB DAO_MOTOR_PHAI SETB DAO_MOTOR_TRAI RET ;---------------------------------------------- CHAY_TOI: SETB DAO_MOTOR_PHAI SETB DAO_MOTOR_TRAI LCALL DELAY50MS TT_CHAY_TOI: MOV MOTORPHAI,#200 MOV MOTORTRAI,#200 JB P0.0,$ MOV MOTORPHAI,#0 MOV MOTORTRAI,#0 SETB DAO_MOTOR_PHAI SETB DAO_MOTOR_TRAI RET ;---------------------------------------------- CHAY_LUI: CLR DAO_MOTOR_PHAI CLR DAO_MOTOR_TRAI LCALL DELAY50MS TT_CHAY_LUI: MOV MOTORPHAI,#200 MOV MOTORTRAI,#200 JB P0.1,$ MOV MOTORPHAI,#0 MOV MOTORTRAI,#0 SETB DAO_MOTOR_PHAI SETB DAO_MOTOR_TRAI RET ;---------HAM DELAY 500MS ----- DELAY10MS: MOV R4,#1 LOOP_DELAY_10MS: MOV R2,#50 LOOP_DELAY_10MS1: MOV R3,#100 DJNZ R3,$ DJNZ R2,LOOP_DELAY_10MS1 DJNZ R4,LOOP_DELAY_10MS RET ;---------HAM DELAY 500MS ----- DELAY50MS: MOV R4,#5 LOOP_DELAY_50MS: MOV R2,#50 LOOP_DELAY_50MS1: MOV R3,#100 DJNZ R3,$ DJNZ R2,LOOP_DELAY_50MS1 DJNZ R4,LOOP_DELAY_50MS RET END III.KẾT LUẬN: Đồ án đã làm được bộ điều khiển xe robot bằng mạch thu phát RF. Đã sử dụng được module RF kết hợp với IC mã hóa và giải mã PT2272/2262. Tuy nhiên vẫn có hạn chế đó là khoảng cách thu và phát không đáp ứng được yêu cầu đề ra. IV.HƯỚNG PHÁT TRIỂN ĐỀ TÀI: Hướng phát triển của chúng em là ở đồ án tiếp theo chúng em sẽ sử dụng module RF không có IC mã hóa và giải mã dùng vi xử lý để lập trình mã hóa va giải mã và thêm vào đó là có giám sát qua máy tính. TAØI LIEÄU THAM KHAÛO 1.GIÁO TRÌNH VI XỬ LÝ CỦA TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TPHCM. 2.TRANG WEB: WWW.KHVT.COM 3.www.alldatasheet.com 4.www.ant7.com 5.

Các file đính kèm theo tài liệu này:

  • docĐiều khiển xe robot sử dụng mạch thu phát tín hiệu RF (dùng vi xử lý).doc