Giới thiệu tổng quan lại về PIC 16F877A, khám phá PIC16F877A là gì, sơ đồ vật chân, tác dụng các chân, thông số kỹ thuật kỹ thuật, datasheet cùng nhiều thông tin hữu ích khác
Trong bài viết này, Điện Tử sau này sẽ reviews cho các bạn về PIC 16F877A. Đây là vi điều khiển và tinh chỉnh PIC được sử dụng phổ cập nhất vày tính linh động trong hoạt động, tính khả dụng cùng 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 không ít yêu ước về PIC16F877a từ các sinh viên kỹ thuật vì chưng vi điều khiển PIC này được sử dụng nhiều trong những dự án kỹ thuật. Bởi vì vậy, kia là vì sao tại sao Điện Tử sau này sẽ share tất cả thông tin chi tiết về PIC16F877a.
PIC16F877A là gì

PIC16F877A là 1 trong Vi điều khiển PIC 40 chân với được sử dụng phần lớn trong những dự án và áp dụng nhúng. Nó có năm cổng bước đầu từ cổng A đến cổng E. Nó có tía bộ định thời trong số ấy có 2 cỗ định thời 8 bit và 1 cỗ định thời là 16 Bit. Nó cung ứng nhiều giao thức tiếp xúc như giao thức nối tiếp, giao thức tuy vậy song, giao thức I2C. PIC16F877A cung cấp cả ngắt chân phần cứng cùng ngắt cỗ định thời.
Bạn đang xem: Vi điều khiển pic 16f877a
Thông số nghệ thuật PIC16F877A
CPU | PIC 8 bit |
Cấu trúc | 8 |
Kích thước bộ lưu trữ chương trình (Kbyte) | 14 |
RAM (bytes) | 368 |
EEPROM/HEF | 256/HEF |
Số chân | 40 |
Tốc độ CPU về tối đa (MHz) | 20 |
Chọn chân nước ngoài vi (PPS) | Không |
Bộ tạo xấp xỉ 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 cùng với tính toán | Không |
Số bộ biến đổi DAC | 0 |
Độ phân giải DAC về tối đa | 0 |
Tham chiếu năng lượng điện áp nội bộ | Có |
Zero Cross Detect | Không |
Số bộ định thời 8 bit | 2 |
Số cỗ định thời 16 bit | 1 |
Bộ định thời đo tín hiệu | 0 |
Bộ định thời số lượng giới hạn phần cứng | 0 |
Số đầu ra PWM | 0 |
Độ phân giải PWM về tối đa | 10 |
Bộ định thời góc | Không |
Bộ tăng speed 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 đo lường và thống kê có hành lang cửa số (WWDT) | Không |
CRC/Scan | Không |
Bộ tạo giao động được tinh chỉnh bằng số | 0 |
Cap. Touch Channels | 11 |
LCD phân đoạn | 0 |
Nhiệt độ chuyển độ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 vận động tối đa (V) | 5.5 |
Điện áp cao tất cả thể | Không |
Sơ đồ chân PIC16F877A
Hình dưới đây là Sơ đồ vật chân PIC16F877A. Bên cạnh đó còn tất cả bảng thông tin chi tiết đi kèm số vật dụng tự của chân, tên khớp ứng và miêu tả sơ lược về chân.

STT chân | Tên chân | Mô tả |
1 | MCLR / Vpp | MCLR được thực hiện trong quy 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 | Chân nối đất của MCU |
12 | Vss | Chân dương của MCU (+5V) |
13 | OSC1 / CLKI | Bộ dao động phía bên ngoài / chân nguồn vào clock |
14 | OSC2 / CLKO ![]() | Bộ dao động bên ngoài / chân nguồn 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 trang bị 6 của POCTC hoặc chân phạt của Vi điều khiển |
26 | RC7 / Rx / DT | Chân đồ vật 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 vật dụng 0 của POCTB hoặc chân ngắt ngoài |
34 | RB1 | Chân trước tiên của POCTB |
35 | RB2 | Chân thứ 2 của POCTB |
36 | RB3/PGM | Chân vật dụng 3 của POCTB hoặc liên kết với programmer |
37 | RB4 | Chân đồ vật 4 của POCTB |
38 | RB5 | Chân lắp thêm 5 của POCTB |
39 | RB6/PGC | Chân lắp thêm 6 của POCTB hoặc kết nối với programmer |
40 | RB7/PGD | Chân trang bị 7 của POCTB hoặc liên kết với programmer |
Bạn có thể thấy vào hình trên các chân của Vi điều khiển PIC có khá nhiều hơn một tên, bởi mỗi chân của PIC rất có thể thực hiện những nhiệm vụ.
Ví dụ, Chân số 25, nó có thể được thực hiện như một chân số 6 cổng C hiện đại số (RC6) cùng cũng rất có thể được áp dụng như một bộ phát (TX) cho giao tiếp nối tiếp.
Vì vậy nó đã tùy ở trong vào cách bạn có nhu cầu sử dụng từng chân. Trong bài xích hướng dẫn này chúng ta sẽ kiểm tra phần đông các tác dụng của chân.
Mạch cơ phiên bản PIC16F877A
Mỗi vi điều khiển và tinh chỉnh PIC gồm một mạch cơ bản và nếu như bạn không xây dựng mạch cơ bạn dạng thì nó sẽ không còn hoạt động.
Nó giống như cấp nguồn mang đến vi điều khiển và tinh chỉnh PIC cùng nó vận động ở nấ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 mang lại nó với đó là phần đa gì bọn họ sẽ có tác dụng với PIC mà lại trong trường vừa lòng của PIC, họ cũng cần cung ứng tần số nhưng nó đã hoạt động.
Chúng ta cần thiết kế mạch cơ bạn dạng và mạch cơ bản này đựng công suất cũng như tần số cơ mà nó đang hoạt động.
Để hỗ trợ tần số mang lại vi điều khiển và tinh chỉnh PIC, họ sử dụng bộ giao động tinh thể và đối với PIC 16F877a, bạn cũng có thể sử dụng bộ giao động tinh thể dải tần tự 4MHz mang lại 40MHz.
Đây là Mạch cơ phiên bản PIC16F877a nhưng bạn cần thiết kế:

Giải thích mạch trên
Chân số 1: Chân này được hotline là MCLR (Master Clear) và chúng ta cần cấp cho 5V mang lại 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 bọn họ cũng phải cấp mang lại nó + 5V và bạn có thể thấy những đường này có màu đỏ trong hình trên.
Chân số 12 với chân số 31: những chân này là Vss, do vậy chúng ta cấp GND (nối đất) trên chân này và những đường của nó tất cả màu đen.
Chân số 13 cùng 14: những chân này chọn cái tên là OSC1 (Bộ tạo xê dịch 1) và OSC2 (Bộ tạo xê dịch 2), bây giờ chúng ta cần gắn cỗ tạo xê dịch tinh thể (16MHz) tại các chân này trê tuyến phố màu cam. Sau bộ giao động tinh thể, chúng ta có tụ điện 33pF và tiếp nối được nối đất.
Chúng ta đã thi công mạch cơ phiên bản và bây giờ vi điều khiển PIC đã sẵn sàng vận động và chúng ta có thể thấy một LED được lắp ở chân số 21, đó là cũng chính vì chúng ta cũng cần kiểm tra coi nó có đang chạy hay không để bạn cũng có thể bật hoặc tắt đèn led này.
Các cổng PIC16F877A
Trong mạch cơ bản, họ đã sử dụng toàn bộ các chân mối cung cấp của vi điều khiển và tinh chỉnh PIC, vào khi tất cả các chân cổng vẫn còn đó chưa được sử dụng.
Vì vậy, hiện thời khi chúng ta đã cấp cho nguồn cho bộ vi tinh chỉnh PIC, điều tiếp theo chúng ta cần làm cho là kiến thiết một số code và sử dụng các cổng vi điều khiển PIC. Đầu tiên bọn họ hãy coi xét những Cổng PIC16F877a.
PIC16F877a có tổng cộng 5 Cổng là:
Cổng A: có tổng số 6 chân ban đầu từ chân số 2 đến chân số 7. Những chân cổng A được ký kết hiệu từ bỏ RA0 mang lại RA5 trong các số đó RA0 là ký hiệu của chân trước tiên của Cổng A.
Cổng B: có tổng số 8 chân ban đầu từ chân số 33 cho chân số 40. Những chân cổng B được cam kết hiệu từ bỏ RB0 cho RB7 trong số ấy RB0 là cam kết hiệu của chân thứ nhất của cổng B.
Cổng C: có tổng cộng 8 Chân. Các chân của chính nó không được thẳng sản phẩm với nhau. Tứ chân trước tiên của cổng C nằm tại vị trí chân số 15 mang lại chân số 18, còn tư chân ở đầu cuối nằm sinh sống chân số 23 mang đến chân số 26.
Cổng D: có tổng cộng 8 chân. Những chân của nó cũng không thẳng mặt hàng với nhau. Bốn chân thứ nhất của cổng D nằm ở vị trí chân số 19 cho chân số 22, trong những lúc bốn chân ở đầu cuối nằm làm việc chân số 27 mang lại chân số 30.
Xem thêm: Những Áo Đấu Đẹp Nhất Thế Giới, Top 10 Bộ Áo Đấu Đẹp Nhất Mùa Giải 2020/2021
Cổng E: có tổng số 3 chân bắt đầu từ chân số 8 cho chân số 10. Các chân cổng E được ký kết hiệu từ bỏ RE0 mang đến RE2 trong các số ấy RE0 là ký kết hiệu của chân thứ nhất của cổng E.
Trước hết đầy đủ gì chúng ta cần đưa ra quyết định là bạn có nhu cầu các chân cổng là đầu vào hay đầu ra.
Giả sử bạn có một số cảm ứng và bạn muốn nhận giá chỉ trị của nó thì chúng ta phải kết nối cảm biến này cùng với vi tinh chỉnh và điều khiển PIC. Trong trường vừa lòng này, chân PIC sẽ chuyển động như chân đầu vào vì nó đang nhập quý hiếm từ cảm biến. Cảm biến gửi quý hiếm và PIC dìm nó.
Trong trường hợp bạn có bộ động cơ DC và bạn có nhu cầu di chuyển động cơ DC đó bởi vi tinh chỉnh và điều khiển PIC. Các bạn phải nhờ cất hộ lệnh từ bộ vi điều khiển PIC đến hộp động cơ DC để chân PIC vận động như chân đầu ra.
Mỗi cổng của vi tinh chỉnh và điều khiển PIC được links với hai thanh ghi (register), ví dụ những thanh ghi cổng D là PortD với TRISD.
Cả nhị thanh ghi này đều sở hữu 8 bit bởi cổng D bao gồm 8 chân.
TRISD ra quyết định cổng là đầu ra hay đầu vào và họ cũng rất có thể gán giá chỉ trị mang đến từng chân riêng biệt. Nếu họ đã gán 0 thì nó sẽ là cổng output và nếu họ đã 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 trước tiên của cổng D vẫn 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à cực hiếm này là sự phối hợp của tất cả 8 chân.
Trình biên dịch PIC16F877a
Trình biên dịch ưng thuận của vi tinh chỉnh PIC là trình biên dịch MPLAB C18, gồm trên website chính thức của Microchip.
Chúng ta viết code vào trình biên dịch PIC và kế tiếp biên dịch nó. Sau thời điểm biên dịch, một tệp tin hex được chế tác và bọn họ sẽ sở hữu lên trong bộ vi tinh chỉnh và điều khiển PIC.
Cổng thông suốt PIC16F877a
PIC16F877a có một cổng tiếp nối trong đó được sử dụng để tiếp xúc 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ẽ tiến hành sử dụng để gửi tài liệu nối tiếp.
Chân 26 cũng hoạt động như RX, bởi vậy nếu bạn có nhu cầu thực hiện tiếp xúc nối tiếp thì nó sẽ tiến hành sử dụng nhằm nhận tài 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 chuyển động như SCL, viết tắt của Serial Clock Line.
Chân số 23 vận động như SDA, là chữ viết tắt của Serial Data Line.
Bây giờ chúng ta cũng có thể thấy họ có cổng tiếp nối và cổng I2C trong cổng C, vì vậy chúng ta cũng có thể sử dụng cổng C như 1 cổng đơn giản và dễ dàng nhưng cũng có thể thực hiện nay hai giao tiếp này với những chân của nó, bởi vì vậy nó hoàn toàn phụ thuộc vào vào lập trình sẵn viên.
Ngắt PIC16F877a
PIC16F877a có tổng số 8 mối cung cấp ngắt. Nguồn ngắt là một số trong những sự kiện tạo nên ngắt, mối cung cấp này hoàn toàn có thể là cỗ đếm thời hạn như các ngắt được tạo ra sau mỗi 1 giây hoặc cũng hoàn toàn có thể là sự kiện đổi khác trạng thái chân, ví dụ như nếu tâm trạng chân bị biến hóa sau đó ngắt sẽ được tạo ra.
Vì vậy, ngắt PIC16F877a có thể được tạo thành bằng 8 phương pháp sau:
Ngắt ngoài.Ngắt cỗ định thời (Timer0 / Timer1).Thay thay đổi trạng thái cổng B.Cổng Slave tuy vậy song Đọc / Ghi.Bộ thay đổi A / D.Nhận / Truyền nối tiếp.PWM (CCP1 / CCP2).Thao tác ghi EEPROM.