1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Chương 2: Cấu trúc phần cứng PIC16F877A

39 26 0

Đ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

Nội dung

Bài giảng Chương 2: Cấu trúc phần cứng PIC16F877A cung cấp cho các bạn những kiến thức về cấu trúc tổng quát của PIC16F877A; sơ đồ chức năng và các chân PIC16F877A; tổ chức bộ nhớ của phần cứng PIC16F877A. Mời các bạn tham khảo bài giảng để nắm bắt nội dung về lĩnh vực này, với các bạn chuyên ngành Công nghệ thông tin thì đây là tài liệu hữu ích. 

CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A Cấu trúc tổng quát PIC16F877A 8K x 14 words Flash ROM 368 x Bytes RAM 256 x Bytes EEPROM Port xuất/nhập (A, B, C, D, E) tương ứng 33 chân Bộ định thời bit Timer Timer Bộ định thời 16 bit Timer 1, hoạt động chế độ tiết kiệm lượng (SLEEP MODE) với nguồn xung clock Bộ Capture/ Compare/ PWM • (Bắt Giữ/ So Sánh/ Điều Biến Xung) Bộ biến đổi Analog to Digital 10 bit, ngõ vào CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A Bộ so sánh tương tự (Compartor)ï Bộ định thời giám sát (Watch Dog Timer) Cổng giao tiếp song song bit Port nối tiếp 15 Nguồn ngắt (Interrupt) Chế độ tiết kiệm lượng (Sleep Mode) Nạp trương trình cổng nối tiếp ( ICSP™ ) (In-Circuit Serial Programming™ -) Tập lệnh gồm 35 lệnh có độ dài 14 bit Tần số hoạt động tối đa 20 MHz CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A Sơ đồ chức chân PIC16F877A PIC16F877A họ Vi điều khiển có 40 chân CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A 2.1 PORTA ghi TRISA Port A gồm chân từ RA0-RA5 Việc ghi giá trị vào ghi TRISA qui định chân PortA Nếu 0: ngõ Output, 1: ngõ Input Riêng chân RA4 : tích hợp thêm chức chân cung cấp xung clock cho Timer (RA4/T0CKI) Các chân lại PortA đa hợp với chân ngõ vào Analog ADC chân ngõ vào điện áp so sánh Bộ so sánh Comparator CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A a Bảng chức Port A b Các ghi có liên hệ với Port A CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A 2.2 PORTB ghi TRISB Port B gồm chân từ RB7-RB0 Các giá trị ghi TRISB qui định Port B chân đa hợp với chức In-Circuit Debugger Low Voltage Programming function: RB3/PGM, RB6/PGC RB7/PGD chân RB7-RB4 làm tác nhân Ngắt trạng thái chân thay đổi (Nếu PortB Output chức ngắt không hoạt động) Mỗi chân Port B treo lên Vdd ta xóa bit RBPU\ (OPTION) Tính Port B Input CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A a Bảng chức Port B b Các ghi có liên hệ với Port B CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A 2.3 PORTC ghi TRISC Port C goàm chân từ RC7-RC0 Các giá trị ghi TRISC qui định chân PortC Các chân PortC đa hợp với chức ngoại vi Chú ý: -Vài chức ngọai vi ghi giá trị vào ghi TRISC mặc định Output, số chức ngoại vi khác tự động mặc định chân Input - Do người sử dụng phải xem xét kỹ tính hàm chức ngoại vi, để thiết lập Bit ghi TRISC cho xác CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A a Bảng chức Port C b Các ghi có liên hệ với Port C CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A 2.4 PORTD ghi TRISD Port D goàm chân từ RD7-RD0 Các giá trị ghi TRISD qui định chân PortD Nếu 0: ngõ Output, 1: ngõ Input Ngoài chức Port xuất / nhập, Port D cấu Port vi xử lý bit (parallel slave port) cách set bit PSPMODE (TRISE) CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A b Thanh ghi OPTION Bao goàm Bit thiết lập chia tỉ lệ cho WDT/Timer0, Ngắt RB0, Timer0 chế độ có điện trở treo PortB Bit PS0 Chức Bit lựa chọn hệ số tỉ lệ chia Prescaler PS1 PS2 PSA Bit gán chia tỉ lệ (Prescaler Assignment bit) 1= chia gán cho WDT 0= chia gán cho TIMER CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A Bit T0SE Chức Bit chọn kiểu tác động Timer0 (TMR0 Source Edge Select bit) 1= cho phép xung vào ngõ RA4/T0CKI tác động cạnh lên 0= cho phép xung vào ngõ RA4/T0CKI tác động cạnh xuống T0CS Bit chọn nguồn xung clock cho Timer0 (TMR0 Source Edge Select bit) 1= cho phép nhận xung clock từ chân RA4/T0CKI 0= cho phép nhận xung clock từ dao động nội INTEDG Bit chọn kiểu tác động nguồn Ngắt (Interrupt Edge Select bit) 1= cho phép ngõ vào ngắt RB0/INT tác động cạnh lên 0= cho phép tác động cạnh xuống RBPU\ Bit cho phép PORTB treo R lên (PORTB Pull-up Enable bit) 1= không cho pheùp 0= cho pheùp HIGH LOW RBx CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A c Thanh ghi INTCON Bao gồm Cờ báo ngắt Bit cho phép Ngắt Timer0, Ngắt thay đổi chân PortB Ngắt chân RB0/INT Bit RBIF Chức Cờ báo có thay đổi trạng thái PortB 1= có thay đổi trạng thái chân RB7-RB4 0= thay đổi PortB INTF Cờ báo Ngắt chân RB0/INT 0= ngắt RB0/INT 1= có ngắt RB0/INT xảy T0IF Cờ bào tràn Timer0 0= đếm Timer0 chưa tràn 1= đếm Timer0 tràn RBIE Bit cho Ngắt PORTB 1= cho phép xảy Ngắt trạng thái PortB thay đổi 0= không cho phép CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A Bit INTE Chức Bit cho phép Ngắt chân RB0/INT 1= cho phép Ngắt chân RB0/INT 0= không cho phép T0IE Bit cho phép Ngắt tràn Timer0 1= cho phép Ngắt tràn Timer0 0= không cho phép PEIE Bit cho phép Ngắt ngoại vi 1= cho phép Ngắt ngoại vi 0= không cho phép GIE Bit cho ngắt toàn cục 1= cho phép Ngắt 0= cấm Ngaét CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A d Thanh ghi PIE1 Bao gồm Bit cho phép Ngắt ngoại vi (chú ý PEIE =1) Bit TMR1IE Chức Bit cho phép Ngắt tràn Timer1 1= cho phép Ngắt xảy tràn Timer1 0= không cho phép TMR2IE Bit cho phép Ngắt tràn Timer2 ghi PR2 1= cho phép Ngắt 0= không cho phép Ngắt CCP1IE Bit cho phép Ngắt CCP1 (ở chế độ So sánh Bắt giữ) 1= cho phép Ngắt 0= không cho phép Ngắt SSPIE Bit cho phép Ngắt Port nối tiếp (Synchronous Serie Port IE) 1= cho phép ngắt chế độ hoạt động Port nối tiếp 0= không cho pheùp CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A Bit TXIE Chức Bit cho phép Ngắt truyền liệu USART 1= cho phép Ngắt 0= không cho phép Ngắt RCIE Bit cho phép Ngắt nhận liệu USART 1= cho phép Ngắt 0= không cho phép Ngắt ADIE Bit cho phép Ngắt chuyển đổi A/D 1= cho phép Ngắt 0= không cho phép Ngắt PSPIE Bit cho phép Ngắt Ghi/Đọc Port song song 1= cho phép Ngắt 0= không cho phép Ngắt CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A e Thanh ghi PIR1 Bao gồm Cờ cho phép Ngắt ngoại vi Bit TMR1IF Chức Cờ báo tràn Ngắt Timer1 1= xảy tràn Timer1 0= không xảy tràn TMR2IF Cờ báo tràn Ngắt Timer2 ghi PR2 1= xảy tràn 0= không xảy tràn CCP1IF Cờ báo Ngắt CCP1 (ở chế độ So sánh Bắt giữ) - So sánh: 1=khi giá trị so sánh ghi TMR1 thõa - Bắt giữ: 1=khi có bắt nhịp ghi TMR1 xảy SSPIF Cờ báo Ngắt chế độ Port nối tiếp 1= trình truyền/nhận Port nối tiếp hoàn thành *** 0= không xảy CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A Bit TXIF Chức Cờ báo Ngắt trình truyền USART 1= đệm truyền USART trống 0= đệm truyền USART đầy RCIF Cờ báo Ngắt trình nhận USART 1= nhận xong liệu 0= chưa nhận xong liệu ADIF Cờ báo Ngắt chuyển đổi A/D 1= trình chuyển đổi A/D hoàn thành 0= chưa hoàn thành PSPIF Cờ báo Ngắt trình Ghi/Đọc Port song song 1= hoạt động Ghi/Đọc xảy 0= không xảy CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A f Thanh ghi PIE2 Gồm Bit cho phép Ngắt ngoại vi CCP2, ngắt s sánh, ngắt xung đột đường truyền SSP, ngắt ghi EEPROM Bit CCP2IE Chức Bit cho phép Ngắt CCP2 1= cho phép 0= không cho phép BCLIE Bit cho phép Ngắt có xung đột đường truyền 1= cho phép 0= không cho phép EEIE Bit cho phép Ngắt trình Ghi vào EEPROM 1= cho phép 0= không cho phép CMIE Bit cho phép Ngắt so sánh 1= cho phép, 0=không cho phép CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A g Thanh ghi PIR2 Gồm Cờ ngắt Ngắt ngoại vi CCP2, ngắt s sánh, ngắt xung đột đường truyền SSP, ngắt ghi EEPROM Bit CCP2IF Chức Cờ báo Ngắt CCP2 - Chế độ s sánh: 1=khi giá trị so sánh ghi TMR1 thõa - Chế độ bắt giữ: 1=khi có bắt nhịp ghi TMR1 xảy BCLIF Cờ báo Ngắt có xung đột đường truyền 1= xung đột đường truyền xảy trình SSP 0= xung đột đường truyền xảy trình SSP EEIF Cờ báo Ngắt trình Ghi vào EEPROM 1= trình Ghi EEPROM hoàn thành 0= trình Ghi EEPROM chưa hoàn thành CMIF Cờ báo Ngắt so sánh 1= ngõ vào so sánh thay đổi, 0=không thay đổi CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A h Thanh ghi PCON Goàm Bit kiểm tra trạng thái chế độ Reset PIC Bit BOR\ Chức Bit trạng thái chế độ Brown-Out Reset 0=khi chế độ Reset Brown-Out xảy (được Set phần mềm) 1=không xảy POR\ Bit trạng thái chế độ Power-On Reset 0= chế độ Reset Power-on xảy (được Set phần mềm) 1= không xảy CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A 3.2.2 Định địa gián tiếp, ghi INDF SFR Thanh ghi INDF ghi vật lý Việc định địa cho ghi định địa gián tiếp Sử dụng lệnh truy xuất ghi INDF truy xuất liệu ô nhớ có giá trị chứa ghi FSR ( File Select Register ) Nghóa gián tiếp thông qua ghi FSR Việc đọc ghi INDF nhận kết 00H Việc ghi vào ghi INDF tác dụng ( nhiên bit ghi STATUS bị ảnh hưởng ) Bit thứ ghi FSR kết hợp với bit IRP (STATUS) để chọn Bank ghi CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A Ví dụ: Xóa ô nhớ 20h-2Fh RAM định địa gián tiếp: MOVLW MOVWF NEXT 0x20 FSR CLRF INDF INCF FSR BTFSS FSR,4 NEXT GOTO CONTINUE … ;đưa 20H vào W ;đưa giá trị W vào FSR ;xóa t.ghi INDF ;tăng giá trị FSR lên ;kiểm tra bit4 = ? ;nếu =0 nhảy tới NEXT ;nếu = bỏ qua lệnh, làm lệnh CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A 3.2.3 Thanh ghi W tập ghi F Thanh ghi W (Working Register): ghi đa dụng dùng để truy xuất liệu Tập ghi F (Register File): F định ô nhớ hay ghi nhớ liệu Ví dụ: MOVLW 0x06 ;Đưa giá trị 06h vào W MOVWF 85H ;Chuyển giá trị th.ghi W vào th.ghi TRISA (TRISA = 85H) CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A 3.4 Các ghi chức đặc biệt ... số hoạt động tối đa 20 MHz CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A Sơ đồ chức chân PIC16F877A PIC16F877A họ Vi điều khiển có 40 chân CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A 2.1 PORTA ghi TRISA... phải cấu hình PortE Input đọc trạng thái chân Port E cho ta giá trị CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A a Bảng chức Port E b Các ghi có liên hệ với Port E CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A. .. (OPTION) Tính Port B laø Input CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A a Bảng chức Port B b Các ghi có liên hệ với Port B CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A 2.3 PORTC ghi TRISC Port

Ngày đăng: 11/05/2021, 03:45

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN