Giới thiệu về PIC 16F877A

Trong bài viết này, Điện Tử Tương Lai sẽ giới thiệu cho người mua về PIC 16F877A. Đây là vi điều khiển PIC được dùng phổ cập} nhất vì tính linh hoạt trong hoạt động, tính khả dụng và giá rẻ.

Bạn có thể tham khảo giá siêu phẩm tại đây vi điều khiển PIC16F877A

Điện Tử Tương Lai đã nhận được siêu nhiều đề nghị về PIC16F877a từ những sinh viên kỹ thuật vì vi điều khiển PIC này được dùng nhiều trong những dự án kỹ thuật. Vì vậy, đấy là nguyên nhân tại sao Điện Tử Tương Lai sẽ chia sẻ đa số thông tin chi tiết về PIC16F877a.

PIC16F877A là gì

PIC16F877A là 1 Vi điều khiển PIC 40 chân và được dùng gần như trong những dự án và ứng dụng nhúng. Nó có 5 cổng khởi đầu từ cổng A tới cổng E. Nó có cha bộ định thời trong đấy có 2 bộ định thời 8 bit và 1 bộ định thời là 16 Bit. Nó tương trợ nhiều giao thức giao tiếp như giao thức nối tiếp, giao thức đồng thời, giao thức I2C. PIC16F877A tương trợ cả ngắt chân hartware và ngắt bộ định thời.

Thông số kỹ thuật PIC16F877A

CPU

PIC 8 bit

Cấu trúc

8

Kích thước bộ nhớ chương trình (Kbyte)

14

RAM (bytes)

368

EEPROM/HEF

256/HEF

Số chân

40

Tốc độ CPU cao nhất} (MHz)

20

Chọn chân ngoại vi (PPS)

Ko

Bộ tạo dao động bên trong

Ko

Số bộ so sánh

2

Số opamp

Ko

Số kênh ADC

14

Độ phân giải ADC cao nhất} (bit)

10

ADC có tính toán

Ko

Số bộ chuyển đổi DAC

0

Độ phân giải DAC cao nhất}

0

Tham chiếu điện áp nội bộ

Zero Cross Detect

Ko

Số bộ định thời 8 bit

2

Số bộ định thời 16 bit

1

Bộ định thời đo tín hiệu

0

Bộ định thời giới hạn hartware

0

Số đầu ra PWM

0

Độ phân giải PWM cao nhất}

10

Bộ định thời góc

Ko

Bộ bức tốc toán học

Ko

Số module UART

1

Số module SPI

1

Số module I2C

1

Số module USB

0

Bộ định thời giám sát có cửa sổ (WWDT)

Ko

CRC/Scan

Ko

Bộ tạo dao động được điều khiển bằng số

0

Cap. Cảm ứng Channels

11

LCD phân đoạn

0

Nhiệt độ hoạt động tối thiểu (* C)

-40

Nhiệt độ hoạt động cao nhất} (* C)

125

Điện áp hoạt động tối thiểu (V)

2

Điện áp hoạt động cao nhất} (V)

5.5

Điện áp cao có thể

Ko

Sơ đồ chân PIC16F877A

Hình dưới đây là Sơ đồ chân PIC16F877A. Bên cạnh ra còn có bảng thông tin chi tiết đi kèm số thứ tự động của chân, tên tương ứng và mô tả sơ lược về chân.

Giới thiệu về PIC 16F877A

STT chân

Tên chân

Mô tả

1

MCLR / Vpp

MCLR được dùng trong quy trình lập trình, chủ yếu được kết nối có programer như PicKit

2

RA0 / AN0

Chân analog 0 hoặc chân 0 của PORTA

3

RA1 / AN1

Chân analog 1 hoặc chân 1 của PORTA

4

RA2 / AN2 / Vref-

Chân analog 2 hoặc chân 2 của PORTA

5

RA3 / AN3 / Vref +

Chân analog 3 hoặc chân 3 của PORTA

6

RA4 / T0CKI / C1out

Chân 4 của PORTA

7

RA5/AN4/SS/C2out

Chân analog 4 hoặc chân 5 của PORTA

8

RE0 / RD / AN5

