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

ÐẠI HỌC CÔNG NGHIỆP TP.

HỒ CHÍ MINH
KHOA CÔNG NGHỆ ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ MÁY TÍNH

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

Nội dung bao gồm:


 Cấu trúc tổng quát của PIC16F887
 Sơ đồ khối tổng quát của PIC16F887
 Sơ đồ chân và chức năng các chân của
PIC16F887
 Các kiểu chân
 Các cổng xuất/nhập (I/O Port)
 Bộ dao động (Oscillator)
 Reset hệ thống (System Reset)
 Nguồn điện cung cấp (Power Supply).
3
CẤU TRÚC PHẦN CỨNG PIC16F887

Nội dung bao gồm:


 Tổ chức bộ nhớ của PIC16F887
 Bộ nhớ chương trình (Program Memory)
 Bộ nhớ dữ liệu (Data Memory)
 Thanh ghi chức năng đặc biệt (Special Function
Register).

4
CẤU TRÚC TỔNG QUÁT CỦA PIC16F887

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


 8192 (Words – 14 bit) Flash ROM
 Bộ nhớ dữ liệu (Data Memory)
 368 (Bytes – 8 bit) RAM
 256 (Bytes – 8 bit) EEPROM
 24/35 chân xuất/nhập (I/O)
 15 nguồn ngắt (Interrupt)
 2 bộ định thời/đếm 8 bit (Timer 0 và Timer 2)
 1 bộ định thời/đếm 16 bit (Timer 1)
 1 bộ định thời giám sát (WatchDog Timer)
 2 bộ bắt giữ/so sánh/điều xung (Capture/Compare/PWM)
 1 bộ biến đổi tương tự sang số 10 bit, 11/14 ngõ vào (ADC)
 5 cổng giao tiếp song song 6 – 8 bit (Port A, B, C, D, E). 5
CẤU TRÚC TỔNG QUÁT CỦA PIC16F887

 1 bộ giao tiếp nối tiếp đồng bộ và bất đồng bộ (USART,


MSSP)
 2 bộ so sánh tương tự (Analog Comparator)
 Chế độ tiết kiệm năng lượng (Sleep Mode)
 Tầm điện áp làm việc lớn (2.0V – 5.5V)
 Tích hợp nhiều tính năng nhằm tăng độ tin cậy khi làm việc
(POR, PWRT, OST, BOR, WDT), bảo mật và hiệu suất.
 Tích hợp tính năng gỡ rối chương trình (Debug)
 Nạp chương trình bằng cổng nối tiếp (In-Circuit Serial
Programming)
 Tập lệnh gồm 35 lệnh
 Tần số hoạt động tối đa 20MHz
 …
6
SƠ ĐỒ KHỐI TỔNG QUÁT CỦA PIC16F887

7
SƠ ĐỒ KHỐI TỔNG QUÁT CỦA PIC16F887

8
SƠ ĐỒ CHÂN CỦA PIC16F887
 Kiểu chân PDIP:

9
SƠ ĐỒ CHÂN CỦA PIC16F887
 Kiểu chân QFN:

10
SƠ ĐỒ CHÂN CỦA PIC16F887
 Kiểu chân TQFP:

11
CÁC CỔNG XUẤT NHẬP

Nội dung bao gồm:


 Tổng quan về cổng xuất/nhập
 Cấu trúc và chức năng của Port A
 Cấu trúc và chức năng của Port B
 Cấu trúc và chức năng của Port C
 Cấu trúc và chức năng của Port D
 Cấu trúc và chức năng của Port E.

12
TỔNG QUAN VỀ CỔNG XUẤT NHẬP

 Tối đa lên đến 35 ngõ vào/ra (I/O) hai chiều


 Một vài chân được đa hợp thêm với các chức
năng ngoại vi
 Khả năng điều khiển dòng cao (≈ 25mA)
 Thao tác trực tiếp với từng chân chỉ trong
vòng 1 chu kỳ lệnh
 Hầu hết các chân I/O đều có chức năng bảo
vệ ESD.

13
TỔNG QUAN VỀ CỔNG XUẤT NHẬP

 Cấu hình I/O của mỗi chân:


 Ngõ vào tương tự (Analog Input)
 Ngõ vào số (Digital Input)
 Ngõ ra số (Digital Output)
 Cấu hình I/O mặc định (sau khi reset):
 Các chân có thêm tính năng Analog thì có cấu
hình I/O là Analog Input
 Các chân chỉ có tính năng Digital thì có cấu hình
I/O là Digital Input.

14
TỔNG QUAN VỀ CỔNG XUẤT NHẬP

Digital
I/O
PIC16F887

15
TỔNG QUAN VỀ CỔNG XUẤT NHẬP

Analog
Input
PIC16F887

16
TỔNG QUAN VỀ CỔNG XUẤT NHẬP

 Mỗicổng sẽ có một thanh ghi điều khiển


chiều tương ứng TRISx (x = A, B, C, D, E)
 Ví dụ đối với Port B:
PORTB Register (PORTB)
RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

Dữ liệu xuất/nhập
PORTB Tri-State Register (TRISB)
TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0

17
TỔNG QUAN VỀ CỔNG XUẤT NHẬP

 Mỗicổng sẽ có một thanh ghi điều khiển


chiều tương ứng TRISx (x = A, B, C, D, E)
 Ví dụ đối với Port B:
