1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Vi xử lý-Chương 2 pptx

21 501 4
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Định dạng
Số trang 21
Dung lượng 1,77 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

3.2 Bộ nhớ dữ liệu Vùng RAM đa mục đích gồm các ô nhớ 8 bit và được truy xuất trực tiếp hoặc gián tiếp thông qua thanh ghi FSR File Select Register Vùng RAM chứa các thanh ghi chức nă

Trang 1

CHƯƠNG 2

CẤU TRÚC PHẦN

CỨNG PIC 16F877A

1 Cấu trúc tổng quát của PIC16F877A

 8K x 14 words Flash ROM.

 368 x 8 Bytes RAM.

 256 x 8 Bytes EEPROM.

 5 Port xuất/nhập (A, B, C, D, E) tương ứng 33 chân.

 2 Bộ định thời 8 bit Timer 0 và Timer 2.

 1 Bộ định thời 16 bit Timer 1, có thể hoạt động ở chế độ

tiết kiệm năng lượng (SLEEP MODE) với nguồn xung

clock ngoài.

 2 Bộ CCP Capture/ Compare/ PWM.

(Bắt Giữ/ So Sánh/ Điều Biến Xung)

 1 Bộ biến đổi Analog to Digital 10 bit, 8 ngõ vào.

Trang 2

1 Cấu trúc tổng quát của PIC16F877A

 1 Bộ định thời giám sát (Watch Dog Timer).

 Giao tiếp song song 8 bit (PSP).

 Giao tiếp nối tiếp(MSSP,USART).

 15 Nguồn ngắt (Interrupt).

 Chế độ tiết kiệm năng lượng (Sleep Mode).

 Nạp chương trình bằng cổng nối tiếp ( ICSP™ )

 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.

2 Sơ đồ và chức năng các chân PIC16F877A

PIC16F877A là họ Vi điều khiển có 40 chân(dạng PDIP)

Trang 3

2 Sơ đồ và chức năng các chân PIC16F877A

PIC16F877A là họ vi điều khiển có 40 chân (dạng TQFP)

2 Sơ đồ và chức năng các chân PIC16F877A

Cấu tạo tổng quát của PIC16F877A

Trang 4

 Port A gồm 6 chân từ RA5-RA0

 Việc ghi các giá trị vào thanh ghi TRISA

sẽ qui định các chân của PortA Nếu bằng 0:

 AN1: Ngõ vào tương tự kênh 1

2.1 PORTA và thanh ghi TRISA

 Chân RA2/AN2/VREF-/CVREF

 RA2: Xuất/ nhập số

 AN2: Ngõ vào tương tự kênh 2

 VREF-: Ngõ vào điện áp chuẩn (thấp) của bộ A/D

 CVREF: Điện áp tham chiếu ngõ ra bộ so sánh

 Chân RA3/AN3/VREF+

 RA3: Xuất/ nhập số

 AN3: Ngõ vào tương tự kênh 3

 VREF+: Ngõ vào điện áp chuẩn (cao) của bộ A/D

2.1 PORTA và thanh ghi TRISA

Trang 5

 Chân RA4/T0CKI/C1OUT

 RA4: Xuất/ nhập số

 T0CKI: Ngõ vào xung clock bên

bên ngoài cho Timer0

 C1OUT: Ngõ ra bộ so sánh 1

 Chân RA5/AN4/SS/C2OUT

 RA5: Xuất/ nhập số

 AN4: Ngõ vào tương tự kênh 4

 SS : ngõ vào chọn lựa SPI

 C2OUT: Ngõ ra bộ so sánh 2

2.1 PORTA và thanh ghi TRISA

 Port B gồm 8 chân từ RB7-RB0

 Việc ghi các giá trị vào thanh ghi TRISB

sẽ qui định các chân của PortB Nếu bằng 0:

 PGM: chân cho phép lập trình điện áp thấp ICSP

2.2 PORTB và thanh ghi TRISB

Trang 6

 PGD: mạch gỡ rối và dữ liệu lập trình ICSP

2.2 PORTB và thanh ghi TRISB

 Port C gồm 8 chân từ RC7-RC0

 Việc ghi các giá trị vào thanh ghi TRISC

sẽ qui định các chân của PortC Nếu bằng 0:

ngõ Output, bằng 1: ngõ Input.

 RC0/T1OSO/T1CKI:

 RC0: Xuất/ nhập số

 T1OSO: ngõ ra bộ dao động Timer1

 T1CKI: ngõ vào xung clock bên ngoài Timer1