Chân analog 5 hoặc chân 0 của PORTE

9

RE1 / WR / AN6

Chân analog 6 hoặc chân 1 của PORTE

10

RE2/CS/AN7

Chân 7 của PORTE

11

Vdd

Chân nối đất của MCU

12

Vss

Xem Thêm  5 1988 mệnh gì? Tìm hiểu phong thuỷ về người sinh 1988

Chân dương của MCU (+5V)

13

OSC1 / CLKI

Bộ dao động bên bên cạnh / chân đầu vào clock

14

OSC2 / CLKO

Bộ dao động bên bên cạnh / chân đầu vào clock

15

RC0 / T1OSO / T1CKI

Chân 0 của PORT C

16

RC1 / T1OSI / CCP2

Chân 1 của POCTC hoặc chân Timer / PWM

17

RC2 / CCP1

Chân 2 của POCTC hoặc chân Timer / PWM

18

RC3 / SCK / SCL

Chân 3 của POCTC

19

RD0 / PSP0

Chân 0 của POCTD

20

RD1 / PSPI

Chân 1 của POCTD

21

RD2 / PSP2

Chân 2 của POCTD

22

RD3 / PSP3

Chân 3 của POCTD

23

RC4 / SDI / SDA

Chân 4 của POCTC hoặc chân Serial Knowledge vào

24

RC5 / SDO

Chân 5 của POCTC hoặc chân Serial Knowledge ra

25

RC6 / Tx / CK

Chân thứ 6 của POCTC hoặc chân phát của Vi điều khiển

26

RC7 / Rx / DT

Chân thứ 7 của POCTC hoặc chân thu của Vi điều khiển

27

RD4 / PSP4

Chân 4 của POCTD

28

RD5/PSP5

Chân 5 của POCTD

29

RD6/PSP6

Chân 6 của POCTD

30

RD7/PSP7

Chân 7 của POCTD

31

Vss

Chân dương của MCU (+5V)

32

Vdd

Chân nối đất của MCU

33

RB0/INT

Chân thứ 0 của POCTB hoặc chân ngắt bên cạnh

34

RB1

Chân thứ 1 của POCTB

35

RB2

Chân thứ 2 của POCTB

36

RB3/PGM

Chân thứ 3 của POCTB hoặc kết nối có programmer

37

RB4

Chân thứ 4 của POCTB

38

RB5

Chân thứ 5 của POCTB

39

RB6/PGC

Chân thứ 6 của POCTB hoặc kết nối có programmer

40

RB7/PGD

Chân thứ 7 của POCTB hoặc kết nối có programmer

Bạn có thể thấy trong hình trên những chân của Vi điều khiển PIC có nhiều hơn 1 tên, vì từng chân của PIC có thể thực hành nhiều nhiệm vụ.

Dí dụ, Chân số 25, nó có thể được dùng như 1 chân số 6 cổng C kỹ thuật số (RC6) và cũng có thể được dùng như 1 Bộ phát (TX) cho giao tiếp nối tiếp.

Vì vậy nó sẽ tùy thuộc} thuộc vào bí quyết bạn muốn dùng từng chân. Trong bài chỉ dẫn này chúng ta sẽ đánh giá gần như những chức năng của chân.

Nguồn cơ bản PIC16F877A

Từng vi điều khiển PIC có 1 ổ cơ bản và trường hợp bạn ko thiết kế ổ cơ bản thì nó sẽ ko hoạt động.

Nó giống như cấp nguồn cho vi điều khiển PIC và nó hoạt động trên mức + 5V.

Trường hợp bạn muốn bật quạt thì bạn sẽ làm cho gì? Bạn chỉ cần phân phối điện cho nó và đấy là những gì chúng ta sẽ làm cho có PIC nhưng trong trường hợp của PIC, chúng ta cũng cần phân phối tần số mà nó sẽ hoạt động.

Chúng ta cần thiết kế ổ cơ bản và ổ cơ bản này chứa công suất cũng như tần số mà nó sẽ hoạt động.

Để phân phối tần số cho vi điều khiển PIC, chúng ta dùng bộ dao động tinh thể và đối có PIC 16F877a, bạn có thể dùng bộ dao động tinh thể dải tần từ 4MHz tới 40MHz.