PORTB Register (PORTB)
RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

Cấu hình chiều dữ liệu


PORTB Tri-State Register (TRISB)
TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0

TRISB… = 0 – Chân tương ứng là ngõ ra (Output)


TRISB… = 1 – Chân tương ứng là ngõ vào (Input) 18
TỔNG QUAN VỀ CỔNG XUẤT NHẬP

 Để thay đổi cấu hình I/O (Analog Input


Digital I/O) của các chân có tích hợp thêm
tính năng tương tự:
 Trường hợp PIC16F887: sử dụng thanh ghi
Analog Select (ANSEL và ANSELH)
 Trường hợp PIC16F877A: sử dụng thanh ghi
Analog Control 1 (ADCON1).

19
TỔNG QUAN VỀ CỔNG XUẤT NHẬP

 Trường hợp PIC16F887:


Analog Select Register (ANSEL)
ANS7 ANS6 ANS5 ANS4 ANS3 ANS2 ANS1 ANS0

Các bit dùng để cấu hình

ANS13 ANS12 ANS11 ANS10 ANS9 ANS8

Analog Select High Register (ANSELH)

ANS… = 1 – Chân tương ứng là ngõ vào tương tự (Analog


Input)
ANS… = 0 – Chân tương ứng là ngõ vào/ra số (Digital I/O)
20
PIC16F887 TỔNG QUAN VỀ CỔNG XUẤT NHẬP

21
TỔNG QUAN VỀ CỔNG XUẤT NHẬP

 Trường hợp PIC16F877A:

Các bit dùng để cấu hình

ADFM ADCS2 PCFG3 PCFG2 PCFG1 PCFG0

ADC Control Register 1 (ADCON1)

Các bit dùng để cấu hình tham khảo thêm trong bảng sau
22
TỔNG QUAN VỀ CỔNG XUẤT NHẬP

 Trường hợp PIC16F877A:

Các bit dùng để cấu hình

ADFM ADCS2 PCFG3 PCFG2 PCFG1 PCFG0

ADC Control Register 1 (ADCON1)

Các bit dùng để cấu hình tham khảo thêm trong bảng sau
23
TỔNG QUAN VỀ CỔNG XUẤT NHẬP
PIC16F877A

24
TỔNG QUAN VỀ CỔNG XUẤT NHẬP

 Tính năng điện trở kéo lên (Pull-up Resistor)


 Chỉ áp dụng cho Port B
 Chỉ có khi I/O được cấu hình là ngõ vào
 Kích hoạt bằng cách:
• Trường hợp PIC16F887: Sử dụng thanh ghi WPUB và
bit RBPU trong thanh ghi OPTION
• Trường hợp PIC16F77A: Sử dụng bit RBPU trong
thanh ghi OPTION
VDD

RB0..RB7
25

Pull-up Resistor
TỔNG QUAN VỀ CỔNG XUẤT NHẬP

 Trường hợp PIC16F887:


OPTION_REG Register (OPTION_REG)
RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0

1 = Cấm 0 = Cho phép

Weak Pull-Up PORTB Register (WPUB)


WPUB7 WPUB6 WPUB5 WPUB4 WPUB3 WPUB2 WPUB1 WPUB0

1 = Cho phép 0 = Cấm

Ví dụ: Kích hoạt tính


năng điện trở kéo lên
RB3
cho chân RB3 26

Pull-up Resistor
TỔNG QUAN VỀ CỔNG XUẤT NHẬP

 Trường hợp PIC16F887:


OPTION_REG Register (OPTION_REG)
RBPU
0 INTEDG T0CS T0SE PSA PS2 PS1 PS0

1 = Cấm 0 = Cho phép

Weak Pull-Up PORTB Register (WPUB)


1 WPUB2 WPUB1 WPUB0
WPUB7 WPUB6 WPUB5 WPUB4 ICOB3

1 = Cho phép 0 = Cấm


VDD
Ví dụ: Kích hoạt tính
năng điện trở kéo lên
RB3
cho chân RB3 27

Pull-up Resistor
TỔNG QUAN VỀ CỔNG XUẤT NHẬP

 Trường hợp PIC16F877A:

OPTION_REG Register (OPTION_REG)


RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0

1 = Cấm
0 = Cho phép

Ví dụ: Kích hoạt tính


năng điện trở kéo lên RB0..RB7
cho Port B (RB0..RB7)
Pull-up Resistor
28
TỔNG QUAN VỀ CỔNG XUẤT NHẬP

 Trường hợp PIC16F877A:

OPTION_REG Register (OPTION_REG)


RBPU
0 INTEDG T0CS T0SE PSA PS2 PS1 PS0

1 = Cấm
0 = Cho phép
VDD

Ví dụ: Kích hoạt tính


năng điện trở kéo lên RB0..RB7
cho Port B (RB0..RB7)
Pull-up Resistor
29
CẤU TRÚC VÀ CHỨC NĂNG PORT A

 Port A có 8 chân (RA0 – RA7)


 Đối với PIC16F877A chỉ có 6 chân (RA0 – RA5)
 Việc ghi các giá trị (0 hoặc 1) vào thanh ghi
TRISA sẽ qui định chiều các chân Port A
 Các thao tác điều khiển Port:
 READ: Đọc trạng thái của chân
 WRITE: Ghi vào bộ chốt cổng (RD-MD-WR)
 Thanh ghi ANSEL phải được khởi tạo để
