PIC (Programmable Intelligent Computer) nghĩa là “Máy tính thông minh khả trình” xuất phát từ vi điều khiển PIC đầu tiên PIC1650, do hãng General Instrument đặt tên. Sau đó hãng Microchip tiếp tục phát triển loại PIC này và cho ra đời gần 100 loại PIC đến nay.
Ngày nay, rất nhiều dòng PIC được xuất xưởng với hàng loạt các module ngoại vi tích hợp sẵn như UART, PWM, ADC, … với bộ nhớ chương trình từ 512 word đến 32k word.
Các dòng PIC hiện nay:
- Dòng PIC 12Cxx có độ dài lệnh 12bit (Basic-line).
- Dòng PIC 10F, 12F, 16F có độ dài lệnh 14bit (Mid-range).
- Dòng PIC 18F có độ dài lệnh 16bit (High-End).
- Dòng dsPIC là dòng PIC mới hiện nay
Cấu trúc tổng quát của PIC16F877A:
- 8K x 14 bits/word Flash ROM.
- 368 x 8 Bytes RAM.
- 256 x 8 Bytes EEPROM.
- 5 Port xuất/nhập (A, B, C, D, E) tương ứng 33 chân ra.
- 2 Bộ định thời 8 bit Timer 0 và Timer 2.
- 1 Bộ định thời 16 bit Timer 1, có thể hoạt động ở chế độ tiết kiệm năng lượng (SLEEP MODE) với nguồn xung clock ngoài.
- 2 Bộ Capture/ Compare/ PWM (Bắt giữ/ So sánh/ Điều biến xung)
- 1 Bộ biến đổi Analog to Digital 10 bit, 8 ngõ vào.
- 2 Bộ so sánh tương tự (Comparator).
- 1 Bộ định thời giám sát (Watch Dog Timer).
- 1 Cổng giao tiếp song song 8 bit.
- 1 Port nối tiếp.
- 15 Nguồn ngắt (Interrupt).
- Chế độ tiết kiệm năng lượng (Sleep Mode).
- Nạp trương trình bằng cổng nối tiếp ( ICSP™ )(In-Circuit Serial Programming™ -)
- Tập lệnh gồm 35 lệnh có độ dài 14 bit.
- Tần số hoạt động tối đa 20 MHz.
Sơ đồ và chức năng các chân PIC16F877A
Sơ đồ chân
Chức năng các chân
Chân |
Tên |
Chức năng |
1 |
/MCLR/VPP |
– /MCLR: Hoạt động Reset ở mức thấp |
2 |
RA0/AN0 |
– RA0 : xuất/nhập số |
3 |
RA1/AN1 |
– RA1 : xuất/nhập số |
4 |
RA2/AN2/VREF-/CVREF |
– RA2 : xuất/nhập số |
5 |
RA3/AN3/VREF+ |
– RA3 : xuất/nhập số |
6 |
RA4/TOCKI/C1OUT |
– RA4 : xuất/nhập số |
7 |
RA5/AN4//SS /C2OUT |
– RA5 : xuất/nhập số |
8 |
RE0//RD/AN5 |
– RE0 : xuất nhập số |
9 |
RE1//WR/AN6 |
– RE1 : xuất/nhập số |
10 |
RE2//CS/AN7 |
– RE2 : xuất/nhập số |
11 |
VDD |
Chân nguồn của PIC |
12 |
VSS |
Chân nối đất |
13 |
OSC1/CLKI |
Ngõ vào dao động thạch anh hoặc xung clock bên ngoài. |
|
OSC2/CLKO |
Ngõ vào dao động thạch anh hoặc xung clock |
15 |
RC0/T1 OCO/T1CKI |
– RC0 : xuất/nhập số |
16 |
RC1/T1OSI/CCP2 |
– RC1 : xuất/nhập số |
17 |
RC2/CCP1 |
– RC2 : xuất/nhập số |
18 |
RC3/SCK/SCL |
– RC3 : xuất/nhập số |
19 |
RD0/PSP0 |
– RD0 : xuất/nhập số |
20 |
RD1/PSP1 |
– RD1 : xuất/nhập số |
21 |
RD2/PSP2 |
– RD2 : xuất/nhập số |
22 |
RD3/PSP3 |
– RD3: xuất/nhập số |
23 |
RC4/SDI/SDA |
– RC4 : xuất/nhập số |
24 |
RC5/SDO |
– RC5 : xuất/nhập số |
25 |
RC6/TX/CK |
– RC6 : xuất/nhập số |
26 |
RC7/RX/DT |
– RC7 : xuất/nhập số |
27 |
RD4/PSP |
– RD4: xuất/nhập số |
28 |
RD5/PSP5 |
– RD5: xuất/nhập số |
29 |
RD6/PSP6 |
– RD6: xuất/nhập số |
30 |
RD7/PSP7 |
– RD7: xuất/nhập số |
|
VSS |
Chân nối đất |
32 |
VDD |
Chân nguồn của PIC |
33 |
RB0/INT |
– RB0 : xuất/nhập số |
34 |
RB1 |
xuất/nhập số |
35 |
RB2 |
xuất/nhập số |
36 |
RB3 |
– RB3 : xuất/nhập số |
37 |
RB4 |
– xuất/nhập số |
38 |
RB5 |
– xuất/nhập số |
39 |
RB6/PGC |
– RB6 : xuất/nhập số |
40 |
RB7/PGD |
– RB7 : xuất/nhập số |
Phần mềm lập trình cho vi điều khiển PIC
Hiện nay có rất nhiều phần mềm có thể lập trình cho vi điều khiển PIC, các bạn nên chọn một phần mềm và học theo nhé.
CCS C Compiler
MikroC PRO for PIC
MPLAB X IDE
MPLAB X IDE là phần mềm chuyên nghiệp để lập trình cho vi điều khiển với các tính năng nổi bật.
- Tạo môi trường lập trình C, ASM: XC8, nhúng, CCS C Compiler, HTPIC C Compiler và các Compiler khác.
- Debug và mô phỏng kết hợp với chương trình nạp.
- Quản lý project dễ dàng.
- Có thư viện hỗ trợ cho người dùng.