Tải bản đầy đủ (.pdf) (129 trang)

tài liệu vi điều khiển PIC16f877

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.33 MB, 129 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO

VI ĐIỀU KHIỂN

Biên soạn:

ThS. Phạm Quốc Phương

Tài Liệu Lưu Hành Tại HUTECH

www.hutech.edu.vn


VI ĐIỀU KHIỂN
Ấn bản 2014


TRANG 2| KINH TẾ VI MÔ


MỤC LỤC

I

MỤC LỤC

MỤC LỤC ................................................................................................................... 1
HƯỚNG DẪN .............................................................................................................. 4

BÀI 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC ................................................................. 1
1.1 GIỚI THIỆU ............................................................................................................. 1


1.1.1 Tổng quan ...................................................................................................... 1
1.1.2 Một số đặc tính vi điều khiển PIC ....................................................................... 3
1.2 VI ĐIỀU KHIỂN 16F877A ............................................................................................ 6
1.2.1 Tổng quát PIC16F877A .................................................................................... 6
1.2.2 Sơ đồ khối ...................................................................................................... 8
TÓM TẮT .................................................................................................................. 14
CÂU HỎI ÔN TẬP ....................................................................................................... 15
BÀI 2: TỔ CHỨC BỘ NHỚ - CÁC THANH GHI ĐẶC BIỆT ............................................... 16
2.1 TỔ CHỨC BỘ NHỚ .................................................................................................... 16
2.1.1 Bộ nhớ chương trình. ..................................................................................... 16
2.1.2 Bộ nhớ dữ liệu .............................................................................................. 17
2.1.3 Bảng đồ các thanh ghi chức năng .................................................................... 18
TÓM TẮT .................................................................................................................. 28
CÂU HỎI ÔN TẬP ....................................................................................................... 29
BÀI 3: NGÔN NGỮ LẬP TRÌNH C VÀ PHẦN MỀM CCS .................................................. 30
3.1 NGÔN NGỮ LẬP TRÌNH C ....................................................................................... 30
3.1.1 Ngôn ngữ lập trình (Programming language) .................................................... 30
3.1.2 Các bước lập trình ......................................................................................... 30
3.1.3 Viết chương trình C trong CCS ........................................................................ 33
3.1.4 Các cấu trúc lệnh trong ngôn ngữ C. ................................................................ 36
3.2 HƯỚNG DẪN SỬ DỤNG PHẦN MỀM CCS. .......................................................................... 43
3.2.1 KHỞI TẠO MỘT PROJECT TRONG CCS. ............................................................. 43
TÓM TẮT .................................................................................................................. 45
CÂU HỎI ÔN TẬP ....................................................................................................... 46
BÀI 4: CẤU HÌNH I-O PORTS. .................................................................................... 47
4.1 I-O PORTS ........................................................................................................... 47
4.1.1 Port A – Thanh ghi TrisA ................................................................................ 47
4.1.2 Port B – Thanh ghi TrisB ................................................................................ 49



II

MỤC LỤC

4.1.3 Port C – Thanh ghi TrisC .................................................................................52
4.1.4 Port D – Thanh ghi TrisD .................................................................................53
4.1.5 Port E – Thanh ghi TrisE ..................................................................................55
4.2 CÁC HÀM I-0 TRONG CCS ..........................................................................................57
4.2.1 Bao gồm các hàm sau:....................................................................................57
TÓM TẮT ...................................................................................................................61
BÀI TẬP ....................................................................................................................62
BÀI 5: TIMER - COUNTER. ......................................................................................... 63
5.1 TIMER ..................................................................................................................63
5.1.1 Bộ định thời Timer0 ........................................................................................63
5.1.2 Bộ định thời Timer1 ........................................................................................66
5.1.3 Bộ định thời Timer2 ........................................................................................71
5.1.4 Bộ định thời Timer – Counter trong CCS ............................................................72
5.1.5 COUNTER. .....................................................................................................78
TÓM TẮT ...................................................................................................................80
BÀI TẬP ....................................................................................................................81
BÀI 6: CCP MODULE. ................................................................................................. 82
6.1 CAPTURE – COMPARE - PWM .......................................................................................82
6.1.1 Thanh ghi CCP1CON/CCP2...............................................................................82
6.1.2 Mode Capture ................................................................................................83
6.1.3 Mode Compare...............................................................................................85
6.1.4 Mode PWM ....................................................................................................85
6.2 CCP TRONG CCS. ....................................................................................................87
6.2.1 Hàm Setup_CCPx ( mode ): ............................................................................87
6.2.2 Hàm Set_CCPx_duty ( value ): ........................................................................88
6.3 BÀI TẬP MẪU ..........................................................................................................88

TÓM TẮT ...................................................................................................................90
ÔN TẬP .....................................................................................................................91
BÀI 7: ADC MODULE. ................................................................................................. 94
7.1 GIỚI THIỆU ............................................................................................................94
7.1.1 Thanh ghi ADCON0. ........................................................................................95
7.1.2 Thanh ghi ADCON1. ........................................................................................95
7.1.3 Các bước thực hiện chuyển đổi ADC: ................................................................96
7.1.4 ADC trong CCS. .............................................................................................96
7.2 BÀI TẬP MẪU ..........................................................................................................99


MỤC LỤC

III

TÓM TẮT ................................................................................................................. 101
ÔN TẬP ................................................................................................................... 102
BÀI 8: GIAO TIẾP UART – I2C ............................................................................... 103
8.1 UART ................................................................................................................ 103
8.1.1 Tốc độ Baud: ............................................................................................... 103
8.1.2 Khung truyền (Frame) .................................................................................. 104
8.1.3 Bit Start ...................................................................................................... 104
8.1.4 Dữ liệu (Data) .............................................................................................. 104
8.1.5 Bit Paraty .................................................................................................... 104
8.1.6 Bit Stop ...................................................................................................... 104
8.1.7 Sơ đồ giao tiếp UART .................................................................................... 105
8.1.8 UART trong CCS ........................................................................................... 106
8.2 BÀI TẬP MẪU......................................................................................................... 107
8.3 GIAO TIẾP I2C ...................................................................................................... 109
8.3.1 Đặc điểm giao tiếp I2C .................................................................................. 110

8.3.2 Truyền nhận dữ liệu Master – Slave ................................................................ 110
8.3.3 Giao tiếp I2C trong CCS ................................................................................ 114
8.4 BÀI TẬP MẪU......................................................................................................... 114
TÓM TẮT ................................................................................................................. 117
CÂU HỎI ÔN TẬP ...................................................................................................... 118
TÀI LIỆU THAM KHẢO ............................................................................................... 120


IV

HƯỚNG DẪN

HƯỚNG DẪN
MÔ TẢ MÔN HỌC
Vi điều khiển là một trong những môn học tiên quyết nhằm cung cấp cho người
học những kiến thức cơ bản về kiến thức và kỹ năng lập trình họ vi điều khiển 8 bit.
Sau khi học xong người học có khả năng thiết kế và lập trình điều khiển một số hệ
thống trong công nghiệp và dân dụng ứng dụng vi điều khiển.

NỘI DUNG MÔN HỌC


Bài 1. Tổng quan về vi điều khiển PIC: Bài này cung cấp cho học viên một số khái
niệm về vi điều khiển PIC. Ngoài ra, học viên còn có thể phân biệt kiến trúc RISC
và CISC. Nắm được các tính năng chính của họ 16FXXX.



Bài 2. Tổ chức bộ nhớ và các thanh ghi đặc biệt: Bài này giúp học viên nắm vững
tổ chức bộ nhớ Vi điều khiển họ 16F8XXX và có thể phân biệt bộ nhớ chương trình

