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 các bạn về PIC 16F877A. Đây là vi điều khiển PIC được sử dụng phổ biến 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á sản phẩm tại đây vi điều khiển PIC16F877A

Điện Tử Tương Lai đã nhận được rất nhiều yêu cầu về PIC16F877a từ các sinh viên kỹ thuật vì vi điều khiển PIC này được sử dụng nhiều trong các dự án kỹ thuật. Vì vậy, đó là lý do tại sao Điện Tử Tương Lai sẽ chia sẻ tất cả thông tin chi tiết về PIC16F877a.

PIC16F877A là gì

PIC16F877A là một Vi điều khiển PIC 40 chân và được sử dụng hầu hết trong các dự án và ứng dụng nhúng. Nó có năm cổng bắt đầu từ cổng A đến cổng E. Nó có ba bộ định thời trong đó có 2 bộ định thời 8 bit và 1 bộ định thời là 16 Bit. Nó hỗ trợ nhiều giao thức giao tiếp như giao thức nối tiếp, giao thức song song, giao thức I2C. PIC16F877A hỗ trợ cả ngắt chân phần cứng 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 tối đa (MHz)

20

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

Không

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

Không

Số bộ so sánh

2

Số opamp

Không

Số kênh ADC

14

Độ phân giải ADC tối đa (bit)

10

ADC với tính toán

Không

Số bộ chuyển đổi DAC

Độ phân giải DAC tối đa

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

Zero Cross Detect

Không

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

Bộ định thời giới hạn phần cứng

Số đầu ra PWM

Độ phân giải PWM tối đa

10

Bộ định thời góc

Không

Bộ tăng tốc toán học

Không

Số module UART

1

Số module SPI

1

Số module I2C

1

Số module USB

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

Không

CRC/Scan

Không

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

Cap. Touch Channels

11

LCD phân đoạn

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

-40

Nhiệt độ hoạt động tối đa (* C)

125

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

2

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

5.5

Điện áp cao có thể

Không

Sơ đồ chân PIC16F877A

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

STT chân

Tên chân

Mô tả

1

MCLR / Vpp

MCLR được sử dụng trong quá trình lập trình, chủ yếu được kết nối với 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

Xem thêm thông tin hay:  RFC

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

12

Vss

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

13

OSC1 / CLKI

Bộ dao động bên ngoài / chân đầu vào clock

14

OSC2 / CLKO

Bộ dao động bên ngoài / 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 Data vào

24

RC5 / SDO

Chân 5 của POCTC hoặc chân Serial Data 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 ngoài

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 với 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 với programmer

40

RB7/PGD

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

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

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

Vì vậy nó sẽ tùy thuộc vào cách bạn muốn sử dụng từng chân. Trong bài hướng dẫn này chúng ta sẽ kiểm tra hầu hết các chức năng của chân.

Mạch cơ bản PIC16F877A

Mỗi vi điều khiển PIC có một mạch cơ bản và nếu bạn không thiết kế mạch cơ bản thì nó sẽ không hoạt động.

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

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

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

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

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

Giải thích mạch trên

