BAO CAO DE TAI MẠNG VI điều KHIỂN GIAO TIẾP i2c

114 226 1
BAO CAO DE TAI MẠNG VI điều KHIỂN GIAO TIẾP i2c

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

MẠNG VI ĐIỀU KHIỂN GIAO TIẾP I2C GVHD: Tống Thanh Nhân MỤC LỤC MỤC LỤC Lời Mở Đầu CHƢƠNG 1: NỘI DUNG YÊU CẦU ĐỀ TÀI 10 2.1 Pic gì? 11 2.2 Tại dùng Pic? 11 2.2 Các dòng Pic Và cách lựa chọn Vi điều khiển Pic 11 2.4 Ngôn ngữ lập trình cho Pic 12 2.5 Mạch nạp Pic 12 2.6 VI ĐIỀU KHIỂN PIC 16F877A 13 2.6.3 SƠ ĐỒ KHỐI CỦA PIC 16f877A 16 2.6.4 TỔ CHỨC BỘ NHỚ 18 2.6.4.1 Bộ nhớ chƣơng trình 18 2.6.4.2 Bộ nhớ liệu 18 2.6.4.3 Stack 21 2.6.6 TIMER 25 2.6.6.1 Timer 25 2.6.6.2 Timer 26 2.6.6.3 Timer 27 2.6.7 ADC 29 2.7 CÁC CHUẨN GIAO TIẾP 31 SVTH: Nguyễn Duy Linh Trƣơng Công Nghiệp Trang MẠNG VI ĐIỀU KHIỂN GIAO TIẾP I2C GVHD: Tống Thanh Nhân 2.7.1 GIAO TIẾP NỐI TIẾP 31 2.7.1.1 USART 31 2.7.1.1.1 USART bất đồng 32 2.7.1.1.2 USART đồng 36 2.7.2 Chuẩn giao tiếp I2C 36 2.7.2.1 Giới thiệu I2C 36 2.7.2.2 Đặc điểm giao tiếp I2C 37 2.7.2.3 Điều kiện Start Stop 41 2.7.2.4 Định dạng liệu truyền 42 2.7.2.5 Định dạng địa thiết bị 45 2.7.2.6 Truyền liệu bus I2C, chế độ Master –Slave 45 2.7.3 Chuẩn giao tiếp SPI 49 2.7.3.1 SPI Master mode 50 2.7.3.2 SPI Slave mode 50 2.7.4 Cổng giao tiếp song song PSP(Parallel Slave Port) 51 2.7.4.1 Sơ lƣợc cấu tạo chức PSP 51 2.7.4.1.1 Cấu tạo phần cứng SSP vi điều khiển PIC 16F877A 52 2.7.4.1.2 Quá trình truyền nhận liệu qua SSP 52 2.8 Các đặc tính Oscillator 55 2.9 Các chế độ Reset 55 2.10 Interrup 57 2.10.1 Ngắt gì? 57 SVTH: Nguyễn Duy Linh Trƣơng Công Nghiệp Trang MẠNG VI ĐIỀU KHIỂN GIAO TIẾP I2C GVHD: Tống Thanh Nhân 2.10.2 Cấu trúc Interrup 61 2.11.1 HIỂN THỊ LED ĐƠN 62 2.11.1.1 Giới Thiệu Chung: 62 2.11.1.2 Tính toán giá trị điện trở 63 2.11.2.1Các khái niệm 64 2.11.2.2 Kết nối với Vi Điều Khiển 65 2.11.2.3 Giao Tiếp Vi Điều Khiển Với Nhiều Led Đoạn : 69 2.11.3 LED MA TRẬN 72 2.11.3.1 Hiển thị led Ma Trận 72 2.11.3.1.1 Giới thiệu: 72 2.11.3.1.2 Led Ma Trận 8x8: 73 2.11.3.1.3 Chốt Hàng: 75 2.11.3.1.4 Chốt Cột: 76 2.11.3.2 Phƣơng Pháp Dùng Thanh Ghi Dịch: 77 2.11.3.2.1 Quét Hàng: 77 2.11.3.2.2 Quét Cột: 79 2.11.3.2.2.1 Giới thiệu chung phƣơng pháp quét cột 79 2.11.3.2.2.2 Quá trình thực quét cột 79 2.11.4 HIỂN THỊ LCD 83 2.11.4.1 Giới Thiệu Chung Về LCD 83 2.11.4.2 Tên chân chức năng: 84 CHƢƠNG PHÂN TÍCH THIẾT KẾ 85 SVTH: Nguyễn Duy Linh Trƣơng Công Nghiệp Trang MẠNG VI ĐIỀU KHIỂN GIAO TIẾP I2C GVHD: Tống Thanh Nhân 3.1 SƠ ĐỒ KHỐI 85 3.2 PHÂN TÍCH MẠCH 86 3.2.1 MẠCH NGUỒN 86 3.2.2 MẠCH MASTER 88 3.2.3 MẠCH SLAVE 89 CHƢƠNG 4:GIẢI THUẬT VÀ CHƢƠNG TRÌNH 97 CHƢƠNG 5: TỔNG KẾT 116 KẾT LUẬN 117 SVTH: Nguyễn Duy Linh Trƣơng Công Nghiệp Trang MẠNG VI ĐIỀU KHIỂN GIAO TIẾP I2C GVHD: Tống Thanh Nhân Lời Cảm Ơn Nhóm chúng em xin chân thành gửi lời cảm ơn đến thầy Tống Thanh Nhân cƣơng vị Giáo viên hƣớng dẫn đề tài tận tình giúp đỡ suốt trình thực Đề tài tốt nghiệp Đồng thời xin bày tỏ lòng biết ơn đến thầy cô trƣờng Cao Đẳng Kỹ Thuật Cao Thắng đặc biệt thầy cô Khoa Điện Tử-Tin Học tận tình dạy dỗ truyền thụ kinh nghiệm kiến thức quý báu suốt thời gian đào tạo trƣờng Chân thành cảm ơn ! Sinh viên thực hiện: TRƢƠNG CÔNG NGHIỆP NGUYỄN DUY LINH SVTH: Nguyễn Duy Linh Trƣơng Công Nghiệp Trang MẠNG VI ĐIỀU KHIỂN GIAO TIẾP I2C GVHD: Tống Thanh Nhân Lời Mở Đầu Trong thời đại khoa học ngày nay, lĩnh vực khoa học kỹ thuật phát triển nhanh ngày, đặc biệt lĩnh vực công nghệ điện tử trở nên cần thiết cho xã hội động lực để tạo nên xã hội tiên tiến - đại Hiện khoa học – kỹ thuật đất nƣớc ta bƣớc phát triển hòa chung vào phát triển chung toàn cầu Trên đà phát triển đó, vấn đề tự động hoá – khoa học điện tử đƣợc ứng dụng cách rộng rãi trình sản xuất, đặc biệt vấn đề nghiên cứu trở thành nhu cầu cần thiết, với xuất cuả Chip vi xử lý máy tính với việc ứng dụng rộng rãi đẩy vấn đề tự động hoá lên bƣớc cao để cải thiện đƣợc lao động chân tay ngƣời … Chính Chip vi xử lý đặc biệt Họ Vi điều khiển PIC đƣợc sử dụng rộng rãi việc giảng dạy đào tạo cho sinh viên nhằm tạo nguồn lao động có trình độ kỹ thuật cao phục vụ sản xuất Để hòa nhập vào cộng đồng cƣ dân điện tử thời đại ngày nay, nhóm chúng em định nghiên cứu lĩnh vực này, với kiến thức có phạm vi hiểu biết mình, chúng em tìm hiểu thực đề tài: “ Mạng Vi Điều Khiển Giao tiếp I2C ” SVTH: Nguyễn Duy Linh Trƣơng Công Nghiệp Trang MẠNG VI ĐIỀU KHIỂN GIAO TIẾP I2C GVHD: Tống Thanh Nhân CHƢƠNG 1: NỘI DUNG YÊU CẦU ĐỀ TÀI Sử dụng chức giao tiếp vi điều khiển (pic 16f877a) mode i2c để giao tiếp với thiết bị slave chế độ one master – multislave Dữ liệu đƣợc truyền từ thiết bị chủ (master) tới thiết bị tớ (slave) Khi nhận đƣợc lệnh từ master slave hiển thị kết thông qua thiết bị ngoại vi (ICs) Yêu cầu: -Nắm đƣợc kiến thức giao thƣc, địa chỉ, cách thức truyền liệu -Lập trình cho vi điều khiển thông qua trình biên dịch CCS dùng ngôn ngữ lập trình C -Nắm vững kiến thức vi điều khiển thành phần chức đặc biệt chức giao tiếp với IC với thông qua bus i2c SVTH: Nguyễn Duy Linh Trƣơng Công Nghiệp Trang 10 MẠNG VI ĐIỀU KHIỂN GIAO TIẾP I2C GVHD: Tống Thanh Nhân CHƢƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Pic gì? PIC viết tắt “Programable Intelligent Computer”, tạm dịch “máy tính thông minh khả trình” hãng Genenral Instrument đặt tên cho vi điều khiển họ PIC1650 đƣợc thiết kế để dùng làm thiết bị ngoại vi cho vi điều khiển CP1600 Vi điều khiển sau đƣợc nghiên cứu phát triển thêm từ hình thành nên dòng vi điều khiển PIC ngày 2.2 Tại dùng Pic? Họ vi điều khiển tìm mua dễ dàng thị trƣờng Việt Nam Giá thành không đắt Có đầy đủ tính vi điều khiển hoạt động độc lập Là bổ sung tốt kiến thức nhƣ ứng dụng cho họ vi điều khiển mang tính truyền thống: họ vi điều khiển 8051 Số lƣợng ngƣời sử dụng họ vi điều khiển PIC Hiện Việt Nam nhƣ giới, họ vi điều khiển đƣợc sử dụng rộng rãi Điều tạo nhiều thuận lợi trình tìm hiểu phát triển ứng dụng nhƣ: số lƣợng tài liệu, số lƣợng ứng dụng mở đƣợc phát triển thành công, dễ dàng trao đổi, học tập, dễ dàng tìm đƣợc dẫn gặp khó khăn, Sự hỗ trợ nhà sản xuất trình biên dịch, công cụ lập trình, nạp chƣơng trình từ đơn giản đến phức tạp,… Các tính đa dạng vi điều khiển PIC, tính không ngừng đƣợc phát triển 2.2 Các dòng Pic Và cách lựa chọn Vi điều khiển Pic Các kí hiệu vi điều khiển PIC: PIC12xxxx: độ dài lệnh 12 bit PIC16xxxx: độ dài lệnh 14 bit PIC18xxxx: độ dài lệnh 16 bit C: PIC có nhớ EPROM (chỉ có 16C84 EEPROM) SVTH: Nguyễn Duy Linh Trƣơng Công Nghiệp Trang 11 MẠNG VI ĐIỀU KHIỂN GIAO TIẾP I2C GVHD: Tống Thanh Nhân F: PIC có nhớ flash LF: PIC có nhớ flash hoạt động điện áp thấp LV: tƣơng tự nhƣ LF, kí hiệu cũ Bên cạnh số vi điệu khiển có kí hiệu xxFxxx EEPROM, có thêm chữ A cuối flash (ví dụ PIC16F877 EEPROM, PIC16F877A flash) Ở Việt Nam phổ biến họ vi điều khiển PIC hãng Microchip sản xuất Cách lựa chọn vi điều khiển PIC phù hợp: Trƣớc hết cần ý đến số chân vi điều khiển cần thiết cho ứng dụng Có nhiều vi điều khiển PIC với số lƣợng chân khác nhau, chí có vi điều khiển có chân,ngoài có vi điều khiển 28, 40, 44, … chân Cần chọn vi điều khiển PIC có nhớ flash để nạp xóa chƣơng trình đƣợc nhiều lần Tiếp theo cần ý đến khối chức đƣợc tích hợp sẵn vi điều khiển, chuẩn giao tiếp bên Sau cần ý đến nhớ chƣơng trình mà vi điều khiển cho phép 2.4 Ngôn ngữ lập trình cho Pic Ngôn ngữ lập trình cho PIC đa dạng Ngôn ngữ lập trình cấp thấp có MPLAB (đƣợc cung cấp miễn phí nhà sản xuất Microchip), ngôn ngữ lập trình cấp cao bao gồm C, Basic, Pascal,… Ngoài có số ngôn ngữ lập trình đƣợc phát triển dành riêng cho PIC nhƣ PICBasic, MikroBasic,… 2.5 Mạch nạp Pic Đây dòng sản phẩm đa dạng dành cho vi điều khiển PIC Có thể sử dụng mạch nạp đƣợc cung cấp nhà sản xuất hãng Microchip nhƣ: PICSTART plus, MPLAB ICD 2, MPLAB PM 3, PRO MATE II Có thể dùng sản phẩm để nạp cho vi điều khiển khác thông qua chƣơng trình MPLAB Dòng sản phẩm thống có ƣu nạp đƣợc cho tất vi điều khiển PIC, nhiên giá thành cao thƣờng gặp nhiều khó khăn trình mua sản phẩm SVTH: Nguyễn Duy Linh Trƣơng Công Nghiệp Trang 12 MẠNG VI ĐIỀU KHIỂN GIAO TIẾP I2C GVHD: Tống Thanh Nhân 2.6 VI ĐIỀU KHIỂN PIC 16F877A Hình : Pic 16F877A SVTH: Nguyễn Duy Linh Trƣơng Công Nghiệp Trang 13 MẠNG VI ĐIỀU KHIỂN GIAO TIẾP I2C GVHD: Tống Thanh Nhân CODE SLAVE1 /************HIEN LED 7**********/ #define chon_led1 pin_a0 #define chon_led2 pin_a1 #define chon_led3 pin_a2 #define chon_led4 pin_a3 unsigned char const digits[10] = {192,249,164,176,153,146,130,248,128,144}; void display_digit(int8 digit){ output_d(digits[digit]); output_a(0xff); delay_us(50); } /***************************main*************************/ #include #FUSES NOWDT #FUSES XT #FUSES PUT #FUSES NOPROTECT #FUSES NOLVP SVTH: Nguyễn Duy Linh Trƣơng Công Nghiệp Trang 103 MẠNG VI ĐIỀU KHIỂN GIAO TIẾP I2C GVHD: Tống Thanh Nhân #use delay(clock=4000000) #use i2c(SLAVE, FORCE_HW) SDA=PIN_C4, SCL=PIN_C3, address=0xa0, SLOW, #include "driver_segment_led.c" int8 data = 0; #INT_SSP void i2c_isr(){ data = i2c_read(); } int16 Test_i2c(){ if(data==0xa0){ while(data==0xa0); if(data==1)return 1; if(data==2)return 2; if(data==3)return 3; //data = 0; } } void display_singel_led(){ int16 i; for(i=0;i

Ngày đăng: 07/09/2017, 15:32

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan