Download as pdf or txt
Download as pdf or txt
You are on page 1of 49

CHƯƠNG

2
CẤU TRÚC PHẦN CỨNG
Firma convenzione
Politecnico di Milano e Veneranda Fabbrica
PIC 16F877A
del Duomo di Milano
Aula Magna – Rettorato
Mercoledì 27 maggio 2015
2
Tổng quan về PIC16F877A

ü Thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ


dài 14 bit
ü Tất cả các lệnh là 1 chu kỳ máy, ngoại trừ chương trình
con là 2 chu kỳ máy.
ü Một chu kỳ lệnh của vi điều khiển bao gồm 4 xung
clock
§Sử dụng thạch anh 4MHz à xung lệnh có tần số
1MHz (1µs)
ü Bộ nhớ chương trình flash với dung lượng 8K x 14 bit,
với khả năng ghi/xóa 100.000 lần
3
Tổng quan về PIC16F877A

ü Bộ nhớ dữ liệu RAM: 368 byte

ü Bộ nhớ EEPROM với dung lượng 256 byte, với khả


năng ghi/xóa 1.000.000 lần. Có thể lưu trữ dữ liệu hơn
40 năm

ü Nguồn sử dụng: 5VDC

ü Chế độ sleep

ü Có 5 ports I/0 (A, B, C, D, E) với 33 chân


4
Sơ đồ chân họ PIC16F87XA
5
6
7
Sơ đồ chân họ PIC16F87XA

Reset

Port A Port B

Port E Power
Power
Port D
Oscillator
Port C Port C

Port D
8
Giới hạn hoạt động
9
Chức năng các chân

Chân MCLR/Vpp (1)


ü MCLR: là ngõ vào
reset tích cực ở mức
thấp
ü Vpp: khi lập trình cho
PIC thì đóng vai trò là
ngõ vào nhận điện áp
lập trình
10
Chức năng các chân

Chân RA0(1)/AN0(1) (2, 3)


ü RA0(1): xuất/nhập số
ü AN0(1): ngõ vào tương tự của kênh
thứ 0 (1)

Chân RA2/AN2/VREF-/CVREF (4)


ü RA2: xuất/nhập số
ü AN2: ngõ vào tương tự của kênh thứ
2
ü VREF-: ngõ vào điện áp chuẩn(thấp)
của bộ A/D
ü CVREF: điện áp tham chiếu VREF ngõ
ra bộ so sánh
11
Chức năng các chân
Chân RA3/AN3/VREF+ (5)
ü RA3: xuất/nhập số
ü AN3: ngõ vào tương tự của kênh thứ 3
ü VREF+: ngõ vào điện áp chuẩn(cao)
của bộ A/D

Chân RA4/T0CKI/C1OUT (6)


ü RA4: xuất/nhập số
ü T0CKI: ngõ vào xung clock bên ngoài
cho Timer 0
ü C1OUT: ngõ ra bộ so sánh 1
12
Chức năng các chân
Chân RA5/AN4/SS/C2OUT (7)
ü RA5: xuất/nhập số
ü AN4: ngõ vào tương tự của kênh thứ 4
ü SS: ngõ vào chọn lựa SPI phụ
ü C2OUT: ngõ ra bộ so sánh 2

Chân RE0/RD/AN5 (8)


ü RE0: xuất/nhập số
ü RD: điều khiển đọc port slave song
song
ü AN5: ngõ vào tương tự của kênh thứ 5
13
Chức năng các chân
Chân RE1/WR/AN6 (9)
ü RE1: xuất/nhập số
ü WR: điều khiển ghi port slave song
song
ü AN6: ngõ vào tương tự của kênh thứ 6

Chân RE2/CS/AN7 (10)


ü RE2: xuất/nhập số
ü CS: chip chọn lựa điều khiển port slave
song song
ü AN7: ngõ vào tương tự của kênh thứ 7
14
Chức năng các chân

VDD (11, 32)


VSS (12, 31)
à là các chân nguồn
của PIC
15
Mạch nguồn
16
Cầu Diode

1 3

2 4
17
Chức năng các chân
Chân OSC1/CLKIN (13)
Chân OSC2/CLKOUT (14)
àLà các chân nối với thạch anh để tạo ra xung dao động cho
PIC
àThêm 2 tụ lọc C1, C2 để xung tạo ra từ thạch anh ổn định
àGiá trị của tụ dựa theo datasheet của PIC
18
Chức năng các chân
19
Chức năng các chân
Chân RC0/T1OSO/T1CKI (15)
ü RC0: xuất/nhập số
ü T1OSO: ngõ ra bộ dao động Timer 1
ü T1CKI: ngõ vào xung clock bên ngoài
Timer 1