Chân số 1: Chân này được gọi là MCLR (Master 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: Các 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 các đường này có màu đỏ trong hình trên.

Xem thêm thông tin hay:  License là gì? Tại sao chúng ta nên sử dụng phần mềm có License?

Chân số 12 và chân số 31: Các 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à các đường của nó có màu đen.

Chân số 13 và 14: Các chân này được đặt tên là OSC1 (Bộ tạo dao động 1) và OSC2 (Bộ tạo dao động 2), bây giờ chúng ta phải gắn bộ tạo dao động tinh thể (16MHz) tại các chân này trên đường màu cam. Sau bộ dao động tinh thể, chúng ta có tụ điện 33pF và sau đó được nối đất.

Chúng ta đã thiết kế mạch cơ bản và bây giờ vi điều khiển PIC đã sẵn sàng hoạt động và bạn cũng có thể thấy một LED được gắn ở chân số 21, đó là bởi vì chúng ta cũng cần kiểm tra xem nó có đang chạy hay không để chúng ta có thể bật hoặc tắt đèn LED này.

Các cổng PIC16F877A

Trong mạch cơ bản, chúng ta đã sử dụng tất cả các chân nguồn của vi điều khiển PIC, trong khi tất cả các chân cổng vẫn còn chưa được sử dụng.

Vì vậy, bây giờ khi 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 là thiết kế một số code và sử dụng các cổng vi điều khiển PIC. Đầu tiên chúng ta hãy xem xét các Cổng PIC16F877a.

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

Cổng A: có tổng cộng 6 chân bắt đầu từ chân số 2 đến chân số 7. Các chân cổng A được ký hiệu từ RA0 đến RA5 trong đó RA0 là ký hiệu của chân đầu tiên của Cổng A.

Cổng B: có tổng cộng 8 chân bắt đầu từ chân số 33 đến chân số 40. Các chân cổng B được ký hiệu từ RB0 đến RB7 trong đó RB0 là ký hiệu của chân đầu tiên của cổng B.

Cổng C: có tổng cộng 8 Chân. Các chân của nó không được thẳng hàng với nhau. Bốn chân đầu tiên của cổng C nằm ở chân số 15 đến chân số 18, còn bốn chân cuối cùng nằm ở chân số 23 đến chân số 26.

Cổng D: có tổng cộng 8 chân. Các chân của nó cũng không thẳng hàng với nhau. Bốn chân đầu tiên của cổng D nằm ở chân số 19 đến chân số 22, trong khi bốn chân cuối cùng nằm ở chân số 27 đến chân số 30.

Cổng E: có tổng cộng 3 chân bắt đầu từ chân số 8 đến chân số 10. Các chân cổng E được ký hiệu từ RE0 đến RE2 trong đó RE0 là ký hiệu của chân đầu 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 các chân cổng là đầu vào hay đầu ra.

Giả sử bạn có một số cảm biến và bạn muốn nhận giá trị của nó thì bạn phải kết nối cảm biến này với 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ó.

Xem thêm thông tin hay:  Chuyển đổi số là gì

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

Mỗi cổng của vi điều khiển PIC được liên kết với hai thanh ghi (register), ví dụ các thanh ghi cổng D là PortD và TRISD.

Cả hai 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 riêng biệt. Nếu chúng ta đã gán 0 thì nó sẽ là đầu ra và nếu chúng ta đã gán 1 thì nó sẽ là đầu vào.

Ví dụ: nếu chúng ta gán TRISD = 0x01, thì 7 chân đầu 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ự kết hợp của tất cả 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 web chính thức của Microchip.

Chúng ta viết code trong trình biên dịch PIC và sau đó biên dịch nó. Sau khi biên dịch, một 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ó một cổng nối tiếp trong đó được sử dụng để giao tiếp dữ liệu.

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

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

Giao tiếp I2C PIC16F877a

PIC16F877a cũng có một cổng I2C có thể dễ dàng thực hiện 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 Data Line.

Bây giờ 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ể sử dụng cổng C như một cổng đơn giản nhưng cũng có thể thực hiện hai giao tiếp này với các 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à một số sự kiện tạo ra ngắt, nguồn này có thể là bộ đếm thời gian như các ngắt được tạo sau mỗi 1 giây hoặc cũng có thể là sự kiện thay đổi trạng thái chân, chẳng hạn như nếu trạng thái chân bị thay đổi sau đó ngắt sẽ được tạo ra.

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

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

Ngắt PIC16F877a được liên kết với 5 thanh ghi dưới đây:

  • INTCON
  • PIE1
  • PIR1
  • PIE2
  • PIR2
Best Tài Chính
Best Tài Chínhhttp://besttaichinh.com
Là người sáng lập Website BestTaiChinh.Com - Với nhiều năm kinh nghiệm trong lĩnh vực tài chính ngân hàng, Bitcoin, chứng khoáng ... sẽ sử dụng các kiến thức được tổng hợp và đúc kết để cung cấp đến các bạn những thông tin chính xác, tư vấn hỗ trợ xử lý các dịch vụ tài chính, ngân hàng, bảo hiểm, đầu tư hiệu quả nhất!

Similar Articles

Comments

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây

Advertisment

Phổ biến nhất