Vi điều khiển PIC16F887

0
796

Vi điều khiển PIC16F887 là vi điều khiển 8 bit được thiết kế theo công nghệ CPU RSIC cho công suất tối đa với điện năng tiêu thụ thấp. Có tổng cộng 40 chân và có nhiều gói chân đáp ứng yêu cầu mạch nhỏ gọn và hiện đại, ví dụ package QFN và TQFP 44 chân.

PIC16F887 hỗ trợ các giao thức dữ liệu hiện đại cho các nhà thiết kế và do có nhiều chân nên hầu hết các giao thức có thể được thực hiện cùng một lúc mà không ảnh hưởng đến các giao thức khác. PIC có nhiều chức năng do có nhiều kênh chuyển đổi ADC và xung clock bên trong.

Sơ đồ chân vi điều khiển PIC16F887

Bộ vi điều khiển này có ba package DIP, QFN và TQFP.

Đây là sơ đồ chân package DIP 40 chân.

Sơ đồ chân vi điều khiển PIC16F887

Sơ đồ dưới đây cho package QFN và TQFP.

Sơ đồ dưới đây cho package QFN và TQFP.

Cấu hình chân PIC16F887

PIC16F887 có package 40 chân và 44 chân với nhiều tính năng.

Các chân GPIO PIC16F877A

Đầu ra digital

Có nhiều chân đầu ra trong vi điều khiển. Tất cả các chân thuộc năm thanh ghi (A, B, C, D & E). Chúng tương thích với mọi thiết bị chuẩn TTL / CMOS và ST. Tất cả các chân GPIO đều cung cấp điện áp đầu ra tối đa theo giá trị nguồn điện cấp. Tất cả các chân đầu ra được đưa ra bên dưới:

  • PA0 – GPIO2
  • PA1 – GPIO3
  • PA2 – GPIO4
  • PA3 – GPIO5
  • PA4 – GPIO6
  • PA5 – GPIO7
  • PA6 – GPIO14
  • PA7 – GPIO12
  • PB0 – GPIO33
  • PB1 – GPIO34
  • PB2 – GPIO35
  • PB3 – GPIO36
  • PB4 – GPIO37
  • PB5 – GPIO38
  • PB6 – GPIO39
  • PB7 – GPIO40
  • PC0 – GPIO15
  • PC1 – GPIO16
  • PC2 – GPIO17
  • PC3 – GPIO18
  • PC4 – GPIO23
  • PC5 – GPIO24
  • PC6 – GPIO25
  • PC7 – GPIO26
  • PD0 – GPIO19
  • PD1 – GPIO20
  • PD2 – GPIO21
  • PD3 – GPIO22
  • PD4 – GPIO27
  • PD5 – GPIO28
  • PD6 – GPIO29
  • PD7 – GPIO30
  • PE0 – GPIO8
  • PE1 – GPIO9
  • PE2 – GPIO10

Đầu vào digital: Có nhiều chân đầu vào trên bộ vi điều khiển và tất cả đều có một điện trở kéo. Trong PIC16F887, số lượng chân đầu vào lớn hơn tất cả các chân khác và có thể được sử dụng để khởi động vi điều khiển từ chế độ ngủ.

Các chân này hoạt động ở logic TTL / ST, giúp tương thích với tất cả các thiết bị CMOS và thiết bị ngoại vi khác. Tất cả các chân đầu vào được liệt kê bên dưới:

  • PA0 – GPIO2
  • PA1 – GPIO3
  • PA2 – GPIO4
  • PA3 – GPIO5
  • PA4 – GPIO6
  • PA5 – GPIO7
  • PA6 – GPIO14
  • PA7 – GPIO12
  • PB0 – GPIO33
  • PB1 – GPIO34
  • PB2 – GPIO35
  • PB3 – GPIO36
  • PB4 – GPIO37
  • PB5 – GPIO38
  • PB6 – GPIO39
  • PB7 – GPIO40
  • PC0 – GPIO15
  • PC1 – GPIO16
  • PC2 – GPIO17
  • PC3 – GPIO18
  • PC4 – GPIO23
  • PC5 – GPIO24
  • PC6 – GPIO25
  • PC7 – GPIO26
  • PD0 – GPIO19
  • PD1 – GPIO20
  • PD2 – GPIO21
  • PD3 – GPIO22
  • PD4 – GPIO27
  • PD5 – GPIO28
  • PD6 – GPIO29
  • PD7 – GPIO30
  • PE0 – GPIO8
  • PE1 – GPIO9
  • PE2 – GPIO10
  • PE3 – GPIO1