Trang 7

 SCK: Ngõ vào xung clock nối tiếp đồng bộ/ ngõ ra chế độ SPI

 SCL: Ngõ vào xung clock nối tiếp đồng bộ/ ngõ ra chế độ I2C

 RC4/SDI/SDA:

 RC4: Xuất/ nhập số

 SDI: Ngõ vào data SPI

 SDA: Xuất/ nhập dữ liệu I2C

 RC5/SDO:

 RC5: Xuất/ nhập số

 SDO: Ngõ ra data SPI

2.3 PORTC và thanh ghi TRISC

Trang 8

2.4 PORTD và thanh ghi TRISD

 Port D gồm 8 chân từ RD7-RD0.

 Các giá trị thanh ghi TRISD sẽ qui định các chân của PortD

Nếu bằng 0: ngõ Output, bằng 1: ngõ Input

 Ngoài chức năng là Port xuất / nhập, Port D còn được cấu hình như

một Port vi xử lý 8 bit (parallel slave port) bằng cách set bit

PSPMODE (TRISE<4>)

 RD0/PSP0:

 RD0: Xuất/nhập số

 PSP0: Dữ liệu Port tớ song song

 Các chân còn lại PORTD giống RD0

 Port E gồm 3 chân từ RE2-RE0.

 Các giá trị thanh ghi TRISE

sẽ qui định các chân của PortE

Nếu bằng 0: ngõ Output, bằng 1: ngõ Input

 RE0 /RD/AN5:

 RE0: Xuất/ nhập số

 RD: cho phép đọc dữ liệu song song từ các ngoại vi

 AN5: Ngõ vào tương tự kênh 5

2.5 PORTE và thanh ghi TRISE

Trang 9

 CS: Chip chọn lựa điều khiển port tớ song song

 AN7: Ngõ vào tương tự kênh 7

2.5 PORTE và thanh ghi TRISE

2.6 Chân OSC1- OSC2

PIC 16F877A có bộ dao động hoạt động ở 4 trường hợp

- LP Low Power Crystal

- XT Crystal/Resonator

- HS High Speed Crystal/Resonator

- RC Resistor/Capacitor

Trang 10

2.7 Chân MCLR (Master Reset)

- Chân MCLR\ là chân reset ở mức thấp.

- Đa hợp với chân Vpp là chân nhận điện áp trong chế độ lập trình

cho PIC

2.8 Chân cấp nguồn

PIC 16F877A hoạt động với điện áp +5V

- Hai chân VDD (số 11 và 32) nối với cực dương nguồn 5V

- Hai chân VSS (số 12 và 31) nối với Mass

Tất cả 4 chân này đều phải được kết nối thì PIC mới hoạt động

3 Tổ chức bộ nhớ

PIC16F877A bao gồm 3 khối bộ nhớ riêng biệt:

- Bộ nhớ chương trình (Program Memory)

- Bộ nhớ dữ liệu (Data Memory)

- Bộ nhớ dữ liệu EEPROM (EEPROM data Memory)

Trang 11

 Vector Reset đặt tại 0000h

khi xảy ra Reset

 Mỗi Bank có dung lượng là 128 byte bao gồm: vùng Ram đa mục

