Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 110 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
110
Dung lượng
1,93 MB
Nội dung
MẠNGVIĐIỀUKHIỂNGIAOTIẾPI2C GVHD: Tống Thanh Nhân MỤC LỤC MỤC LỤC .4 Lời Cảm Ơn .5 SVTH: Nguyễn Duy Linh Trương Công Nghiệp Trang MẠNGVIĐIỀUKHIỂNGIAOTIẾPI2C 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ẠNGVIĐIỀUKHIỂNGIAOTIẾPI2C 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ử ứ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 lao động chân tay người … Chính Chip vi xử lý đặc biệt Họ Viđiềukhiển PIC 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ạngViĐiềuKhiểnGiaotiếpI2C ” SVTH: Nguyễn Duy Linh Trương Công Nghiệp Trang MẠNGVIĐIỀUKHIỂNGIAOTIẾPI2C GVHD: Tống Thanh Nhân CHƯƠNG 1: NỘI DUNG YÊU CẦU ĐỀTÀI Sử dụng chức giaotiếpviđiềukhiển (pic 16f877a) mode i2cđểgiaotiếp với thiết bị slave chế độ one master – multislave Dữ liệu truyền từ thiết bị chủ (master) tới thiết bị tớ (slave) Khi nhận 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 kiến thức giao thưc, địa chỉ, cách thức truyền liệu -Lập trình cho viđiềukhiể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ềukhiển thành phần chức đặc biệt chức giaotiếp với IC với thông qua bus i2c SVTH: Nguyễn Duy Linh Trương Công Nghiệp Trang MẠNGVIĐIỀUKHIỂNGIAOTIẾPI2C 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ềukhiển họ PIC1650 thiết kế để dùng làm thiết bị ngoại vi cho viđiềukhiển CP1600 Viđiềukhiển sau nghiên cứu phát triển thêm từ hình thành nên dòng viđiềukhiển PIC ngày 2.2 Tại dùng Pic? Họ viđiềukhiể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ềukhiển hoạt động độc lập Là bổ sung tốt kiến thức ứng dụng cho họ viđiềukhiểnmang tính truyền thống: họ viđiềukhiển 8051 Số lượng người sử dụng họ viđiềukhiển PIC Hiện Việt Nam giới, họ viđiềukhiển 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ở phát triển thành công, dễ dàng trao đổi, học tập, dễ dàng tìm 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ềukhiển PIC, tính không ngừng phát triển 2.2 Các dòng Pic Và cách lựa chọn Viđiềukhiển Pic Các kí hiệu viđiềukhiể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 MẠNGVIĐIỀUKHIỂNGIAOTIẾPI2C 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ự LF, kí hiệu cũ Bên cạnh số viđiệukhiể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ềukhiển PIC hãng Microchip sản xuất Cách lựa chọn viđiềukhiển PIC phù hợp: Trước hết cần ý đến số chân viđiềukhiển cần thiết cho ứng dụng Có nhiều viđiềukhiển PIC với số lượng chân khác nhau, chí có viđiềukhiển có chân,ngoài có viđiềukhiển 28, 40, 44, … chân Cần chọn viđiềukhiển PIC có nhớ flash để nạp xóa chương trình nhiều lần Tiếp theo cần ý đến khối chức tích hợp sẵn viđiều khiển, chuẩn giaotiếp bên Sau cần ý đến nhớ chương trình mà viđiềukhiể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 caobao gồm C, Basic, Pascal,… Ngoài có số ngôn ngữ lập trình phát triển dành riêng cho PIC PICBasic, MikroBasic,… 2.5 Mạch nạp Pic Đây dòng sản phẩm đa dạng dành cho viđiềukhiển PIC Có thể sử dụng mạch nạp 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ềukhiển khác thông qua chương trình MPLAB Dòng sản phẩm thống có ưu nạp cho tất viđiềukhiể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 MẠNGVIĐIỀUKHIỂNGIAOTIẾPI2C GVHD: Tống Thanh Nhân 2.6 VIĐIỀUKHIỂN PIC 16F877A Hình : Pic 16F877A SVTH: Nguyễn Duy Linh Trương Công Nghiệp Trang 10 MẠNGVIĐIỀUKHIỂNGIAOTIẾPI2C GVHD: Tống Thanh Nhân 2.6.1.SƠ ĐỒ CHÂN VI ĐI ỀU KHIỂN PIC16F87X Hình : kiểu chân PIC16F877A SVTH: Nguyễn Duy Linh Trương Công Nghiệp Trang 11 MẠNGVIĐIỀUKHIỂNGIAOTIẾPI2C GVHD: Tống Thanh Nhân 2.6.2 MỘT VÀI THÔNG SỐ VỀ PIC 16F877A Đây viđiềukhiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit Mỗi lệnh thực thi chu kì xung clock Tốc độ hoạt động tối đa cho phép 20 MHz với chu kì lệnh 200ns Bộ nhớ chương trình 8Kx14 bit, nhớ liệu 368 byte RAM nhớ liệu EEPROM với dung lượng 256 byte Số PORT I/O với 33 pin I/O Các đặc tính ngoại vibao gồm khối chức sau: Timer0: đếm bit với chia tần số bit Timer1: đếm 16 bit với chia tần số, thực chức đếm dựa vào xung clock ngoại viviđiềukhiển hoạt động chế độ sleep Timer2: đếm bit với chia tần số, postcaler Hai Capture/so sánh/điều chế độ rông xung Các chuẩn giaotiếp nối tiếp SSP (Synchronous Serial Port), SPI I2C Chuẩn giaotiếp nối tiếp USART với bit địa Cổng giaotiếp song song PSP (Parallel Slave Port) với chân điềukhiển RD, WR, CS bên Các đặc tính Analog: kênh chuyển đổi ADC 10 bit Hai so sánh Bên cạnh vài đặc tính khác viđiềukhiển như: Bộ nhớ flash với khả ghi xóa 100.000 lần Bộ nhớ EEPROM với khả ghi xóa 1.000.000 lần Dữ liệu nhớ EEPROM lưu trữ 40 năm SVTH: Nguyễn Duy Linh Trương Công Nghiệp Trang 12 MẠNGVIĐIỀUKHIỂNGIAOTIẾPI2C GVHD: Tống Thanh Nhân Khả tự nạp chương trình với điềukhiển phần mềm Nạp chương trình mạch điện ICSP (In Circuit Serial Programming) thông qua chân Watchdog Timer với dao động Chức bảo mật mã chương trình Chế độ Sleep Có thể hoạt động với nhiều dạng Oscillator khác 2.6.3 SƠ ĐỒ KHỐI CỦA PIC 16f877A SVTH: Nguyễn Duy Linh Trương Công Nghiệp Trang 13 MẠNGVIĐIỀUKHIỂNGIAOTIẾPI2C GVHD: Tống Thanh Nhân display(so[count1],chips); } if(!input(down)){ while(!input(down))delay_ms(time_button); if(count1>1)count1 ; display(so[count1],chips); } if(!input(ok)){ while(!input(ok))delay_ms(time_button); Call_ctrinh(); } if(!input(esc)){count1=0; display(so[0],chips); break;} } } } } CODE SLAVE1 /************HIEN LED 7**********/ #define chon_led1 pin_a0 #define chon_led2 pin_a1 SVTH: Nguyễn Duy Linh Trương Công Nghiệp Trang 99 MẠNGVIĐIỀUKHIỂNGIAOTIẾPI2C GVHD: Tống Thanh Nhân #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 #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; SVTH: Nguyễn Duy Linh Trương Công Nghiệp Trang 100 MẠNGVIĐIỀUKHIỂNGIAOTIẾPI2C GVHD: Tống Thanh Nhân #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