Chân ngắt

Hầu hết các ứng dụng / cảm biến hiện đại đều yêu cầu chân ngắt để hoạt động. Trong PIC16F887, tổng số chân là 40 nhưng chỉ có một chân ngắt bên ngoài. Chân này có thể được sử dụng để tạo tín hiệu xử lý sự kiện bên trong CPU của vi điều khiển. Đầu tiên, bộ vi điều khiển phải là một chương trình khai báo chân này, vì theo mặc định, chân này sẽ không hoạt động như một chân ngắt.

  • INT – GPIO33

Cổng giao tiếp dữ liệu nối tiếp PIC16F887

EUSART (Truyền không đồng bộ): Ngày nay việc sử dụng giao thức này đã được phổ biến trong hầu hết các module và cảm biến. Nó chỉ sử dụng hai chân giao tiếp. Một chân được sử dụng để gửi dữ liệu và chân còn lại dùng để nhận dữ liệu. Để sử dụng giao thức này, hai thiết bị chỉ yêu cầu một số lệnh lập trình bên trong. Cả hai chân này trong PIC16F887 được đưa ra dưới đây:

  • RX – GPIO26
  • TX – GPIO25

EUSART (Truyền đồng bộ): Phương pháp truyền đồng bộ chủ yếu là truyền một chiều. Nó sử dụng một chân xung clock và một chân dữ liệu. Xung clock và dữ liệu đều được điều khiển bởi các lệnh đã cho trước. Cả hai chân được đưa ra dưới đây:

  • CK – GPIO25
  • DT – GPIO26

SPI: Hầu hết cảm biến sử dụng giao thức SPI để giao tiếp. Trong giao tiếp này, nhiều thiết bị có thể được sử dụng cùng chân SPI. Nó sử dụng bốn chân và tất cả những chân đó được đưa ra dưới đây:

  • SDI – GPIO23
  • SDO – GPIO24
  • SCK – GPIO18
  • SS – GPIO7

I 2 C: Giao thức giao tiếp này chỉ sử dụng hai chân nhưng cùng một lúc chỉ có một thiết bị có thể gửi dữ liệu. PIC16F887 có hai chân dành cho giao thức I 2 C , một chân được sử dụng cho xung clock và chân còn lại được sử dụng để truyền và nhận dữ liệu. Cả hai chân này được đưa ra bên dưới:

  • SDA – GPIO23
  • SCL – GPIO18

ICSP: PIC16F887 có một số chân ICSP với chức năng GPIO được sử dụng lập trình vi điều khiển trong trường hợp cần thiết. Có 4 chân:

  • ICSPCLK – GPIO39
  • ICSPDAT – GPIO40
  • V PP – GPIO1
  • PGM – GPIO36

Các kênh chuyển đổi analog sang digital

Có 14 kênh được sử dụng để chuyển đổi tín hiệu analog sang digital. Tất cả các kênh chỉ sử dụng bộ ADC 10-bit. Tất cả các kênh ADC của PIC16F887 được cung cấp dưới đây:

  • AN0 – GPIO2
  • AN1 – GPIO3
  • AN2 – GPIO4
  • AN3 – GPIO5
  • AN4 – GPIO7
  • AN5 – GPIO8
  • AN6 – GPIO9
  • AN7 – GPIO10
  • AN8 – GPIO35
  • AN9 – GPIO36
  • AN10 – GPIO34
  • AN11 – GPIO37
  • AN12 – GPIO33
  • AN13 – GPIO38

Chân module timer