Chân RC1/T1OSI/CCP2 (16)


ü RC1: xuất/nhập số
ü T1OSI: ngõ vào bộ dao động Timer 1
ü CCP2: ngõ vào Capture 2, ngõ ra
Compare 2, ngõ ra PWM 2
20
Chức năng các chân
Chân RC1/T1OSI/CCP2 (16)
ü RC1: xuất/nhập số
ü T1OSI: ngõ vào bộ dao động Timer 1
ü CCP2: ngõ vào Capture 2, ngõ ra
Compare 2, ngõ ra PWM 2

Chân RC2/CCP1 (17)


ü RC2: xuất/nhập số
ü CCP1: ngõ vào Capture 1, ngõ ra
Compare 1, ngõ ra PWM1
21
Chức năng các chân
Chân RC3/SCK/SCL (18)
ü RC3: xuất/nhập số
ü SCK: ngõ vào xung clock nối tiếp
đồng bộ/ngõ ra của chế độ SPI
ü SCL: ngõ vào xung clock nối tiếp
đồng bộ/ngõ ra chế độ I2C

Chân RC4/SDI/SDA (23)


ü RC4: xuất/nhập số
ü SDI: dữ liệu vào SPI
ü SDA: xuất/nhập dữ liệu I2C
22
Chức năng các chân
Chân RDx/PSPx (19, 20, 21, 22, 27-30)
ü RDx: xuất/nhập số
ü PSPx: dữ liệu port slave song song
23
Chức năng các chân

Chân RC6/TX/CK (25) Chân RC7/RX/DT (26)


ü RC6: xuất/nhập số ü RC7: xuất/nhập số
ü TX: truyền bất đồng bộ USART ü RX: nhận bất đồng bộ USART
ü CK: xung đồng bộ USART ü DT: dữ liệu đồng bộ USART

Chân RC5/SDO (24)


ü RC5: xuất/nhập số
ü SDO: dữ liệu ra SPI
24
Chức năng các chân
Chân RB0/INT (33)
ü RB0: xuất/nhập số
ü INT: ngõ vào nhận tín hiệu ngắt ngoài

Chân RB1, RB2, RB4, RB5 (34, 35, 37, 38)


ü Xuất nhập số

Chân RB3/PGM (36)


ü RB3: xuất/nhập số
ü PGM: chân cho phép lập trình điện áp thấp
ICSP
25
Chức năng các chân

Chân RB6/PGC (39)


ü RB6: xuất/nhập số
ü PGC: mạch gỡ rối và xung clock lập trình
ICSP

Chân RB7/PGD (40)


ü RB7: xuất/nhập số
ü PGC: mạch gỡ rối và dữ liệu lập trình
ICSP
26
Các đặc tính ngoại vi
ü 3 bộ định thời
§ Timer 0: timer/counter 8 bit, có bộ chia trước
§ Timer 1: timer/counter 16 bit, có bộ chia trước, có thể
đếm khi CPU ở chế độ sleep với nguồn xung từ thạch
anh hoặc nguồn xung bên ngoài
§ Timer 2: timer/counter 8 bit, có bộ chia trước và
postscale

ü 2 bộ CCP (Capture/Compare/PWM)
§ Capture có độ rộng 16 bit, độ phân giải 12.5 ns
§ Compare có độ rộng 16 bit, độ phân giải 200ns
§ Độ phân giải lớn nhất của PWM là 10 bit
27
Các đặc tính ngoại vi
ü Các chuẩn giao tiếp nối tiếp MSSP
§ Giao tiếp SPI
§ Giao tiếp I2C

ü Chuẩn giao tiếp nối tiếp USART

ü Chuẩn giao tiếp song song PSP

ü Bộ chuyển đổi ADC với 8 kênh có độ phân giải 10 bit

ü Có khả năng hoạt động với nhiều dạng Oscillator khác


nhau
28
Sơ đồ khối
29
Bộ nhớ chương trình

§ Là bộ nhớ flash, dung lượng