và bộ nhớ dữ liệu. Ngoài ra, còn hiểu rõ địa chỉ, chức năng các bit trong các thanh
ghi đặc biệt.



Bài 3: Ngôn ngữ lập trình C – Phần mềm CCS: Bài này giúp học viên ôn lại kiến
thức lập trih2 C đã học. Cách tạo 1 project sử dụng phần mềm Pic C Compiler.



Bài 4: Cấu hình I-O Port: Bài này trình bày về cấu trúc các thanh ghi điều khiển IO. Hướng dẫn sử dụng các hàm điều I-O trong phần mềm Pic C Compiler .



Bài 5: Timer – Counter: Trong bài này trình bày các sơ đồ khối và các thanh ghi
liên quan đến các bộ Timer. Hướng dẫn cách khởi tạo và cấu hình Timer, tính toán
giá trị cho Timer và Counter. Học viên có thể viết 1 số chương trình ứng dụng về
Timer và Counter.



Bài 6: Compare – Capture - PWM: Bài này giúp học viên phân biệt giữa mode
Compare - Capture – PWM. Ngoài ra, còn trình bày cấu trúc và các thanh ghi liên
quan đến module CCP. Hướng dẫn cách khai báo và viết chương trình dùng CCS.
Viết 1 số chương trìnhứng dụng trong thực tế.


HƯỚNG DẪN




V

Bài 7: ADC: Bài này giúp học viên phân biệt tín hiệu digital và analog, trình bày sơ
đồ khối và các thanh ghi liên quan đến ADC. Hướng dẫn cách khởi tạo và cấu hình
ADC. Học viên có thể viết 1 số chương trình ứng dụng ADC.



Bài 8: Truyền thông UART – I2C: Bài này giúp học viên nắm được các khái niệm về
truyền thông UART, I2C. Cách khởi tạo và cấu hình các giao thức truyền thông.
Giao tiếp giữa PC và MCU, MCU-MCU và viết 1 số chương trình ứng dụng.

KIẾN THỨC TIỀN ĐỀ
Các môn học tiên quyết (những môn phải học trước môn này): Môn học được bố trí
vào giai đoạn lựa chọn chuyên ngành, sau khi kết thúc các môn cơ bản của ngành.
Các môn học kế tiếp (những môn học ngay sau môn này): Vi điều khiển nâng cao, Kỹ
thuật lập trình nâng cao, hệ thống nhúng.

YÊU CẦU MÔN HỌC
Người học phải dự học đầy đủ các buổi lên lớp và làm bài tập đầy đủ ở nhà.

CÁCH TIẾP NHẬN NỘI DUNG MÔN HỌC
Để học tốt môn này, người học cần ôn tập các bài đã học, trả lời các câu hỏi và
làm đầy đủ bài tập; đọc trước bài mới và tìm thêm các thông tin liên quan đến bài
học.
Đối với mỗi bài học, người học đọc trước mục tiêu và tóm tắt bài học, sau đó đọc
nội dung bài học. Kết thúc mỗi ý của bài học, người đọc trả lời câu hỏi ôn tập và kết
thúc toàn bộ bài học, người đọc làm các bài tập.


PHƯƠNG PHÁP ĐÁNH GIÁ MÔN HỌC
1. Kiểm tra – đánh giá quá trình: Có trọng số chung là 30%, bao gồm các điểm
đánh giá như sau:


Điểm chuyên cần: Cấm thi nếu vắng hơn 20% tiết lên lớp.



Điểm đánh giá nhận thức và thái độ tham gia thảo luận, Seminar: 20%


VI

HƯỚNG DẪN



Điểm thi giữa kỳ: 10%



Điểm thi cuối kỳ: 70%



Điểm đánh giá khối lượng tự học, tự nghiên cứu của sinh viên (hoàn thành tốt nội
dung, nhiệm vụ mà giảng viên giao cho cá nhân/ tuần; bài tập nhóm/ tháng; bài
tập cá nhân/ học kì,…).


