Tải bản đầy đủ (.pdf) (39 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (831.75 KB, 39 trang )

CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A

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ộ 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 .


CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A

2 Bộ so sánh tương tự (Compartor)ï.
1 Bộ định thời giám sát (Watch Dog Timer).
1 Cổng giao tiếp song song 8 bit.
1 Port nối tiếp.
15 Nguồn ngắt (Interrupt).
Chế độ tiết kiệm năng lượng (Sleep Mode).
Nạp trương trình bằng 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

2. Sơ đồ và chức năng các chân PIC16F877A
PIC16F877A là 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 và thanh ghi TRISA
Port A gồm 6 chân từ RA0-RA5.
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: ngõ Output, bằng 1: ngõ Input.
Riêng chân RA4 : tích hợp thêm chức năng là chân cung cấp
xung clock ngoài cho Timer 0 (RA4/T0CKI).
Các chân còn lại của PortA được đa hợp với các chân ngõ vào
Analog của ADC và chân ngõ vào điện áp so sánh của Bộ so
sánh Comparator.


CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A
a. Bảng chức năng Port A

b. Các thanh ghi có liên hệ với Port A


CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A


2.2

PORTB và thanh ghi TRISB
Port B gồm 8 chân từ RB7-RB0.
Các giá trị thanh ghi TRISB qui định Port B
3 chân được đa hợp với chức năng
In-Circuit Debugger và Low Voltage Programming function:
RB3/PGM, RB6/PGC và RB7/PGD
4 chân RB7-RB4 làm tác nhân Ngắt khi trạng thái các chân
này thay đổi. (Nếu PortB là Output thì chức năng ngắt không
hoạt động)
Mỗi chân Port B sẽ được treo lên Vdd khi ta xóa bit RBPU\
(OPTION<7>). Tính năng này không có khi Port B là Input.


CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A
a. Bảng chức năng Port B

b. Các thanh ghi có liên hệ với Port B


CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A

2.3

PORTC và thanh ghi TRISC
Port C gồm 8 chân từ RC7-RC0.
Các giá trị thanh ghi TRISC
sẽ qui định các chân của PortC.
Các chân của PortC được đa hợp với các chức năng ngoại vi.


Chú ý: -Vài chức năng ngọai vi sẽ ghi các giá trị 0 vào thanh ghi
TRISC và mặc định là Output, nhưng một số chức năng ngoại
vi khác sẽ tự động mặc định là các chân Input.
- Do đó người sử dụng phải xem xét kỹ các tính năng của
các hàm chức năng ngoại vi, để thiết lập các Bit thanh ghi
TRISC cho chính xác.


CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A
a. Bảng chức năng Port C

b. Các thanh ghi có liên hệ với Port C


CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A

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>).


CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A
a. Bảng chức năng Port D


b. Các thanh ghi có liên hệ với Port D


CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A

2.5

PORTE và thanh ghi TRISE
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.
Các chân PortE đóng vai trò là các chân ngõ vào điều khiển
khi sử dụng Port vi xử lý nếu bit PSPMODE (TRISE<4>) được
Set lên 1 và PortE trong trường hợp này phải là Input.
Ngoài ra, các chân của PortE còn có chức năng là các ngõ vào
Analog, tại chế độ này phải cấu hình PortE là Input và khi đọc
trạng thái các chân của Port E sẽ cho ta giá trị 0.


CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A
a. Bảng chức năng Port E

b. Các thanh ghi có liên hệ với Port E


CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A
c. Thanh ghi TRISE
Bit 7 IBF: Bit trạng thái báo Buffer ngõ vào đầy.

1 = Một Word (16Bit) được nhận vào và đang được đọc bởi CPU
0 = Không Word được nhận vào
Bit 6 OBF: Bit trạng thái báo Buffer ngõ ra đầy.
1 = Buffer ngõ ra vẫn còn giữ 1 Word đã được ghi trước đó.
0 = Buffer ngõ ra đã được đọc
Bit 5 IBOV: Bit báo trạng thái Buffer ngõ vào tràn
(trong chế độ port vi xử lý).
1 = Một chu kỳ ghi mới bắt đầu nhưng giá trị cũ vẫn còn trong
buffer (phải được xóa bằng phần mềm).
0 = không có tràn
Bit 4 PSPMODE: Bit chọn chế độ cổng song song cho Port D.
1 = PORTD được cấu hình ở chế độ cổng song song.
0 = PORTD được cấu hình ở chế độ xuất nhập thông thường.


CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A

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
RC

LP, XT, HS



CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A

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.


CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A

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)


CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A


3.1

Bộ nhớ chương trình
- Gồm có 8K x 14 words
bộ nhớ Flash ROM.
- Gồm 1 thanh ghi bộ đếm
chương trình 13 bit (PC).
(Program Counter)
- Vector Reset đặt tại 0000h
khi xảy ra Reset.
- Vector Ngắt đặt tại 0004h
khi xảy ra Ngắt.


CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A
a. Thanh ghi PC (Program Counter)
Có độ rộng 13bit, 8bit thấp được chứa trong thanh ghi PCL,
5 bit cao thì không thể đọc nhưng có thể ghi gián tiếp vào PCH
thông qua thanh ghi PCLATH. Khi Reset thì 5 bit cao 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ị qua các lệnh
CALL và GOTO.


CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A
b. Ngăn xếp (STACK)
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,….


CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A

3.2

Bộ nhớ dữ liệu

Boä nhớ dữ liệu được chia thành 4 Bank:
Bank 0, Bank 1, Bank 2 và Bank 3.
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 Function Registers ).
Các Bank này được
lựa chọn bởi 2 bit RP0 và RP1
nằm trong thanh ghi STATUS.

RP1

RP0

Bank


0

0

Bank 0

0

1

Bank 1

1

0

Bank 2

1

1

Bank 3


CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A
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.


CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A

3.2.1 Các thanh ghi chức năng đặc biệt
a. Thanh ghi STATUS
Bit
C

Chức năng
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ừ 4bit 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
0= khi VĐK ở chế độ SLEEP (chế độ nghỉ – nguồn thấp)


CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A

Bit
TO\

Chức năng
(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.

RP0

Bit chọn Bank thanh ghi (dùng địa chỉ trực tiếp)

RP1

Bit chọn Bank thanh ghi (dùng địa chỉ trực tiếp)
00, 01, 10, 11=chọn Bank 0,1,2,3


IRP

Bit chọn Bank thanh ghi (dùng địa chỉ gián tiếp)
1= chọn Bank 2,3
0= choïn Bank 0,1


CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F877A
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 .

Bit

PS0

Chức năng

Bit lựa chọn hệ số tỉ lệ
của bộ chia Prescaler

PS1
PS2
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



×