bộ nhớ 8K word (1 word =
14 bit)
§ Được phân thành nhiều trang
(từ page 0 đến page 3).
§ Như vậy bộ nhớ chương
trình có khả năng chứa được
8*1024 = 8192 lệnh (vì một
lệnh sau khi mã hóa sẽ có
dung lượng 1 word (14 bit).
30
Bộ nhớ chương trình

§ Khi vi điều khiển được reset,


bộ đếm chương trình sẽ chỉ
đến địa chỉ 0000h (Reset
vector).
§ Khi có ngắt xảy ra, bộ đếm
chương trình sẽ chỉ đến địa
chỉ 0004h (Interrupt vector).
§ Có bộ đếm chương trình 13bit
có thể quản lý bộ nhớ chương
trình có dung lượng 8K word
31
Bộ nhớ dữ liệu
üLà bộ nhớ EEPROM
üĐược chia ra làm 4
bank.
üMỗi bank có dung
lượng 128 byte
§ Thanh ghi có chức năng
đặc biệt SFR (Special
Function Register) nằm
ở các vùng địa chỉ thấp
§ Thanh ghi mục đích
chung GPR (General
Purpose Register) nằm
ở vùng địa chỉ còn lại
trong bank
32
Bộ nhớ dữ liệu

üCác thanh ghi SFR


thường xuyên được
sử dụng (ví dụ như
thanh ghi STATUS)
sẽ được đặt ở tất cả
các bank để giúp
thuận tiện trong quá
trình truy xuất và
làm giảm bớt lệnh
của chương trình
33
Xuất nhập I/O
1 0 0 1 0 1 1 0 TRIS

Output
Output

Output

Output
CPU Input

Input
Input
Input
1 1 0 1 0 1 0 1 PORT

Port xuất nhập: 2 chiều


PORT: trạng thái của port TRIS = 1: input
TRIS: thanh ghi định hướng dữ liệu TRIS = 0: output
34
35
Port A
ü Là port 2 chiều. Chỉ có 6 bit: RA0 – RA5
ü Thanh ghi định hướng dữ liệu: TRISA.
0: OUTPUT, 1: INPUT.
ü Chân RA4 được đa hợp với ngõ vào
xung clock của module Timer0:
RA4/T0CKI
ü Các chân còn lại được đa hợp với các
ngõ vào tương tự, ngõ vào tương tự
VREF cho các bộ chuyển đổi A/D và các
bộ so sánh
ü Khi sử dụng ngõ vào tương tự à đảm
bảo rằng thanh ghi TRISA được duy trì
ở mức 1
36
Các thanh ghi liên kết với Port A
37
Port B
ü Là port 2 chiều. Có 8 bit: RB0 – RB7
ü Thanh ghi định hướng dữ liệu: TRISB.
0: OUTPUT, 1: INPUT.
ü Mỗi chân của port B có điện trở nội kéo lên.
Bit điều khiển là RBPU (OPTION_REG<7>)
ü RBPU = 0 à mở các điện trở kéo lên
ü Port B được thiết lập là ngõ vào hoặc lúc bị
reset & tắt chức năng điện trở kéo lên
ü Chân RB0/INT được đa hợp ngắt ngoài
ü RB4 – RB7 có cấu trúc ngắt thay đổi (chỉ
khi được thiết lập là input)

RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0


38
Các thanh ghi liên kết với Port B
39
Các thanh ghi liên kết với Port B

RBPU = 0 à mở các điện trở kéo lên


Trong CCS: port_b_pullups(1)
OPTION_REG

RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0


40
Port C
ü Là port 2 chiều. Có 8
bit: RC0 – RC7
ü Thanh ghi định
hướng dữ liệu:
TRISC.
0: OUTPUT, 1: INPUT.
ü Chân RC3-RC4 được
đa hợp với giao tiếp
SPI và I2C
ü RC6-RC7 được đa
hợp với giao tiếp nối
tiếp USART
41
Các thanh ghi liên kết với Port C
42
Port D

ü Là port 2 chiều. Có
8 bit: RD0 – RD7
ü Thanh ghi định
hướng dữ liệu:
TRISD.
0: OUTPUT
1: INPUT.
ü Port D được đa
hợp với giao tiếp
song song
43
Các thanh ghi liên kết với Port D
44
Port E
ü Là port 2 chiều. Có 3 bit: RE0 –
RE2
ü Thanh ghi định hướng dữ liệu:
TRISE.
0: OUTPUT, 1: INPUT.
ü Các chân ở Port E được đa hợp
với ngõ vào tương tự.
ü Phải đảm bảo các chân được
cấu hình là ngõ vào khi sử
dụng ngõ vào tương tự
45
Các thanh ghi liên kết với Port E
Hoạt động RESET 46
47
Hoạt động RESET

PIC16F87XA có những nguyên nhân reset khác nhau:


• Power-on Reset (POR)
• MCLR Reset (during normal operation)
• MCLR Reset (during Sleep)
• WDT Reset (during normal operation)
• WDT Wake-up (during Sleep)
• Brown-out Reset (BOR)
48
Các thanh ghi khi RESET
49
Các thanh ghi khi RESET

You might also like