thay đổi cấu hình I/O của các chân có tích
hợp thêm tính năng tương tự.
30
CẤU TRÚC VÀ CHỨC NĂNG PORT A

 Chân RA0 / AN0 / ULPWU / C12IN0-


 RA0: I/O đa mục đích
 AN0: Ngõ vào tương tự cho ADC
 ULPWU: Ngõ vào tương tự cho phép tạo ra một
ngắt khi có sự giảm chậm điện áp tại chân RA0
 C12IN0-: Ngõ vào tương tự (-) cho bộ so sánh
C1 hoặc C2.

31
CẤU TRÚC VÀ CHỨC NĂNG PORT A

 Chân RA1 / AN1 / C12IN1-


 RA1: I/O đa mục đích
 AN1: Ngõ vào tương tự cho ADC
 C12IN1-: Ngõ vào tương tự (-) cho bộ so sánh
C1 hoặc C2.

32
CẤU TRÚC VÀ CHỨC NĂNG PORT A

 Chân RA2 / AN2 / VREF- / CVREF / C2IN+


 RA2: I/O đa mục đích
 AN2: Ngõ vào tương tự cho ADC
 VREF-: Ngõ vào điện áp tham chiếu (-) cho ADC
và bộ so sánh
 CVREF: Ngõ ra điện áp tham chiếu bộ so sánh
 C2IN+: Ngõ vào tương tự (+) cho bộ so sánh C2.

33
CẤU TRÚC VÀ CHỨC NĂNG PORT A

 Chân RA3 / AN3 / VREF+ / C1IN+


 RA3: I/O đa mục đích
 AN3: Ngõ vào tương tự cho ADC
 VREF+: Ngõ vào điện áp tham chiếu (+) cho
ADC và bộ so sánh
 C1IN+: Ngõ vào tương tự (+) cho bộ so sánh C1.

34
CẤU TRÚC VÀ CHỨC NĂNG PORT A

 Chân RA4 / T0CKI / C1OUT


 RA4: I/O đa mục đích
 T0CKI: Ngõ vào xung clock cho Timer0
 C1OUT: Ngõ ra số từ bộ so sánh C1.

35
CẤU TRÚC VÀ CHỨC NĂNG PORT A

 Chân RA5 / AN4 / SS\ / C2OUT


 RA5: I/O đa mục đích
 AN4: Ngõ vào tương tự cho ADC
 SS\: Ngõ vào chọn chức năng SLAVE cho MSSP
 C2OUT: Ngõ ra số từ bộ so sánh C2.

36
CẤU TRÚC VÀ CHỨC NĂNG PORT A

 Chân RA6 / OSC2 / CLKOUT


 RA6: I/O đa mục đích
 OSC2: Nối với thạch anh / bộ cộng hưởng
 CLKOUT: Ngõ ra xung clock mạch dao động.

37
CẤU TRÚC VÀ CHỨC NĂNG PORT A

 Chân RA7 / OSC1 / CLKIN


 RA7: I/O đa mục đích
 OSC1: Nối với thạch anh / bộ cộng hưởng
 CLKIN: Ngõ vào xung clock mạch dao động

38
CẤU TRÚC VÀ CHỨC NĂNG PORT A

Bảng tổng hợp chức năng của Port A 39


CẤU TRÚC VÀ CHỨC NĂNG PORT A

Bảng tổng hợp chức năng của Port A 40


CẤU TRÚC VÀ CHỨC NĂNG PORT A

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

X: Không biết – : Dự trữ (Đọc về có giá trị ‘0’)


U: Không thay đổi Tô đậm: Không dùng cho Port A

41
CẤU TRÚC VÀ CHỨC NĂNG PORT B

 Port B có 8 chân (RB0 – RB7)


 Việc ghi các giá trị (0 hoặc 1) vào thanh ghi
TRISB sẽ qui định chiều các chân Port B
 Các thao tác điều khiển Port:
 READ: Đọc trạng thái của chân
 WRITE: Ghi vào bộ chốt cổng (RD-MD-WR)
 Thanh ghi ANSELH phải được khởi tạo để
cấu hình một ngõ vào tương tự thành ngõ
vào số
 Mỗi chân Port B đều có tính năng điện trở
kéo lên. 42
CẤU TRÚC VÀ CHỨC NĂNG PORT B

 Chân RB0 / AN12 / INT


 RB0: I/O đa mục đích
 AN12: Ngõ vào tương tự cho ADC
 INT: Ngõ vào ngắt ngoài kích cạnh.

43
CẤU TRÚC VÀ CHỨC NĂNG PORT B

 Chân RB1 / AN10 / C12IN3-


 RB1: I/O đa mục đích
 AN10: Ngõ vào tương tự cho ADC
 C12IN3-: Ngõ vào tương tự (-) cho bộ so sánh
C1 hoặc C2.

44
CẤU TRÚC VÀ CHỨC NĂNG PORT B

 Chân RB2 / AN8


 RB2: I/O đa mục đích
 AN8: Ngõ vào tương tự cho ADC

45
CẤU TRÚC VÀ CHỨC NĂNG PORT B

 Chân RB3 / AN9 / PGM / C12IN2-


 RB3: I/O đa mục đích
 AN9: Ngõ vào tương tự cho ADC
 PGM: Cho phép lập trình nối tiếp điện áp thấp
 C12IN2-: Ngõ vào tương tự (-) cho bộ so sánh