2. Kiểm tra - đánh giá cuối kỳ: Điểm thi kết thúc học phần có trọng số 70%


Hình thức thi: tự luận



Thời lượng thi: 90 phút



Sinh viên được tham khảo tài liệu hay không khi thi: được tham khảo tài liệu


BÀI 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC

1

BÀI 1: TỔNG QUAN VỀ VI ĐIỀU
KHIỂN PIC
Sau khi học xong bài này, học viên có thể:


Nắm được khái niệm về vi điều khiển PIC.



Phân biệt giữa kiến trúc RISC và CISC.




Nắm vững cấu trúc vi điều khiển PIC 8bit.

1.1 Giới thiệu
1.1.1 Tổng quan
PIC là một họ vi điều khiển RISC được sản xuất bởi công ty Microchip Technology.
Dòng PIC đầu tiên là PIC1650 được phát triển bởi Microelectronics Division
thuộc General Instrument .
PIC bắt nguồn là chữ viết tắt của "Programmable Intelligent Computer" là một
sản phẩm của hãng General Instrument đặt cho dòng sản phẩm đầu tiên của họ
là PIC1650. Lúc này, PIC1650 được dùng để giao tiếp với các thiết bị ngoại vi cho máy
chủ 16bit CP1600. Vì vậy, người ta cũng gọi PIC với cái tên "Peripheral Interface
Controller". CP1600 là một CPU tốt, nhưng lại kém về các hoạt động xuất nhập, và vì
vậy PIC 8-bit được phát triển vào khoảng năm 1975 để hỗ trợ hoạt động xuất nhập
cho CP1600. PIC sử dụng microcode đơn giản đặt trong ROM. Mặc dù, cụm từ RISC
chưa được sử dụng thời bây giờ, nhưng PIC thực sự là một vi điều khiển với kiến trúc
RISC, chạy một lệnh một chu kỳ máy (4 chu kỳ của bộ dao động).
Năm 1985 General Instrument bán bộ phận vi điện tử của họ, và chủ sở hữu mới
hủy bỏ hầu hết các dự án - lúc đó đã quá lỗi thời. Tuy nhiên PIC được bổ sung
EEPROM để tạo thành 1 bộ điều khiển vào ra khả trình. Ngày nay rất nhiều dòng PIC


2

BÀI 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN 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ư USART, PWM,
ADC...), với bộ nhớ chương trình từ 512 Word đến 32K Word.

Hình 1.1 CISC - Kiến trúc Von Neuman


Hình 1.2 RISC - Kiến trúc Harvard


BÀI 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC

3

1.1.2 Một số đặc tính vi điều khiển PIC
Hiện nay có khá nhiều dòng PIC và có rất nhiều khác biệt về phần cứng, nhưng có
thể điểm qua một vài nét như sau:


8/16 bit CPU, xây dựng theo kiến trúc Harvard có sửa đổi



FLASH và ROM có thể tuỳ chọn từ 256 byte đến 256 Kbyte



Các cổng Xuất/Nhập (I/O ports) (mức logic thường từ 0V đến 5.5V, ứng với
logic 0 và logic 1)



8/16 Bit Timer




Công nghệ Nanowatt



Các

chuẩn

giao

tiếp

ngoại

vi

nối

tiếp

đồng

bộ/không

bộ USART, AUSART, EUSARTs


Bộ chuyển đổi ADC Analog-to-digital converters, 10/12 bit




Bộ so sánh điện áp (Voltage Comparators)



Các module Capture/Compare/PWM



LCD



MSSP Peripheral dùng cho các giao tiếp I²C, SPI, và I²S



Bộ nhớ nội EEPROM - có thể ghi/xoá lên tới 1 triệu lần



FLASH (dùng cho bộ nhớ chương trình) có thể ghi/xóa 10.000 lần



Module điều khiển động cơ, đọc encoder



Hỗ trợ giao tiếp USB




Hỗ trợ điều khiển Ethernet



Hỗ trợ giao tiếp CAN



Hỗ trợ giao tiếp LIN



Hỗ trợ giao tiếp IrDA



Một số dòng có tích hợp bộ RF (PIC16F639, và rfPIC)



KEELOQ Mã hoá và giải mã

đồng


4


BÀI 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC


DSP những tính năng xử lý tín hiệu số (dsPIC)

Đặc điểm thực thi tốc độ cao CPU RISC của họ vi điều khiển PIC16F87XA.


Chỉ gồm 35 lệnh đơn.



Tất cả các lệnh là 1 chu kì ngoại trừ chương trình con là 2 chu kì.



Tốc độ hoạt động:



DC- 20MHz ngõ vào xung clock.



DC- 200ns chu kì lệnh.



Dung lượng của bộ nhớ chương trình Flash là 8K×14words.




Dung lượng của bộ nhớ dữ liệu RAM là 368×8bytes.



Dung lượng của bộ nhớ dữ liệu EEPROM là 256×8 bytes.

1.1.2.1 Các đặc tính ngoại vi


Timer0: là bộ định thời timer/counter 8 bit có bộ chia trước.



Timer1: là bộ định thời timer/counter 16 bit có bộ chia trước, có thể đếm khi
CPU đang ở trong chế độ ngủ với nguồn xung từ tụ thạch anh hoặc nguồn xung
bên ngoài.



Timer2: bộ định thời timer/counter 8 bit với thanh ghi 8-bit, chia trước và
postscaler.



Hai khối Capture, Compare, PWM.




Capture có độ rộng 16-bit, độ phân giải 12.5ns



Compare có độ rộng 16-bit, độ phân giải 200ns



Độ phân giải lớn nhất của PWM là 10-bit.

1.1.2.2 Các đặc tính về tương tự


Có 8 kênh chuyển đổi tín hiệu tương tự thành tín hiệu số ADC 10-bit.



Có reset BOR (Brown- Out Reset).



Khối so sánh điện áp tương tự.


BÀI 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC


Hai bộ so sánh tương tự.




Khối tạo điện áp chuẩn VREF tích hợp bên trong có thể lập trình.



Đa hợp ngõ vào lập trình từ ngõ vào của CPU với điện áp chuẩn bên trong.



Các ngõ ra của bộ so sánh có thể truy xuất từ bên ngoài.

5

1.1.2.3 Các đặc tính đặc biệt của vi điều khiển:


Bộ nhớ chương trình Enhanced Flash cho phép xóa và ghi 100000 lần.



Bộ nhớ dữ liệu EEPROM cho phép xóa và ghi 1000000 lần.



Bộ nhớ EEPROM có thể lưu giữ dữ liệu hơn 40 năm và có thể tự lập trình lại
dưới sự điều khiển của phần mềm.



Mạch lập trình nối tiếp ICSP thông qua 2 chân (In-Circuit Serial Programming).




Nguồn sử dụng là nguồn đơn 5V cấp cho mạch lập trình nối tiếp.



Có Watchdog Timer (WDT) với bộ dao động RC tích hợp sẵn trên Chip.



Có thể lập trình mã bảo mật.



Có thể hoạt động ở chế độ Sleep để tiết kiệm năng lượng.



Có thể lưạ chọn bộ dao động.



Có mạch điện gỡ rối ICD (In-Circuit Debug) thông qua 2 chân.

1.1.2.4 Công nghệ CMOS
Công nghệ CMOS có các đặc tính: công suất thấp, công nghệ bộ nhớ
Flash/EEPROM tốc độ cao. Điện áp hoạt động từ 2V đến 5,5V và tiêu tốn năng lượng
thấp. Phù hợp với nhiệt độ làm việc trong công nghiệp và trong thương mại.



6

BÀI 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC

1.2 Vi điều khiển 16F877A
1.2.1 Tổng quát PIC16F877A
Cấu trúc PIC16F877A như sau:

Tần số hoạt động

DC- 20MHz

Reset (và Delay)

POR, BOR (PWRT, OST)

Bộ nhớ chương trình Flash (14-bit
word)

8K

Bộ nhớ dữ liệu (byte)

368

Bộ nhớ dữ liệu EEPROM (byte)

256


Các nguồn ngắt

15

Các port xuất nhập

Các port A, B, C, D, E

Timer
Các
capture/compare/PWM
Giao tiếp nối tiếp
Giao tiếp song song
Module A/D 10bit
Bộ so sánh tương tự
Tập lệnh

3
module

2
MSSP, USART
PSP
8 kênh ngõ vào
2
35 lệnh
40 chân PDIP

Số chân


44 chân PLCC
44 chân TQFP
44 chân QFN


BÀI 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC

Kiểu chân

Hình dáng

Hình 1.3 Hình dạng Package

7


8

BÀI 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC

1.2.2 Sơ đồ khối

Hình 1.4 Sơ đồ khối PIC16F877A

1.2.2.1 Chức năng của các chân như sau:
Chân OSC1/CLKI (13): Là ngõ vào kết nối với dao động thạch anh hoặc ngõ vào
nhận xung clock bên ngoài.
OSC1: Ngõ vào dao động thạch anh hoặc ngõ vào nguồn xung ở bên ngoài. Ngõ
vào có mạch Schmitt Trigger nếu sử dụng dao động RC.
CLKI: Ngõ vào nguồn xung bên ngoài.



BÀI 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC

9

Chân OSC2/CLKO (14): Ngõ ra dao động thạch anh hoặc ngõ ra cấp xung clock.
OSC2: Ngõ ra dao động thạch anh. Kết nối đến thạch anh hoặc bộ cộng hưởng.
CLKO: Ở chế độ RC, ngõ ra của OSC2 bằng ¼ tần số của OSC1và chính là tốc
độ của chu kì lệnh.
Chân MCLR /VPP (1): có 2 chức năng
MCLR: Là ngõ vào reset tích cực mức thấp.
VPP: Khi lập trình cho PIC thì đóng vai trò là ngõ vào nhận điện áp lập trình.
Chân RA0/AN0 (2): có 2 chức năng
RA0: Xuất/ nhập số.
AN0: Ngõ vào Analogcủa kênh thứ 0.
Chân RA1/AN1(3):
RA0: Xuất/nhập số.
AN1: Ngõ vào Analogcủa kênh thứ 1.
Chân RA2/AN2/VREF-/CVREF (4):
RA2: Xuất/nhập số.
AN2: Ngõ vào Analogcủa kênh thứ 2.
VREF-: Ngõ vào điện áp chuẩn (thấp) của
bộ A/D.
CVREF: Điện áp tham chiếu VREF ngõ ra
bộ so sánh.
Chân RA3/AN3/VREF+ (5):
RA3: Xuất/nhập số.
AN3: Ngõ vào Analogkênh thứ 3.
VREF+: Ngõ vào điện áp chuẩn (cao)


Hình 1.5 Sơ đồ khối RA0:RA3

Chân RA4/TOCKI/C1OUT (6):
RA4: xuất/nhập số – Cực D để hở khi được cấu hình là ngõ ra.
TOCKI: ngõ vào xung clock bên ngoài cho Timer 0.
C1OUT: ngõ ra bộ so sánh 1.


10

BÀI 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC

Hình 1.6 Sơ đồ khối RA4
Chân RA5/AN4/ SS /C2OUT (7):
RA5: xuất/nhập số.
AN4: Ngõ vào Analog kênh thứ 4.
SS: Ngõ vào chọn lựa SPI phụ.
C2OUT: Ngõ ra bộ so sánh 2.

Hình 1.7 Sơ đồ khối RA5
Chân RB0/INT (33):
RB0: Xuất/Nhập số.


