Giới thiệu về PIC 16F877A

Trong bài viết này, chúng ta sẽ cùng tìm hiểu về vi điều khiển PIC 16F877A. Đây là một vi điều khiển phổ biến và linh hoạt, được sử dụng rộng rãi trong các dự án kỹ thuật. Chúng ta sẽ khám phá các tính năng và thông số kỹ thuật của vi điều khiển này.

PIC16F877A là gì?

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

Dưới đây là một số thông số kỹ thuật của vi điều khiển 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ố 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: 0
  • Độ phân giải DAC tối đa: 0
  • Tham chiếu điện áp nội bộ: Có
  • 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: 0
  • Bộ định thời giới hạn phần cứng: 0
  • Số đầu ra PWM: 0
  • Độ 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: 0
  • 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ố: 0
  • Cap. Touch Channels: 11
  • LCD phân đoạn: 0
  • 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

Dưới đây là sơ đồ chân của PIC16F877A và bảng thông tin chi tiết về từng chân:

Sơ đồ chân PIC16F877A

STT Tên chân Mô tả
1 MCLR / Vpp Chân MCLR được sử dụng trong quá trình lập trình và 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 Chân nối đất của vi điều khiển PIC.
12 Vss Chân dương của vi điều khiển PIC (+5V).
13 OSC1 / CLKI Bộ tạo dao động bên ngoài / chân đầu vào clock.
14 OSC2 / CLKO Bộ tạo 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 PORT C hoặc chân Timer / PWM.
17 RC2 / CCP1 Chân 2 của PORT C hoặc chân Timer / PWM.
18 RC3 / SCK / SCL Chân 3 của PORT C.
19 RD0 / PSP0 Chân 0 của PORT D.
20 RD1 / PSPI Chân 1 của PORT D.
21 RD2 / PSP2 Chân 2 của PORT D.
22 RD3 / PSP3 Chân 3 của PORT D.
23 RC4 / SDI / SDA Chân 4 của PORT C hoặc chân Serial Data vào.
24 RC5 / SDO Chân 5 của PORT C hoặc chân Serial Data ra.
25 RC6 / Tx / CK Chân thứ 6 của PORT C hoặc chân phát của vi điều khiển.
26 RC7 / Rx / DT Chân thứ 7 của PORT C hoặc chân thu của vi điều khiển.
27 RD4 / PSP4 Chân 4 của PORT D.
28 RD5 / PSP5 Chân 5 của PORT D.
29 RD6 / PSP6 Chân 6 của PORT D.
30 RD7 / PSP7 Chân 7 của PORT D.
31 Vss Chân dương của vi điều khiển PIC (+5V).
32 Vdd Chân nối đất của vi điều khiển PIC.
33 RB0 / INT Chân thứ 0 của PORT B hoặc chân ngắt ngoài.
34 RB1 Chân thứ 1 của PORT B.
35 RB2 Chân thứ 2 của PORT B.
36 RB3 / PGM Chân thứ 3 của PORT B hoặc kết nối với programmer.
37 RB4 Chân thứ 4 của PORT B.
38 RB5 Chân thứ 5 của PORT B.
39 RB6 / PGC Chân thứ 6 của PORT B hoặc kết nối với programmer.
40 RB7 / PGD Chân thứ 7 của PORT B hoặc kết nối với programmer.

Bạn có thể thấy trong sơ đồ trên, mỗi chân của vi điều khiển PIC có thể thực hiện nhiều nhiệm vụ khác nhau. Ví dụ, chân số 25 có thể được sử dụng như một chân số 6 của cổng C kỹ thuật số (RC6) và cũng có thể được sử dụng như một chân phát (TX) cho giao tiếp nối tiếp. Do đó, cách sử dụng từng chân sẽ phụ thuộc vào mục đích cụ thể của dự án. Trong bài viết này, chúng ta sẽ tìm hiểu về hầu hết các chức năng của từng chân.

Mạch cơ bản PIC16F877A

Mỗi vi điều khiển PIC có một mạch cơ bản, giống như cấp nguồn cho vi điều khiển và cung cấp tần số hoạt động. Để cung cấp tần số cho vi điều khiển PIC16F877A, chúng ta sử dụng bộ dao động tinh thể trong phạm vi từ 4MHz đến 40MHz. Dưới đây là mạch cơ bản PIC16F877A mà bạn cần thiết kế:

Mạch cơ bản PIC16F877A

Trong mạch trên:

  • Chân số 1 (MCLR): Chân này được gọi là MCLR (Master Clear) và được kết nối với điện trở 10k-ohm và +5V để được sử dụng trong quá trình lập trình.
  • Chân số 11 và chân số 32 (Vdd): Chân này là chân nguồn, được cấp +5V.
  • Chân số 12 và chân số 31 (Vss): Chân này là chân nối đất, được cấp GND.
  • Chân số 13 và chân số 14 (OSC1/OSC2): Đây là chân kết nối với bộ tạo dao động tinh thể 16MHz và tụ điện 33pF.
  • LED: Một LED được gắn ở chân số 21 để kiểm tra việc hoạt động của vi điều khiển PIC.

Các cổng PIC16F877A

Vi điều khiển PIC16F877A có tổng cộng 5 cổng là:

  • Cổng A: Có 6 chân (RA0 đến RA5).
  • Cổng B: Có 8 chân (RB0 đến RB7).
  • Cổng C: Có 8 chân không thẳng hàng.
  • Cổng D: Có 8 chân không thẳng hàng.
  • Cổng E: Có 3 chân (RE0 đến RE2).

Mỗi cổng được liên kết với hai thanh ghi là PortX và TRISX. Trong đó, TRISX quyết định cổng là đầu ra hay đầu vào, và PortX chứa giá trị thực của cổng.

Trình biên dịch PIC16F877A

Trình biên dịch chính thức dành cho vi điều khiển PIC16F877A là MPLAB C18, có thể tải về từ trang web chính thức của Microchip. Chúng ta viết code trong trình biên dịch và sau đó biên dịch nó. Sau khi biên dịch, một file hex được tạo ra và chúng ta sẽ tải nó vào vi điều khiển PIC.

Cổng nối tiếp PIC16F877A

Vi điều khiển PIC16F877A có một cổng nối tiếp, được sử dụng để giao tiếp dữ liệu. Chân số 25 là một chân TX, được sử dụng để gửi dữ liệu nối tiếp. Chân số 26 là một chân RX, được sử dụng để nhận dữ liệu nối tiếp.

Giao tiếp I2C PIC16F877A

Vi điều khiển PIC16F877A cũng có một cổng I2C để giao tiếp I2C. Chân số 18 là chân SCL (Serial Clock Line), và chân số 23 là chân SDA (Serial Data Line). Chúng ta có thể sử dụng cổng C làm cổng đơn giản hoặc thực hiện giao tiếp I2C với các chân của nó, tùy thuộc vào yêu cầu cụ thể của dự án.

Ngắt PIC16F877A

Vi điều khiển PIC16F877A có 8 nguồn ngắt, có thể được tạo ra từ các sự kiện như bộ đếm thời gian hoặc sự thay đổi trạng thái của các chân. Ngắt PIC16F877A liên kết với 5 thanh ghi: INTCON, PIE1, PIR1, PIE2 và PIR2.

Với các tính năng và khả năng kỹ thuật hàng đầu, vi điều khiển PIC16F877A là lựa chọn lý tưởng cho các dự án kỹ thuật. Hãy khám phá và tận dụng những tiềm năng tuyệt vời của nó trong các ứng dụng của bạn!

FEATURED TOPIC

hihi