đích , vùng Ram chứa các thanh ghi chức năng đặc biệt SFRs (Special

Trang 12

3.2 Bộ nhớ dữ liệu

 Vùng RAM đa mục đích gồm các ô nhớ 8 bit và được

truy xuất trực tiếp hoặc gián

tiếp thông qua thanh ghi FSR

(File Select Register)

 Vùng RAM chứa các

thanh ghi chức năng đặc biệt,

các thanh ghi này được truy

xuất bởi CPU và các hàm chức

năng ngoại vi để điều khiển

hoạt động của các thiết bị

ngoại vi

3.2.1 Các thanh ghi chức năng đặc biệt

a Thanh ghi STATUS

C Cờ nhớ(Carry/Borrow bit) dùng cho phép cộng trừ

1: Phép cộng có nhớ và phép trừ có mượn tại bit 7

0: Ngược lại

DC Cờ nhớ phụ(Digit Carry/Borrow bit) ở phép cộng trừ 4 bit thấp

1: Phép cộng có nhớ và phép trừ có mượn tại bit 3

0: Ngược lại

Z Cờ Zero

1: Khi kết quả các phép toán số học và phép logic bằng 0

0: Ngược lại

PD\ (Power-down) Bit báo chế độ nguồn giảm

1: khi chế độ nguồn bình thường hoặc sau lệnh CLRWDT

Trang 13

a Thanh ghi STATUS(tt)

TO\ (Time-out) Bit báo trạng thái WDT

1: Ở trạng thái nguồn bình thường, hoặc sau lệnh CLRWDT, SLEEP

0: Khi WDT đi vào hoạt động và thời gian chờ được tính

b Thanh ghi OPTION

Bao gồm các Bit thiết lập bộ chia tỉ lệ cho WDT/Timer0, Ngắt

ngoài RB0, Timer0 và chế độ có điện trở treo ở PortB.

PSA Bit gán bộ chia tỉ lệ(Prescaler Assignment bit)

1: bộ chia được gán cho WDT

0: bộ chia được gán cho TIMER

Trang 14

b Thanh ghi OPTION

T0SE Bit chọn kiểu tác động Timer0(TMR0 Source Edge Select bit)

1: cho phép chọn xung vào ngõ RA4/T0CKI tác động bởi cạnh lên

0: cho phép chọn xung vào ngõ RA4/T0CKI tác động bởi 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ừ bộ 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 ngõ vào ngắt RB0/INT tác động ở cạnh xuống

RBPU\ Bit cho phép PORTB treo điện trở lên nguồn

1: không cho phép

0: cho phép

RBx

HIGH LOW

c Thanh ghi INTCON

Bao gồm các Cờ báo ngắt và các Bit cho phép Ngắt Timer0,

Ngắt do sự thay đổi các chân PortB và Ngắt ngoài chân RB0/INT

RBIF Cờ báo khi có sự thay đổi trạng thái ở PortB

1: khi có sự thay đổi trạng thái ít nhất 1 chân tại RB7-RB4

0: khi không có sự thay đổi ở PortB

INTF Cờ báo ngắt ngoài tại chân RB0/INT

0: khi không có ngắt ngoài tại RB0/INT

1: khi có ngắt ngoài tại RB0/INT xảy ra

T0IF Cờ báo tràn của Timer0

0: khi bộ đếm Timer0 chưa tràn

1: khi bộ đếm Timer tràn

RBIE Bit cho phép ngắt ngoài tại PortB

1: cho phép xảy ra ngắt khi trạng thái PortB thay đổi

Trang 15

c Thanh ghi INTCON

INTE Bit cho phép ngắt ngoài tại chân RB0/INT

1: cho phép ngắt ngoài tại chân RB0/INT

0: không cho phéo

T0IE Bit cho phép ngắt tràn Timer0

1: cho phép ngắt khi tràn Timer0

d Thanh ghi PIE1

Bao gồm các bit cho phép các ngắt ngoại vi(chú ý PEIE=1)

TMR1IE Bit cho phép ngắt tràn Timer1

1: cho phép ngắt khi xảy ra khi tràm Timer1

SSPIE Bit cho phép ngắt ở Port nối tiếp(Synchronous Serie Port IE)

1: cho phép ngắt bởi chế độ hoạt động Port nốt tiếp

Trang 16

d Thanh ghi PIE1(tt)

e Thanh ghi PIR1

Bao gồm các cờ cho phép từng ngắt ngoại vi

TMR1IF Cờ báo tràn ở ngắt Timer1

1: khi xảy ra tràn Timer1

0: không xảy ra tràn Timer1

TMR2IF Cờ báo tràn ở ngắt Timer2 bởi thanh ghi PR2

1: khi xảy ra tràn Timer2

0: không xảy ra tràn Timer2

CCP1IF Cờ báo ngắt CCP1( ở chế độ so sánh và bắt giữ)

-So sánh:

1: khi giá trị so sánh thanh ghi TMR1 được thỏa

0: khi giá trị so sánh thanh ghi TMR1 không thỏa

-Bắt giữ:

1: thanh ghi bắt nhịp TMR1 có xảy ra(xóa bằng phần mềm)

Trang 17

e Thanh ghi PIR1(tt)

SSPIF Cờ báo ngắt ở chế độ Port nối tiếp đồng bộ

1: khi quá trình truyền nhận port nối tiếp hoàn thành

0: không xảy ra

TXIF Cờ báo ngắt truyền USART

1: bộ đệm truyền của USART còn trống

0: bộ đệm truyền của USART đầy

RCIF Cờ báo ngắt nhận USART

1: USART nhận xong

0: USART nhận chưa xong

ADIF Cờ báo ngắt bộ chuyển đổi A/D

1: quá trình chuyển đổi A/D hoàn tất

0: quá trình chuyển đổi A/D chưa hoàn tất

e Thanh ghi PIR1(tt)

PSPIF Cờ báo ngắt của quá trình ghi/đọc port song song

1: khi hoạt động ghi/đọc xảy ra

0: không xảy ra

Trang 18

f Thanh ghi PIE2

Gồm các Bit cho phép Ngắt ngoại vi CCP2, ngắt do bộ s sánh, ngắt

do xung đột đường truyền SSP, ngắt khi ghi EEPROM

Chế độ so sánh: 1: khi giá trị so sánh ở thanh ghi TMR1 được thỏa

Chế độ bắt giữ: 1: khi có sự bắt nhịp ở thanh ghi TMR1 xảy ra

BCLIF Cờ báo ngắt khi có sự xung đột đường truyền

1: xung đột đường truyền xảy ra ở quá trình SSP

0: không có xung đột đường truyền xảy ra ở quá trình SSP

EEIF Cờ báo ngắt ở quá trình ghi vào EEPROM

1: khi quá trình ghi EEPROM hoàn thành

0: khi quá trình ghi EEPROM chưa hoàn thành

CMIF Cờ báo ngắt ở bộ so sánh

1: khi ngõ vào bộ so sánh thay đổi, 0: không thay đổi

Trang 19

h Thanh ghi PCON

Gồm các bit kiểm tra trạng thái các chế độ Reset của PIC

BOR\ Bit trạng thái ở chế độ Brown-Out Reset

0: khi chế độ Reset Brown-Out xảy ra( được set bằng phần mềm)

1: không xảy ra

POR\ Bit trạng thái ở chế độ Power-On Reset

0: khi chế độ Reset Power-on xảy ra( được set bằng phần mềm)

1: không xảy ra

Thanh ghi FSR và INDF là cặp thanh ghi luôn được sử dụng cùng nhau

trong chế độ định địa chỉ gián tiếp Để chọn bank thanh ghi có chứa

thanh ghi cần truy cập thì cần kết hợp giữa thanh ghi FSR và STATUS

i Thanh ghi INDF và INDF

Trang 20

 Thanh ghi FSR trỏ đến thanh ghi cần truy cập

 Thanh ghi INDF chứa nội dung thanh ghi có địa chỉ nằm trong FSR

 Ví dụ: FSR=55h, INDF=100 thì thanh ghi 55h có giá trị là 100

 Thanh ghi INDF không phải là một thanh ghi vật lý Nó chứa giá trị

của thanh ghi có địa chỉ được lưu trữ ở thanh ghi FSR

i Thanh ghi INDF và INDF

 Có độ rộng 13 bit, 8 bit thấp được chứa trong thanh ghi PCL, 5 bit

cao không thể đọc nhưng có thể ghi gián tiếp vào thanh ghi PCH

thông qua thanh ghi PCLATH Khi reset thì 5 thanh ghi này bị xóa

 Hình bên trình bày cách thức

thanh ghi PC được nạp giá trị

thông qua lệnh CALL hoặc

lệnh GOTO

j Thanh ghi PC (Program Counter)

Trang 21

 PIC16F877A có gồm 8 ngăn xếp có độ rộng 13 bit, con trỏ ngăn xếp

không thể Ghi hay Đọc

 Địa chỉ của PC được cất vào ngăn xếp khi thực hiện lệnh CALL hay

khi Ngắt xảy ra.

 Dữ liệu của Ngăn xếp được lấy ra khi thực hiện các lệnh RETURN,

RETLW và RETFIE

 Thanh ghi PCLATH không bị ảnh hưởng khi cất và lấy data từ Ngăn

xếp

 Ngăn xếp hoạt động theo vòng kín, nghĩa là khi cất data vào ngăn

xếp lần thứ 9 sẽ ghi chồng lên data lần thứ 1,…

j Ngăn xếp (stack)

3.2.2 Thanh ghi W và tập thanh ghi F

 Thanh ghi W (Working Register): là thanh ghi đa dụng dùng để truy

xuất dữ liệu

 Tập thanh ghi F (Register File): F được chỉ định là 1 ô nhớ hay thanh

ghi trong bộ nhớ dữ liệu

Ví dụ:

MOVWF 85H ;Chuyển giá trị th.ghi W

vào th.ghi TRISA (TRISA = 85H)

Ngày đăng: 18/03/2014, 14:20

HÌNH ẢNH LIÊN QUAN

2. Sơ đồ và chức năng các chân PIC16F877A - Vi xử lý-Chương 2 pptx
2. Sơ đồ và chức năng các chân PIC16F877A (Trang 2)
2. Sơ đồ và chức năng các chân PIC16F877A - Vi xử lý-Chương 2 pptx
2. Sơ đồ và chức năng các chân PIC16F877A (Trang 3)

TỪ KHÓA LIÊN QUAN

w