Đây là Nguồn cơ bản PIC16F877a mà bạn cần thiết kế:

Giới thiệu về PIC 16F877A

Giải thích ổ trên

Chân số 1: Chân này được gọi là MCLR (Grasp Clear) và chúng ta cần cấp 5V cho chân này thông qua điện trở 10k-ohm.

Chân số 11 và chân số 32: Những chân này được ký hiệu là Vdd nên chúng ta cũng cần cấp cho nó + 5V và bạn có thể thấy những đường này có màu sắc đỏ trong hình trên.

Xem Thêm  10 điểm du lịch miền Nam đẹp nhất ko thể bỏ lỡ

Chân số 12 và chân số 31: Những chân này là Vss, vì vậy chúng ta cấp GND (nối đất) tại chân này và những đường của nó có màu sắc đen.

Chân số 13 và 14: Những chân này được đặt tên là OSC1 (Bộ tạo dao động 1) và OSC2 (Bộ tạo dao động 2), ngay thời điểm hiện tại} chúng ta buộc phải gắn bộ tạo dao động tinh thể (16MHz) tại những chân này trên đường màu sắc cam. Sau bộ dao động tinh thể, chúng ta có tụ điện 33pF và tiếp theo được nối đất.

Chúng ta đã thiết kế ổ cơ bản và ngay thời điểm hiện tại} vi điều khiển PIC đã sẵn sàng hoạt động và bạn cũng có thể thấy 1 LED được gắn trên chân số 21, đấy là bởi vì chúng ta cũng cần đánh giá xem nó có đang chạy hay ko để chúng ta có thể bật hoặc tắt đèn LED này.

Những cổng PIC16F877A

Trong ổ cơ bản, chúng ta đã dùng đa số những chân nguồn của vi điều khiển PIC, trong lúc đa số những chân cổng vẫn còn chưa được dùng.

Vì vậy, ngay thời điểm hiện tại} lúc chúng ta đã cấp nguồn cho bộ vi điều khiển PIC, điều tiếp theo chúng ta cần làm cho là thiết kế 1 số code và dùng những cổng vi điều khiển PIC. Trước tiên chúng ta hãy xem xét những Cổng PIC16F877a.

PIC16F877a có tổng cùng 5 Cổng là:

Cổng A: có tổng cùng 6 chân khởi đầu từ chân số 2 tới chân số 7. Những chân cổng A được ký hiệu từ RA0 tới RA5 trong đấy RA0 là ký hiệu của chân trước tiên của Cổng A.

Cổng B: có tổng cùng 8 chân khởi đầu từ chân số 33 tới chân số 40. Những chân cổng B được ký hiệu từ RB0 tới RB7 trong đấy RB0 là ký hiệu của chân trước tiên của cổng B.

Cổng C: có tổng cùng 8 Chân. Những chân của nó ko được thẳng hàng có nhau. 4 chân trước tiên của cổng C nằm trên chân số 15 tới chân số 18, còn 4 chân cuối cùng nằm trên chân số 23 tới chân số 26.

Cổng D: có tổng cùng 8 chân. Những chân của nó cũng ko thẳng hàng có nhau. 4 chân trước tiên của cổng D nằm trên chân số 19 tới chân số 22, trong lúc 4 chân cuối cùng nằm trên chân số 27 tới chân số 30.

Cổng E: có tổng cùng 3 chân khởi đầu từ chân số 8 tới chân số 10. Những chân cổng E được ký hiệu từ RE0 tới RE2 trong đấy RE0 là ký hiệu của chân trước tiên của cổng E.

Trước hết những gì bạn cần quyết định là bạn muốn những chân cổng là đầu vào hay đầu ra.

Giả sử bạn có 1 số cảm biến và bạn muốn nhận giá trị của nó thì bạn buộc phải kết nối cảm biến này có vi điều khiển PIC. Trong trường hợp này, chân PIC sẽ hoạt động như chân đầu vào vì nó sẽ nhập giá trị từ cảm biến. Cảm biến gửi giá trị và PIC nhận nó.