BÀI 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC
INT: Ngõ vào nhận tín hiệu ngắt ngoài.
Chân RB1 (34), RB2 (35): Xuất/Nhập số.
Chân RB3/PGM:
RB3: Xuất/Nhập số.

PGM: Chân cho phép lập trình Mode LVP.
Chân RB4 (37), RB5 (38): Xuất/Nhập số.
Chân RB6/PGC (39):
RB6: Xuất/Nhập số.
PGC: Mạch gỡ rối và xung clock lập trình ICSP.
Chân RB7/PGD (40):
RB7: Xuất/Nhập số.
PGD: mạch gỡ rối và dữ liệu lập trình ICSP.
Chân RC0/T1OSO/T1CKI (15):
RC0: Xuất/Nhập số
T1OSO: Ngõ vào bộ dao động Timer1.
T1CKI: Ngõ vào xung clock bên ngoài Timer1.
Chân RC1/T1OSI/CCP2 (16):
RC1: Xuất/Nhập số.
T1OSI: Ngõ vào bộ dao động Timer1.
CCP2: Ngõ vào Capture2, ngõ ra compare2, ngõ ra PWM2.
Chân RC2/CCP1 (17):
RC2: Xuất/Nhập số
CCP1: Ngõ vào Capture1, ngõ ra compare1, ngõ ra PWM1.
Chân RC3/SCK/SCL (18):
RC3: Xuất/Nhập số.
SCK: Ngõ vào xung clock nối tiếp đồng bộ/ngõ ra của chế độ SPI.
SCL: Ngõ vào xung clock nối tiếp đồng bộ/ngõ ra của chế độ I2C.
Chân RC4/SDI/SDA (23):
RC4: Xuất/Nhập số.
SDI: dữ liệu vào SPI.
SDA: Xuất/Nhập dữ liệu I2C.
Chân RC5/SDO (24):
RC5: Xuất/Nhập số.


11


12

BÀI 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC
SDO: dữ liệu ra SPI.

Chân RC6/TX/CK (25):
RC6: Xuất/Nhập số.
TX: Truyền bất đồng bộ USART.
CK: Xung đồng bộ USART.
Chân RC7/RX/DT (26):
RC7: Xuất/Nhập số.
RX: nhận bất đồng USART.
DT: dữ liệu đồng bộ USART.
Chân RD0/PSP0 (19):
RD0: Xuất/Nhập số.
PSP0: dữ liệu Port Slave song song bit 0.
Chân RD1/PSP1 (20):
RD1: Xuất/Nhập số.
PSP1: dữ liệu Port Slave song song bit 1.
Chân RD2/PSP2(21):
RD2: Xuất/Nhập số.
PSP2: dữ liệu Port Slave song song bit 2.
Chân RD3/PSP3 (22):
RD3: Xuất/Nhập số.
PSP3: dữ liệu Port Slave song song bit 3.
Chân RD4/PSP4 (27):
RD4: Xuất/Nhập số.

PSP4: dữ liệu Port Slave song song bit 4.
Chân RD5/PSP5 (28):
RD5: Xuất/Nhập số.
PSP5: dữ liệu Port Slave song song bit 5.
Chân RD6/PSP6 (29):
RD6: Xuất/Nhập số.
PSP6: dữ liệu Port Slave song song bit 6.
Chân RD7/PSP7 (30):
RD7: Xuất/Nhập số.


BÀI 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC
PSP7: dữ liệu Port Slave song song bit 7.
Chân RE0/ RD /AN5 (8):
RE0: Xuất/Nhập số.
RD: Điều khiển đọc port Slave song song.
AN5: Ngõ vào Analog 5.
Chân RE1/WR /AN6 (9):
RE1: Xuất/Nhập số.
WR: Điều khiển ghi port Slave song song.
AN6: Ngõ vào Analog kênh thứ 6.
Chân RE2/ CS /AN7 (10):
RE2: Xuất/Nhập số.
CS: Chọn lựa điều khiển Port Slave song song.
AN7: Ngõ vào Analog kênh thứ 7.
Chân VDD (11,32): Là các chân nguồn của PIC.
Chân VSS (12, 31): Là các chân mass của PIC.

