Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 49 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
49
Dung lượng
823,99 KB
Nội dung
TRƢỜNG ĐẠI HỌC SƢ PHẠM HÀ NỘI 2 KHOA VẬT LÝ ĐỖ THỊ HẠNH ĐIỀU KHIỂN HỆ THỐNG ĐÈN LED DÙNG PIC16F877A KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HÀ NỘI, 2014 TRƢỜNG ĐẠI HỌC SƢ PHẠM HÀ NỘI 2 KHOA VẬT LÝ ĐỖ THỊ HẠNH ĐIỀU KHIỂN HỆ THỐNG ĐÈN LED DÙNG PIC 16F877A Chuyên ngành: Vật lý kỹ thuật KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Ngƣời hƣớng dẫn khoa học: ThS. PHÙNG CÔNG PHI KHANH HÀ NỘI, 2014 LỜI CẢM ƠN Trước tiên, tôi xin bày tỏ lòng kính trọng và biết ơn sâu sắc tới thầy Phùng Công Phi Khanh. Thầy đã tận tình hướng dẫn giúp tôi hoàn thành khóa luận. Tôi cũng xin gửi lời cảm ơn đến toàn thể các thầy, cô giáo trong khoa Vật Lý, các thầy cô trong trường Đại học Sư phạm Hà Nội 2 - những người đã giúp đỡ tôi trong suốt quá trình học tập và tạo điều kiện thuận lợi giúp tôi hoàn thành khóa luận này. Cuối cùng, tôi xin cảm ơn gia đình, bạn bè và người thân đã luôn giúp đỡ, cổ vũ, động viên tôi trong suốt quá trình học tập và hoàn thành khóa luận. Tôi xin chân thành cảm ơn! Hà Nội, tháng 5 năm 2014 Sinh viên thực hiện Đỗ Thị Hạnh LỜI CAM ĐOAN Tôi xin cam đoan đề tài “ĐIỀU KHIỂN HỆ THỐNG ĐÈN LED DÙNG PIC 16F877A” là kết quả của sự nỗ lực cố gắng nghiên cứu, tìm tòi, tra cứu tài liệu và sự giúp đỡ tận tình của thầy Phùng Công Phi Khanh cùng các thầy, cô giáo trong khoa Vật Lý trường Đại học Sư phạm Hà Nội 2. Các kết quả được nêu trong khóa luận này là trung thực và chưa từng được công bố trong bất kì nghiên cứu nào. Tôi xin hoàn toàn chịu trách nhiệm với những gì mình khẳng định trên đây. Hà Nội, tháng 5 năm 2014 Sinh viên thực hiện Đỗ Thị Hạnh MỤC LỤC Trang PHẦN I. MỞ ĐẦU 5 PHẦN II. NỘI DUNG 8 Chƣơng 1. Tổng quan về vi điều khiển PIC 8 1.1. PIC là gì? 8 1.2. Kiến trúc PIC 8 1.3. Các dòng PIC và cách lựa chọn vi điều khiển 9 1.4. Ngôn ngữ lập trình cho PIC 10 1.5. Mạch nạp PIC 10 Chƣơng 2. Vài nét về vi điều khiển PIC 16F877A 11 2.1. Sơ đồ chân của vi điều khiển PIC 16F877A 11 2.2. Một vài thông số về vi điều khiển PIC 16F877A 12 2.3. Sơ đồ khối vi điều khiển PIC 16F877A 13 2.4. Tổ chức bộ nhớ 15 2.4.1. Bộ nhớ chương trình 15 2.4.2. Bộ nhớ dữ liệu 17 2.4.3. Stack 19 2.5. Các cổng xuất nhập của PIC 16F877A 19 2.5.1. Port A 19 2.5.2. Port B 20 2.5.3. Port C 22 2.5.4. Port D 2.5.5. Port E 24 24 2.6. Tập lệnh của vi điều khiển PIC 26 Chƣơng 3. Phần mềm Proteus 33 Chƣơng 4. Ứng dụng 36 4.1. Điều khiển Led tự động 36 4.1.1. Yêu cầu 36 4.1.2. Thiết kế mạch điện 37 4.1.3. Thiết kế phần mềm 39 4.1.3.1. Sơ đồ khối 39 4.1.3.2. Chương trình 40 4.2. Điều khiển Led sử dụng nút bấm 4.2.1. Yêu cầu 41 41 4.2.2. Thiết kế mạch điện 42 4.2.3. Thiết kế phần mềm 44 4.2.3.1. Sơ đồ khối 44 4.2.3.2. Chương trình 44 PHẦN III. KẾT LUẬN 46 TÀI LIỆU THAM KHẢO 47 5 PHẦN I. MỞ ĐẦU 1. Lí do chọn đề tài Thế kỉ 21 đã mở ra một kỉ nguyên mới về khoa học - công nghệ. Sự nhảy vọt mang tính chất đột phá của khoa học đã đem lại những thành tựu hết sức to lớn trong tất cả các lĩnh vực của đời sống xã hội. Trong số nhiều lĩnh vực được xã hội quan tâm, chúng ta không thể không kể đến các ứng dụng của vi điều khiển. Kĩ thuật vi điều khiển đã và đang dần khẳng định vị trí của mình trong xã hội. Bởi lẽ, nó có thể đáp ứng được yêu cầu của phần lớn các ứng dụng trong các ngành kĩ thuật, kĩ thuật điện tử và tự động hóa. Bên cạnh họ vi điều khiển 8051 truyền thống, dòng vi điều khiển PIC ra đời thật sự là một sự bổ sung về kiến thức cũng như về ứng dụng cho dòng vi điều khiển cũ. Dòng PIC với giá thành không quá đắt lại đủ mạnh về tính năng, đủ bộ nhớ cho hầu hết các ứng dụng nên đã và đang được dùng phổ biến. Trong dòng vi điều khiển này, có một họ PIC với độ dài lệnh là 14 bit và bộ nhớ Flash có khả năng ghi, xóa tới 100000 lần đã và đang được khai thác để phát triển các ứng dụng. Đó chính là PIC 16F877A. Việc nghiên cứu phát triển các ứng dụng của họ PIC này ngày càng thu hút được sự quan tâm, chú ý của sinh viên các trường kĩ thuật. Trong số rất nhiều các ứng dụng của nó, chúng ta phải kể đến một số ứng dụng điển hình như: việc phát triển thông tin trong thông tin liên lạc, điều khiển tự động các máy móc, chế tạo Robot, điều khiển các đèn giao thông hay những dãy đèn Led trong các biển quảng cáo, trang trí… Xuất phát từ thực tế đó, chúng tôi chọn đề tài: “ĐIỀU KHIỂN HỆ THỐNG ĐÈN LED DÙNG PIC 16F877A” Nhằm đáp ứng nhu cầu học hỏi của bản thân về vi điều khiển đồng thời góp phần trong xu hướng chung của sinh viên ngành kĩ thuật làm quen và khai thác sử dụng vi điều khiển PIC. 6 2. Mục đích nghiên cứu Tìm hiểu về vi điều khiển PIC 16F877A. Nghiên cứu ứng dụng của vi điều khiển PIC 16F877A trong việc điều khiển dãy đèn Led. 3. Nhiệm vụ nghiên cứu Tổng quan về vi điều khiển PIC. Tìm hiểu dòng PIC 16F877A và mô phỏng hoạt động của nó trong việc điều khiển đèn Led. 4. Đối tƣợng nghiên cứu Vi điều khiển PIC 16F877A. 5. Phạm vi nghiên cứu Nghiên cứu ứng dụng của vi điều khiển PIC 16F877A trong việc điều khiển dãy đèn Led. Phần mềm MPLAB (ngôn ngữ MPLAB) hỗ trợ lập trình và biên dịch chương trình. Phần mềm Proteus hỗ trợ thiết kế mạch điện. 6. Phƣơng pháp nghiên cứu Sử dụng phương pháp nghiên cứu lí thuyết kết hợp với phương pháp thực nghiệm. 7. Ý nghĩa khoa học của đề tài Điều khiển hệ thống đèn Led là một ứng dụng thực tế mà hiện nay đang phát triển rất mạnh mẽ và được ứng dụng rộng rãi trong đời sống. Nghiên cứu đề tài “ĐIỀU KHIỂN HỆ THỐNG ĐÈN LED DÙNG PIC 16F877A” là bước tiếp cận đầu tiên khi bắt đầu học về dòng PIC 16F877A. Những kiến thức thu được sau khi hoàn thành xong đề tài này sẽ là những kiến thức nền tảng để có thể tiếp tục nghiên cứu, phát triển những ứng dụng tiếp theo. 7 8. Cấu trúc của khóa luận Cấu trúc khóa luận gồm 4 chương: Chương 1. Tổng quan về vi điều khiển PIC Giới thiệu chung về vi điều khiển PIC: Giới thiệu về kiến trúc PIC, các dòng PIC, cách lựa chọn vi điều khiển, ngôn ngữ lập trình cho PIC và mạch nạp PIC. Chương 2. Vài nét về vi điều khiển PIC 16F877A Tìm hiểu những nét cơ bản về vi điều khiển PIC 16F877A: Tìm hiểu về sơ đồ chân, sơ đồ khối, tổ chức bộ nhớ, các cổng xuất nhập và tập lệnh của PIC 16F877A. Chương 3. Phần mềm mô phỏng Proteus Giới thiệu một cách cơ bản về nhiệm vụ và đặc điểm của phần mềm Proteus. Chương 4. Ứng dụng Trong chương này, chúng tôi giới thiệu ứng dụng cụ thể của vi điều khiển PIC 16F877A trong việc điều khiển dãy đèn Led. 8 PHẦN II. NỘI DUNG Chƣơng 1. Tổng quan về vi điều khiển PIC 1.1. PIC là gì ? PIC là viết tắt của “Programable Intelligent Computer’’ có thể dịch là “máy tính lập trình thông minh” do hãng Genenral Instrument đặt tên cho vi điều khiển đầu tiên của họ là PIC 1650. PIC 1650 được thiết kế để dùng làm các thiết bị ngoại vi cho vi điều khiển CP1600. Vi điều khiển này sau đó được nghiên cứu phát triển thêm và từ đó hình thành nên dòng vi điều khiển PIC ngày nay. Hiện nay, các sản phẩm vi điều khiển PIC của Microchip đã gần 100 loại: từ họ 10Fxxx đến các họ 12Cxxx, 17Cxx, 16Fxx, 16Fxxx, 16FxxxA, 16LFxxxA, 18Fxxx, 18LFxxx… 1.2 . Kiến trúc PIC Cấu trúc phần cứng của một vi điều khiển được thiết kế theo hai kiểu kiến trúc: Kiến trúc Havard và kiến trúc Von-Neuman. Harvard Von-Neuman 8 14 8 Hình 1.1. Kiến trúc Havard và kiến trúc Von-Neuman Data memory CPU Program memory CPU Program and Data memory [...]... vi điều khiển mà không phụ thuộc vào cấu trúc dữ liệu Vi điều khiển được thiết kế theo kiến trúc Havard còn được gọi là vi điều khiển RISC (vi điều khiển có tập lệnh rút gọn) 1.3 Các dòng PIC và cách lựa chọn vi điều khiển Các kí hiệu của vi điều khiển PIC: PIC1 2xxxx: độ dài lệnh 12 bit PIC1 6xxxx: độ dài lệnh 14 bit PIC1 8xxxx: độ dài lệnh 16 bit C: PIC có bộ nhớ EPROM F: PIC có bộ nhớ Flash LF: PIC. .. vi điều khiển có kí hiệu xxFxxx là EEPROM Nếu có thêm chữ A ở cuối là Flash (ví dụ: PIC1 6F877 là EEPROM, còn PIC 16F877A là Flash) Ngoài ra còn có thêm một dòng vi điều khiển PIC mới là dsPIC Ở Việt Nam phổ biến nhất là các họ vi điều khiển PIC do hãng Microchip sản xuất Cách lựa chọn một vi điều khiển PIC phù hợp: Trước hết cần chú ý đến số chân của vi điều khiển cần thiết cho ứng dụng Có nhiều vi điều. .. bởi nhà sản xuất là hãng Microchip như: PICSTART plus, MPLAB ICD 2, MPLAB ICD 3, PRO MATE II Có thể dùng các sản phẩm này để nạp cho vi điều khiển khác thông qua chương trình MPLAB Ngoài ra còn có WARP- 13A, P16PRO40 10 Chƣơng 2 Vài nét về vi điều khiển PIC 16F877A 2.1 Sơ đồ chân của vi điều khiển PIC 16F877A Hình 2.1 Sơ đồ chân của vi điều khiển PIC 16F877A PIC 16F877A có 40 chân được chia thành 5 Port... đó có 2 chân cấp nguồn, 2 chân GND, 2 chân thạch anh và 1 chân dùng để Reset vi điều khiển 5 Port của PIC 16F877A bao gồm: Port B, Port D, Port C (mỗi Port có 8 chân), Port A có 6 chân và Port E có 3 chân 11 2.2 Một vài thông số về vi điều khiển PIC 16F877A PIC 16F877A là một vi điều khiển với kiến trúc RISC Đây là vi điều khiển thuộc họ PIC1 6Fxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit, mỗi lệnh... hoặc ngõ vào điều khiển đọc trong RE0/ RD /AN5 Bit 0 chế độ PSP hoặc ngõ vào tương tự RD 1: bình thường 0: điều khiển đọc I/O hoặc ngõ vào điều khiển ghi trong chế độ PSP hoặc ngõ vào tương tự WR RE1/WR/AN6 Bit 1 1: bình thường 0: điều khiển ghi I/O hoặc ngõ vào điều khiển chọn lựa chip trong chế độ PSP hoặc ngõ tương RE2/ CS /AN7 Bit 2 tự CS 1: vi điều khiển không được chọn 0: vi điều khiển được chọn... vi điều khiển PIC với số lượng chân khác nhau, thậm chí có vi điều khiển chỉ có 8 chân Ngoài ra còn có các vi điều khiển 28, 40, 44 chân Cần chọn vi điều khiển PIC có bộ nhớ Flash để có thể nạp, xóa chương trình được nhiều lần hơn Tiếp theo, cần chú ý đến các khối chức năng được tích hợp sẵn trong vi điều khiển, chuẩn giao tiếp bên trong Sau cùng, cần chú ý đến bộ nhớ chương trình mà vi điều khiển cho... tín hiệu tương tự sang số ADC Khối các Port xuất/nhập 13 Hình 2.2 Sơ đồ khối vi điều khiển PIC 16F877A 14 2.4 Tổ chức bộ nhớ Cấu trúc của bộ nhớ của vi điều khiển PIC1 6F877A bao gồm: Bộ nhớ chương trình (Program memory) và bộ nhớ dữ liệu (Data memory) 2.4.1 Bộ nhớ chương trình Bộ nhớ chương trình của vi điều khiển PIC 16F877A là bộ nhớ Flash Dung lượng bộ nhớ 8K word (1word = 14 bit) và được phân thành... toàn được điều khiển bởi CPU 2.5 Các cổng xuất nhập của vi điều khiển PIC 16F877A 2.5.1 Port A Port A là Port hai chiều bao gồm 6 pin I/O Thanh ghi định hướng dữ liệu tương ứng là TRISA Một chân của Port A sẽ ở trạng thái Input nếu ta “set” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA và ngược lại Nếu muốn xác lập chức năng của một chân trong Port A là Output, ta “clear” bit điều khiển tương... của một vi điều khiển Vi điều khiển được thiết kế theo kiến trúc Von-Neuman còn được gọi là vi điều khiển CISC (vi điều khiển có tập lệnh phức tạp) vì độ dài lệnh luôn là bội số của 8 bit Đối với kiến trúc Havard, bộ nhớ dữ liệu và bộ nhớ chương trình tách thành hai bộ nhớ riêng biệt Do đó, trong cùng một thời điểm CPU có thể tương tác với cả hai bộ nhớ Như vậy tốc độ xử lí của vi điều khiển được cải... trung tâm và các hàm chức năng ngoại vi để điều khiển hoạt động của các thiết bị Các thanh ghi chức năng đặc biệt được chia làm 2 loại: loại thứ nhất dùng cho các chức năng ngoại vi (ngắt, so sánh, điều biến xung PWM, ), loại thứ hai dùng cho các chức năng bên trong của vi điều khiển (các phép tính số học, truy xuất dữ liệu, ) 17 Hình 2.4 Sơ đồ bộ nhớ dữ liệu PIC1 6F877A 18 2.4.3 Stack Stack không nằm trong . Vài nét về vi điều khiển PIC 16F877A 11 2.1. Sơ đồ chân của vi điều khiển PIC 16F877A 11 2.2. Một vài thông số về vi điều khiển PIC 16F877A 12 2.3. Sơ đồ khối vi điều khiển PIC 16F877A 13. dụng vi điều khiển PIC. 6 2. Mục đích nghiên cứu Tìm hiểu về vi điều khiển PIC 16F877A. Nghiên cứu ứng dụng của vi điều khiển PIC 16F877A trong việc điều khiển dãy đèn Led. 3 Điều khiển hệ thống đèn Led là một ứng dụng thực tế mà hiện nay đang phát triển rất mạnh mẽ và được ứng dụng rộng rãi trong đời sống. Nghiên cứu đề tài “ĐIỀU KHIỂN HỆ THỐNG ĐÈN LED DÙNG PIC