C1 hoặc C2.

46
CẤU TRÚC VÀ CHỨC NĂNG PORT B

 Chân RB4 / AN11


 RB4: I/O đa mục đích
 AN11: Ngõ vào tương tự cho ADC

47
CẤU TRÚC VÀ CHỨC NĂNG PORT B

 Chân RB5 / AN13 / T1G\


 RB5: I/O đa mục đích
 AN13: Ngõ vào tương tự cho ADC
 T1G\: Ngõ vào cổng của Timer 1.

48
CẤU TRÚC VÀ CHỨC NĂNG PORT B

 Chân RB6 / ICSPCLK


 RB6: I/O đa mục đích
 ICSPCLK: Xung clock lập trình nối tiếp

49
CẤU TRÚC VÀ CHỨC NĂNG PORT B

 Chân RB7 / ICSPDAT


 RB7: I/O đa mục đích
 ICSPDAT: Dữ liệu lập trình nối tiếp

50
CẤU TRÚC VÀ CHỨC NĂNG PORT B

Bảng tổng hợp chức năng của Port B 51


CẤU TRÚC VÀ CHỨC NĂNG PORT B

Bảng tổng hợp chức năng của Port B 52


CẤU TRÚC VÀ CHỨC NĂNG PORT B

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

X: Không biết – : Dự trữ (Đọc về có giá trị ‘0’)


U: Không thay đổi Tô đậm: Không dùng cho Port B

53
CẤU TRÚC VÀ CHỨC NĂNG PORT C

 Port C có 8 chân (RC0 – RC7)


 Việc ghi các giá trị (0 hoặc 1) vào thanh ghi
TRISC sẽ qui định chiều các chân Port C
 Các thao tác điều khiển Port:
 READ: Đọc trạng thái của chân
 WRITE: Ghi vào bộ chốt cổng (RD-MD-WR)

54
CẤU TRÚC VÀ CHỨC NĂNG PORT C

 Chân RC0 / T1OSO / T1CKI


 RC0: I/O đa mục đích
 T1OSO: Ngõ ra bộ dao động Timer 1
 T1CKI: Ngõ vào xung clock Timer 1.

55
CẤU TRÚC VÀ CHỨC NĂNG PORT C

 Chân RC1 / T1OSI / CCP2


 RC1: I/O đa mục đích
 T1OSI: Ngõ vào bộ dao động Timer 1
 CCP2: Ngõ vào bắt giữ (Captue) và ngõ ra so
sánh/điều xung (Compare/PWM) cho bộ so sánh
C2.

56
CẤU TRÚC VÀ CHỨC NĂNG PORT C

 Chân RC2 / P1A / CCP1


 RC2: I/O đa mục đích
 P1A: Ngõ ra điều xung
 CCP1: Ngõ vào bắt giữ (Captue) và ngõ ra so
sánh (Compare) cho bộ so sánh C1.

57
CẤU TRÚC VÀ CHỨC NĂNG PORT C

 Chân RC3 / SCK / SCL


 RC3: I/O đa mục đích
 SCK: Xung clock cho SPI
 SCL: Xung clock cho I2C.

58
CẤU TRÚC VÀ CHỨC NĂNG PORT C

 Chân RC4 / SDI / SDA


 RC4: I/O đa mục đích
 SDI: Ngõ vào dữ liệu nối tiếp cho SPI
 SDA: I/O dữ liệu nối tiếp cho I2C.

59
CẤU TRÚC VÀ CHỨC NĂNG PORT C

 Chân RC5 / SDO


 RC5: I/O đa mục đích
 SDO: Ngõ ra dữ liệu nối tiếp cho SPI

60
CẤU TRÚC VÀ CHỨC NĂNG PORT C

 Chân RC6 / TX / CK
 RC6: I/O đa mục đích
 TX: Ngõ ra nối tiếp bất đồng bộ cho USART
 CK: I/O xung clock đồng bộ cho USART.

61
CẤU TRÚC VÀ CHỨC NĂNG PORT C

 Chân RC7 / RX / DT
 RC7: I/O đa mục đích
 RX: Ngõ vào nối tiếp bất đồng bộ cho USART
 DT: I/O dữ liệu nối tiếp đồng bộ cho USART.

62
CẤU TRÚC VÀ CHỨC NĂNG PORT C

Bảng tổng hợp chức năng của Port C 63


CẤU TRÚC VÀ CHỨC NĂNG PORT C

Bảng tổng hợp chức năng của Port C 64


CẤU TRÚC VÀ CHỨC NĂNG PORT C

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

X: Không biết – : Dự trữ (Đọc về có giá trị ‘0’)


U: Không thay đổi Tô đậm: Không dùng cho Port C

65
CẤU TRÚC VÀ CHỨC NĂNG PORT D

 Port D có 8 chân (RD0 – RD7)


 Việc ghi các giá trị (0 hoặc 1) vào thanh ghi
TRISD sẽ qui định chiều các chân Port D
 Các thao tác điều khiển Port:
 READ: Đọc trạng thái của chân
 WRITE: Ghi vào bộ chốt cổng (RD-MD-WR).

66
CẤU TRÚC VÀ CHỨC NĂNG PORT D

 Chân RD<4:0>
 RD<4:0>: I/O đa mục đích.