Trong PIC16F887 có ba timer (Timer0, Timer1, Timer2), hai timer 8bit và 1 timer 16 bit. Tất cả các bộ định thời này có thể sử dụng cả bộ dao động bên ngoài và bên trong nhưng timer1 có thể sử dụng bộ tạo dao động thứ ba ở một số chân GPIO.

Timer1 và timer0 có thể đếm được các xung bên ngoài thông qua các chân bên ngoài và timer1 cũng có một chân điều khiển. Tất cả các chân được đưa ra bên dưới:

  • T0CKI – GPIO6
  • T1OSO / T1CKI – GPIO15
  • T1OSI – GPIO16
  • T1G ‘- GPIO38

Chân so sánh tín hiệu

Có một bộ so sánh được sử dụng làm đầu vào và đầu ra tín hiệu đầu vào analog. Bộ so sánh sử dụng cả đầu vào đảo và không đảo cho hai tín hiệu và sau đó chuyển đổi ra giá trị được so sánh. Tín hiệu được so sánh có thể được sử dụng cho bộ vi điều khiển. Tất cả các chân này trong PIC16F887 được đưa ra bên dưới:

  • C12IN0 (-) – GPIO2
  • C12IN1 (-) – GPIO3
  • CV REF / C2IN (+) – GPIO4
  • C1IN (+) – GPIO5
  • C1OUT – GPIO6
  • C2OUT – GPIO7
  • C12IN2 (-) – GPIO36
  • C12IN3 (-) – GPIO34

Kênh PWM

Hầu hết các thiết bị yêu cầu tín hiệu PWM để hoạt động. Xung PWM giúp thiết bị thay đổi tốc độ và điện áp theo xung nhất định. Tất cả chân PWM được cung cấp bên dưới:

  • P1A – GPIO17
  • P1B – GPIO28
  • P1C – GPIO29
  • P1D – GPIO30

Chân Capture / So sánh / PWM

Trong PIC16F887 có một module CCP dùng để so sánh tín hiệu đầu vào, sau đó so sánh với tín hiệu được xác định trước. Module tiếp tục so sánh cho đến khi có tín hiệu khớp và sau đó tạo tín hiệu đầu ra. Module chủ yếu sử dụng PWM nhưng cũng sử dụng để tạo ra một tín hiệu xử lý sự kiện.

  • CCP1 – GPIO16
  • CCP2 – GPIO17

Chân nguồn PIC16F887

ULPWU: Chân được sử dụng để khởi động thiết bị với điện áp thấp nhất.

  • ULPWU – GPIO2

VREF: Bộ ADC sử dụng điện áp cấp để chuyển đổi dữ liệu nhưng trong một số trường hợp, thiết bị nhận dữ liệu không mong muốn do điện áp của thiết bị truyền tín hiệu analog. Để giải quyết vấn đề này, module có các 2 chân đầu vào điện áp analog. Chân đầu vào không đảo và đảo làm điện áp tham chiếu. Cả hai chân này được đưa ra bên dưới:

  • V REF- – GPIO4
  • V REF + – GPIO5

Reset: Được kích hoạt từ các thiết bị bên ngoài hoặc từ các nút nhấn để đặt lại thiết bị trong trường hợp cần thiết.

Nguồn cấp: Có bốn chân nguồn và tất cả các chân có thể được sử dụng cùng một lúc. Các chân nguồn được kết nối bên trong. Hai chân nối đất và hai chân nguồn, và là chân chung trong vi điều khiển. Tất cả các chân nguồn và chân nối đất được cung cấp bên dưới:

  • VDD – Pin11, Pin32
  • VSS – Pin12, Pin31

Bộ tạo dao động / xung clock: Mọi vi điều khiển đều yêu cầu đầu vào xung nhịp để hoạt động. Trong PIC16F887 có xung nhịp bên trong là 8MHz, tần số có thể thay đổi thông qua lập trình. Tần số có thể thay đổi từ 31KHz đến 8MHz. Có chân dao động bên ngoài. Bộ dao động bên ngoài chỉ có thể lên đến 20MHz. Các chân của bộ dao động bên ngoài cũng có thể được sử dụng để cấp xung clock vào bên trong. Tất cả các chân dao động được đưa ra bên dưới:

  • OSC1 / CLKIN – GPIO13
  • OSC2 / CLKOUT – GPIO14

