Giáo Trình Vi Điều Khiển PIC

173 126 0
Giáo Trình Vi Điều Khiển PIC

Đ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ỤC LỤC CHƯƠNG TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC 1.1 PIC LÀ GÌ ?? 1.2 TẠI SAO LÀ PIC MÀ KHÔNG LÀ CÁC HỌ VI ĐIỀU KHIỂN KHÁC?? 1.3 KIẾN TRÚC PIC 1.4 RISC VÀ CISC 1.5 PIPELINING 1.6 CÁC DÒNG PIC VÀ CÁCH LỰA CHỌN VI ĐIỀU KHIỂN PIC 1.7 NGÔN NGỮ LẬP TRÌNH CHO PIC 1.8 MẠCH NẠP PIC 1.9 BOOTLOADER VÀ ICP (In Circuit Programming) CHƯƠNG VI ĐIỀU KHIỂN PIC16F877A 2.1 SƠ ĐỒ CHÂN VI ĐIỀU KHIỂN PIC16F877A 2.2 MỘT VÀI THÔNG SỐ VỀ VI ĐIỀU KHIỂN PIC16F877A 2.3 SƠ ĐỒ KHỐI VI ĐIỀU KHIỂN PIC16F877A 2.4 TỔ CHỨC BỘ NHỚ 2.4.1 BỘ NHỚ CHƯƠNG TRÌNH 2.4.2 BỘ NHỚ DỮ LIỆU 2.4.2.1 THANH GHI CHỨC NĂNG ĐẶC BIỆT SFR 2.4.2.2 THANH GHI MỤC ĐÍCH CHUNG GPR 2.4.3 STACK 2.5 CÁC CỔNG XUẤT NHẬP CỦA PIC16F877A 2.5.1 PORTA 2.5.2 PORTB 2.5.3 PORTC 2.5.4 PORTD 2.5.5 PORTE 2.6 TIMER 2.7 TIMER1 2.8 TIMER2 2.9 ADC 2.10 COMPARATOR 2.10.1 BỘ TẠO ĐIỆN ÁP SO SÁNH 2.11 CCP 2.12 GIAO TIẾP NỐI TIẾP CuuDuongThanCong.com https://fb.com/tailieudientucntt 1.12.1 USART 2.12.1.1 USART BẤT ĐỒNG BỘ 2.12.1.1.1 TRUYỀN DỮ LIỆU QUA CHUẨN GIAO TIẾP USART BẤT ĐỒNG BỘ 2.12.1.1.2 NHẬN DỮ LIỆU QUA CHUẨN GIAO TIẾP USART BẤT ĐỒNG BỘ 2.12.1.1.2 USART ĐỒNG BỘ 2.12.1.2.1 TRUYỀN DỮ LIỆU QUA CHUẨN GIAO TIẾP USART ĐỒNG BỘ MASTER MODE 2.12.1.2.2 NHẬN DỮ LIỆU QUA CHUẨN GIAO TIẾP USART ĐỒNG BỘ MASTER MODE 2.12.1.2.3 TRUYỀN DỮ LIỆU QUA CHUẨN GIAO TIẾP USART ĐỒNG BỘ SLAVE MODE 2.12.1.2.4 NHẬN DỮ LIỆU QUA CHUẨN GIAO TIẾP USART ĐỒNG BỘ SLAVE MODE 2.12.2 MSSP 2.12.2.1 SPI 2.12.2.1.1 SPI MASTER MODE 2.12.2.1.2 SPI SLAVE MODE 2.12.2.2 I2C 2.12.2.2.1 I2C SLAVE MODE 2.12.2.2.2 I2C MASTER MODE 2.13 COÅNG GIAO TIẾP SONG SONG PSP (PARALLEL SLAVE PORT) 2.14 TỔNG QUAN VỀ MỘT SỐ ĐẶC TÍNH CỦA CPU 2.14.1 CONFIGURATION BIT 2.14.2 CÁC ĐẶC TÍNH CỦA OSCILLATOR 2.14.3 CÁC CHẾ ĐỘRESET 2.14.4 NGẮT (INTERRUPT) 2.14.4.1 NGẮT INT 2.14.4.2 NGẮT DO SỰ THAY ĐỔI TRẠNG THÁI CÁC PIN TRONG PORTB 2.14.5 WATCHDOG TIMER (WDT) 2.14.6 CHẾ ĐỘ SLEEP 2.14.6.1 “ĐÁNH THỨC” VI ĐIỀU KHIỂN CHƯƠNG TẬP LỆNH CỦA VI ĐIỀU KHIỂN PIC 3.1 VÀI NÉT SƠ LƯC VỀ TẬP LỆNH CỦA VI ĐIỀU KHIỂN PIC 3.2 TẬP LỆNH CỦA VI ĐIỀU KHIỂN PIC 3.3 CẤU TRÚC CỦA MỘT CHƯƠNG TRÌNH ASSEMBLY VIẾT CHO VI ĐIỀU KHIỂN PIC CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG MỘT SỐ ỨNG DỤNG CỤ THỂ CỦA PIC16F877A 4.1 ĐIỀU KHIỂN CÁC PORT I/O 4.1.1 CHƯƠNG TRÌNH DELAY 4.1.2 MỘT SỐ ỨNG DỤNG VỀ ĐẶC TÍNH I/O CỦA CÁC PORT ĐIỀU KHIỂN 4.2 VI ĐIỀU KHIỂN PIC16F877A VÀ IC GHI DỊCH 74HC595 4.3 PIC16F877A VÀ LED ĐOẠN 4.4 NGẮT VÀ CẤU TRÚC CỦA MỘT CHƯƠNG TRÌNH NGẮT 4.5 TIMER VÀ ỨNG DỤNG 4.5.1 TIMER VÀ HOẠT ĐỘNG ĐỊNH THỜI PHỤ LỤC SƠ ĐỒ KHỐI CÁC PORT CỦA VI ĐIỀU KHIỂN PIC16F877A PHỤ LỤC THANH GHI SFR (SPECIAL FUNCTION REGISTER) CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC 1.1 PIC LÀ 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 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 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 1.2 TẠI SAO LÀ PIC MÀ KHÔNG LÀ CÁC HỌ VI ĐIỀU KHIỂN KHÁC?? Hiện thò trường có nhiều họ vi điều khiển 8051, Motorola 68HC, AVR, ARM, Ngoài họ 8051 hướng dẫn cách môi trường đại học, thân người viết chọn họ vi điều khiển PIC để mở rộng vốn kiến thức phát triển ứng dụng công cụ nguyên nhân sau: 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 ứ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 giới, họ vi điều khiể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ều khiển PIC, tính không ngừng phát triển 1.3 KIẾN TRÚC PIC Cấu trúc phần cứng vi điều khiển thiết kế theo hai dạng kiến trúc: kiến trúc Von Neuman kiến trúc Havard CuuDuongThanCong.com https://fb.com/tailieudientucntt Hình 1.1: Kiến trúc Havard kiến trúc Von-Neuman Tổ chức phần cứng PIC thiết kế theo kiến trúc Havard Điểm khác biệt kiến trúc Havard kiến trúc Von-Neuman cấu trúc nhớ liệu nhớ chương trình Đối với kiến trúc Von-Neuman, nhớ liệu nhớ chương trình nằm chung nhớ, ta tổ chức, cân đối cách linh hoạt nhớ chương trình nhớ liệu Tuy nhiên điều có ý nghóa tốc độ xử lí CPU phải cao, với cấu trúc đó, thời điểm CPU tương tác với nhớ liệu nhớ chương trình Như nói kiến trúc Von-Neuman không thích hợp với cấu trúc vi điều khiển Đối với kiến trúc Havard, nhớ liệu nhớ chương trình tách thành hai nhớ riêng biệt Do thời điểm CPU tương tác với hai nhớ, tốc độ xử lí vi điều khiển cải thiện đáng kể Một điểm cần ý tập lệnh kiến trúc Havard tối ưu tùy theo yêu cầu kiến trúc vi điều khiển mà không phụ thuộc vào cấu trúc liệu Ví dụ, vi điều khiển dòng 16F, độ dài lệnh 14 bit (trong liệu tổ chức thành byte), kiến trúc Von-Neuman, độ dài lệnh bội số byte (do liệu tổ chức thành byte) Đặc điểm minh họa cụ thể hình 1.1 1.4 RISC CISC Như trình bày trên, kiến trúc Havard khái niệm so với kiến trúc VonNeuman Khái niệm hình thành nhằm cải tiến tốc độ thực thi vi điều khiển Qua việc tách rời nhớ chương trình nhớ liệu, bus chương trình bus liệu, CPU lúc truy xuất nhớ chương trình nhớ liệu, giúp tăng tốc độ xử lí vi điều khiển lên gấp đôi Đồng thời cấu trúc lệnh không phụ thuộc vào cấu trúc liệu mà linh động điều chỉnh tùy theo khả tốc độ vi điều CuuDuongThanCong.com https://fb.com/tailieudientucntt khiển Và để tiếp tục cải tiến tốc độ thực thi lệnh, tập lệnh họ vi điều khiển PIC thiết kế cho chiều dài mã lệnh cố đònh (ví dụ họ 16Fxxxx chiều dài mã lệnh 14 bit) cho phép thực thi lệnh chu kì xung clock ( ngoại trừ số trường hợp đặc biệt lệnh nhảy, lệnh gọi chương trình … cần hai chu kì xung đồng hồ) Điều có nghóa tập lệnh vi điều khiển thuộc cấu trúc Havard lệnh hơn, ngắn hơn, đơn giản để đáp ứng yêu cầu mã hóa lệnh số lượng bit đònh Vi điều khiển tổ chức theo kiến trúc Havard gọi vi điều khiển RISC (Reduced Instruction Set Computer) hay vi điều khiển có tập lệnh rút gọn Vi điều khiển thiết kế theo kiến trúc Von-Neuman gọi vi điều khiển CISC (Complex Instruction Set Computer) hay vi điều khiển có tập lệnh phức tạp mã lệnh số cố đònh mà bội số bit (1 byte) 1.5 PIPELINING Đây chế xử lí lệnh vi điều khiển PIC Một chu kì lệnh vi điều khiển bao gồm xung clock Ví dụ ta sử dụng oscillator có tần số MHZ, xung lệnh có tần số MHz (chu kì lệnh us) Giả sử ta có đoạn chương trình sau: MOVLW 55h MOVWF PORTB CALL SUB_1 BSF PORTA,BIT3 instruction @ address SUB_1 Ở ta bàn đến qui trình vi điều khiển xử lí đoạn chương trình thông qua chu kì lệnh Quá trình thực thi sau: Hình 1.2: Cơ chế pipelining CuuDuongThanCong.com https://fb.com/tailieudientucntt TCY0: đọc lệnh TCY1: thực thi lệnh 1, đọc lệnh TCY2: thực thi lệnh 2, đọc lệnh TCY3: thực thi lệnh 3, đọc lệnh TCY4: lệnh lệnh thực thi theo qui trình thực thi chương trình (lệnh thực thi phải lệnh label SUB_1) nên chu thi lệnh dùng để đọc lệnh label SUB_1 Như xem lênh cần chu kì xung clock để thực thi TCY5: thực thi lệnh SUB_1 đọc lệnh SUB_1 Quá trình thực tương tự cho lệnh chương trình Thông thường, để thực thi lệnh, ta cần chu kì lệnh để gọi lệnh đó, chu kì xung clock để giải mã thực thi lệnh Với chế pipelining trình bày trên, lệnh xem thực thi chu kì lệnh Đối với lệnh mà trình thực thi làm thay đổi giá trò ghi PC (Program Counter) cần hai chu kì lệnh để thực thi phải thực việc gọi lệnh đòa ghi PC tới Sau xác đònh vò trí lệnh ghi PC, lệnh cần chu kì lệnh để thực thi xong 1.6 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) 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ệu khiển có kí hiệu xxFxxx EEPROM, có thêm chữ A cuối flash (ví dụ PIC16F877 EEPROM, PIC16F877A flash) Ngoài có thêm dòng vi điều khiển PIC dsPIC Ở 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, có vi điều khiển 28, 40, 44, … chân CuuDuongThanCong.com https://fb.com/tailieudientucntt Cần chọn vi điều khiể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 giao tiếp bên Sau cần ý đến nhớ chương trình mà vi điều khiển cho phép Ngoài thông tin cách lựa chọn vi điều khiển PIC tìm thấy sách “Select PIC guide” nhà sản xuất Microchip cung cấp 1.7 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 phát triển dành riêng cho PIC PICBasic, MikroBasic,… 1.8 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 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 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 Ngoài tính cho phép nhiều chế độ nạp khác nhau, có nhiều mạch nạp thiết kế dành cho vi điều khiển PIC Có thể sơ lược số mạch nạp cho PIC sau: JDM programmer: mạch nạp dùng chương trình nạp Icprog cho phép nạp vi điều khiển PIC có hỗ trợ tính nạp chương trình điện áp thấp ICSP (In Circuit Serial Programming) Hầu hết mạch nạp hỗ trợ tính nạp chương trình WARP-13A MCP-USB: hai mạch nạp giống với mạch nạp PICSTART PLUS nhà sản xuất Microchip cung cấp, tương thích với trình biên dòch MPLAB, nghóa ta trực tiếp dùng chương trình MPLAB để nạp cho vi điều khiển PIC mà không cần sử dụng chương trình nạp khác, chẳng hạn ICprog P16PRO40: mạch nạp Nigel thiết kế tiếng Ông thiết kế chương trình nạp, nhiên ta sử dụng chương trình nạp Icprog CuuDuongThanCong.com https://fb.com/tailieudientucntt Mạch nạp Universal Williem: mạch nạp chuyên dụng dành cho PIC P16PRO40 Các mạch nạp kể có ưu điểm lớn đơn giản, rẻ tiền, hoàn toàn tự lắp ráp cách dễ dàng, thông tin sơ đồ mạch nạp, cách thiết kế, thi công, kiểm tra chương trình nạp dễ dàng tìm download miễn phí thông qua mạng Internet Tuy nhiên mạch nạp có nhược điểm hạn chế số vi điều khiển hỗ trợ, bên cạnh mạch nạp cần sử dụng với chương trình nạp thích hợp 1.9 BOOTLOADER VÀ ICP (In Circuit Programming) CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG VI ĐIỀU KHIỂN PIC16F877A 2.1 SƠ ĐỒ CHÂN VI ĐIỀU KHIỂN PIC16F877A Hình 2.1 Vi điều khiển PIC16F877A/PIC16F874A dạng sơ đồ chân CuuDuongThanCong.com https://fb.com/tailieudientucntt Bit FERR Framing Eror bit FERR = xuất lỗi “Framing” trình truyền nhận liệu FERR = không xuất lỗi “Framing” trình truyền nhận liệu Bit OERR Overrun Error bit, OERR = xuất lỗi “Overrun” OERR = không xuất lỗi “Overrun” Bit RX9D Bit chứa bit liệu thứ liệu truyền nhận P2.25 Thanh ghi XTREG: đòa 19h Thanh ghi đóng vai trò buffer đệm bit trình truyền liệu thông qua chuẩn giao tiếp USART P2.26 Thanh ghi RCREG: đòa 1Ah Thanh ghi đóng vai trò buffer đệm trình nhận liệu qua chuẩn giao tiếp USART P2.27 Thanh ghi CCPR2L: đòa 1Bh Thanh ghi chứa bit thấp khối CCP2 P2.28 Thanh ghi CCPR2H: đòa 1Ch Thanh ghi chứa bit cao khối CCP2 P2.29 Thanh ghi ADRESH: đòa 1Eh Thanh ghi chứa byte cao kết trình chuyển đổi ADC P2.30 Thanh ghi ADCON0: đòa 1Fh Đây hai ghi điều khiển khối chuyển đổi ADC Thanh ghi lại ghi ADCON1 (đòa 9Fh) Bit 7,6 ADCS1:ADCS0 A/D Conversion Clock Select bit CuuDuongThanCong.com https://fb.com/tailieudientucntt Bit 5-3 CHS2:CHS0 Analog Channel Select bit Các bit dùng để chọn kênh chuyển đổi ADC 000 kênh (AN0) 001 keânh (AN1) 010 keânh (AN2) 011 keânh (AN3) 100 keânh (AN4) 101 keânh (AN5) 110 keânh (AN6) 111 keânh (AN7) Bit A/D Conversion Status bit Khi ADON = = A/D hoạt động (set bit làm khởi động ADC tự xóa trình chuyển đổi kết thúc) = A/D không hoạt động Bit Không cần quan tâm mặc đònh mang giá trò Bit ADON A/D On bit ADON = bật A/D ADON = tắt A/D P2.31 Thanh ghi OPTION_REG: đòa 81h, 181h Thanh ghi cho phép điều khiển chức pull-up pin PORTB, xác lập tham số vềxung tác động, cạnh tác động ngắt ngoại vi đếm Timer0 Bit Bit Bit Bit Bit PORTB pull-up enable bit = không cho phép chức pull-up PORTB = cho phép chức pull-up cuûa PORTB INTEDG Interrupt Edge Select bit INTEDG = ngắt xảy cạnh dương chân RB0/INT xuất INTEDG = ngắt xảy cạnh âm chân BR0/INT xuất TOCS Timer0 Clock Source select bit TOSC = clock lấy từ chân RA4/TOCK1 TOSC = dùng xung clock bên (xung clock với xung clock dùng để thực thi lệnh) TOSE Timer0 Source Edge Select bit TOSE = tác động cạnh lên TOSE = tác động cạnh xuống PSA Prescaler Assignment Select bit PSA = chia tần số (prescaler) dùng cho WDT CuuDuongThanCong.com https://fb.com/tailieudientucntt PSA = chia tần số dùng cho Timer0 Bit 2:0 PS2:PS0 Prescaler Rate Select bit Các bit cho phép thiết lập tỉ số chia tần số Prescaler P2.32 Thanh ghi TRISA: đòa 85h Thanh ghi điều khiển xuất nhập pin PORTA P2.33 Thanh ghi TRISB: đòa 86h, 186h Thanh ghi điều khiển xuất nhập pin PORTB P2.34 Thanh ghi TRISC: đòa 87h Thanh ghi điều khiển xuất nhập pin PORTC P2.35 Thanh ghi TRISD: đòa 88h Thanh ghi điều khiển xuất nhập pin PORTD P2.36 Thanh ghi TRISE: đòa 89h Thanh ghi điều khiển xuất nhập pin PORTE, điều khiển cổng giao tiếp song song PSP (Parallel Slave Port) Bit BIF Input Buffer Full Status bit BIF = Word liệu vừa nhận chờ CPU đọc vào BIF = chưa có Word liệu nhận Bit OBF Output Buffer Full Status bit OBF = Buffer truyền liệu chứa liệu cũ chưa đọc OBF = Buffer truyền liệu ñoïc Bit IBOV Input Buffer Overflow Detect bit IBOV = liệu ghi lên buffer liệu cũ chưa đọc IBOV = buffer chưa bò tràn Bit PSPMODE Parallel Slave Port Mode Select bit PSPMODE = Cho pheùp PSP, PORTD đóng vai trò cổng giao tiếp song song PSP CuuDuongThanCong.com https://fb.com/tailieudientucntt PSPMODE = Không cho phép PSP Bit Không cần quan tâm mặc đònh mang giá trò Bit Bit2 Direction Control for pin Bit2 = Input Bit2 = Output Bit Bit1 Direction Control for pin Bit1 = Input Bit1 = Output Bit Bit0 Direction Control for pin Bit0 = Input Bit0 = Output P2.37 Thanh ghi PIE1: đòa 8Ch Thanh ghi chứa bit cho phép ngắt ngoại vi Bit Bit Bit Bit Bit Bit Bít Bit PSPIE Parallel Slave Port Read/Write Interrupt Enable bit PSPIE = cho phép ngắt PSP read/write PSPIE = không cho phép ngắ PSP read/write ADIE ADC (A/D converter) Interrupt Enable bit ADIE = cho phép ngắt ADC ADIE = không cho phép ngắt ADC RCIE USART Receive Interrupt Enable bit RCIE = cho pheùp ngắt nhận USART RCIE = không cho phépn gắt nhaän USART TXIE USART Transmit Interrupt Enable bit TXIE = cho phép ngắt truyền USART TXIE = không cho phép ngắt truyền USART SSPIE Synchronous Serial Port Interrupt Enable bit SSPIE = cho phép ngắt SSP SSPIE = không cho phép ngắt SSP CCP1IE CCP1 Interrupt Enable bit CCP1IE = cho phép ngắt CCP1 CCP1IE = không cho phép ngắt CCP1 TMR2IE TMR2 to PR2 Match Interrupt Enable bit TMR2IE = cho pheùp ngắt TMR2IE = không cho phép ngắt TMR1IE TMR1 Overflow Interrupt Enable bit TMR1IE = cho phép ngắt TMR1IE = không cho phép ngắt CuuDuongThanCong.com https://fb.com/tailieudientucntt P2.38 Thanh ghi PIE2: đòa 8Dh Thanh ghi chứa bit cho phép ngắt ngọai vi Bit 7, 5, 2, Không cần quan tâm mặc đònh mang giá trò Bit CMIE Comparator Interrupt Enable bit CMIE = Cho phép ngắt so sánh CMIE = Không cho phép ngắt Bit EEIE EEPROM Write Operation Interrupt Enable bit EEIE = Cho phép ngắt ghi liệu lên nhớ EEPROM EEIE = Không cho phép ngắt ghi liệu lên nhớ EEPROM Bit BCLIE Bus Collision Interrupt Enable bit BCLIE = Cho phép ngắt BCLIE = Không cho phép ngắt Bit CCP2IE CCP2 Interrupt Enable bit CCP2IE = Cho phép ngắt CCP2IE = Không cho phép ngắt P2.39 Thanh ghi PCON: đòa 8Eh Thanh ghi điều khiển chứa cờ hiệu cho biết trạng thái chế độ reset vi điều khiển Bit 7, 6, 5, 4, 3, Không cần quan tâm mặc đònh mang giá trò Power-on Reset Status bit Bit = khoâng có tác động Power-on Reset = có tác động Power-on reset Bit Brown-out Reset Status bit = tác động Brown-out reset = có tác động Brown-out reset P2.40 Thanh ghi SSPCON2: đòa 91h Thanh ghi điều khiển chế độ hoạt động chuẩn giao tieáp I2C Bit GCEN General Call Enable bit GCEN = Cho phép ngắt đòa 0000h nhận vào ghi SSPSR (đòa chế độ General Call Address) CuuDuongThanCong.com https://fb.com/tailieudientucntt GCEN = Khoâng cho phép chế độ đòa Bit ACKSTAT Acknowledge Status bit (bit có tác dụng truyền liệu chế độ I2C Master mode) ACKSTAT = nhận xung từ I2C Slave ACKSTAT = chưaq nhận xung Bit ACKDT Acknowledge Data bit (bit có tác dụng nhận liệu chế độ I2C Master mode) ACKDT = chưa nhận xung ACKDT = Đã nhận xung Bit ACKEN Acknowledge Sequence Enable bit (bit có tác dụng nhận liệu chế độ I2C Master mode) ACKEN = cho phép xung xuất pin SDA SCL kết thúc trình nhận liệu ACKEN = không cho phép tác động Bit RCEN Receive Enable bit (bit có tác dụng chế độ I2C Master mode) RCEN = Cho phép nhận liệu chế độ I2C Master mode RCEN = Không cho phép nhận liệu Bit PEN Stop Condition Enable bit PEN = cho pheùp thiết lập điều kiện Stop pin SDA SCL PEN = không cho phép tác động Bit RSEN Repeated Start Condition Enable bit RSEN = cho phép thiết lập điều kiện Start lặp lại liên tục pin SDA SCL RSEN = không cho phép tác động Bit SEN Start Condition Enable/Stretch Enable bit Ở chế độ Master mode: SEN = cho phép thiết lập điều kiện Start pin SDA SCL SEN = không cho phép tác động Ở chế độ Slave mode: SEN = cho phép khóa xung clock từ pin SCL I2C Master Không cho phép tác động P2.41 Thanh ghi PR2: đòa 92h Thanh ghi dùng để ấn đònh trước giá trò đếm cho Timer2 Khi vi điều khiển reset, PR2 mang giá trò FFh Khi ta đưa giá trò vào ghi PR2, Timer2 đếm từ 00h giá trò đếm Timer2 với giá trò đếm ghi PR2 Như mặc đònh Timer2 đếm từ 00h đến FFh P2.42 Thanh ghi SSPADD: đòa 93h Thanh ghi chứa đòa vi điều khiển hoạt động chuẩn giao tiếp I2C Slave mode Khi không dùng để chứa đòa (I2C Master mode) SSPADD dùng để chứa giá trò tạo xung clock đồng pin SCL CuuDuongThanCong.com https://fb.com/tailieudientucntt P2.43 Thanh ghi SSPSTAT: đòa 94h Thanh ghi chứa bit trạng thái chuẩn giao tiếp MSSP Khi MSSP hoạt động chế độ SPI: Bit SMP Sample bit SPI Master mode: SMP = liệu lấy mẫu (xác đònh trang thái logic) thời điểm cuối xung clock SMP = liệu lấy mẫu thời điểm xung clock SPI Slave mode: bit phải xóa Bit CKE SPI Clock Select bit CKE = SPI Master truyền liệu xung clock chuyển từ trạng thái tích cực đến trạng thái chờ CKE = SPI Master truyền liệu xung clock chuyển từ trạng thái chờ đến trạng thái tích cực (trạng thái chờ xác đònh bit CKP (SSPCON) Bit bit Bit có tác dụng chế độ I2C mode Bit P Stop bit Bit sử dụng MSSP chế độ I2C Bit S Start bit Bit có tác dụng MSSP chế độ I2C Bit bit information Bit có tác dụng MSSP chế độ I2C Bit UA Update Address bit Bit có tác dụng MSSP chế độ I2C Bit BF Buffer Status bit BF = ghi đệm SSPBUF có liệu BF = ghi đệm SSPBUF chưa có liệu Khi hoạt động chế độ I2C Bit SPM Slew Rate Control bit SPM = dùng tốc độ chuẩn (100 KHz MHz) SPM = dùng tốc độ cao ( 400 KHz) Bit CKE MSBus Select bit CKE = cho phép MSBus CKE = không cho phép MSBus Bit bit I2C Master mode: không quan tâm CuuDuongThanCong.com https://fb.com/tailieudientucntt = byte vừa truyền nhận liệu = byte vừa truyền nhận đòa Bit P Stop bit P = vừa nhận bit Stop P = chưa nhận bit Stop Bit S Start bit S = vừa nhận bit Start S = chưa nhận bit Start Bit bit information I2C Slave mode: = đọc liệu = ghi liệu I2C Master mode: = truyền liệu = không truyền liệu Bit UA Update Address Bit có tác dụng chế độ I2C Slave mode10 bit đòa UA = vi điều khiển cần cập nhật thêm đòa từ ghi SSPADD UA = không cần cập nhật thêm đòa Bit BF Buffer Full Status bit BF = Thanh ghi SSPBUF chứa liệu truyền nhận BF = ghi SSPBUF liệu P2.44 Thanh ghi TXSTA: đòa 98h Thanh ghi chứa bit trạng thái điều khiển việc truyền liệu thông qua chuẩn giao tiếp USART Bit CSRC Clock Source Select bit Ở chế độ bất đồng bộ: không cần quan tâm Ở chế độ đồng bộ: CSRC = Master mode (xung clock lấy từ tạo xung BRG) CSRC = Slave mode (xung clock nhận từ bên ngoài) Bit TX-9 9-bit Transmit Enable bit TX-9 = truyền liệu bit TX-9 = truyền liệu bit Bit TXEN Transmit Enable bit TXEN = cho phép truyền TXEN = không cho phép truyền Bit SYNC USART Mode Select bit CuuDuongThanCong.com https://fb.com/tailieudientucntt Bit Bit Bit Bit SYNC = dạng đồng SYNC = dạng bất đồng Không cần quan tâm mặc đònh mang giá trò BRGH High Baud Rate Select bit Bit có tác dụng chế độ bất đồng BRGH = tốc độ cao BRGL = tốc độ thấp TRMT Transmit Shift Register Status bit TRMT = ghi TSR khoâng có liệu TRMT = ghi TSR có chứa liệu TX9D Bit chứa bit liệu thứ liệu truyền nhận bit P2.45 Thanh ghi SPBRG: đòa 99h Thanh ghi chứa giá trò tạo xung clock cho tạo xung BRG (Baud Rate Generator) Tần số xung clock BRG tạo tính theo công thức bảng sau: Trong X giá trò chứa ghi SRBRG Thanh ghi CMCON: đòa 9Ch Thanh ghi điều khiển thò trạng thái kết so sánh Bit C2OUT Comparator (C2) Output bit Khi C2INV = C2OUT = (pin VIN+ cuûa C2)> (pin VIN- cuûa C2) C2OUT = (pin VIN+ cuûa C2) < (pin VIN- cuûa C2) Khi C2INV = C2OUT = (pin VIN+ cuûa C2)< (pin VIN- cuûa C2) C2OUT = (pin VIN+ cuûa C2) > (pin VIN- cuûa C2) Bit C1OUT Comparator (C1) Output bit Khi C1INV = C1OUT = (pin VIN+ cuûa C1)> (pin VIN- cuûa C1) C1OUT = (pin VIN+ cuûa C1) < (pin VIN- cuûa C1) Khi C1INV = C1OUT = (pin VIN+ cuûa C1)< (pin VIN- cuûa C1) C1OUT = (pin VIN+ cuûa C1) > (pin VIN- cuûa C1) Bit C2INV Comparator Output Conversion bit CuuDuongThanCong.com https://fb.com/tailieudientucntt C2INV = ngõ C2 đảo trạng thái C2INV = ngõ C2 không đảo trạng thái Bit C1INV Comparator Output Conversion bit C1INV = ngoõ C1 đảo trạng thái C1INV = ngõ C1 không đảo trạng thái Bit CIS Comparator Input Switch bit Bit có tác dụng CM2:CM0 = 110 CIS = pin VIN- cuûa C1 nối với RA3/AN3 pin VIN- C2 nối với RA2/AN2 CIS = pin VIN- C1 nối với RA0/AN0 pin VIN- C2 nối với RA1/AN1 Bit 2-0 CM2:CM0 Comparator Mode bit Các bit đóng vai trò việc thiết lập cấu hình hoạt động Comparator Các dạng cấu hình Comparator đựơc trình bày bảng sau: CuuDuongThanCong.com https://fb.com/tailieudientucntt Trong đó: A ngõ vào Analog, giá trò pin đọc từ PORT B ngõ vào Digital P2.46 Thanh ghi CVRCON: đòa 9Dh Thanh ghi điều khiển tạo điện áp so sánh Comparator hoạt động với cấu hình ‘110’ Bit CVREN Comparator Voltage Reference Enable bit CVREN = tạo điện áp so sánh cấp điện áp hoạt động CVREN = tạo điện áp so sánh không cấp điện áp hoạt ñoäng Bit CVROE Comparator VREF Output Enable bit CVROE = điện áp tạo điện áp so sánh tạo đưa pin RA2 CVROA = điện áp tạo điện áp so sánh tạo không đưa Bit CVRR Comparator VREF Range Selection bit CVRR = mức điện áp có giá trò VDD/24 (điện áp tạo điện áp so sánh tạo có giá trò từ đến 0.75VDD) CVRR = mức điện áp có giá trò VDD/32 (điện áp tạo điện áp so sánh tạo có giá trò từ 0.25 đến 0.75VDD) Bit Không cần quan tâm mặc đònh mang giá trò Bit 3-0 CVR3:CVR0 Các bit chọn điện áp ngõ tạo điện áp so sánh Khi CVRR = 1: Điện áp pin RA2 có giá trò CVREF = (CVR/24)*VDD Khi CVRR = Điện áp pin RA2 có giá trò CVREF = (CVR/32)*VDD + ¼VDD P2.47 Thanh ghi ADRESL: đòa 9Eh Thanh ghi chứa bit thấp kết chuyển đổi A/D (8 bit cao chứa ghi ADRESH đòa 1Eh) CuuDuongThanCong.com https://fb.com/tailieudientucntt P2.48 Thanh ghi ADCON1: đòa 9Fh Thanh ghi chứa bit điều khiển chuyển đổi ADC (ADC có hai ghi điều khiển ADCON1 ADCON0) Bit ADFM A/D Result Format Select bit ADFM = Kết lưu phía bên phải ghi ADRESH:ADRESL (6 bit cao mang giá trò 0) ADFM = Kết lưu phía bên trái ghi ADRESH:ADRESL (6 bit thấp mang giá trò 0) Bit ADCS2 A/D Conversion Clock Select bit ADCS2 kết hợp với bit ADCS1:ADCS0 ghi ADCON0 để điều khiển việc chọn xung clock cho khối chuyển đổi ADC Bit 5,4 Không cần quan tâm mặc đònh mang giá trò Bit 3-0 PCFG3:PCFG0 A/D Port Configuration Control bit Các bit điều khiển việc chọn cấu hình hoạt động cổng chuyển đổi ADC CuuDuongThanCong.com https://fb.com/tailieudientucntt Trong A ngõ vào Analog D ngõ vào Digital C/R số ngõ vào Analog/số điện áp mẫu P2.49 Thanh ghi EEDATA: đòa 10Ch Thanh ghi chứa byte thấp liệu trình ghi đọc nhớ liệu EEPROM P2.50 Thanh ghi EEADR: đòa 10Dh Thanh ghi chứa byte thấp đòa trình ghi đọc nhớ liệu EEPROM P2.51 Thanh ghi EEDATH: đòa 10Eh Thanh ghi chứa byte cao liệu trình ghi đọc nhớ liệu EEPROM (thanh ghi sử dụng bit thấp) P2.52 Thanh ghi EEADRH: đòa 10Fh Thanh ghi chứa byte cao đòa trình ghi đọc nhớ liệu EEPROM (thanh ghi sử dụng bit thấp) P2.53 Thanh ghi EECON1: đòa 18Ch Thanh ghi điều khiển nhớ EEPROM CuuDuongThanCong.com https://fb.com/tailieudientucntt Bit EEPGD Program/Data EEPROM Select bit EEPGD = truy xuất nhớ chương trình EEPGD = truy xuất nhớ liệu Bit 6-4 Không cần quan tâm mặc đònh mang giá trò Bit WRERR EEPROM Error Flag bit WRERR = trình ghi lên nhớ bò gián đoạn tiếp tục (do chế độ Reset WDT ) WRERR = trình ghi lên nhớ hoàn taát Bit WREN EEPROM Write Enable bit WREN = cho phép ghi WREN = không cho phép ghi Bit WR Write Control bit WR = ghi liệu Bit set chương trình tự động xóa trình ghi liệu hoàn tất WR = hoàn tất trình ghi liệu Bit RD Read Control bit RD = đọc liệu Bit set chương trình tự động xóa trình đọc liệu hoàn tất RD = trình đọc liệu không xảy P2.54 Thanh ghi EECON2: đòa 18Dh Đây ghi điều khiển nhớ EEPROM Tuy nhiên ghi vật lí thông thường không cho phép ngươi1 sử dụng truy xuất liệu ghi CuuDuongThanCong.com https://fb.com/tailieudientucntt TÀI LIỆU THAM KHẢO PIC16F877A DATASHEET MIDRANGE PICmicro FAMILY WWW.MICROCHIP.COM WWW.MICROCHIP.COM CÁC TRANG WEB WWW.MICROCHIP.COM WWW.DIENDANDIENTU.COM WWW.PICVIETNAM.NET VÀ CÁC TRANG WEB KHÁC CuuDuongThanCong.com https://fb.com/tailieudientucntt ... THỨC” VI ĐIỀU KHIỂN CHƯƠNG TẬP LỆNH CỦA VI ĐIỀU KHIỂN PIC 3.1 VÀI NÉT SƠ LƯC VỀ TẬP LỆNH CỦA VI ĐIỀU KHIỂN PIC 3.2 TẬP LỆNH CỦA VI ĐIỀU KHIỂN PIC 3.3 CẤU TRÚC CỦA MỘT CHƯƠNG TRÌNH ASSEMBLY VI T... PIC1 6F877 EEPROM, PIC1 6F877A flash) Ngoài có thêm dòng vi điều khiển PIC dsPIC Ở 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... xong 1.6 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: 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ó nhớ EPROM

Ngày đăng: 24/12/2019, 13:48

Từ khóa liên quan

Mục lục

  • CHƯƠNG 1 TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC

  • CHƯƠNG 1 TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC

    • PHỤ LỤC 1 SƠ ĐỒ KHỐI CÁC PORT CỦA VI ĐIỀU KHIỂN PIC16F877A

    • P1.1 PORTA

      • P2.12 Thanh ghi PIR1: đòa chỉ 0Ch

        • Khi MSSP ở chế độ I2C

          • Khi hoạt động ở chế độ I2C

          • P2.44 Thanh ghi TXSTA: đòa chỉ 98h

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

Tài liệu liên quan