67
CẤU TRÚC VÀ CHỨC NĂNG PORT D

 Chân RD5 / P1B


 RD5: I/O đa mục đích
 P1B: Ngõ ra điều xung.

68
CẤU TRÚC VÀ CHỨC NĂNG PORT D

 Chân RD6 / P1C


 RD6: I/O đa mục đích
 P1C: Ngõ ra điều xung.

69
CẤU TRÚC VÀ CHỨC NĂNG PORT D

 Chân RD7 / P1D


 RD7: I/O đa mục đích
 P1D: Ngõ ra điều xung.

70
CẤU TRÚC VÀ CHỨC NĂNG PORT D

Bảng tổng hợp chức năng của Port D 71


CẤU TRÚC VÀ CHỨC NĂNG PORT D

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

X: Không biết – : Dự trữ (Đọc về có giá trị ‘0’)


U: Không thay đổi Tô đậm: Không dùng cho Port D

72
CẤU TRÚC VÀ CHỨC NĂNG PORT E

 Port E có 4 chân (RE0 – RE3)


 Đối với PIC16F877A chỉ có 3 chân (RE0 – RE2)
 Việc ghi các giá trị (0 hoặc 1) vào thanh ghi
TRISE sẽ qui định chiều các chân Port B
 Các thao tác điều khiển Port:
 READ: Đọc trạng thái của chân
 WRITE: Ghi vào bộ chốt cổng (RD-MD-WR)
 Thanh ghi ANSEL phải được khởi tạo để
cấu hình một ngõ vào tương tự thành ngõ
vào số.
73
CẤU TRÚC VÀ CHỨC NĂNG PORT E

 Chân RE0 / AN5


 RE0: I/O đa mục đích
 AN5: Ngõ vào tương tự cho ADC

74
CẤU TRÚC VÀ CHỨC NĂNG PORT E

 Chân RE1 / AN6


 RE1: I/O đa mục đích
 AN6: Ngõ vào tương tự cho ADC

75
CẤU TRÚC VÀ CHỨC NĂNG PORT E

 Chân RE2 / AN7


 RE2: I/O đa mục đích
 AN7: Ngõ vào tương tự cho ADC

76
CẤU TRÚC VÀ CHỨC NĂNG PORT E

 Chân RE3 / MCLR\ / VPP


 RE3: Ngõ vào đa mục đích
 MCLR\: Ngõ vào reset chính của vi điều khiển

77
CẤU TRÚC VÀ CHỨC NĂNG PORT E

Bảng tổng hợp chức năng của Port E 78


CẤU TRÚC VÀ CHỨC NĂNG PORT E

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

X: Không biết – : Dự trữ (Đọc về có giá trị ‘0’)


U: Không thay đổi Tô đậm: Không dùng cho Port E

79
BỘ DAO ĐỘNG
 Có thể chọn lựa nguồn xung clock bên
trong hoặc bên ngoài
 Nguồn xung clock bên ngoài được cung cấp
cho PIC16F887 thông qua chân OSC1/CLKIN
và OSC2/CLKOUT
 Có nhiều tính năng đặc biệt:
 Có thể chọn lựa nguồn xung clock bên trong
hoặc bên ngoài bằng phần mềm
 Chế độ khởi động hai tốc độ (Two-Speed Start-
up) giãm độ trễ
 Giám sát lỗi xung clock (FSCM: Fail-Safe Clock
80

Monitor) tự động chuyển nguồn xung clock.


BỘ DAO ĐỘNG

81
Sơ đồ khối nguồn xung clock của PIC16F887
BỘ DAO ĐỘNG
 Có 8 chế độ xung clock khác nhau:
 6 chế độ dao động bên ngoài:
• EC – External clock with I/O on OSC2/CLKOUT
• LP – 32 KHz Low-Power Crystal mode
• XT – Medium Gain Crystal or Ceramic Resonator
Oscillator mode
• HS – High Gain Crystal or Ceramic Resonator
mode
• RC – External Resistor-Capacitor (RC) with FOSC/4
output on OSC2/CLKOUT
• RCIO – External Resistor-Capacitor (RC) with I/O
on OSC2/CLKOUT.
82
BỘ DAO ĐỘNG
 Có 8 chế độ xung clock khác nhau:
 2 chế độ dao động bên trong:
• INTOSC – Internal oscillator with FOSC/4 output on
OSC2 and I/O on OSC1/CLKIN
• INTOSCIO – Internal oscillator with I/O on
OSC1/CLKIN and OSC2/CLKOUT.

83
BỘ DAO ĐỘNG
 Các
chế độ xung clock được chọn bằng bit
FOSC<2:0> trong thanh ghi CONFIG1
 000: LP Oscillator
 001: XT Oscillator
 010: HS Oscillator
 011: EC Oscillator
 100: INTOSCIO Oscillator
 101: INTOSC Oscillator
 110: RCIO Oscillator
 111: RC Oscillator.
84
BỘ DAO ĐỘNG
 Các
chế độ xung clock được chọn bằng bit
FOSC<2:0> trong thanh ghi CONFIG1

Chế độ EC (External Clock)


85
BỘ DAO ĐỘNG
 Các
chế độ xung clock được chọn bằng bit
FOSC<2:0> trong thanh ghi CONFIG1

Chế độ LP, XT, HS


