Báo cáo Vi điều khiển.pdf

173 2.3K 17
Báo cáo Vi điều khiển.pdf

Đ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

Tài liệu bào cáo Vi điều khiển.

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 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 BOÄ 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 CỔ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 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) 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 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 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 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 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 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) 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 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 chæ 9Fh) Bit 7,6 ADCS1:ADCS0 A/D Conversion Clock Select bit 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 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 đọ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 phép PSP, PORTD đóng vai trò cổng giao tiếp song song PSP 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 phép ngắt nhận USART RCIE = không cho phépn gắt nhậ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 phé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 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 = tác động Power-on Reset = có tác động cuûa 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 tiế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) GCEN = Khô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 phé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 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ế ñoä 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 pheùp MSBus CKE = không cho phép MSBus Bit bit I2C Master mode: không quan tâm = 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 chæ 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 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 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 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: 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 độ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) 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 laø ADCON1 vaø 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 Caùc bit điều khiển việc chọn cấu hình hoạt động cổng chuyển đổi ADC 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 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 tất Bit WREN EEPROM Write Enable bit WREN = cho pheù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 TÀI LIỆU THAM KHẢO PIC16F877A DATASHEET MIDRANGE PICmicro FAMILY CÁC TRANG WEB WWW.MICROCHIP.COM WWW.DIENDANDIENTU.COM WWW.PICVIETNAM.NET VÀ CÁC TRANG WEB KHAÙC WWW.MICROCHIP.COM WWW.MICROCHIP.COM ... TRISC) I2C vi điều khiển điều khiển vi điều khiển thiết bị ngoại vi khác thông qua địa Khi địa đến vi điều khiển, thời điểm thời điểm để báo hiệu kết liệu truyền nhận xong sau đó, vi điều khiển... 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. .. 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

Ngày đăng: 20/08/2012, 09:07

Hình ảnh liên quan

Hình 1.1: Kiến trúc Havard và kiến trúc Von-Neuman - Báo cáo Vi điều khiển.pdf

Hình 1.1.

Kiến trúc Havard và kiến trúc Von-Neuman Xem tại trang 5 của tài liệu.
Hình 1.2: Cơ chế pipelining - Báo cáo Vi điều khiển.pdf

Hình 1.2.

Cơ chế pipelining Xem tại trang 6 của tài liệu.
Hình 2.1 Vi điều khiển PIC16F877A/PIC16F874A và các dạng sơ đồ chân - Báo cáo Vi điều khiển.pdf

Hình 2.1.

Vi điều khiển PIC16F877A/PIC16F874A và các dạng sơ đồ chân Xem tại trang 10 của tài liệu.
Hình 2.4 Sơ đồ bộ nhớ dữ liệu PIC16F877A - Báo cáo Vi điều khiển.pdf

Hình 2.4.

Sơ đồ bộ nhớ dữ liệu PIC16F877A Xem tại trang 14 của tài liệu.
Hình 2.6 Sơ đồ khối của Timer1. - Báo cáo Vi điều khiển.pdf

Hình 2.6.

Sơ đồ khối của Timer1 Xem tại trang 21 của tài liệu.
Hình 2.7 Sơ đồ khối Timer2. - Báo cáo Vi điều khiển.pdf

Hình 2.7.

Sơ đồ khối Timer2 Xem tại trang 22 của tài liệu.
Hình 2.8 Sơ đồ khối bộ chuyển đổi ADC. - Báo cáo Vi điều khiển.pdf

Hình 2.8.

Sơ đồ khối bộ chuyển đổi ADC Xem tại trang 24 của tài liệu.
Hình 2.12 Sơ đồ khối bộ tạo điện áp so sánh. - Báo cáo Vi điều khiển.pdf

Hình 2.12.

Sơ đồ khối bộ tạo điện áp so sánh Xem tại trang 28 của tài liệu.
Hình 2.14 Sơ đồ khối CCP (Compare mode). - Báo cáo Vi điều khiển.pdf

Hình 2.14.

Sơ đồ khối CCP (Compare mode) Xem tại trang 31 của tài liệu.
Hình 2.15 Sơ đồ khối CCP (PWM mode). - Báo cáo Vi điều khiển.pdf

Hình 2.15.

Sơ đồ khối CCP (PWM mode) Xem tại trang 32 của tài liệu.
Hình 2.17 Sơ đồ khối của khối truyền dữ liệu USART. - Báo cáo Vi điều khiển.pdf

Hình 2.17.

Sơ đồ khối của khối truyền dữ liệu USART Xem tại trang 34 của tài liệu.
Hình 2.20 Sơ đồ kết nối của chuẩn giao tiếp SPI. - Báo cáo Vi điều khiển.pdf

Hình 2.20.

Sơ đồ kết nối của chuẩn giao tiếp SPI Xem tại trang 44 của tài liệu.
Hình 2.21 Giản đồ xung SPI ở chế độ Master mode. - Báo cáo Vi điều khiển.pdf

Hình 2.21.

