PIC16F886 là một trong những vi điều khiển 8-bit được sản xuất bằng công nghệ nano-watt. Nó được hầu hết các nhà phát triển ưa thích để thử nghiệm do có nhiều chức năng với mức giá rẻ.
Nó có 28 chân, một bộ dao động bên trong có thể thay đổi ở một phạm vi cụ thể thông qua lập trình. Bộ nhớ flash 16 byte của bộ điều khiển này đủ tốt cho hầu hết các ứng dụng.
PIC16F886 đi kèm với các chế độ tiết kiệm năng lượng tự động và bộ hẹn giờ cơ quan giám sát giúp bộ điều khiển đáng tin cậy hơn. Nó cũng có nhiều gói để giải quyết nhiều yêu cầu về mạch. Nó cũng đi kèm với hai chân lập trình trên vi điều khiển giúp bạn dễ dàng lập trình.
Các tính năng này được liệt kê theo biểu dữ liệu.
Tên | Các tính năng |
Kiến trúc CPU | 8-bit RISC Pipelined |
Tần số CPU | 20MHz |
Dải điện áp hoạt động | (2.0V-5.5V) |
GPIO PORTS | 26 chân I / O |
Ngắt | ngắt bên ngoài RB0 |
Bộ hẹn giờ | 2 bộ định thời 8 bit và một bộ định thời 16 bit |
PWM | 1 CCP và 1 mô-đun ECCP |
UART | Một kênh UART |
I2C | Một kênh I2C |
SPI | Một kênh SPI |
LAN | không có sẵn |
CAN | không có sẵn |
ADC | 11 kênh |
DAC | Không có sẵn |
Enhanced USART Module | 1 kênh |
SRAM | 368 bytes |
FLASH ( Program Memory) | 8192 bytes |
EEPROM | 256 bytes |
Comparator | 2 |
Sơ đồ chân Vi điều khiển PIC16F886 Pic
Sơ đồ cấu hình chân và các tính năng của bộ vi điều khiển pic 8-bit này được hiển thị ở đây theo biểu dữ liệu:
PIN CUNG CẤP ĐIỆN
PIC16F886 nhiều chân nối đất nhưng nó chỉ có một chân nguồn. PIC có thể được cấp nguồn từ chân nguồn nhưng do có hai chân nối đất nên bất kỳ chân nối đất nào cũng có thể được sử dụng vì cả hai đều được kết nối bên trong.
Một mặt đất có thể được sử dụng để làm điểm nối đất chung với nguồn điện và mặt đất thứ hai có thể được sử dụng để làm điểm nối chung cho thiết bị vận hành khác với bộ điều khiển. Chân nguồn và chân nối đất trong bộ vi điều khiển là:
- VSS / Ground – Pin 8
- VSS / Ground – Pin 19
- VSS / Ground – Pin 19
- VDD / Ground – Pin 20
PIN ĐỒNG HỒ / OSCILLATOR
PIC16F886 đi kèm với một đồng hồ bên trong nhưng đôi khi các thiết bị bên ngoài của nó yêu cầu bộ dao động / đồng hồ khác nhau do yêu cầu thiết kế của chúng. Để giải quyết vấn đề của chúng, các chân đồng hồ / bộ dao động bên ngoài sẽ được sử dụng trên bộ điều khiển. Các chân dao động có hai trong số một được sử dụng cho đầu vào và thứ hai được sử dụng cho đầu ra:
- OSC1/CLKIN – Pin 9
- OSC2/CLKOUT – Pin 10
Số pin đầu ra kỹ thuật số
Giống như các vi điều khiển khác PIC16F886 cũng có các chân đầu ra kỹ thuật số. Tổng số chân của PIC16F886 là 28 trong đó 24 chân là chân xuất kỹ thuật số. Các chân này chỉ cung cấp đầu ra ở các trạng thái logic.
Trong PIC16F886 có 4 cổng, ba trong số chúng được sử dụng cho Đầu vào-Đầu ra Mục đích Chung. Hai trong số chúng (A & B) cho đầu ra ở dạng TTL và cổng thứ ba (C) cho đầu ra ở dạng Schematic Trigger (ST).
Công suất tối đa trên các chân này sẽ không nhiều hơn nguồn điện của bộ vi điều khiển. Đầu ra trên các chân này sẽ là 0 cho đến khi nó được thay đổi thông qua lập trình. Các chân đầu ra kỹ thuật số của PIC16F886 là:
- RA0 – GPIO2
- RA1 – GPIO3
- RA2 – GPIO4
- RA3 – GPIO5
- RA4 – GPIO6
- RA5 – GPIO7
- RA6 – GPIO10
- RA7 – GPIO9
- RA7 – GPIO9
- RB0 – GPIO21
- RB1 – GPIO22
- RB2 – GPIO23
- RB3 – GPIO24
- RB4 – GPIO25
- RB4 – GPIO25
- RB5 – GPIO26
- RB6 – GPIO27
- RB7 – GPIO28
- RC0 – GPIO11
- RC1 – GPIO12
- RC1 – GPIO12
- RC2 – GPIO13
- RC3 – GPIO14
- RC4 – GPIO15
- RC5 – GPIO16
- RC6 – GPIO17
- RC7 – GPIO18
Số pin đầu vào kỹ thuật số
Trong PIC16F886 ngoại trừ chân nguồn, tất cả các chân đều có thể được sử dụng làm chân đầu vào. Tất cả 4 cổng có thể được điều khiển bằng lập trình như một đầu vào. Đầu vào trên Cổng A, C, E sẽ cần đầu vào dựa trên TTL để hoạt động nhưng Cổng B sẽ chỉ hoạt động với đầu vào dựa trên ST. Danh sách tất cả 25 chân đầu vào của PIC16F886 được đưa ra dưới đây:
- RA0 – GPIO2
- RA1 – GPIO3
- RA2 – GPIO4
- RA3 – GPIO5
- RA4 – GPIO6
- RA5 – GPIO7
- RA6 – GPIO10
- RA7 – GPIO9
- RB0 – GPIO21
- RB1 – GPIO22
- RB2 – GPIO23
- RB3 – GPIO24
- RB4 – GPIO25
- RB5 – GPIO26
- RB6 – GPIO27
- RB7 – GPIO28
- RC0 – GPIO11
- RC1 – GPIO12
- RC2 – GPIO13
- RC3 – GPIO14
- RC4 – GPIO15
- RC5 – GPIO16
- RC6 – GPIO17
- RC7 – GPIO18
- RE3 – GPIO1
Mã PIN PWM
Chân PWN được biết đến như một xung có chân điều chế. Chúng được sử dụng để điều khiển đầu vào điện áp của các thiết bị DC. Các chân này có số lượng hạn chế do có nhiều thanh ghi tham gia vào bộ vi điều khiển để tạo ra PWM. Trong PIC16F886, có 4 chân PWM được đưa ra dưới đây:
- P1A – GPIO13
- P1B – GPIO23
- P1C – GPIO22
- P1D – GPIO25
Mã PIN giao tiếp SERIAL ASYNCHRONOUS
PIC16F886 cũng có một cổng giao tiếp nối tiếp không đồng bộ có thể được sử dụng để nhận và gửi dữ liệu từ bất kỳ thiết bị giao tiếp nối tiếp nào khác. Giao tiếp không đồng bộ giúp vi điều khiển giao tiếp với nhiều cảm biến và mô-đun và làm cho nó đáng tin cậy hơn cho các tác vụ thông minh. Giao tiếp nối tiếp cần hai chân truyền dữ liệu, một để gửi và một để nhận. Cả hai chân này được liệt kê bên dưới.
- TX – GPIO17
- RX – GPIO18
GIAO TIẾP SERIAL ĐỒNG BỘ
Bên cạnh Không đồng bộ còn có các giao tiếp nối tiếp đồng bộ cũng có sẵn trong vi điều khiển, đi kèm với ba chân. Một được sử dụng cho đầu vào đồng hồ, thứ hai được sử dụng để truyền dữ liệu và thứ ba sử dụng cho nguồn. Các chân này chủ yếu được sử dụng để lập trình vi điều khiển.
- ICPCLK – GPIO27
- ICPDAT – GPIO28
- VPP – Pin1
- PGM – GPIO14
PGM được sử dụng để cho phép lập trình nối tiếp đồng bộ ở điện áp thấp.
Giao tiếp SPI PIC16F886
Đây là kiểu giao tiếp nối tiếp thứ ba. Nó cũng giống như một phương thức giao tiếp nối tiếp đồng bộ được sử dụng để gửi và nhận dữ liệu và đồng hồ từ các đường truyền thông khác nhau.
Nó có bốn đường giao tiếp, hai trong số đó được sử dụng để gửi và nhận dữ liệu, thứ ba được sử dụng để gửi xung đồng hồ nhưng đường giao tiếp thứ tư được gọi là slave select được sử dụng để chọn thiết bị ngoại vi. Trong trường hợp có nhiều bộ vi điều khiển ngoại vi hoạt động như một chân cắm chính và chân chọn phụ sẽ tăng số lượng và sẽ được sử dụng để chọn giữa nhiều thiết bị. Trong PIC16F886 các chân MSSP là:
- SCK (CLOCK PIN) – GPIO14
- SDO (SPI DATA OUTPUT) – GPIO16
- SDI (SPI DATA INPUT) – GPIO15
- SS’ (SLAVE SELECT) – GPIO7
Mã PIN giao tiếp I2C
Giao thức này hầu như tuân theo một bit cả SPI và giao tiếp nối tiếp không đồng bộ. Nó được sử dụng trong trường hợp có nhiều thiết bị ngoại vi. Nó đi kèm với hai đường giao tiếp; một được sử dụng cho tín hiệu đồng hồ tạo ra điều kiện khởi động của một thiết bị ngoại vi và sau đó thiết bị cụ thể đó bắt đầu gửi dữ liệu qua đường dữ liệu. Các chân cho giao tiếp I2C là:
- SCL – GPIO14
- SDA – GPIO15
Bộ vi điều khiển TIMERS PIC16F886
PIC16F886 đi kèm với ba bộ định thời, hai trong số đó là 8 bit (Timer0, Timer2) và bộ thứ ba (Timer1) là bộ định thời 16 bit. Timer1 cũng có một chân điều khiển được gọi là cổng hẹn giờ, được sử dụng để điều khiển bộ định thời từ một chân bên ngoài và Timer2 được điều khiển từ bên trong. Các chân hẹn giờ của bộ điều khiển là:
- T0CKI – GPIO
- T1CKI – GPIO
- T1G’ (Timer1 gate) – GPIO
Time1 also has the ability to count the clock cycle by using a separate oscillator. To use the separate oscillator an external pin will be used:
- T1OSO – GPIO11
- T1OSI – GPIO12
Mã pin so sánh
Trong PIC16F886 có 2 bộ so sánh tương tự, cũng có tham chiếu điện áp. Các bộ so sánh này được sử dụng để so sánh các đầu vào tương tự và các đầu vào của chúng có thể được so sánh theo nguồn điện cung cấp và theo tham chiếu điện áp nhất định.
Đầu vào trong bộ so sánh được so sánh bằng tín hiệu tương tự không đảo. Các chân so sánh và chân tham chiếu của chúng trên PIC16F886 được liệt kê bên dưới:
- C1IN (+) – GPIO5
- C12IN0(-) – GPIO2
- C12IN1(-) – GPIO3
- C12IN2(-) – GPIO24
- C12IN3(-) – GPIO22
- C1OUT – GPIO6
- C2IN (+) – GPIO4
- C2OUT – GPIO7
- VREF – /CVREF – GPIO4
- VREF (+) – GPIO5
PIC16F886 phân tích đến kênh số
PIC16F886 cũng đi kèm với một bộ chuyển đổi tương tự sang kỹ thuật số. Nó có 14 đầu vào tương tự có thể chuyển đổi 14 tín hiệu dữ liệu đầu vào tương tự thành tín hiệu kỹ thuật số 10 bit.
Nó cũng có khả năng chuyển đổi dữ liệu đầu vào sang kỹ thuật số theo tham chiếu điện áp nhất định. Điện áp của dữ liệu tương tự đầu vào và điện áp tham chiếu không được vượt quá dải công suất đầu vào của bộ vi điều khiển. Các chân analog trên PIC16F886 được đưa ra dưới đây:
- AN0 – GPIO2
- AN1 – GPIO3
- VREF (-)/AN2 – GPIO4
- VREF (+)/AN3 – GPIO5
- AN4 – GPIO6
- AN5 – GPIO7
- AN6 – GPIO9
- AN7 – GPIO10
- AN8 – GPIO23
- AN9 – GPIO24
- AN10 – GPIO22
- AN11 – GPIO25
- AN12 – GPIO21
- AN13 – GPIO26
Mô-đun CAPTURE / SO SÁNH / PWM NÂNG CAO
PIC16F886 đi kèm với một mô-đun cho phép người dùng điều khiển sự kiện theo thời gian. Chế độ chụp cho phép một sự kiện trong khoảng thời gian ngoại vi. Chế độ so sánh cho phép một sự kiện bên ngoài khi bộ điều khiển đã trôi qua một khoảng thời gian cụ thể và PWM chỉ được sử dụng để tạo ra tín hiệu PWM đơn giản theo thời gian của các tần số khác nhau. Tất cả ba chức năng này đều có trong một chân duy nhất và PIC16F886 có hai chân loại đó.
- CCP1 – GPIO13
- CCP2 – GPIO12
WAKEUP
Trong PIC16F886 tất cả các chân đầu vào đều có thể được lập trình nhưng các chân đó yêu cầu logic TTL và ST để đánh thức vi điều khiển. Khi chân bên ngoài có điện áp thấp hoặc có khả năng điện áp có thể giảm xuống thì một chân đặc biệt được thiết kế trong PIC16F886 để đánh thức bộ điều khiển.
- ULPWU – GPIO2
ĐẶT LẠI mã PIN
PIC16F886 có thể được đặt lại bên trong nhưng nó cũng có một chân cắm bên ngoài có thể được sử dụng bởi bất kỳ thiết bị hoặc nút nào khác để đặt lại bộ vi điều khiển trong trường hợp được yêu cầu.
- MCLR’ – GPIO1
Các tùy chọn thay thế
Các vi điều khiển pic 8 bit khác là: PIC18F452, PIC18F4550, PIC16F46K22, PIC16F676
Tùy chọn tương đương
Các vi điều khiển tương đương khác là PIC16F882, PIC18F883
SƠ ĐỒ KHỐI PIC16F886
Sơ đồ khối bên trong của PIC16F886 được đưa ra dưới đây:
Ứng dụng PIC16F886
- Nó được sử dụng trong hầu hết các dự án nhỏ tại nhà.
- PIC16F886 cũng có trong một số mặt hàng thương mại do có nhiều chức năng trong một bộ điều khiển duy nhất.
- Để điều khiển tốc độ động cơ, PIC16F886 cũng được sử dụng.
- Hầu hết các máy pha cà phê và máy bán hàng tự động cũng sử dụng PIC16F886.
Lập trình PIC16F886
Để bắt đầu học lập trình vi điều khiển pic, bạn nên nắm rõ về 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 của chúng trong các phần trước. Chúng ta có thể sử dụng hợp ngữ hoặc lập trình c để lập trình vi điều khiển. Chúng tôi khuyên bạn nên xem các hướng dẫn bắt đầu này:
- Lập trình hợp ngữ vi điều khiển pic
- Lập trình vi điều khiển Pic trong c bằng Mikroc Pro cho PIC
Công cụ lập trình
Để bắt đầu lập trình, bạn cần có các thành phần 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: Điều chính mà bạn sẽ nhập chương trình vi điều khiển đầu tiên của mình là trình biên dịch hoặc môi trường phát triển tích hợp. 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 mà người dùng tải lên bộ vi điều khiển.
- Lập trình viên hoặc Trình ghi: Khi bạn viết xong mã của mình, bạn có một tệp hex mà bạn muốn tải lên bộ vi điều khiển. Chúng tôi sử dụng bộ lập trình hoặc bộ ghi để tải tệp nhị phân lên pic16f866. Pickit3 là một trong những lựa chọn tốt nhất để ghi mã.
- Bảng phát triển Pic: Bảng phát triển là tùy chọn nhưng chúng giúp quá trình phát triển của bạn trở nên rất dễ dàng. Bởi vì họ cung cấp các thiết bị ngoại vi trên bo mạch như đầu nối GPIO, Cảm biến, ADC, v.v.
Chúng tôi sẽ cập nhật phần này với các ví dụ lập trình bằng ngôn ngữ C nhúng trong phần này.
>>> Mời anh em xem thêm