Nói về vi điều khiển PIC 16F877A thì có lẽ một thời là con vi điều khiển hay được dùng nhất dù sau này người dùng có xu hướng chuyển sang con 16F887 giá rẻ hơn mà tính năng lại tương tự. Tuy nhiên 16F877A vẫn được nói đến rất nhiều trên các diễn đàn về PIC cũng như các giáo trình dạy lập trình vi điều khiển PIC.

16F877A

Với 40 chân và đầy đủ các tính năng như : Ngắt (Interrupt), Timer, Counter, UART, I2C, EEPROM, PWM, ADC...thì đây là dòng chip tuyệt vời cho các bạn mới học lập trình vi điều khiển PIC. Dưới đây là bảng liệt kê tài nguyên của chip 16F877A :

  • 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ế độ 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)
  • 8K x 14 bits/word 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 ra.
  • 2 Bộ định thời 8 bit Timer 0 và Timer 2.
  • 1 Bộ định thời 16 bit Timer 1
  • 2 Bộ Capture/ Compare/ PWM.
  • 8 kênh Analog to Digital 10 bit.
  • 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).

Sơ đồ khối của PIC 16F877A :

                                                                                     (block diagram PIC 16F877A from page 6 datasheet)

 

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

Số chân

Kí hiệu

Tính năng

1

/MCLR/VPP

– /MCLR: Chân Reset tích cực mức thấp
– VPP : ngõ vào điện áp lập trình

2

RA0/AN0

– RA0 : I/O xuất/nhập
– AN0 : ngõ vào tương tự kênh AN0

3

RA1/AN1

– RA1 : I/O xuất/nhập
– AN1 : ngõ vào tương tự kênh AN1

4

RA2/AN2/VREF-/CVREF

– RA2 : I/O xuất/nhập
– AN2 : ngõ vào tương tự kênhAN2
– VREF -: ngõ vào điện áp chuẩn (-) của A/D

5

RA3/AN3/VREF+

– RA3 : I/O xuất/nhập
– AN3 : ngõ vào tương tự kênh AN3
– VREF+ : ngõ vào điện áp chuẩn (+) của bộ A/D

6

RA4/TOCKI/C1OUT

– RA4 : I/O xuất/nhập
– TOCKI : ngõ vào xung clock bên ngoài cho timer0
– C1 OUT : Ngõ ra bộ so sánh 1

7

RA5/AN4//SS /C2OUT

– RA5 : I/O xuất/nhập
– AN4 : ngõ vào tương tự kênh AN4
– SS : ngõ vào chọn lựa SPI phụ
– C2 OUT : ngõ ra bộ so sánh 2

8

RE0//RD/AN5

– RE0 : I/O xuất nhập
– RD : điều khiển việc đọc port  song song
– AN5 : ngõ vào tương tự kênh AN5

9

RE1//WR/AN6

– RE1 :I/O xuất/nhập
– WR : điều khiển việc ghi port  song song
– AN6 : ngõ vào tương tự kênh AN6

10

RE2//CS/AN7

– RE2 : I/O xuất/nhập
– CS : Chip lựa chọn sự điều khiển port song song
– AN7 : ngõ vào tương tự kênh AN7

11

VDD

Chân nguồn của PIC. 

12

VSS

Chân  đất GND

13

OSC1/CLKI

Ngõ vào dao động thạch anh hoặc xung clock bên
ngoài.
– OSC1 : ngõ vào dao động thạch anh hoặc xung
clock bên ngoài. 
– CLKI : ngõ vào nguồn xung bên ngoài. Luôn được


14

OSC2/CLKO

Ngõ vào dao động thạch anh hoặc xung clock
– OSC2 : Ngõ ra dao động thạch anh. 
– CLKO : ở chế độ RC, ngõ ra của OSC2, bằng tần
số của OSC1 .

15

RC0/T1 OCO/T1CKI

– RC0 : I/O xuất/nhập
– T1OCO : ngõ vào bộ dao động Timer 1
– T1CKI : ngõ vào xung clock bên ngoài Timer 1

16

RC1/T1OSI/CCP2

– RC1 : I/O xuất/nhập
– T1OSI : ngõ vào bộ dao động Timer 1
– CCP2 : ngõ vào Capture 2, ngõ ra compare 2, ngõ ra PWM2

17

RC2/CCP1

– RC2 : I/O xuất/nhập
– CCP1 : ngõ vào Capture 1, ngõ ra compare 1, ngõ ra PWM1

18

RC3/SCK/SCL

– RC3 : I/O xuất/nhập
– SCK : ngõ vào xung clock nối tiếpcủa chế độ SPI
– SCL : ngõ vào xung clock nối tiếp của chế độI2C

19

RD0/PSP0

– RD0 : I/O xuất/nhập
– PSP0 : dữ liệu port nhánh song song

20

RD1/PSP1

– RD1 : I/O xuất/nhập
– PSP1 : dữ liệu port nhánh song song

21

RD2/PSP2

– RD2 : I/O xuất/nhập
– PSP2 : dữ liệu port nhánh song song

22

RD3/PSP3

– RD3: I/O xuất/nhập
– PSP3 : dữ liệu port nhánh song song

23

RC4/SDI/SDA

– RC4 : I/O xuất/nhập
– SDI : dữ liệu vào SPI
– SDA : xuất/nhập dữ liệu vào I2C

24

RC5/SDO

– RC5 : I/O xuất/nhập
– SDO : dữ liệu ra SPI

25

RC6/TX/CK

– RC6 : I/O xuất/nhập 
– TX : truyền bất đồng bộ USART
– CK : xung đồng bộ USART

26

RC7/RX/DT

– RC7 : I/O xuất/nhập
– RX : nhận bất đồng USART
– DT : dữ liệu đồng bộ USART

27

RD4/PSP

– RD4: xuất/nhập số
– PSP4 : dữ liệu port nhánh song song

28

RD5/PSP5

– RD5: I/O xuất/nhập
– PSP5 : dữ liệu port nhánh song song

29

RD6/PSP6

– RD6: I/O xuất/nhập
– PSP6 : dữ liệu port nhánh song song

30

RD7/PSP7

– RD7: I/O xuất/nhập
– PSP7 : dữ liệu port nhánh song song



31

VSS

Chân nối đất GND

32

VDD

Chân nguồn của PIC.

33

RB0/INT

– RB0 : I/O xuất/nhập
– INT : ngắt ngoài

34

RB1

I/O xuất/nhập

35

RB2

I/O xuất/nhập

36

RB3

– RB3 : I/O xuất/nhập
– Chân cho phép lập trình điện áp thấp ICPS

37

RB4

– I/O xuất/nhập
– Ngắt PortB

38

RB5

– I/O xuất/nhập
– Ngắt PortB

39

RB6/PGC

– RB6 : I/O xuất/nhập
– PGC : xung clock lập trình ICSP
– Ngắt PortB

40

RB7/PGD

– RB7 : I/O xuất/nhập
– PGD :dữ liệu lập trình ICSP
– Ngắt PortB

Các bạn có thể xem bài hướng dẫn mô phỏng PIC 16F877A trên Proteus để làm quen với loại vi điều khiển này.

 Kết luận : Với những ưu điểm trên PIC 16F877A là một dòng vi điều khiển đáng để nghiên cứu và học tập. Chúc các bạn thành công với dòng vi điều khiển này.

Epicviet.com