(Quartz Crystal) 86
BỘ DAO ĐỘNG
 Các
chế độ xung clock được chọn bằng bit
FOSC<2:0> trong thanh ghi CONFIG1

Chế độ XT, HS
(Ceramic Resonator)
87
BỘ DAO ĐỘNG
 Các
chế độ xung clock được chọn bằng bit
FOSC<2:0> trong thanh ghi CONFIG1

Chế độ RC
(Resistor Capacitor)

88
BỘ DAO ĐỘNG
 Thanh ghi OSCCON:
 Chọn lựa tần số (IRCF)
 Báo trạng thái tần số (HTS, LTS)
 Điều khiển xung clock hệ thống (OSTS, SCS).

Oscillator Control Register (OSCCON)


IRCF2 IRCF1 IRCF0 OSTS HTS LTS SCS

89
BỘ DAO ĐỘNG

Oscillator Control Register (OSCCON)


90
IRCF2 IRCF1 IRCF0 OSTS HTS LTS SCS
BỘ DAO ĐỘNG

Default: fOSC = 4MHz

Clock Frequency Select


IRCF<2:0> = 000 111

Oscillator Control Register (OSCCON)


R/W
91
IRCF2 IRCF1 IRCF0 OSTS HTS LTS SCS
BỘ DAO ĐỘNG
Oscillator Start-up
Time-out Status
1 – External
0 – Internal

Oscillator Control Register (OSCCON)


R
92
IRCF2 IRCF1 IRCF0 OSTS HTS LTS SCS
BỘ DAO ĐỘNG

OSC Stable
HTS = 1 – Stable
HTS = 0 – Not Stable

Oscillator Control Register (OSCCON)


R
93
IRCF2 IRCF1 IRCF0 OSTS HTS LTS SCS
BỘ DAO ĐỘNG

OSC Stable:
LTS = 1 – Stable
LTS = 0 – Not Stable

Oscillator Control Register (OSCCON)


R
94
IRCF2 IRCF1 IRCF0 OSTS HTS LTS SCS
BỘ DAO ĐỘNG
System Clock Select
SCS = 0 – External
SCS = 1 – Internal

Oscillator Control Register (OSCCON)


R/W
95
IRCF2 IRCF1 IRCF0 OSTS HTS LTS SCS
BỘ DAO ĐỘNG
 Thanh ghi OSCTUNE:
 Điều chỉnh tần số của HFINTOSC (TUN)
 Không có tác dụng đối với LFINTOSC.

Oscillator Tuning Register (OSCTUNE)


TUN4 TUN3 TUN2 TUN1 TUN0

10000, …..... ,11111,00000,00001, …..… ,01111


Minimum Factory Maximum
Freq. Freq. Freq.
96
BỘ DAO ĐỘNG
 Cácthanh ghi có liên hệ với nguồn xung
clock