Hình 1.7 Sơ đồ khối PORT D và PORT E (PARALLEL SLAVE PORT)


13


14

BÀI 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC

TÓM TẮT


Trong bài này, học viên tìm hiểu lịch sử phát triển vi điều khiển PIC, nắm
vững được kiến trúc và cấu trúc vi điều khiển họ 16F8XXX .



PIC là một họ vi điều khiển RISC được sản xuất bởi công ty Microchip
Technology. Dòng PIC đầu tiên là PIC1650 được phát triển bởi
Microelectronics Division thuộc General Instrument .



Cấu trúc vi điều khiển họ 16F8XXX .

Tần số hoạt động

DC- 20MHz

Reset (và Delay)

POR, BOR (PWRT, OST)


Bộ nhớ chương trình Flash (14-bit 8K
word)
Bộ nhớ dữ liệu (byte)

368

Bộ nhớ dữ liệu EEPROM (byte)

256

Các nguồn ngắt

15

Các port xuất nhập

Các port A, B, C, D, E

Timer

3

Các module capture/compare/PWM

2


BÀI 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC


15

CÂU HỎI ÔN TẬP
Câu 1: Dòng PIC đầu tiên tên gì ? Do công ty nào phát triển ?
Câu 2: So sánh sự khác nhau giữa 2 kiến trúc CISC và RISC ? CISC và RISC còn
có tên gọi là 2 kiến trúc gì ?

Câu 3: Bộ nhớ chương trình Flash, dữ liệu, dữ liệu EEPROM của các dòng vi điều
khiển: 16F873A - 16F874A - 16F876A - 16F877A kích thước bao nhiêu ?

Câu 4: Phân biệt tín hiệu đưa vào ngõ Digital và Analog ?
Câu 5: Chân RA4 có đặc điểm gì so với các chân còn lại ?
Câu 6: Để nạp chương trình vào vi điều khiển phải sử dụng những chân nào ?
Câu 7: Trình bày chức năng chân ̅̅̅̅̅̅̅̅
𝑀𝐶𝐿𝑅 /𝑉𝑃𝑃 ?
Câu 8: Trình bày chức năng chân OSC1 và OSC2 ?
Câu 9: Vi điều khiển 16F877A có bao nhiêu nguồn ngắt ?
Câu 10: Bộ Timer dùng để làm gì ?
Câu 11: Trình bày chức năng chân CCP1,CCP2 ?
Câu 12: Phân biết các giao thức UART, I2C, SPI?


16

BÀI 2: TỔ CHỨC BỘ NHỚ - CÁC THANH GHI ĐẶC BIỆT

BÀI 2: TỔ CHỨC BỘ NHỚ - CÁC
THANH GHI ĐẶC BIỆT
Sau khi học xong bài này, học viên có thể:



Nắm vững tổ chức bộ nhớ Vi điều khiển PIC16F877A.



Phân biệt bộ nhớ chương trình và bộ nhớ dữ liệu.



Hiểu rõ địa chỉ, chức năng các bit trong các thanh ghi đặc biệt.

2.1 Tổ chức bộ nhớ
Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ chương trình
(Program Memory) và bộ nhớ dữ liệu (Data Memory).

2.1.1 Bộ nhớ chương trình.
Bộ nhớ chương trình PIC16F877A là bộ nhớ Flash có dung lượng là 8Kword×14bit
và được phân thành nhiều trang (từ page0 đền page3). Như vậy bộ nhớ chương trình
có khả năng chứa được 8*1024=8192 lệnh (vì một lệnh sau khi mã hóa có dung
lượng 1 word = 14bit.)
Khi PIC bị reset thì vector Reset có giá trị là 0000h và vector Ngắt có địa chỉ
0004H.


×