Các tính năng chính của vi điều khiển PIC16F887

TÍNH NĂNG & THÔNG SỐ KỸ THUẬT
Kiến trúc CPU PIC 8 bit
Bộ dao động bên trong 8MHz
Bộ tạo dao động bên ngoài 20MHz
Phạm vi điện áp hoạt động (2V – 5.5V)
CỔNG GPIO 36 chân I / O
Ngắt 1
Timer 3 – (2 Timer 8 bit và 1 timer 16 bit)
Bộ so sánh 2
PWM 2 CCP và 2-PWM
ICP 1 chân ICP
USART 1 kênh
I2C 1 kênh
SPI / MSSP 1 kênh
ICSP / MSSP
ULPWU
Timer watchdog
Self-Programming
LAN Không có
CAN Không có
ADC 14 kênh
SRAM 368b
FLASH (Bộ nhớ chương trình) 14Kb
EEPROM 256 byte

Lập trình vi điều khiển PIC16F887

Để bắt đầu học lập trình vi điều khiển pic, bạn nên hiểu rõ các chân GPIO. Do đó, chúng tôi đã trình bày chi tiết về tất cả các chân và chức năng trong các phần trước. Có thể lập trình bằng hợp ngữ (Assembly) hoặc ngôn ngữ c. Chúng tôi khuyên bạn nên xem các hướng dẫn sau đây:

  • Lập trình hợp ngữ (Assembly) vi điều khiển pic
  • Lập trình c vi điều khiển Pic bằng Mikroc Pro

Công cụ lập trình

Để bắt đầu lập trình, bạn cần có phần mềm và phần cứng sau:

Trình biên dịch hoặc IDE để viết chương trình bằng hợp ngữ hoặc ngôn ngữ C:

Ba trình biên dịch phổ biến nhất được sử dụng để lập trình vi điều khiển pic là MPLABX IDE, Mikro C cho PIC  và trình biên dịch PIC CCS. Trình biên dịch được sử dụng để tạo tệp hex để nạp code lên bộ vi điều khiển.

Trình nạp code: Khi viết xong code, bạn có một tệp hex mà muốn nạp lên bộ vi điều khiển. Hãy sử dụng bộ lập trình hoặc bộ ghi code để ghi tệp nhị phân lên pic16f866. Pickit3 là một trong những lựa chọn tốt nhất để nạp code.

Bo mạch Pic: Bảng mạch là tùy chọn nhưng chúng giúp quá trình phát triển của bạn dễ dàng hỡn. Bởi vì họ cung cấp các thiết bị ngoại vi trên bo mạch như GPIO, cảm biến, bộ ADC , v.v.

Các tùy chọn thay thế

PIC16F877A, PIC16F886, PIC16F84A, PIC18F2550, PIC18F46K22

Sơ đồ khối vi điều khiển PIC16F887

Các tùy chọn thay thế

Các ứng dụng

  • PIC16F887 sử dụng trong hầu hết các ứng dụng công nghiệp như một thiết bị điều khiển.
  • Thiết bị này có các chân giao tiếp đặc biệt, điều này làm cho nó trở thành một trong những bộ vi điều khiển hiệu quả nhất trong họ vi điều khiển PIC.
  • Là một bộ vi điều khiển lý tưởng do có nhiều kênh ADC ứng dụng trong các hệ thống ô tô.

Các bộ vi điều khiển khác:

ATMEGA32, ATMEGA16, ATTINY45, ATMEGA328P, PIC18F2550, PIC18F4550, ATTINY88, ATTINY85, PIC12C508, PIC18F46K22, PIC16F877A, Dspic30f2010

>>> Mời anh em xem thêm:

Tôi là một người làm việc trong lĩnh vực cơ khí, thiết bị công nghiệp....Blog là nơi tôi chia sẻ thông tin hữu ích đến các bạn đọc.
Subscribe
Notify of
0 Bình luận
Inline Feedbacks
View all comments