X: Không biết – : Dự trữ (Đọc về có giá trị ‘0’


U: Không thay đổi Tô đậm: Không dùng cho bộ
dao động

97
BỘ DAO ĐỘNG
 Sinh viên tự đọc tài liệu và tìm hiểu thêm:
 Chế độ khởi động hai tốc độ (Two-Speed Start-
up Mode)
 Giám sát lỗi xung clock (FSCM: Fail-Safe Clock
Monitor).

98
RESET HỆ THỐNG
 Có nhiều loại tín hiệu reset:
 MCLR\ Reset
 POR (Power-On Reset)
 BOR (Brown-Out Reset)
 WDT Reset
 MCLR\ Reset là tín hiệu reset bên ngoài
hoặc bên trong
 WDT Reset, POR, BOR là các tín hiệu reset
bên trong.

99
RESET HỆ THỐNG

100

Sơ đồ khối mạch reset của PIC16F887


RESET HỆ THỐNG
 MCLR\ Reset
 Cho phép reset PIC từ mạch điện bên ngoài
 Được chọn lựa và cho phép bằng bit MCLRE
trong thanh ghi CONFIG1
• MCLRE\ = 0: Tín hiệu reset được tạo ra bên trong PIC,
chân RA3 là ngõ vào số (pull-up)
• MCLRE\ = 1: Tín hiệu reset
được tạo ra từ mạch điện
bên ngoài PIC, chân RA3
trở thành ngõ vào reset PIC,
tích cực mức thấp.

101
Mạch điện tạo tín hiệu MCLR\
RESET HỆ THỐNG
 POR (Power-On Reset)
 Giữ PIC ở trạng thái reset (vào thời điểm mới
cấp nguồn cho PIC) cho đến khi điện áp nguồn
cung cấp (VDD) đã đạt đến một giá trị đủ cao để
hoạt động tốt
 POR không tạo ra tín hiệu reset khi VDD bị giãm
trong quá trình hoạt động.
 Để kích hoạt lại POR, VDD phải giãm tới mức VSS
và giữ trong thời gian tối thiểu 100 s.

102
RESET HỆ THỐNG
 BOR (Brown-Out Reset)
 Tạo tín hiệu reset PIC khi điện áp nguồn cung
cấp (VDD) giãm xuống nhỏ hơn mức VBOR
 Được chọn lựa và cho phép bằng bit
BOREN<1:0> trong thanh ghi CONFIG1
 Giá trị VBOR được thiết lập bằng bit BOR4V trong
thanh ghi CONFIG2
• BOR4V = 0: VBOR đặt ở mức 2.1V
• BOR4V = 1: VBOR đặt ở mức 4.0V.

103
RESET HỆ THỐNG
 BOR (Brown-Out Reset)
VDD
V BOR

64ms
Internal
Reset

VDD
VBOR

64ms
Internal
Reset <64ms

VDD
V BOR

64ms
Internal
104
Reset
RESET HỆ THỐNG
 WDT Reset
 Tạo tín hiệu reset PIC sau một khoảng thời gian
được lập trình trước
 Chu kỳ reset từ 1ms đến 268s
 Được chọn lựa và cho phép bằng bit WDTE
trong thanh ghi CONFIG1.

105
RESET HỆ THỐNG

 POR (Power-On Reset)


 Khi MCLR được nối

với VDD, một xung


reset được tạo ra khi
cạnh lên VDD được
phát hiện
 PWRT (Power Up Timer)
 PIC được giữ ở trạng thái reset trong 64ms để VDD tăng

lên tới một mức chấp nhận được (tính từ sau POR)
 OST (Oscillator Start-up Timer)
 PIC được giữ reset trong 1024 chu kỳ để bộ dao động

(crystal, resonator) ổn định tần số và biên độ; không


hoạt động ở các chế độ RC (tính từ sau POR hoặc Wake 106

Up từ SLEEP).
RESET HỆ THỐNG
 Sinh viên tự đọc tài liệu và tìm hiểu thêm:
 Tính năng định thời chờ nguồn cung cấp ổn
định (Power-up Timer)
 Tính năng định thời chờ bộ dao động ổn định
(Oscillator Start-up Timer)
 Giá trị khởi tạo mặc định cho các thanh ghi khi
được reset.

107
NGUỒN CUNG CẤP
 Điện áp nguồn cung cấp từ 2.0V đến 5.5V
 Có 4 chân cấp nguồn:
 VDD (chân 11 và chân 32) +2.0V đến +5.5V
 VSS (chân 12 và chân 31) 0V
 Cả4 chân đều phải được kết nối thì PIC mới
hoạt động.

Quan hệ nguồn cung


cấp và tần số xung
108
clock hệ thống
NGUỒN CUNG CẤP

Minh họa kết nối PIC với


mạch cung cấp nguồn,
reset và xung clock

109
LẬP TRÌNH NỐI TIẾP TÍCH HỢP
 Khilập trình cho PIC chỉ cần 2 chân
 Được hỗ trợ cho các loại mạch nạp như:
ICD2, PICkit2, PICkit3. Pin Function
VPP Programming Voltage = 13V
VDD Supply Voltage
Application PCB VDD VDD VSS Ground
RB6 Clock Input
RB7 Data I/O & Command Input
MCLR/VPP

ICSP Connector
PIC16Fxxx

VDD

VSS

RB6

RB7

Isolation 110
To application circuit
circuits
TỔ CHỨC BỘ NHỚ CỦA PIC16F887

Nội dung bao gồm:


 Bộ nhớ chương trình (Program Memory)
 Bộ đếm chương trình (Program Counter)
 Ngăn xếp (Stack)
 Bộ nhớ dữ liệu (Data Memory)
 RAM
 EEPROM
 Thanhghi chức năng đặc biệt khác (Special
Function Registers).

111
BỘ NHỚ CHƯƠNG TRÌNH

 Dung lượng: 8K word Reset Vector 0000h


 8K x 14bit = 14Kbyte
 Vectơ RESET: 0000h
 Bộ đếm chương trình Interrupt Vector 0004h
0005h
(PC) sẽ đi tới địa chỉ này Page 0 ………………………
2K
PCH = 00h 07FFh
ngay khi bị reset
Page 1 0800h
 Vectơ ngắt: 0004h 2K
………………………….

PCH = 08h 0FFFh


 Bộ đếm chương trình Page 2 1000h
2K
…………………………………….

(PC) sẽ đi tới địa chỉ này PCH = 10h 17FFh


ngay khi có một sự kiện Page 3 1800h
2K
………………………….

ngắt bất kỳ. PCH = 18h 1FFFh


112
BỘ NHỚ CHƯƠNG TRÌNH
 Bộ đếm chương trình: PCLATH
 Có 13 bit (PCH + PCL) PC<12:0>
 PCL: Từ kết quả ALU (8 bit) hoặc PCH<12:8> PCL
từ mã lệnh (11 bit)
CALL, RETURN,
 PCH: Các bit chọn trang RETFIE, RETLW
• Được cập nhật từ PCLATH Stack Level 1
• Xác định trang hiện tại trong bộ
nhớ chương trình
 Ngăn xếp:
 Có 8 mức, hoạt động theo vòng kín Stack Level 8

 Dùng lưu lại nội dung của PC PROGRAM


• Cất vào (PUSH): CALL / Interrupt MEMORY
• Lấy ra (POP): RETURN,
113
RETFIE,RETLW.
BỘ NHỚ DỮ LIỆU - RAM

 Dung lượng: 368Byte (368 x 8bit)


 Bộ 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 128 Byte, gồm:
 Thanh ghi đa mục đích (GPR) RAM
 Thanh ghi chức năng đặc biệt (SFR)
 Các Bank này được RP1 RP0 Bank

lựa chọn bởi hai bit 0 0 Bank 0


0 1 Bank 1
RP<1:0> nằm trong
1 0 Bank 2
thanh ghi STATUS.
1 1 Bank 3
114
BỘ NHỚ DỮ LIỆU - RAM

 GPR – General Purpose Register:


 Dung lượng: 368 x 8bit
000h 080h 100h 180h
Special Special SFR 10Fh SFR 18Fh
Function Function 110h 190h
Registers Registers 09Fh
01Fh
020h 0A0h

128 General General General General


Bytes General
Purpose Purpose
General Purpose
General Purpose
General
Purpose
Registers Registers
Purpose Registers
Purpose Registers
Purpose
Registers Registers Registers Registers

0EFh 16Fh 1EFh

07Fh
Shared 0FFh
Shared 17Fh
Shared 1FFh
115

Bank 0 Bank 1 Bank 2 Bank 3


BỘ NHỚ DỮ LIỆU - RAM

 GPR – General Purpose Register:


 Truy xuất tương tự như một RAM tĩnh
000h 080h 100h 180h
Special Special SFR 10Fh SFR 18Fh
Function Function 110h 190h
Registers Registers 09Fh
01Fh
020h 0A0h

128 General General General General


Bytes General
Purpose Purpose
General Purpose
General Purpose
General
Purpose
Registers Registers
Purpose Registers
Purpose Registers
Purpose
Registers Registers Registers Registers

0EFh 16Fh 1EFh

07Fh
Shared 0FFh
Shared 17Fh
Shared 1FFh
116

Bank 0 Bank 1 Bank 2 Bank 3


BỘ NHỚ DỮ LIỆU - RAM

 GPR – General Purpose Register:


 Truy xuất trực tiếp, gián tiếp qua thanh ghi FSR.
000h 080h 100h 180h
Special Special SFR 10Fh SFR 18Fh
Function Function 110h 190h
Registers Registers 09Fh
01Fh
020h 0A0h

128 General General General General


Bytes General
Purpose Purpose
General Purpose
General Purpose
General
Purpose
Registers Registers
Purpose Registers
Purpose Registers
Purpose
Registers Registers Registers Registers

0EFh 16Fh 1EFh

07Fh
Shared 0FFh
Shared 17Fh
Shared 1FFh
117

Bank 0 Bank 1 Bank 2 Bank 3


BỘ NHỚ DỮ LIỆU - RAM

 SFR – Special Function Register:


 Dung lượng: 88 thanh ghi x 8bit
000h 080h 100h 180h
Special Special SFR 10Fh SFR 18Fh
Function Function 110h 190h
Registers Registers 09Fh
01Fh
020h 0A0h

128 General General General General


Bytes General
Purpose Purpose
General Purpose
General Purpose
General
Purpose
Registers Registers
Purpose Registers
Purpose Registers
Purpose
Registers Registers Registers Registers

0EFh 16Fh 1EFh

07Fh
Shared 0FFh
Shared 17Fh
Shared 1FFh
118

Bank 0 Bank 1 Bank 2 Bank 3


BỘ NHỚ DỮ LIỆU - RAM

 SFR – Special Function Register:


 Truy xuất tương tự như một RAM tĩnh
000h 080h 100h 180h
Special Special SFR 10Fh SFR 18Fh
Function Function 110h 190h
Registers Registers 09Fh
01Fh
020h 0A0h

128 General General General General


Bytes General
Purpose Purpose
General Purpose
General Purpose
General
Purpose
Registers Registers
Purpose Registers
Purpose Registers
Purpose
Registers Registers Registers Registers

0EFh 16Fh 1EFh

07Fh
Shared 0FFh
Shared 17Fh
Shared 1FFh
119

Bank 0 Bank 1 Bank 2 Bank 3


BỘ NHỚ DỮ LIỆU - RAM

 SFR – Special Function Register:


 Truy xuất bởi CPU và các chức năng ngoại vi.
000h 080h 100h 180h
Special Special SFR 10Fh SFR 18Fh
Function Function 110h 190h
Registers Registers 09Fh
01Fh
020h 0A0h

128 General General General General


Bytes General
Purpose Purpose
General Purpose
General Purpose
General
Purpose
Registers Registers
Purpose Registers
Purpose Registers
Purpose
Registers Registers Registers Registers

0EFh 16Fh 1EFh

07Fh
Shared 0FFh
Shared 17Fh
Shared 1FFh
120

Bank 0 Bank 1 Bank 2 Bank 3


BỘ NHỚ DỮ LIỆU - EEPROM

 Sinh viên tự đọc tài liệu và tìm hiểu thêm:


 Cấu trúc bộ nhớ dữ liệu EEPROM
 Phương pháp điều khiển (ghi và đọc) bộ nhớ dữ
liệu EEPROM
 Phương pháp bảo mật dữ liệu (Protect Code).

121
THANH GHI CHỨC NĂNG ĐẶC BIỆT

 Liệtkê các
SFR của
PIC16F887
(Chức năng
và nhiệm vụ
của các SFR
sẽ lần lượt
được trình
bày trong các
bài sau)
122
CHƯƠNG 2: CẤU TRÚC PHẦN CỨNG PIC16F887

CÁM ƠN
SỰ CHÚ Ý LẮNG NGHE

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

GIẢI ĐÁP
CÁC CÂU HỎI
VỀ BÀI HỌC
124

You might also like