Trong trường hợp bạn có động cơ DC và bạn muốn đi lại động cơ DC đấy bằng vi điều khiển PIC. Bạn buộc phải gửi lệnh từ bộ vi điều khiển PIC tới động cơ DC để chân PIC hoạt động như chân đầu ra.

Xem Thêm  Gỗ HDF là gì? Đặc điểm và phương pháp phân biệt gỗ HDF ?

Từng cổng của vi điều khiển PIC được hợp tác có 2 thanh ghi (register), dí dụ những thanh ghi cổng D là PortD và TRISD.

Cả 2 thanh ghi này đều có 8 bit vì cổng D có 8 chân.

TRISD quyết định cổng là đầu ra hay đầu vào và chúng ta cũng có thể gán giá trị cho từng chân biệt lập. Trường hợp chúng ta đã gán 0 thì nó sẽ là đầu ra và trường hợp chúng ta đã gán 1 thì nó sẽ là đầu vào.

Dí dụ: trường hợp chúng ta gán TRISD = 0x01, thì 7 chân trước tiên của cổng D sẽ là đầu ra nhưng chân cuối cùng sẽ là đầu vào vì 0x01 là 00000001 trong hệ nhị phân.

Thanh ghi PortD chứa giá trị thực và giá trị này là sự hài hòa của đa số 8 chân.

Trình biên dịch PIC16F877a

Trình biên dịch chính thức của vi điều khiển PIC là trình biên dịch MPLAB C18, có trên trang internet chính thức của Microchip.

Chúng ta viết code trong trình biên dịch PIC và tiếp theo biên dịch nó. Sau khoản thời gian biên dịch, 1 file hex được tạo và chúng ta sẽ tải lên trong bộ vi điều khiển PIC.

Cổng nối tiếp PIC16F877a

PIC16F877a có 1 cổng nối tiếp trong đấy được dùng để giao tiếp dữ liệu.

Chân số 25 cũng hoạt động như TX vì vậy trường hợp bạn muốn thực hành giao tiếp nối tiếp thì nó sẽ được dùng để gửi dữ liệu nối tiếp.

Chân 26 cũng hoạt động như RX, vì vậy trường hợp bạn muốn thực hành giao tiếp nối tiếp thì nó sẽ được dùng để nhận dữ liệu nối tiếp.

Giao tiếp I2C PIC16F877a

PIC16F877a cũng có 1 cổng I2C có thể dễ dàng thực hành giao tiếp I2C.

Chân số 18 hoạt động như SCL, viết tắt của Serial Clock Line.

Chân số 23 hoạt động như SDA, là chữ viết tắt của Serial Knowledge Line.

Ngay thời điểm hiện tại} bạn có thể thấy chúng ta có cổng nối tiếp và cổng I2C trong cổng C, vì vậy chúng ta có thể dùng cổng C như 1 cổng đơn giản nhưng cũng có thể thực hành 2 giao tiếp này có những chân của nó, vì vậy nó hoàn toàn phụ thuộc vào lập trình viên.

Ngắt PIC16F877a

PIC16F877a có tổng cùng 8 nguồn ngắt. Nguồn ngắt là 1 số sự kiện tạo ra ngắt, nguồn này có thể là bộ đếm thời kì như những ngắt được tạo sau từng 1 giây hoặc cũng có thể là sự kiện thay thế đổi trạng thái chân, chẳng hạn như trường hợp trạng thái chân bị thay thế đổi tiếp theo ngắt sẽ được tạo ra.

Vì vậy, ngắt PIC16F877a có thể được tạo ra bằng 8 bí quyết sau:

  • Ngắt bên cạnh.
  • Ngắt bộ định thời (Timer0 / Timer1).
  • Thay đổi đổi trạng thái cổng B.
  • Cổng Slave Đồng thời Đọc / Ghi.
  • Bộ chuyển đổi A / D.
  • Nhận / Truyền nối tiếp.
  • PWM (CCP1 / CCP2).
  • Thực hiện ghi EEPROM.

Ngắt PIC16F877a được hợp tác có 5 thanh ghi dưới đây:

  • INTCON
  • PIE1
  • PIR1
  • PIE2
  • PIR2