Giản đồ xung SPI ở chế độ Master mode Xem tại trang 45 của tài liệu.
Hình 2.22 Giản đồ xung chuẩn giao tiếp SPI (Slave mode). Các thanh ghi liên quan đến chuẩn giao tiếp SPI bao gồm:  - Báo cáo Vi điều khiển.pdf

Hình 2.22.

Giản đồ xung chuẩn giao tiếp SPI (Slave mode). Các thanh ghi liên quan đến chuẩn giao tiếp SPI bao gồm: Xem tại trang 46 của tài liệu.
Hình 2.24 Giản đồ xung của I2C Slave mode 7 bit địa chỉ trong quá trình nhận dữ liệu (bit SEN = 0) - Báo cáo Vi điều khiển.pdf

Hình 2.24.

Giản đồ xung của I2C Slave mode 7 bit địa chỉ trong quá trình nhận dữ liệu (bit SEN = 0) Xem tại trang 50 của tài liệu.
Hình 2.26 Giản đồ xung của I2C Slave mode 7 bit địa chỉ trong quá trình nhận dữ liệu (bit SEN = 1). - Báo cáo Vi điều khiển.pdf

Hình 2.26.

Giản đồ xung của I2C Slave mode 7 bit địa chỉ trong quá trình nhận dữ liệu (bit SEN = 1) Xem tại trang 51 của tài liệu.
Hình 2.27 Giản đồ xung của I2C Slave mode10 bit địa chỉ trong quá trình nhận dữ liệu (bit SEN = 1) - Báo cáo Vi điều khiển.pdf

Hình 2.27.

Giản đồ xung của I2C Slave mode10 bit địa chỉ trong quá trình nhận dữ liệu (bit SEN = 1) Xem tại trang 52 của tài liệu.
Hình 2.30 Giản đồ xung của I2C Slave khi nhận địa chỉ GCA. - Báo cáo Vi điều khiển.pdf

Hình 2.30.

Giản đồ xung của I2C Slave khi nhận địa chỉ GCA Xem tại trang 54 của tài liệu.
Hình 2.31 Sơ đồ khối MSSP (I2C Master mode). - Báo cáo Vi điều khiển.pdf

Hình 2.31.

Sơ đồ khối MSSP (I2C Master mode) Xem tại trang 55 của tài liệu.
Hình 2.34 Giản đồ xung I2C Master mode trong quá trình tạo điều kiện Stop. - Báo cáo Vi điều khiển.pdf

Hình 2.34.

Giản đồ xung I2C Master mode trong quá trình tạo điều kiện Stop Xem tại trang 57 của tài liệu.
Hình 2.37 Giản đồ xung I2C Master mode trong quá trình nhận dữ liệu. - Báo cáo Vi điều khiển.pdf

Hình 2.37.

Giản đồ xung I2C Master mode trong quá trình nhận dữ liệu Xem tại trang 60 của tài liệu.
Hình 2.38 Sơ đồ khối của PORTD và PORTE khi hoạt động ở chế độ PSP Slave  - Báo cáo Vi điều khiển.pdf

Hình 2.38.

Sơ đồ khối của PORTD và PORTE khi hoạt động ở chế độ PSP Slave Xem tại trang 61 của tài liệu.
Hình 2.41 Sơ đồ các chế độ reset của PIC16F877A. - Báo cáo Vi điều khiển.pdf

Hình 2.41.

Sơ đồ các chế độ reset của PIC16F877A Xem tại trang 65 của tài liệu.
Hình 3.2 Cấu trúc một chương trình Asembly viết cho vi điều khiển PIC. - Báo cáo Vi điều khiển.pdf

Hình 3.2.

Cấu trúc một chương trình Asembly viết cho vi điều khiển PIC Xem tại trang 76 của tài liệu.
Hình 4.2 Mạch test chức năng I/O cho ứng dụng 3. Chương trình viết cho ứng dụng này như sau:  - Báo cáo Vi điều khiển.pdf

Hình 4.2.

Mạch test chức năng I/O cho ứng dụng 3. Chương trình viết cho ứng dụng này như sau: Xem tại trang 92 của tài liệu.
Hình 4.3 Mạch test ứng dụng 4. - Báo cáo Vi điều khiển.pdf

Hình 4.3.

Mạch test ứng dụng 4 Xem tại trang 99 của tài liệu.
Hình 4.4 Sơ đồ khối IC 74HC595 - Báo cáo Vi điều khiển.pdf

Hình 4.4.

Sơ đồ khối IC 74HC595 Xem tại trang 105 của tài liệu.
Hình sau thể hiện cách nối nhiều IC 74HC595 lại với nhau: - Báo cáo Vi điều khiển.pdf

Hình sau.

thể hiện cách nối nhiều IC 74HC595 lại với nhau: Xem tại trang 106 của tài liệu.
Hình 4.7 Cách nối nhiều IC 74HC595 - Báo cáo Vi điều khiển.pdf

Hình 4.7.

Cách nối nhiều IC 74HC595 Xem tại trang 106 của tài liệu.

Từ khóa liên quan

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

Tài liệu liên quan